diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 4e89b19ee..3edf25ed0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -2,7 +2,7 @@ name: Bug report about: Create a report to help us improve title: '' -labels: bug +labels: [bug, aws, steampipe] assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/feature-request---new-table.md b/.github/ISSUE_TEMPLATE/feature-request---new-table.md index 1408aaebe..ec5acc917 100644 --- a/.github/ISSUE_TEMPLATE/feature-request---new-table.md +++ b/.github/ISSUE_TEMPLATE/feature-request---new-table.md @@ -2,7 +2,7 @@ name: Feature request - New table about: Suggest a new table for this project title: Add table aws__ -labels: enhancement, new table +labels: aws, enhancement, new table, steampipe assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491ef..4aed4e065 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -2,7 +2,7 @@ name: Feature request about: Suggest an idea for this project title: '' -labels: enhancement +labels: enhancement, steampipe assignees: '' --- diff --git a/.github/workflows/add-issue-to-project.yml b/.github/workflows/add-issue-to-project.yml new file mode 100644 index 000000000..a86bab69a --- /dev/null +++ b/.github/workflows/add-issue-to-project.yml @@ -0,0 +1,13 @@ +name: Assign Issue to Project + +on: + issues: + types: [opened] + +jobs: + add-to-project: + uses: turbot/steampipe-workflows/.github/workflows/assign-issue-to-project.yml@main + with: + issue_number: ${{ github.event.issue.number }} + repository: ${{ github.repository }} + secrets: inherit diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index e15f80fb0..ccb845c82 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -41,7 +41,9 @@ jobs: file: docker/steampipe/Dockerfile platforms: linux/amd64 push: true - tags: ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.us-west-2.amazonaws.com/steampipe:latest + tags: | + ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.us-west-2.amazonaws.com/steampipe:latest + ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.us-west-2.amazonaws.com/steampipe:${{ env.GIT_COMMIT_SHA }} - name: Restart the extractor-steampipe deployment run: kubectl rollout restart deployment extractor-steampipe -n catio-data-extraction diff --git a/.github/workflows/prod.yml b/.github/workflows/prod.yml index a7a18403c..2d5230427 100644 --- a/.github/workflows/prod.yml +++ b/.github/workflows/prod.yml @@ -41,7 +41,9 @@ jobs: build-args: | PY_PAT=${{ secrets.PY_PAT }} push: true - tags: ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.us-west-2.amazonaws.com/steampipe:latest + tags: | + ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.us-west-2.amazonaws.com/steampipe:latest + ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.us-west-2.amazonaws.com/steampipe:${{ env.GIT_COMMIT_SHA }} - name: Restart the extractor-steampipe deployment run: kubectl rollout restart deployment extractor-steampipe -n catio-data-extraction diff --git a/.github/workflows/registry-publish-ghcr.yml b/.github/workflows/registry-publish-ghcr.yml index 3554b86ed..fb680cb74 100644 --- a/.github/workflows/registry-publish-ghcr.yml +++ b/.github/workflows/registry-publish-ghcr.yml @@ -1,166 +1,13 @@ -name: Build and Deploy OCI Image - GHCR +name: Build and Deploy OCI Image on: push: tags: - 'v*' -env: - ORG: turbot - CR: ghcr.io - CR_PREFIX: turbot/steampipe/plugins - CONFIG_SCHEMA_VERSION: '2020-11-18' - ORAS_VERSION: 1.1.0 - jobs: - build-deploy: - runs-on: - group: large-runners - permissions: - packages: write - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # Setup Env - - name: Set environment variables - run: | - plugin_name=$(echo $GITHUB_REPOSITORY | cut -d'-' -f 3) - echo $plugin_name - echo "PLUGIN_NAME=${plugin_name}" >> $GITHUB_ENV - - # Exit early if we don't need to build - - name: Exit if goreleaser file is missing - run: | - test -f .goreleaser.yml - - - name: Get latest version tag - run: |- - echo "VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - - - name: Get latest trimmed version tag - run: |- - echo $VERSION - trim=${VERSION#"v"} - echo $trim - echo "VERSION=${trim}" >> $GITHUB_ENV - - - name: Validate Version String (only accept prod & rc) - run: |- - if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?$ ]]; then - echo "Version OK: $VERSION" - else - echo "Invalid version: $VERSION" - exit 1 - fi - - - name: Ensure Version Does Not Exist - run: |- - URL=https://$CR/v2/$CR_PREFIX/$ORG/$PLUGIN_NAME/tags/list - IDX=$(curl -L -H "Authorization: Bearer $(base64 <<< $GITHUB_TOKEN)" $URL | jq ".tags | index(\"$VERSION\")") - if [ $IDX == "null" ]; then - echo "OK - Version does not exist: $VERSION" - else - echo "Version already exists: $VERSION" - exit 1 - fi - - # Setup go & build - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: 1.22 - - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 - with: - version: latest - args: release --clean --skip=publish --timeout=60m - - - name: List Build Artifacts - run: ls -laR ./dist - - # Copy artifacts into working dir - - name: Copy artifacts to working dir - run: cp ./dist/*.gz . - - # Create files for registry - - name: Create config file - run: |- - JSON_STRING=$( jq -n \ - --arg name "$PLUGIN_NAME" \ - --arg organization "$ORG" \ - --arg version "$VERSION" \ - --arg schemaVersion "$CONFIG_SCHEMA_VERSION" \ - '{schemaVersion: $schemaVersion, plugin: { name: $name, organization: $organization, version: $version} }' ) - echo $JSON_STRING > config.json - - - name: Create annotations file - run: |- - JSON_STRING=$( jq -n \ - --arg title "$PLUGIN_NAME" \ - --arg desc "$ORG" \ - --arg version "$VERSION" \ - --arg timestamp "$(date +%FT%T%z | sed 's/\([0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/')" \ - --arg repo "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \ - --arg commit "$GITHUB_SHA" \ - --arg vendor "Turbot HQ, Inc." \ - '{ - "$manifest": { - "org.opencontainers.image.title": $title, - "org.opencontainers.image.description": $desc, - "org.opencontainers.image.version": $version, - "org.opencontainers.image.created": $timestamp, - "org.opencontainers.image.source": $repo, - "org.opencontainers.image.revision": $commit, - "org.opencontainers.image.vendor": $vendor - } - }' ) - echo $JSON_STRING > annotations.json - - - run: cat annotations.json - - run: cat README.md - - # Setup ORAS - - name: Install specific version of ORAS - run: | - curl -LO https://github.com/oras-project/oras/releases/download/v${ORAS_VERSION}/oras_${ORAS_VERSION}_linux_amd64.tar.gz - sudo tar xzf oras_${ORAS_VERSION}_linux_amd64.tar.gz -C /usr/local/bin oras - oras version - - # Login to GHCR - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.CR }} - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - # Publish to GHCR - - name: Push to the container registry - run: |- - REF="$CR/$CR_PREFIX/$ORG/$PLUGIN_NAME:$VERSION" - LATEST_REF="$CR/$CR_PREFIX/$ORG/$PLUGIN_NAME:latest" - oras push $REF \ - --config config.json:application/vnd.turbot.steampipe.config.v1+json \ - --annotation-file annotations.json \ - steampipe-plugin-${PLUGIN_NAME}_darwin_amd64.gz:application/vnd.turbot.steampipe.plugin.darwin-amd64.layer.v1+gzip \ - steampipe-plugin-${PLUGIN_NAME}_darwin_arm64.gz:application/vnd.turbot.steampipe.plugin.darwin-arm64.layer.v1+gzip \ - steampipe-plugin-${PLUGIN_NAME}_linux_amd64.gz:application/vnd.turbot.steampipe.plugin.linux-amd64.layer.v1+gzip \ - steampipe-plugin-${PLUGIN_NAME}_linux_arm64.gz:application/vnd.turbot.steampipe.plugin.linux-arm64.layer.v1+gzip \ - docs:application/vnd.turbot.steampipe.plugin.docs.layer.v1+tar \ - config:application/vnd.turbot.steampipe.plugin.spc.layer.v1+tar - - # tag the image with the GitHub Run ID for traceability - oras tag $REF $GITHUB_RUN_ID - - # check if the version is NOT an rc version before tagging as latest - if [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo "Tagging as latest: $LATEST_REF" - oras tag $REF $LATEST_REF - else - echo "Skipping latest tag for rc version: $VERSION" - fi - + registry_publish_workflow_ghcr: + uses: turbot/steampipe-workflows/.github/workflows/registry-publish-ghcr-large-runners.yml@main + secrets: inherit + with: + releaseTimeout: 60m diff --git a/CHANGELOG.md b/CHANGELOG.md index bc1ecbb4d..dad9577a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,31 +1,351 @@ +## v1.30.0 [2026-03-06] + +_What's new?_ + +- New tables added + - [aws_ec2_fleet](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ec2_fleet) ([#2689](https://github.com/turbot/steampipe-plugin-aws/pull/2689)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + +_Enhancements_ + +- Added column `actionability` to `aws_health_event` table. ([#2697](https://github.com/turbot/steampipe-plugin-aws/pull/2697)) (Thanks [@Recurzion](https://github.com/Recurzion) for the contribution!) +- Added column `monitoring_subscription` to `aws_cloudfront_distribution` table. ([#2695](https://github.com/turbot/steampipe-plugin-aws/pull/2695)) (Thanks [@dj00808](https://github.com/dj00808) for the contribution!) +- Added columns `name`, `created_date`, `owner_account_id`, and `status` to `aws_ssoadmin_instance` table. ([#2692](https://github.com/turbot/steampipe-plugin-aws/pull/2692)) + +_Dependencies_ + +- Updated `urllib3`, `lodash`, and `diff` to fix high severity vulnerabilities. ([#2698](https://github.com/turbot/steampipe-plugin-aws/pull/2698)) (Thanks [@dj00808](https://github.com/dj00808) for the contribution!) + +## v1.29.0 [2025-12-05] + +_Enhancements_ + +- Added columns `api_status`, `api_status_message`, `disable_execute_api_endpoint`, `endpoint_access_mode`, and `security_policy` to `aws_api_gateway_rest_api` table. ([#2685](https://github.com/turbot/steampipe-plugin-aws/pull/2685)) + +## v1.28.0 [2025-11-20] + +_What's new?_ + +- New tables added + - [aws_budgets_budget](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_budgets_budget) ([#2681](https://github.com/turbot/steampipe-plugin-aws/pull/2681)) + - [aws_ce_anomaly_monitor](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ce_anomaly_monitor) ([#2681](https://github.com/turbot/steampipe-plugin-aws/pull/2681)) + - [aws_ce_cost_allocation_tags](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ce_cost_allocation_tags) ([#2681](https://github.com/turbot/steampipe-plugin-aws/pull/2681)) + - [aws_config_rule_compliance_detail](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_config_rule_compliance_detail) ([#2668](https://github.com/turbot/steampipe-plugin-aws/pull/2668)) + +_Enhancements_ + +- Added `options` column to `aws_ec2_transit_gateway_vpc_attachment` table. ([#2683](https://github.com/turbot/steampipe-plugin-aws/pull/2683)) +- Added `managed_query_results_enabled`, `managed_query_results_kms_key`, and `enable_minimum_encryption_configuration` columns to `aws_athena_workgroup` table. ([#2678](https://github.com/turbot/steampipe-plugin-aws/pull/2678)) +- Updated `aws_memorydb_cluster` table to retrieve detailed information about shards associated with the cluster. ([#2676](https://github.com/turbot/steampipe-plugin-aws/pull/2676)) (Thanks [@ustndagsemih](https://github.com/ustndagsemih) for the contribution!) + +## v1.27.0 [2025-11-18] + +_What's new?_ + +- New tables added + - [aws_bedrock_guardrail](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_bedrock_guardrail) ([#2661](https://github.com/turbot/steampipe-plugin-aws/pull/2661)) (Thanks [@SatoriSec](https://github.com/SatoriSec) for the contribution!) + - [aws_opensearch_reserved_instance](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_opensearch_reserved_instance) ([#2665](https://github.com/turbot/steampipe-plugin-aws/pull/2665)) + - [aws_sesv2_suppressed_destination](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_sesv2_suppressed_destination) ([#2667](https://github.com/turbot/steampipe-plugin-aws/pull/2667)) (Thanks [@jramosf](https://github.com/jramosf) for the contribution!) + - [aws_ssoadmin_customer_managed_policy_attachment](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ssoadmin_customer_managed_policy_attachment) ([#2663](https://github.com/turbot/steampipe-plugin-aws/pull/2663)) (Thanks [@nickthejagger](https://github.com/nickthejagger) for the contribution!) + +_Enhancements_ + +- Added the column `attributes` to `aws_ec2_target_group` table. ([#2664](https://github.com/turbot/steampipe-plugin-aws/pull/2664)) +- Added the column `state` to `aws_organizations_account` table. ([#2677](https://github.com/turbot/steampipe-plugin-aws/pull/2677)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + +_Deprecations_ + +- Deprecated the `status` column in `aws_organizations_account` table. ([#2677](https://github.com/turbot/steampipe-plugin-aws/pull/2677)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + +## v1.26.0 [2025-10-23] + +_What's new?_ + +- New tables added + - [aws_eks_access_entry](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_eks_access_entry) ([#2651](https://github.com/turbot/steampipe-plugin-aws/pull/2651)) + - [aws_eks_access_policy_association](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_eks_access_policy_association) ([#2651](https://github.com/turbot/steampipe-plugin-aws/pull/2651)) + +_Enhancements_ + +- Added the column `routing_config` to `aws_lambda_alias` table. ([#2657](https://github.com/turbot/steampipe-plugin-aws/pull/2657)) + +_Bug fixes_ + +- Fixed the `code` column in `aws_lambda_version` table to correctly return data instead of `null`. ([#2656](https://github.com/turbot/steampipe-plugin-aws/pull/2656)) + +_Dependencies_ + +- Recompiled plugin with [aws-sdk-go-v2 v1.39.3](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md). ([#2658](https://github.com/turbot/steampipe-plugin-aws/pull/2658)) +- Updated the `OpenSearch` tables to use [github.com/aws/aws-sdk-go-v2/service/opensearch v1.52.6](https://github.com/aws/aws-sdk-go-v2/blob/main/service/opensearch/CHANGELOG.md#v1526-2025-10-16) module. ([#2658](https://github.com/turbot/steampipe-plugin-aws/pull/2658)) + +## v1.25.0 [2025-10-14] + +_Enhancements_ + +- Added `full_snapshot_size_in_bytes` column to `aws_ebs_snapshot` table. ([#2652](https://github.com/turbot/steampipe-plugin-aws/pull/2652)) (Thanks [@bahybintang](https://github.com/bahybintang) for the contribution!) +- Added `code` column to `aws_lambda_version` table. ([#2649](https://github.com/turbot/steampipe-plugin-aws/pull/2649)) + +_Bug fixes_ + +- Fixed the default rate limiter configuration for `AWS Kinesis` service tables. ([#2644](https://github.com/turbot/steampipe-plugin-aws/pull/2644)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + +_Dependencies_ + +- Recompiled plugin with [steampipe-plugin-sdk v5.13.1](https://github.com/turbot/steampipe-plugin-sdk/blob/develop/CHANGELOG.md#v5131-2025-09-25) that addresses critical and high vulnerabilities in dependent packages. ([#2649](https://github.com/turbot/steampipe-plugin-aws/pull/2649)) + +## v1.24.0 [2025-09-19] + +_Enhancements_ + +- Added `physical_resource_id` column as an optional qualifier to the `aws_cloudformation_stack_resource` table. ([#2635](https://github.com/turbot/steampipe-plugin-aws/pull/2635)) +- Added `metadata` column to `aws_cloudformation_stack_resource` table. ([#2635](https://github.com/turbot/steampipe-plugin-aws/pull/2635)) +- Added default rate limit configuration for `AWS Lambda` service tables. ([#2561](https://github.com/turbot/steampipe-plugin-aws/pull/2561)) + +_Bug fixes_ + +- Fixed the `aws_availability_zone` table to respect `ignore_error_codes` and `ignore_error_messages` connection config arguments. ([#2640](https://github.com/turbot/steampipe-plugin-aws/pull/2640)) + +## v1.23.0 [2025-08-22] + +_What's new?_ + +- New tables added + - [aws_ec2_spot_fleet_request](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ec2_spot_fleet_request) ([#2599](https://github.com/turbot/steampipe-plugin-aws/pull/2599)) + - [aws_glue_ml_transform](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_glue_ml_transform) ([#2610](https://github.com/turbot/steampipe-plugin-aws/pull/2610)) + - [aws_inspector2_organization_configuration](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_inspector2_organization_configuration) ([#2608](https://github.com/turbot/steampipe-plugin-aws/pull/2608)) + - [aws_mskconnect_connector](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_mskconnect_connector) ([#2603](https://github.com/turbot/steampipe-plugin-aws/pull/2603)) + - [aws_s3_directory_bucket](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_s3_directory_bucket) ([#2618](https://github.com/turbot/steampipe-plugin-aws/pull/2618)) + - [aws_servicecatalog_portfolio_share](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_servicecatalog_portfolio_share) ([#2612](https://github.com/turbot/steampipe-plugin-aws/pull/2612)) + - [aws_ssm_service_setting](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ssm_service_setting) ([#2611](https://github.com/turbot/steampipe-plugin-aws/pull/2611)) + - [aws_transfer_connector](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_transfer_connector) ([#2606](https://github.com/turbot/steampipe-plugin-aws/pull/2606)) + - [aws_vpc_block_public_access_options](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_vpc_block_public_access_options) ([#2595](https://github.com/turbot/steampipe-plugin-aws/pull/2595)) + +_Enhancements_ + +- Added columns `tags` and `tags_src` to `aws_ec2_load_balancer_listener_rule` table. ([#2625](https://github.com/turbot/steampipe-plugin-aws/pull/2625)) +- Added column `multi_az` to `aws_redshift_cluster` table. ([#2617](https://github.com/turbot/steampipe-plugin-aws/pull/2617)) + +_Bug fixes_ + +- Fixed the `aws_cloudformation_stack_resource` table to correctly return data instead of an error. ([#2622](https://github.com/turbot/steampipe-plugin-aws/pull/2622)) + +## v1.22.0 [2025-08-14] + +_What's new?_ + +- New tables added + - [aws_appsync_api](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_appsync_api) ([#2591](https://github.com/turbot/steampipe-plugin-aws/pull/2591)) + - [aws_codebuild_report_group](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_codebuild_report_group) ([#2589](https://github.com/turbot/steampipe-plugin-aws/pull/2589)) + - [aws_connect_instance_attribute](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_connect_instance_attribute) ([#2592](https://github.com/turbot/steampipe-plugin-aws/pull/2592)) + - [aws_connect_instance](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_connect_instance) ([#2592](https://github.com/turbot/steampipe-plugin-aws/pull/2592)) + - [aws_datasync_task](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_datasync_task) ([#2590](https://github.com/turbot/steampipe-plugin-aws/pull/2590)) + - [aws_vpc_security_group_vpc_association](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_vpc_security_group_vpc_association) ([#2597](https://github.com/turbot/steampipe-plugin-aws/pull/2597)) + +_Enhancements_ + +- Added `api_cache` column to `aws_appsync_graphql_api` table. ([#2591](https://github.com/turbot/steampipe-plugin-aws/pull/2591)) + +## v1.21.0 [2025-07-30] + +_What's new?_ + +- New tables added + - [aws_bedrock_agent](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_bedrock_agent) ([#2580](https://github.com/turbot/steampipe-plugin-aws/pull/2580)) + - [aws_bedrock_foundation_model](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_bedrock_foundation_model) ([#2581](https://github.com/turbot/steampipe-plugin-aws/pull/2581)) + - [aws_bedrock_imported_model](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_bedrock_imported_model) ([#2581](https://github.com/turbot/steampipe-plugin-aws/pull/2581)) + - [aws_bedrock_knowledge_base](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_bedrock_knowledge_base) ([#2580](https://github.com/turbot/steampipe-plugin-aws/pull/2580)) + - [aws_elasticache_serverless_cache](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_elasticache_serverless_cache) ([#2538](https://github.com/turbot/steampipe-plugin-aws/pull/2538)) (Thanks [@michalpl-monday](https://github.com/michalpl-monday) for the contribution!) + +## v1.20.0 [2025-07-24] + +_What's new?_ + +- New tables added + - [aws_bedrock_custom_model](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_bedrock_custom_model) ([#2569](https://github.com/turbot/steampipe-plugin-aws/pull/2569)) + +_Enhancements_ + +- Added `export` column to the `aws_acm_certificate` table. ([#2571](https://github.com/turbot/steampipe-plugin-aws/pull/2571)) +- Added `ignore_error_messages` config arg to provide users the ability to set a list of additional AWS error mesaages to ignore while running queries. For more information, please see [AWS plugin configuration](https://hub.steampipe.io/plugins/turbot/aws#configuration) ([#2560](https://github.com/turbot/steampipe-plugin-aws/pull/2560)) + +_Dependencies_ + +- Recompiled plugin with Go version `1.24`. +- Recompiled plugin with [steampipe-plugin-sdk v5.13.0](https://github.com/turbot/steampipe-plugin-sdk/blob/develop/CHANGELOG.md#v5130-2025-07-21) that addresses critical and high vulnerabilities in dependent packages. + +## v1.19.0 [2025-07-17] + +_What's new?_ + +- New tables added + - [aws_trusted_advisor_check_result](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_trusted_advisor_check_result) ([#2555](https://github.com/turbot/steampipe-plugin-aws/pull/2555)) + +## v1.18.0 [2025-07-11] + +_What's new?_ + +- New tables added + - [aws_savingsplans_savings_plan](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_savingsplans_savings_plan) ([#2538](https://github.com/turbot/steampipe-plugin-aws/pull/2538)) + +_Enhancements_ + +- Added `sample_policy_descriptions` and `policy_descriptions` columns to `aws_ec2_classic_load_balancer` table. ([#2552](https://github.com/turbot/steampipe-plugin-aws/pull/2552)) + +## v1.17.0 [2025-07-04] + +_What's new?_ + +- New tables added + - [aws_api_gateway_account](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_api_gateway_account) ([#2544](https://github.com/turbot/steampipe-plugin-aws/pull/2544)) + - [aws_iam_instance_profile](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_iam_instance_profile) ([#2541](https://github.com/turbot/steampipe-plugin-aws/pull/2541)) + +_Enhancements_ + +- Updated the `aws_cloudformation_stack` table to also return stacks that are in `DELETE_COMPLETE` state. ([#2548](https://github.com/turbot/steampipe-plugin-aws/pull/2548)) +- Added rate limiters for the following tables: ([#2547](https://github.com/turbot/steampipe-plugin-aws/pull/2547)) + - `aws_iam_role` + - `aws_iam_policy` + - `aws_iam_policy_attachment` +- Added default rate limiter configuration for `AWS CloudFormation`, `AWS Kinesis`, `AWS Route 53`, `AWS WAF` and `AWS WAF v2` service tables. ([#2537](https://github.com/turbot/steampipe-plugin-aws/pull/2537)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + +_Bug fixes_ + +- Fixed `aws_rds_pending_maintenance_action` table to correctly return data instead of an error. ([#2545](https://github.com/turbot/steampipe-plugin-aws/pull/2545)) + +## v1.16.1 [2025-06-23] + +_Bug fixes_ + +- Reverted the optimization of `aws_s3_*` tables introduced in [#2519](https://github.com/turbot/steampipe-plugin-aws/pull/2519) due to `InvalidToken` errors while executing S3 queries. ([#2536](https://github.com/turbot/steampipe-plugin-aws/pull/2536)) + +## v1.16.0 [2025-06-20] + +_Enhancements_ + +- Optimized the `aws_s3_*` tables to reduce query time by improving how bucket regions are handled. ([#2519](https://github.com/turbot/steampipe-plugin-aws/pull/2519)) + +_Bug fixes_ + +- Fixed the `policy` column of `aws_iam_policy` table to correctly return data instead of an error when the policy document contains trailing tab characters. ([#2529](https://github.com/turbot/steampipe-plugin-aws/pull/2529)) + +_Dependencies_ + +- Recompiled plugin with [steampipe-plugin-sdk v5.12.0](https://github.com/turbot/steampipe-plugin-sdk/blob/v5.12.0/CHANGELOG.md#v5120-2025-06-20), which introduces support for the `UnmarshalJSON` transform function, ensuring robust handling of IAM policy JSON columns. ([#2529](https://github.com/turbot/steampipe-plugin-aws/pull/2529)) + +## v1.15.0 [2025-06-11] + +_What's new?_ + +- New tables added + - [aws_cost_by_resource_daily](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cost_by_resource_daily) ([#2510](https://github.com/turbot/steampipe-plugin-aws/pull/2510)) + - [aws_cost_by_resource_hourly](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cost_by_resource_hourly) ([#2510](https://github.com/turbot/steampipe-plugin-aws/pull/2510)) + - [aws_cost_by_resource_monthly](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cost_by_resource_monthly) ([#2510](https://github.com/turbot/steampipe-plugin-aws/pull/2510)) + - [aws_resource_explorer_resource](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_resource_explorer_resource) ([#2516](https://github.com/turbot/steampipe-plugin-aws/pull/2516)) + +_Enhancements_ + +- Optimized the `aws_ecr_image_scan_finding` table to reduce the query timing by removing the `listAwsEcrImageTags` parent hydrate and by adding the `image_tag` as an optional qual. ([#2492](https://github.com/turbot/steampipe-plugin-aws/pull/2492)) +- Added column `ephemeral_storage` to `aws_lambda_function` table. ([#2505](https://github.com/turbot/steampipe-plugin-aws/pull/2505)) +- Added `connection` and `config-dir` flags to the plugin's Export tool. + +_Dependencies_ + +- Recompiled plugin with [steampipe-plugin-sdk v5.11.7](https://github.com/turbot/steampipe-plugin-sdk/blob/develop/CHANGELOG.md#v5117-2025-06-04) which resolves an issue where rate limiters were not being applied to hydrate functions correctly. ([#2522](https://github.com/turbot/steampipe-plugin-aws/pull/2522)) + +## v1.14.1 [2025-05-22] + +_Bug fixes_ + +- Removed the duplicate column `source_region` from `aws_macie2_finding` table schema. + +## v1.14.0 [2025-05-22] + +_What's new?_ + +- New tables added + - [aws_batch_queue](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_batch_queue) ([#2486](https://github.com/turbot/steampipe-plugin-aws/pull/2486)) + - [aws_cloudwatch_event_rule](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_event_rule) ([#2487](https://github.com/turbot/steampipe-plugin-aws/pull/2487)) + - [aws_codebuild_fleet](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_codebuild_fleet) ([#2488](https://github.com/turbot/steampipe-plugin-aws/pull/2488)) + - [aws_cognito_user_group](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cognito_user_group) ([#2485](https://github.com/turbot/steampipe-plugin-aws/pull/2485)) + - [aws_ec2_placement_group](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ec2_placement_group) ([#2491](https://github.com/turbot/steampipe-plugin-aws/pull/2491)) + - [aws_emr_studio](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_emr_studio) ([#2479](https://github.com/turbot/steampipe-plugin-aws/pull/2479)) + - [aws_macie2_finding](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_macie2_finding) ([#2481](https://github.com/turbot/steampipe-plugin-aws/pull/2481)) + - [aws_organizations_delegated_administrator](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_organizations_delegated_administrator) ([#2477](https://github.com/turbot/steampipe-plugin-aws/pull/2477)) (Thanks [@FuadAbdullah](https://github.com/FuadAbdullah) for the contribution!) + - [aws_organizations_delegated_services_for_account](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_organizations_delegated_services_for_account) ([#2477](https://github.com/turbot/steampipe-plugin-aws/pull/2477)) (Thanks [@FuadAbdullah](https://github.com/FuadAbdullah) for the contribution!) + - [aws_s3tables_namespace](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_s3tables_namespace) ([#2498](https://github.com/turbot/steampipe-plugin-aws/pull/2498)) + - [aws_s3tables_table_bucket](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_s3tables_table_bucket) ([#2498](https://github.com/turbot/steampipe-plugin-aws/pull/2498)) + - [aws_s3tables_table](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_s3tables_table) ([#2498](https://github.com/turbot/steampipe-plugin-aws/pull/2498)) + - [aws_ses_template](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_ses_template) ([#2480](https://github.com/turbot/steampipe-plugin-aws/pull/2480)) + +_Enhancements_ + +- Added `period_start` and `period_end` as optional qualifiers to all `aws_cost_*` tables to enable custom date range filtering and reduce API usage costs. ([#2168](https://github.com/turbot/steampipe-plugin-aws/pull/2168)) +- Updated all `aws_*` tables to use AWS Go SDK v2 instead of v1, enabling support for newer AWS regions like `ap-southeast-5`. ([#2370](https://github.com/turbot/steampipe-plugin-aws/pull/2370)) + +_Dependencies_ + +- Recompiled plugin with AWS Go SDK v2.1.36.3. ([#2495](https://github.com/turbot/steampipe-plugin-aws/pull/2495)) + +_Deprecations_ + +- Deprecated `search_start_time` and `search_end_time` columns in the `aws_cost_usage` table. Please use `period_start` and `period_end` instead. ([#2168](https://github.com/turbot/steampipe-plugin-aws/pull/2168)) + +## v1.13.0 [2025-05-12] + +_What's new?_ + +- New tables added + - [aws_rolesanywhere_profile](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_rolesanywhere_profile) ([#2475](https://github.com/turbot/steampipe-plugin-aws/pull/2475)) (Thanks [@2XXE-SRA](https://github.com/2XXE-SRA) for the contribution!) + - [aws_rolesanywhere_trust_anchor](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_rolesanywhere_trust_anchor) ([#2475](https://github.com/turbot/steampipe-plugin-aws/pull/2475)) (Thanks [@2XXE-SRA](https://github.com/2XXE-SRA) for the contribution!) + +_Enhancements_ + +- Added `custom_response_bodies`, `label_namespace`, `retrofitted_by_firewall_manager` and `token_domains` columns to `aws_wafv2_web_acl` table. ([#2482](https://github.com/turbot/steampipe-plugin-aws/pull/2482)) +- Added `tags_src` column to the `aws_transfer_server` table. ([#2484](https://github.com/turbot/steampipe-plugin-aws/pull/2484)) + +_Bug fixes_ + +- Fixed handling of boolean key qualifier values to ensure accurate filtering in queries with boolean conditions like `select * from aws_ebs_volume where not encrypted`. ([#2490](https://github.com/turbot/steampipe-plugin-aws/pull/2490)) +- Fixed the `tags` column of `aws_transfer_server` table to correctly return data instead of an error. ([#2484](https://github.com/turbot/steampipe-plugin-aws/pull/2484)) + +## v1.12.0 [2025-04-26] + +_Enhancements_ + +- Added columns `steampipe_available` and `steampipe_default` to `aws_region` table. ([#2158](https://github.com/turbot/steampipe-plugin-aws/pull/2158)) +- Added column `description` to `aws_health_event` table. ([#2476](https://github.com/turbot/steampipe-plugin-aws/pull/2476)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + +_Bug fixes_ + +- Fixed the service endpoint of `aws_health_*` tables to use only `us-east-1`, `us-east-2` and `us-gov-west-1` regions. ([#2470](https://github.com/turbot/steampipe-plugin-aws/pull/2470)) (Thanks [@pdecat](https://github.com/pdecat) for the contribution!) + ## v1.11.0 [2025-04-11] _What's new?_ -- New tables added - - [aws_cloudwatch_log_delivery_destination](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_delivery_destination) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) - - [aws_cloudwatch_log_delivery_source](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_delivery_source) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) - - [aws_cloudwatch_log_delivery](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_delivery) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) - - [aws_cloudwatch_log_destination](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_destination) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) +- New tables added + - [aws_cloudwatch_log_delivery_destination](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_delivery_destination) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) + - [aws_cloudwatch_log_delivery_source](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_delivery_source) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) + - [aws_cloudwatch_log_delivery](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_delivery) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) + - [aws_cloudwatch_log_destination](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_cloudwatch_log_destination) ([#2469](https://github.com/turbot/steampipe-plugin-aws/pull/2469)) - [aws_elasticache_update_action](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_elasticache_update_action) ([#2431](https://github.com/turbot/steampipe-plugin-aws/pull/2431)) (Thanks [@fyqtian](https://github.com/fyqtian) for the contribution!) - - [aws_quicksight_account_settings](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_account_settings) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - - [aws_quicksight_data_set](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_data_set) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - - [aws_quicksight_data_source](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_data_source) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - - [aws_quicksight_group](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_group) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - - [aws_quicksight_namespace](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_namespace) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - - [aws_quicksight_user](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_user) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - - [aws_quicksight_vpc_connection](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_vpc_connection) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_account_settings](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_account_settings) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_data_set](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_data_set) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_data_source](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_data_source) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_group](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_group) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_namespace](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_namespace) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_user](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_user) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) + - [aws_quicksight_vpc_connection](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_quicksight_vpc_connection) ([#2467](https://github.com/turbot/steampipe-plugin-aws/pull/2467)) - [aws_s3_multipart_upload](https://hub.steampipe.io/plugins/turbot/aws/tables/aws_s3_multipart_upload) ([#2456](https://github.com/turbot/steampipe-plugin-aws/pull/2456)) _Enhancements_ -- Added `folder` metadata to the documentation of all the AWS tables for improved organization on the Steampipe Hub. ([#2465](https://github.com/turbot/steampipe-plugin-aws/pull/2465)) +- Added `folder` metadata to the documentation of all the AWS tables for improved organization on the Steampipe Hub. ([#2465](https://github.com/turbot/steampipe-plugin-aws/pull/2465)) - Added `inline_policy` and `inline_policy_std` columns to `aws_ssoadmin_permission_set` table. ([#2458](https://github.com/turbot/steampipe-plugin-aws/pull/2458)) (Thanks [@2XXE-SRA](https://github.com/2XXE-SRA) for the contribution!) - Updated display name to `AWS`. _Dependencies_ -- Recompiled plugin with [steampipe-plugin-sdk v5.11.5](https://github.com/turbot/steampipe-plugin-sdk/releases/tag/v5.11.5) ([#2460](https://github.com/turbot/steampipe-plugin-aws/pull/2460)) +- Recompiled plugin with [steampipe-plugin-sdk v5.11.5](https://github.com/turbot/steampipe-plugin-sdk/releases/tag/v5.11.5) ([#2460](https://github.com/turbot/steampipe-plugin-aws/pull/2460)) ## v1.10.0 [2025-03-18] @@ -54,7 +374,7 @@ _What's new?_ _Enhancements_ -- Updated `aws_acm_*`, `aws_sns_*`, `aws_sqs_*`, `aws_cloudtrail_*`, and `aws_guardduty_*` tables to use AWS Go SDK V2, enabling dynamic region listing for all AWS partitions. ([#2440](https://github.com/turbot/steampipe-plugin-aws/pull/2440)) +- Updated `aws_acm_*`, `aws_sns_*`, `aws_sqs_*`, `aws_cloudtrail_*`, and `aws_guardduty_*` tables to use AWS Go SDK V2, enabling dynamic region listing for all AWS partitions. ([#2440](https://github.com/turbot/steampipe-plugin-aws/pull/2440)) ## v1.8.0 [2025-02-28] @@ -216,7 +536,7 @@ _Bug fixes_ _Enhancements_ - Added the `event_region` column to the `aws_health_event` table. ([#2293](https://github.com/turbot/steampipe-plugin-aws/pull/2293)) -- Added the `location_type` column to the `aws_ec2_instance_type` table. ([#2294](https://github.com/turbot/steampipe-plugin-aws/pull/2294)) +- Added the `location_type` column to the `aws_ec2_instance_type` table. ([#2294](https://github.com/turbot/steampipe-plugin-aws/pull/2294)) _Bug fixes_ @@ -454,7 +774,7 @@ _Bug fixes_ - Fixed the `arn` column of the `aws_elastic_beanstalk_environment` table to correctly return data instead of `null`. ([#2105](https://github.com/turbot/steampipe-plugin-aws/issues/2105)) - Fixed the `template_body_json` column of the `aws_cloudformation_stack` table to correctly return data by adding a new transform function `formatJsonBody`, replacing the `UnmarshalYAML` transform function. ([#1959](https://github.com/turbot/steampipe-plugin-aws/pull/1959)) - Fixed the `next_execution_time` column of `aws_ssm_maintenance_window` table to be of `String` datatype instead of `TIMESTAMP`. ([#2116](https://github.com/turbot/steampipe-plugin-aws/pull/2116)) -- Renamed the `client_log_options` column to `connection_log_options` in `aws_ec2_client_vpn_endpoint` table to correctly return data instead of `null`. ([#2122](https://github.com/turbot/steampipe-plugin-aws/pull/2122)) +- Renamed the `client_log_options` column to `connection_log_options` in `aws_ec2_client_vpn_endpoint` table to correctly return data instead of `null`. ([#2122](https://github.com/turbot/steampipe-plugin-aws/pull/2122)) ## v0.132.0 [2024-02-27] @@ -545,7 +865,7 @@ _Enhancements_ - Added `storage_throughput` column to `aws_rds_db_instance` table. ([#2010](https://github.com/turbot/steampipe-plugin-aws/pull/2010)) (Thanks [@toddwh50](https://github.com/toddwh50) for the contribution!) - Added `layers` column to `aws_lambda_function` table. ([#2008](https://github.com/turbot/steampipe-plugin-aws/pull/2008)) (Thanks [@icaliskanoglu](https://github.com/icaliskanoglu) for the contribution!) -- Added `tags` column to `aws_backup_recovery_point` and `aws_backup_vault` tables. ([#2033](https://github.com/turbot/steampipe-plugin-aws/pull/2033)) +- Added `tags` column to `aws_backup_recovery_point` and `aws_backup_vault` tables. ([#2033](https://github.com/turbot/steampipe-plugin-aws/pull/2033)) _Bug fixes_ @@ -712,7 +1032,7 @@ _Enhancements_ _Bug fixes_ - Fixed the `aws_ec2_network_load_balancer` table doc to remove the incorrect security group association example. ([#1869](https://github.com/turbot/steampipe-plugin-aws/pull/1869)) (Thanks [@ -tinder-tder](https://github.com/tinder-tder) for the contribution!) + tinder-tder](https://github.com/tinder-tder) for the contribution!) - Fixed `aws_rds_db_cluster`, `aws_rds_db_cluster_snapshot`, `aws_rds_db_instance`, `aws_rds_db_snapshot` tables to correctly filter out the `DocDB` and `Neptune` resources. ([#1868](https://github.com/turbot/steampipe-plugin-aws/pull/1868)) ## v0.114.0 [2023-08-04] @@ -1232,7 +1552,7 @@ _Bug fixes_ _Dependencies_ -- Recompiled plugin with [aws-sdk-go v1.44.141](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md#release-v144141-2022-11-18) and [aws-sdk-go-v2/service/route53 v1.24.0](https://github.com/aws/aws-sdk-go-v2/blob/main/service/route53/CHANGELOG.md#v1240-2022-11-15) to update service endpoints. +- Recompiled plugin with [aws-sdk-go v1.44.141](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md#release-v144141-2022-11-18) and [aws-sdk-go-v2/service/route53 v1.24.0](https://github.com/aws/aws-sdk-go-v2/blob/main/service/route53/CHANGELOG.md#v1240-2022-11-15) to update service endpoints. ## v0.84.0 [2022-11-17] @@ -1634,7 +1954,7 @@ _Enhancements_ _Enhancements_ - Recompiled plugin with [steampipe-plugin-sdk v3.3.2](https://github.com/turbot/steampipe-plugin-sdk/blob/main/CHANGELOG.md#v332--2022-07-11). ([#1150](https://github.com/turbot/steampipe-plugin-aws/pull/1150)) -- Recompiled plugin with [aws-sdk-go v1.44.49](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md#release-v14449-2022-07-06). ([#1142](https://github.com/turbot/steampipe-plugin-aws/pull/1142)) +- Recompiled plugin with [aws-sdk-go v1.44.49](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md#release-v14449-2022-07-06). ([#1142](https://github.com/turbot/steampipe-plugin-aws/pull/1142)) - Added timestamps to example queries in `aws_cloudtrail_trail_event`, `aws_cloudwatch_log_event` and `aws_vpc_flow_log_event` table documents. ([#1136](https://github.com/turbot/steampipe-plugin-aws/pull/1136)) - Added column `url_config` to `aws_lambda_alias` and `aws_lambda_function` tables. ([#1146](https://github.com/turbot/steampipe-plugin-aws/pull/1146)) @@ -1936,6 +2256,7 @@ _What's new?_ _Enhancements_ - Added context cancellation handling to the following tables ([#896](https://github.com/turbot/steampipe-plugin-aws/pull/896)) + - aws_auditmanager_control - aws_auditmanager_framework - aws_backup_recovery_point @@ -2030,7 +2351,7 @@ _Deprecated_ _Enhancements_ -- Recompiled plugin with [aws-sdk-go-v1.42.25](https://github.com/aws/aws-sdk-go/blob/main/CHANGELOG.md#release-v14225-2021-12-21) ([#851](https://github.com/turbot/steampipe-plugin-aws/pull/851)) +- Recompiled plugin with [aws-sdk-go-v1.42.25](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md#release-v14225-2021-12-21) ([#851](https://github.com/turbot/steampipe-plugin-aws/pull/851)) - Added additional optional key quals, filter support, and context cancellation handling to `ACM`, `API Gateway`, `EBS`, `EC2`, `ECR`, `ECS`, `EFS`, `EKS`, `Elastic Beanstalk`, `ElastiCache`, `Elasticsearch`, `EMR`, `EventBridge` and `RDS` tables ([#850](https://github.com/turbot/steampipe-plugin-aws/pull/850)) ## v0.43.0 [2021-12-21] diff --git a/Makefile b/Makefile index a2c3c79cf..9b347193a 100644 --- a/Makefile +++ b/Makefile @@ -10,4 +10,8 @@ docker-build-steampipe: --platform $(PLATFORM) \ -t local/steampipe:latest \ -f docker/steampipe/Dockerfile \ - . \ No newline at end of file + . + +# Exclude Parliament IAM permissions +dev: + go build -o $(STEAMPIPE_INSTALL_DIR)/plugins/hub.steampipe.io/plugins/turbot/aws@latest/steampipe-plugin-aws.plugin -tags "dev ${BUILD_TAGS}" *.go diff --git a/aws-test/package-lock.json b/aws-test/package-lock.json index de8ffcf3b..9de93fa86 100644 --- a/aws-test/package-lock.json +++ b/aws-test/package-lock.json @@ -8,10 +8,10 @@ "dependencies": { "chalk": "^4.1.0", "custom-env": "^2.0.1", - "diff": "^4.0.2", + "diff": "^5.2.0", "fs-extra": "^9.0.1", "json-diff": "^0.5.4", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "micromatch": "^4.0.8" } }, @@ -100,9 +100,10 @@ } }, "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", + "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -226,9 +227,10 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -351,9 +353,9 @@ } }, "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", + "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==" }, "difflib": { "version": "0.2.4", @@ -445,9 +447,9 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==" }, "micromatch": { "version": "4.0.8", diff --git a/aws-test/package.json b/aws-test/package.json index 4813038ab..b94a8f6c0 100644 --- a/aws-test/package.json +++ b/aws-test/package.json @@ -3,10 +3,10 @@ "dependencies": { "chalk": "^4.1.0", "custom-env": "^2.0.1", - "diff": "^4.0.2", + "diff": "^5.2.0", "fs-extra": "^9.0.1", "json-diff": "^0.5.4", - "lodash": "^4.17.21", + "lodash": "^4.17.23", "micromatch": "^4.0.8" } } diff --git a/aws-test/tests/aws_appstream_fleet/variables.tf b/aws-test/tests/aws_appstream_fleet/variables.tf index 6ad40f5db..6569e910d 100644 --- a/aws-test/tests/aws_appstream_fleet/variables.tf +++ b/aws-test/tests/aws_appstream_fleet/variables.tf @@ -75,7 +75,7 @@ resource "aws_appstream_fleet" "named_test_resource" { display_name = var.resource_name enable_default_internet_access = false fleet_type = "ON_DEMAND" - image_name = "AppStream-WinServer2019-06-12-2023" + image_name = "AppStream-WinServer2022-02-11-2025" instance_type = "stream.standard.small" # max_user_duration_in_seconds = 600 diff --git a/aws-test/tests/aws_auditmanager_assessment/test-get-expected.json b/aws-test/tests/aws_auditmanager_assessment/test-get-expected.json index a13fec4e0..db4716d94 100644 --- a/aws-test/tests/aws_auditmanager_assessment/test-get-expected.json +++ b/aws-test/tests/aws_auditmanager_assessment/test-get-expected.json @@ -11,20 +11,6 @@ "description": "Test assessment to validate table outcomes.", "id": "{{ output.assessment_id.value }}", "name": "{{ resourceName }}", - "scope": { - "AwsAccounts": [ - { - "EmailAddress": null, - "Id": "{{ output.account_id.value }}", - "Name": null - } - ], - "AwsServices": [ - { - "ServiceName": "ec2" - } - ] - }, "status": "ACTIVE" } ] diff --git a/aws-test/tests/aws_auditmanager_assessment/test-get-query.sql b/aws-test/tests/aws_auditmanager_assessment/test-get-query.sql index 5532e922c..b4c1b09b8 100644 --- a/aws-test/tests/aws_auditmanager_assessment/test-get-query.sql +++ b/aws-test/tests/aws_auditmanager_assessment/test-get-query.sql @@ -6,8 +6,7 @@ select assessment_report_destination, assessment_report_destination_type, description, - aws_account, - scope + aws_account from aws.aws_auditmanager_assessment where diff --git a/aws-test/tests/aws_auditmanager_control/test-get-query.sql b/aws-test/tests/aws_auditmanager_control/test-get-query.sql index 39631ca26..a0729b48a 100644 --- a/aws-test/tests/aws_auditmanager_control/test-get-query.sql +++ b/aws-test/tests/aws_auditmanager_control/test-get-query.sql @@ -1,3 +1,3 @@ select name, id, type, control_sources from aws.aws_auditmanager_control -where id = '{{ output.control_id.value }}'; \ No newline at end of file +where id = '{{ output.control_id.value }}' and region = '{{ output.aws_region.value }}'; \ No newline at end of file diff --git a/aws-test/tests/aws_auditmanager_control/test-list-expected.json_fails b/aws-test/tests/aws_auditmanager_control/test-list-expected.json_fails deleted file mode 100644 index 582447133..000000000 --- a/aws-test/tests/aws_auditmanager_control/test-list-expected.json_fails +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "control_sources": "AWS CloudTrail", - "id": "{{ output.control_id.value }}", - "name": "{{ resourceName }}" - } -] diff --git a/aws-test/tests/aws_auditmanager_control/test-list-query.sql_fails b/aws-test/tests/aws_auditmanager_control/test-list-query.sql_fails deleted file mode 100644 index c570eee15..000000000 --- a/aws-test/tests/aws_auditmanager_control/test-list-query.sql_fails +++ /dev/null @@ -1,10 +0,0 @@ --- Fails because of good number resources with TooManyRequestsException -select - name, - id, - control_sources -from - aws.aws_auditmanager_control -where - name = '{{ resourceName }}'; - diff --git a/aws-test/tests/aws_backup_vault/test-hydrate-expected.json b/aws-test/tests/aws_backup_vault/test-hydrate-expected.json index dda62923a..a1bfd8976 100644 --- a/aws-test/tests/aws_backup_vault/test-hydrate-expected.json +++ b/aws-test/tests/aws_backup_vault/test-hydrate-expected.json @@ -17,7 +17,7 @@ ], "Effect": "Allow", "Principal": { - "AWS": "*" + "AWS": "arn:aws:iam::{{ output.account_id.value }}:root" }, "Resource": "{{ output.resource_aka.value }}", "Sid": "default" diff --git a/aws-test/tests/aws_backup_vault/variables.tf b/aws-test/tests/aws_backup_vault/variables.tf index 45877a16e..8da5a4ded 100644 --- a/aws-test/tests/aws_backup_vault/variables.tf +++ b/aws-test/tests/aws_backup_vault/variables.tf @@ -62,7 +62,7 @@ resource "aws_backup_vault_policy" "named_test_resource" { "Sid": "default", "Effect": "Allow", "Principal": { - "AWS": "*" + "AWS": "${data.aws_caller_identity.current.account_id}" }, "Action": [ "backup:DescribeBackupVault", @@ -88,3 +88,7 @@ output "id" { output "resource_aka" { value = aws_backup_vault.named_test_resource.arn } + +output "account_id" { + value = data.aws_caller_identity.current.account_id +} diff --git a/aws-test/tests/aws_cloudfront_distribution/test-get-expected.json b/aws-test/tests/aws_cloudfront_distribution/test-get-expected.json index 159fe1325..fec1c4033 100644 --- a/aws-test/tests/aws_cloudfront_distribution/test-get-expected.json +++ b/aws-test/tests/aws_cloudfront_distribution/test-get-expected.json @@ -5,6 +5,11 @@ "domain_name": "{{ output.domain_name.value }}", "e_tag": "{{ output.etag.value }}", "id": "{{ output.resource_id.value }}", + "monitoring_subscription": { + "RealtimeMetricsSubscriptionConfig": { + "RealtimeMetricsSubscriptionStatus": "Enabled" + } + }, "price_class": "PriceClass_200", "status": "Deployed", "tags": { diff --git a/aws-test/tests/aws_cloudfront_distribution/test-get-query.sql b/aws-test/tests/aws_cloudfront_distribution/test-get-query.sql index 55ce8275b..6a425e7b1 100644 --- a/aws-test/tests/aws_cloudfront_distribution/test-get-query.sql +++ b/aws-test/tests/aws_cloudfront_distribution/test-get-query.sql @@ -1,3 +1,3 @@ -select id, akas, tags, status, domain_name, default_root_object, e_tag, price_class +select id, akas, tags, status, domain_name, default_root_object, e_tag, price_class, monitoring_subscription from aws.aws_cloudfront_distribution where id = '{{ output.resource_id.value }}'; \ No newline at end of file diff --git a/aws-test/tests/aws_cloudfront_distribution/variables.tf b/aws-test/tests/aws_cloudfront_distribution/variables.tf index f77acb7c8..c275ee3d1 100644 --- a/aws-test/tests/aws_cloudfront_distribution/variables.tf +++ b/aws-test/tests/aws_cloudfront_distribution/variables.tf @@ -101,6 +101,16 @@ resource "aws_cloudfront_distribution" "named_test_resource" { } } +resource "aws_cloudfront_monitoring_subscription" "test" { + distribution_id = aws_cloudfront_distribution.named_test_resource.id + + monitoring_subscription { + realtime_metrics_subscription_config { + realtime_metrics_subscription_status = "Enabled" + } + } +} + output "resource_aka" { value = aws_cloudfront_distribution.named_test_resource.arn } diff --git a/aws-test/tests/aws_cloudfront_function/test-get-expected.json b/aws-test/tests/aws_cloudfront_function/test-get-expected.json index a3532aebd..5a89da398 100644 --- a/aws-test/tests/aws_cloudfront_function/test-get-expected.json +++ b/aws-test/tests/aws_cloudfront_function/test-get-expected.json @@ -3,6 +3,7 @@ "arn": "{{ output.resource_aka.value }}", "function_config": { "Comment": "test function", + "KeyValueStoreAssociations": null, "Runtime": "cloudfront-js-1.0" }, "name": "{{ output.id.value }}", diff --git a/aws-test/tests/aws_cloudfront_function/test-list-expected.json b/aws-test/tests/aws_cloudfront_function/test-list-expected.json index a3532aebd..5a89da398 100644 --- a/aws-test/tests/aws_cloudfront_function/test-list-expected.json +++ b/aws-test/tests/aws_cloudfront_function/test-list-expected.json @@ -3,6 +3,7 @@ "arn": "{{ output.resource_aka.value }}", "function_config": { "Comment": "test function", + "KeyValueStoreAssociations": null, "Runtime": "cloudfront-js-1.0" }, "name": "{{ output.id.value }}", diff --git a/aws-test/tests/aws_dms_replication_instance/test-get-expected.json b/aws-test/tests/aws_dms_replication_instance/test-get-expected.json index 3a68a74b7..91470e8df 100644 --- a/aws-test/tests/aws_dms_replication_instance/test-get-expected.json +++ b/aws-test/tests/aws_dms_replication_instance/test-get-expected.json @@ -13,7 +13,7 @@ "preferred_maintenance_window": "sun:10:30-sun:14:30", "publicly_accessible": false, "region": "{{ output.aws_region.value }}", - "replication_instance_class": "dms.t2.micro", + "replication_instance_class": "dms.t3.small", "replication_instance_identifier": "{{ resourceName }}", "replication_instance_status": "available", "secondary_availability_zone": null, diff --git a/aws-test/tests/aws_dms_replication_instance/test-list-expected.json b/aws-test/tests/aws_dms_replication_instance/test-list-expected.json index 62687feea..061b71f0f 100644 --- a/aws-test/tests/aws_dms_replication_instance/test-list-expected.json +++ b/aws-test/tests/aws_dms_replication_instance/test-list-expected.json @@ -3,7 +3,7 @@ "arn": "{{ output.resource_aka.value }}", "publicly_accessible": false, "region": "{{ output.aws_region.value }}", - "replication_instance_class": "dms.t2.micro", + "replication_instance_class": "dms.t3.small", "replication_instance_identifier": "{{ resourceName }}", "title": "{{ resourceName }}" } diff --git a/aws-test/tests/aws_dms_replication_instance/variables.tf b/aws-test/tests/aws_dms_replication_instance/variables.tf index ca50fe683..20fb9967c 100644 --- a/aws-test/tests/aws_dms_replication_instance/variables.tf +++ b/aws-test/tests/aws_dms_replication_instance/variables.tf @@ -47,6 +47,40 @@ data "null_data_source" "resource" { } } +# Create two subnets dynamically across different AZs +data "aws_availability_zones" "available" {} + +# Create VPC +resource "aws_vpc" "test_vpc" { + cidr_block = "10.0.0.0/16" + + tags = { + Name = "${var.resource_name}-vpc" + } +} + +resource "aws_subnet" "test_subnets" { + count = 2 + vpc_id = aws_vpc.test_vpc.id + cidr_block = cidrsubnet(aws_vpc.test_vpc.cidr_block, 8, count.index) + availability_zone = data.aws_availability_zones.available.names[count.index] + + tags = { + Name = "${var.resource_name}-subnet-${count.index}" + } +} + +# Create DMS Replication Subnet Group +resource "aws_dms_replication_subnet_group" "test_subnet_group" { + replication_subnet_group_id = "${var.resource_name}-subnet-group" + replication_subnet_group_description = "DMS replication subnet group for testing" + subnet_ids = [for s in aws_subnet.test_subnets : s.id] + + tags = { + Name = "${var.resource_name}-dms-subnet-group" + } +} + resource "aws_dms_replication_instance" "named_test_resource" { allocated_storage = 5 apply_immediately = true @@ -55,8 +89,9 @@ resource "aws_dms_replication_instance" "named_test_resource" { multi_az = false preferred_maintenance_window = "sun:10:30-sun:14:30" publicly_accessible = false - replication_instance_class = "dms.t2.micro" + replication_instance_class = "dms.t3.small" replication_instance_id = var.resource_name + replication_subnet_group_id = aws_dms_replication_subnet_group.test_subnet_group.id tags = { foo = "bar" } diff --git a/aws-test/tests/aws_dms_replication_task/variables.tf b/aws-test/tests/aws_dms_replication_task/variables.tf index 4b8565d51..51af1d696 100644 --- a/aws-test/tests/aws_dms_replication_task/variables.tf +++ b/aws-test/tests/aws_dms_replication_task/variables.tf @@ -91,7 +91,7 @@ resource "aws_dms_replication_instance" "named_test_resource" { multi_az = false preferred_maintenance_window = "sun:10:30-sun:14:30" publicly_accessible = false - replication_instance_class = "dms.t2.micro" + replication_instance_class = "dms.t3.small" replication_instance_id = var.resource_name replication_subnet_group_id = aws_dms_replication_subnet_group.named_test_resource.id tags = { diff --git a/aws-test/tests/aws_ebs_snapshot/test-get-expected.json b/aws-test/tests/aws_ebs_snapshot/test-get-expected.json index 203fa1962..560e5c44d 100644 --- a/aws-test/tests/aws_ebs_snapshot/test-get-expected.json +++ b/aws-test/tests/aws_ebs_snapshot/test-get-expected.json @@ -11,6 +11,7 @@ } ], "volume_id": "{{ output.volume_id.value }}", - "volume_size": 1 + "volume_size": 1, + "full_snapshot_size_in_bytes": 1073741824 } ] diff --git a/aws-test/tests/aws_ebs_snapshot/test-get-query.sql b/aws-test/tests/aws_ebs_snapshot/test-get-query.sql index 1d15e5e71..5a57f379a 100644 --- a/aws-test/tests/aws_ebs_snapshot/test-get-query.sql +++ b/aws-test/tests/aws_ebs_snapshot/test-get-query.sql @@ -1,3 +1,3 @@ -select snapshot_id, description, volume_id, volume_size, encrypted, owner_id, tags_src +select snapshot_id, description, volume_id, volume_size, full_snapshot_size_in_bytes, encrypted, owner_id, tags_src from aws.aws_ebs_snapshot where snapshot_id = '{{ output.snapshot_id.value }}' diff --git a/aws-test/tests/aws_ec2_ami/variables.tf b/aws-test/tests/aws_ec2_ami/variables.tf index df8d07a80..6602a6fcb 100644 --- a/aws-test/tests/aws_ec2_ami/variables.tf +++ b/aws-test/tests/aws_ec2_ami/variables.tf @@ -56,6 +56,7 @@ resource "aws_ebs_volume" "my_volume" { availability_zone = "us-east-1a" size = 8 encrypted = true + kms_key_id = aws_kms_key.ebs_cmk.arn tags = { Name = "turbot-volume-test" } @@ -69,6 +70,11 @@ resource "aws_ebs_snapshot" "my_snapshot" { } } +resource "aws_kms_key" "ebs_cmk" { + description = "CMK for EBS volume encryption" + deletion_window_in_days = 7 +} + # Create AWS > EC2 > AMI resource "aws_ami" "named_test_resource" { name = var.resource_name @@ -85,6 +91,42 @@ resource "aws_ami" "named_test_resource" { } } +resource "aws_kms_key_policy" "ebs_cmk_policy" { + key_id = aws_kms_key.ebs_cmk.id + policy = <> 'Name' as name +from aws.aws_ec2_fleet +where fleet_id = '{{ output.resource_id.value }}' diff --git a/aws-test/tests/aws_ec2_fleet/test-list-expected.json b/aws-test/tests/aws_ec2_fleet/test-list-expected.json new file mode 100644 index 000000000..34ec038b1 --- /dev/null +++ b/aws-test/tests/aws_ec2_fleet/test-list-expected.json @@ -0,0 +1,10 @@ +[ + { + "fleet_id": "{{ output.resource_id.value }}", + "arn": "{{ output.resource_aka.value }}", + "type": "maintain", + "excess_capacity_termination_policy": "termination", + "replace_unhealthy_instances": false, + "name": "{{ resourceName }}" + } +] diff --git a/aws-test/tests/aws_ec2_fleet/test-list-query.sql b/aws-test/tests/aws_ec2_fleet/test-list-query.sql new file mode 100644 index 000000000..bd0e98cd8 --- /dev/null +++ b/aws-test/tests/aws_ec2_fleet/test-list-query.sql @@ -0,0 +1,3 @@ +select fleet_id, arn, type, excess_capacity_termination_policy, replace_unhealthy_instances, tags ->> 'Name' as name +from aws.aws_ec2_fleet +where tags ->> 'Name' = '{{ resourceName }}' diff --git a/aws-test/tests/aws_ec2_fleet/variables.json b/aws-test/tests/aws_ec2_fleet/variables.json new file mode 100644 index 000000000..46ccfca7f --- /dev/null +++ b/aws-test/tests/aws_ec2_fleet/variables.json @@ -0,0 +1,3 @@ +{ + "resource_name": "turbot-test-20200125-create-update-fleet" +} diff --git a/aws-test/tests/aws_ec2_fleet/variables.tf b/aws-test/tests/aws_ec2_fleet/variables.tf new file mode 100644 index 000000000..bc2bde9b8 --- /dev/null +++ b/aws-test/tests/aws_ec2_fleet/variables.tf @@ -0,0 +1,118 @@ +variable "resource_name" { + type = string + default = "turbot-test-20200125-create-update-fleet" + description = "Name of the resource used throughout the test." +} + +variable "aws_profile" { + type = string + default = "default" + description = "AWS credentials profile used for the test. Default is to use the default profile." +} + +variable "aws_region" { + type = string + default = "us-east-1" + description = "AWS region used for the test. Does not work with default region in config, so must be defined here." +} + +variable "aws_region_alternate" { + type = string + default = "us-east-2" + description = "Alternate AWS region used for tests that require two regions (e.g. DynamoDB global tables)." +} + +provider "aws" { + profile = var.aws_profile + region = var.aws_region +} + +provider "aws" { + alias = "alternate" + profile = var.aws_profile + region = var.aws_region_alternate +} + +data "aws_partition" "current" {} +data "aws_caller_identity" "current" {} +data "aws_region" "primary" {} +data "aws_region" "alternate" { + provider = aws.alternate +} + +data "null_data_source" "resource" { + inputs = { + scope = "arn:${data.aws_partition.current.partition}:::${data.aws_caller_identity.current.account_id}" + } +} + +data "aws_ami" "ubuntu" { + most_recent = true + filter { + name = "name" + values = ["ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*"] + } + filter { + name = "virtualization-type" + values = ["hvm"] + } + owners = ["099720109477"] +} + +resource "aws_launch_template" "named_test_resource" { + name = var.resource_name + image_id = data.aws_ami.ubuntu.id + instance_type = "t3.micro" + + tags = { + Name = var.resource_name + } +} + +resource "aws_ec2_fleet" "named_test_resource" { + launch_template_config { + launch_template_specification { + launch_template_id = aws_launch_template.named_test_resource.id + version = aws_launch_template.named_test_resource.latest_version + } + } + + target_capacity_specification { + default_target_capacity_type = "spot" + total_target_capacity = 1 + } + + type = "maintain" + + excess_capacity_termination_policy = "termination" + + replace_unhealthy_instances = false + + tags = { + Name = var.resource_name + } +} + +output "resource_aka" { + value = aws_ec2_fleet.named_test_resource.arn +} + +output "resource_id" { + value = aws_ec2_fleet.named_test_resource.id +} + +output "resource_name" { + value = var.resource_name +} + +output "aws_partition" { + value = data.aws_partition.current.partition +} + +output "account_id" { + value = data.aws_caller_identity.current.account_id +} + +output "launch_template_id" { + value = aws_launch_template.named_test_resource.id +} diff --git a/aws-test/tests/aws_ec2_launch_template/variables.tf b/aws-test/tests/aws_ec2_launch_template/variables.tf index 83ef29c2b..746798382 100644 --- a/aws-test/tests/aws_ec2_launch_template/variables.tf +++ b/aws-test/tests/aws_ec2_launch_template/variables.tf @@ -87,9 +87,10 @@ EOF resource "aws_launch_template" "named_test_resource" { name = var.resource_name + instance_type = "t2.micro" + block_device_mappings { device_name = "/dev/sda1" - ebs { volume_size = 20 } @@ -104,12 +105,8 @@ resource "aws_launch_template" "named_test_resource" { } cpu_options { - core_count = 4 - threads_per_core = 2 - } - - credit_specification { - cpu_credits = "standard" + core_count = 1 + threads_per_core = 1 } disable_api_stop = true @@ -117,26 +114,12 @@ resource "aws_launch_template" "named_test_resource" { ebs_optimized = true - elastic_gpu_specifications { - type = "test" - } - - elastic_inference_accelerator { - type = "eia1.medium" - } - instance_initiated_shutdown_behavior = "terminate" instance_market_options { market_type = "spot" } - instance_type = "t2.micro" - - license_specification { - license_configuration_arn = aws_licensemanager_license_configuration.named_test_resource.arn - } - metadata_options { http_endpoint = "enabled" http_tokens = "required" @@ -152,10 +135,6 @@ resource "aws_launch_template" "named_test_resource" { associate_public_ip_address = true } - placement { - availability_zone = "us-west-2a" - } - tag_specifications { resource_type = "instance" @@ -167,7 +146,6 @@ resource "aws_launch_template" "named_test_resource" { tags = { Name = var.resource_name } - } output "resource_aka" { diff --git a/aws-test/tests/aws_ec2_launch_template_version/variables.tf b/aws-test/tests/aws_ec2_launch_template_version/variables.tf index f0e1d1832..746798382 100644 --- a/aws-test/tests/aws_ec2_launch_template_version/variables.tf +++ b/aws-test/tests/aws_ec2_launch_template_version/variables.tf @@ -87,9 +87,10 @@ EOF resource "aws_launch_template" "named_test_resource" { name = var.resource_name + instance_type = "t2.micro" + block_device_mappings { device_name = "/dev/sda1" - ebs { volume_size = 20 } @@ -99,17 +100,13 @@ resource "aws_launch_template" "named_test_resource" { capacity_reservation_preference = "open" } - cpu_options { - core_count = 4 - threads_per_core = 2 - } - iam_instance_profile { name = aws_iam_instance_profile.instance_profile.name } - credit_specification { - cpu_credits = "standard" + cpu_options { + core_count = 1 + threads_per_core = 1 } disable_api_stop = true @@ -117,26 +114,12 @@ resource "aws_launch_template" "named_test_resource" { ebs_optimized = true - elastic_gpu_specifications { - type = "test" - } - - elastic_inference_accelerator { - type = "eia1.medium" - } - instance_initiated_shutdown_behavior = "terminate" instance_market_options { market_type = "spot" } - instance_type = "t2.micro" - - license_specification { - license_configuration_arn = aws_licensemanager_license_configuration.named_test_resource.arn - } - metadata_options { http_endpoint = "enabled" http_tokens = "required" @@ -152,10 +135,6 @@ resource "aws_launch_template" "named_test_resource" { associate_public_ip_address = true } - placement { - availability_zone = "us-west-2a" - } - tag_specifications { resource_type = "instance" @@ -167,7 +146,6 @@ resource "aws_launch_template" "named_test_resource" { tags = { Name = var.resource_name } - } output "resource_aka" { diff --git a/aws-test/tests/aws_ec2_network_load_balancer/test-hydrate-expected.json b/aws-test/tests/aws_ec2_network_load_balancer/test-hydrate-expected.json index cfc8c81c9..e90494431 100644 --- a/aws-test/tests/aws_ec2_network_load_balancer/test-hydrate-expected.json +++ b/aws-test/tests/aws_ec2_network_load_balancer/test-hydrate-expected.json @@ -2,6 +2,10 @@ { "arn": "{{ output.resource_aka.value }}", "load_balancer_attributes": [ + { + "Key": "dns_record.client_routing_policy", + "Value": "any_availability_zone" + }, { "Key": "access_logs.s3.prefix", "Value": "" @@ -10,6 +14,10 @@ "Key": "deletion_protection.enabled", "Value": "false" }, + { + "Key": "zonal_shift.config.enabled", + "Value": "false" + }, { "Key": "load_balancing.cross_zone.enabled", "Value": "false" diff --git a/aws-test/tests/aws_elastic_beanstalk_environment/variables.tf b/aws-test/tests/aws_elastic_beanstalk_environment/variables.tf index e36e8f6e1..b69a02ce9 100644 --- a/aws-test/tests/aws_elastic_beanstalk_environment/variables.tf +++ b/aws-test/tests/aws_elastic_beanstalk_environment/variables.tf @@ -136,7 +136,7 @@ resource "aws_elastic_beanstalk_application" "application_test" { resource "aws_elastic_beanstalk_environment" "named_test_resource" { name = var.resource_name application = aws_elastic_beanstalk_application.application_test.name - solution_stack_name = "64bit Amazon Linux 2023 v4.0.7 running Go 1" + solution_stack_name = "64bit Amazon Linux 2 v3.3.4 running Go 1" wait_for_ready_timeout = "45m" setting { namespace = "aws:autoscaling:launchconfiguration" diff --git a/aws-test/tests/aws_elasticache_serverless_cache/dependencies.txt b/aws-test/tests/aws_elasticache_serverless_cache/dependencies.txt new file mode 100644 index 000000000..0519ecba6 --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/dependencies.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-get-expected.json b/aws-test/tests/aws_elasticache_serverless_cache/test-get-expected.json new file mode 100644 index 000000000..eecb7c12e --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-get-expected.json @@ -0,0 +1,23 @@ +[ + { + "cache_usage_limits": { + "DataStorage": { + "Maximum": 10, + "Minimum": null, + "Unit": "GB" + }, + "ECPUPerSecond": { + "Maximum": 5000, + "Minimum": null + } + }, + "engine": "valkey", + "serverless_cache_name": "{{ output.resource_id.value }}", + "tags_src": [ + { + "Key": "name", + "Value": "{{resourceName}}" + } + ] + } +] \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-get-query.sql b/aws-test/tests/aws_elasticache_serverless_cache/test-get-query.sql new file mode 100644 index 000000000..a15b8fde8 --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-get-query.sql @@ -0,0 +1,3 @@ +select serverless_cache_name, engine, tags_src, cache_usage_limits +from aws.aws_elasticache_serverless_cache +where serverless_cache_name = '{{ output.resource_id.value }}'; \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-hydrate-expected.json b/aws-test/tests/aws_elasticache_serverless_cache/test-hydrate-expected.json new file mode 100644 index 000000000..0bed8dd1d --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-hydrate-expected.json @@ -0,0 +1,10 @@ +[ + { + "akas": ["{{ output.resource_aka.value }}"], + "serverless_cache_name": "{{ output.resource_id.value }}", + "tags": { + "name": "{{resourceName}}" + }, + "title": "{{ output.resource_id.value }}" + } +] \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-hydrate-query.sql b/aws-test/tests/aws_elasticache_serverless_cache/test-hydrate-query.sql new file mode 100644 index 000000000..2a7201be3 --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-hydrate-query.sql @@ -0,0 +1,3 @@ +select serverless_cache_name, akas, tags, title +from aws.aws_elasticache_serverless_cache +where serverless_cache_name = '{{ output.resource_id.value }}'; \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-list-expected.json b/aws-test/tests/aws_elasticache_serverless_cache/test-list-expected.json new file mode 100644 index 000000000..3bea64aba --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-list-expected.json @@ -0,0 +1,8 @@ +[ + { + "akas": ["{{ output.resource_aka.value }}"], + "engine": "valkey", + "serverless_cache_name": "{{ output.resource_id.value }}", + "title": "{{resourceName}}" + } +] \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-list-query.sql b/aws-test/tests/aws_elasticache_serverless_cache/test-list-query.sql new file mode 100644 index 000000000..8ad468dad --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-list-query.sql @@ -0,0 +1,3 @@ +select akas, serverless_cache_name, engine, title +from aws.aws_elasticache_serverless_cache +where akas::text = '["{{ output.resource_aka.value }}"]'; \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-notfound-expected.json b/aws-test/tests/aws_elasticache_serverless_cache/test-notfound-expected.json new file mode 100644 index 000000000..130e4e4e7 --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-notfound-expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/test-notfound-query.sql b/aws-test/tests/aws_elasticache_serverless_cache/test-notfound-query.sql new file mode 100644 index 000000000..2a223f7ef --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/test-notfound-query.sql @@ -0,0 +1,3 @@ +select title, akas, region, account_id +from aws.aws_elasticache_serverless_cache +where serverless_cache_name = '{{ output.resource_id.value }}-dummy'; \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/variables.json b/aws-test/tests/aws_elasticache_serverless_cache/variables.json new file mode 100644 index 000000000..1868abf8c --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/variables.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/aws-test/tests/aws_elasticache_serverless_cache/variables.tf b/aws-test/tests/aws_elasticache_serverless_cache/variables.tf new file mode 100644 index 000000000..30870567c --- /dev/null +++ b/aws-test/tests/aws_elasticache_serverless_cache/variables.tf @@ -0,0 +1,130 @@ +variable "resource_name" { + type = string + default = "turbot-test-20200125" + description = "Name of the resource used throughout the test." +} + +variable "aws_profile" { + type = string + default = "default" + description = "AWS credentials profile used for the test. Default is to use the default profile." +} + +variable "aws_region" { + type = string + default = "us-east-1" + description = "AWS region used for the test. Does not work with default region in config, so must be defined here." +} + +variable "aws_region_alternate" { + type = string + default = "us-east-2" + description = "Alternate AWS region used for tests that require two regions (e.g. DynamoDB global tables)." +} + +provider "aws" { + // profile = var.aws_profile + region = var.aws_region +} + +provider "aws" { + alias = "alternate" + // profile = var.aws_profile + region = var.aws_region_alternate +} + +data "aws_partition" "current" {} +data "aws_caller_identity" "current" {} +data "aws_region" "primary" {} +data "aws_region" "alternate" { + provider = aws.alternate +} + +data "null_data_source" "resource" { + inputs = { + scope = "arn:${data.aws_partition.current.partition}:::${data.aws_caller_identity.current.account_id}" + } +} + +resource "aws_vpc" "my_vpc" { + cidr_block = "10.0.0.0/16" +} + +resource "aws_subnet" "my_subnet" { + vpc_id = aws_vpc.my_vpc.id + cidr_block = "10.0.0.0/24" + availability_zone = "${var.aws_region}a" +} + +resource "aws_subnet" "my_subnet_2" { + vpc_id = aws_vpc.my_vpc.id + cidr_block = "10.0.1.0/24" + availability_zone = "${var.aws_region}b" +} + +resource "aws_security_group" "my_security_group" { + name_prefix = var.resource_name + vpc_id = aws_vpc.my_vpc.id + + ingress { + from_port = 6379 + to_port = 6379 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_blocks = ["0.0.0.0/0"] + } +} + +resource "aws_elasticache_user_group" "my_user_group" { + engine = "valkey" + user_group_id = var.resource_name +} + +resource "aws_elasticache_serverless_cache" "named_test_resource" { + name = var.resource_name + engine = "valkey" + user_group_id = aws_elasticache_user_group.my_user_group.user_group_id + subnet_ids = [aws_subnet.my_subnet.id, aws_subnet.my_subnet_2.id] + security_group_ids = [aws_security_group.my_security_group.id] + + cache_usage_limits { + data_storage { + maximum = 10 + unit = "GB" + } + ecpu_per_second { + maximum = 5000 + } + } + + tags = { + name = var.resource_name + } +} + +output "resource_name" { + value = var.resource_name +} + +output "resource_aka" { + depends_on = [aws_elasticache_serverless_cache.named_test_resource] + value = "arn:${data.aws_partition.current.partition}:elasticache:${data.aws_region.primary.name}:${data.aws_caller_identity.current.account_id}:serverlesscache:${aws_elasticache_serverless_cache.named_test_resource.name}" +} + +output "resource_id" { + value = aws_elasticache_serverless_cache.named_test_resource.name +} + +output "serverless_cache_name" { + value = aws_elasticache_serverless_cache.named_test_resource.name +} + +output "account_id" { + value = data.aws_caller_identity.current.account_id +} \ No newline at end of file diff --git a/aws-test/tests/aws_fsx_file_system/variables.tf b/aws-test/tests/aws_fsx_file_system/variables.tf index ae085a229..a95bbdb1c 100644 --- a/aws-test/tests/aws_fsx_file_system/variables.tf +++ b/aws-test/tests/aws_fsx_file_system/variables.tf @@ -51,8 +51,9 @@ resource "aws_subnet" "my_subnet" { resource "aws_fsx_lustre_file_system" "named_test_resource" { storage_capacity = 1200 subnet_ids = [ - "${aws_subnet.my_subnet.id}" + aws_subnet.my_subnet.id ] + deployment_type = "SCRATCH_2" tags = { foo = var.resource_name } diff --git a/aws-test/tests/aws_glue_crawler/variables.tf b/aws-test/tests/aws_glue_crawler/variables.tf index a92970125..3331bbe1d 100644 --- a/aws-test/tests/aws_glue_crawler/variables.tf +++ b/aws-test/tests/aws_glue_crawler/variables.tf @@ -68,6 +68,32 @@ resource "aws_iam_role" "named_test_resource" { }) } +resource "aws_iam_role_policy" "named_test_resource_policy" { + name = "${var.resource_name}-policy" + role = aws_iam_role.named_test_resource.id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Action = [ + "dynamodb:DescribeTable", + "dynamodb:Scan" + ] + Resource = aws_dynamodb_table.named_test_resource.arn + }, + { + Effect = "Allow" + Action = [ + "glue:*" + ] + Resource = "*" + } + ] + }) +} + resource "aws_dynamodb_table" "named_test_resource" { depends_on = [aws_glue_catalog_database.named_test_resource] name = var.resource_name diff --git a/aws-test/tests/aws_glue_data_catalog_encryption_settings/test-list-expected.json b/aws-test/tests/aws_glue_data_catalog_encryption_settings/test-list-expected.json index f97134714..f93ede6e3 100644 --- a/aws-test/tests/aws_glue_data_catalog_encryption_settings/test-list-expected.json +++ b/aws-test/tests/aws_glue_data_catalog_encryption_settings/test-list-expected.json @@ -7,6 +7,7 @@ }, "encryption_at_rest": { "CatalogEncryptionMode": "SSE-KMS", + "CatalogEncryptionServiceRole": null, "SseAwsKmsKeyId": "{{ output.aws_kms_key.value }}" }, "region": "{{ output.aws_region.value }}" diff --git a/aws-test/tests/aws_iam_user/test-get-query.sql b/aws-test/tests/aws_iam_user/test-get-query.sql index 84f350c60..3c03a7df6 100644 --- a/aws-test/tests/aws_iam_user/test-get-query.sql +++ b/aws-test/tests/aws_iam_user/test-get-query.sql @@ -1,3 +1,3 @@ -select name, path, arn, groups, partition, title, akas, partition, account_id +select name, path, arn, groups, partition, title, akas, account_id from aws.aws_iam_user where name = '{{resourceName}}' diff --git a/aws-test/tests/aws_identitystore_group/variables.tf b/aws-test/tests/aws_identitystore_group/variables.tf index aaff48875..b76d06225 100644 --- a/aws-test/tests/aws_identitystore_group/variables.tf +++ b/aws-test/tests/aws_identitystore_group/variables.tf @@ -48,6 +48,31 @@ data "null_data_source" "resource" { data "aws_ssoadmin_instances" "main" {} +resource "aws_iam_policy" "identitystore_access" { + name = "${var.resource_name}-identitystore-access" + + policy = jsonencode({ + Version = "2012-10-17", + Statement = [ + { + Effect = "Allow", + Action = [ + "identitystore:CreateGroup", + "identitystore:DescribeGroup", + "identitystore:ListGroups", + "identitystore:DeleteGroup" + ], + Resource = "arn:aws:identitystore::*:identitystore/*" + } + ] + }) +} + +resource "aws_iam_user_policy_attachment" "attach_policy_to_user" { + user = "partha" # Replace with your IAM user name + policy_arn = aws_iam_policy.identitystore_access.arn +} + resource "aws_identitystore_group" "main" { display_name = var.resource_name description = "Example description" @@ -67,13 +92,13 @@ output "aws_partition" { } output "resource_id" { - value = resource.aws_identitystore_group.main.group_id + value = aws_identitystore_group.main.group_id } output "resource_name" { - value = resource.aws_identitystore_group.main.display_name + value = aws_identitystore_group.main.display_name } output "identity_store_id" { - value = resource.aws_identitystore_group.main.identity_store_id + value = aws_identitystore_group.main.identity_store_id } diff --git a/aws-test/tests/aws_kinesisanalyticsv2_application/test-get-query.sql b/aws-test/tests/aws_kinesisanalyticsv2_application/test-get-query.sql index b2d3b59c9..cce90fab4 100644 --- a/aws-test/tests/aws_kinesisanalyticsv2_application/test-get-query.sql +++ b/aws-test/tests/aws_kinesisanalyticsv2_application/test-get-query.sql @@ -1,3 +1,3 @@ -select application_name, application_version_id, runtime_environment, service_execution_role, partition, title, akas, partition, account_id +select application_name, application_version_id, runtime_environment, service_execution_role, title, akas, partition, account_id from aws.aws_kinesisanalyticsv2_application where application_name = '{{ resourceName }}'; diff --git a/aws-test/tests/aws_lambda_alias/variables.tf b/aws-test/tests/aws_lambda_alias/variables.tf index a5d5b7410..322fa5f8a 100644 --- a/aws-test/tests/aws_lambda_alias/variables.tf +++ b/aws-test/tests/aws_lambda_alias/variables.tf @@ -81,7 +81,7 @@ resource "aws_lambda_function" "named_test_resource" { function_name = var.resource_name role = aws_iam_role.aws_lambda_function.arn handler = "test.test" - runtime = "python3.7" + runtime = "python3.11" filename = "${path.cwd}/../../test.zip" } diff --git a/aws-test/tests/aws_lambda_function/variables.tf b/aws-test/tests/aws_lambda_function/variables.tf index f62e6a3fc..5af707a6b 100644 --- a/aws-test/tests/aws_lambda_function/variables.tf +++ b/aws-test/tests/aws_lambda_function/variables.tf @@ -81,7 +81,7 @@ resource "aws_lambda_function" "named_test_resource" { function_name = var.resource_name role = aws_iam_role.aws_lambda_function.arn handler = "test.test" - runtime = "python3.7" + runtime = "python3.11" filename = "${path.cwd}/../../test.zip" reserved_concurrent_executions = 2 tags = { diff --git a/aws-test/tests/aws_mq_broker/variables.tf b/aws-test/tests/aws_mq_broker/variables.tf index 0e3ef0165..63ee632e5 100644 --- a/aws-test/tests/aws_mq_broker/variables.tf +++ b/aws-test/tests/aws_mq_broker/variables.tf @@ -84,6 +84,7 @@ resource "aws_security_group" "named_test_resource" { resource "aws_subnet" "named_test_resource" { vpc_id = aws_vpc.main.id cidr_block = "10.0.1.0/24" + availability_zone = "us-east-1a" tags = { Name = var.resource_name } @@ -100,7 +101,7 @@ resource "aws_mq_broker" "named_test_resource" { engine_type = "ActiveMQ" engine_version = "5.17.6" - host_instance_type = "mq.t2.micro" + host_instance_type = "mq.m5.large" security_groups = [aws_security_group.named_test_resource.id] subnet_ids = [aws_subnet.named_test_resource.id] diff --git a/aws-test/tests/aws_neptune_db_cluster/variables.tf b/aws-test/tests/aws_neptune_db_cluster/variables.tf index bf45c7e08..296012074 100644 --- a/aws-test/tests/aws_neptune_db_cluster/variables.tf +++ b/aws-test/tests/aws_neptune_db_cluster/variables.tf @@ -55,7 +55,7 @@ resource "aws_neptune_cluster" "named_test_resource" { skip_final_snapshot = true iam_database_authentication_enabled = false apply_immediately = true - neptune_cluster_parameter_group_name = "default.neptune1.2" + neptune_cluster_parameter_group_name = "default.neptune1.4" tags = { name = var.resource_name diff --git a/aws-test/tests/aws_neptune_db_cluster_snapshot/variables.tf b/aws-test/tests/aws_neptune_db_cluster_snapshot/variables.tf index 0ebb93aff..dd28c080d 100644 --- a/aws-test/tests/aws_neptune_db_cluster_snapshot/variables.tf +++ b/aws-test/tests/aws_neptune_db_cluster_snapshot/variables.tf @@ -54,7 +54,7 @@ resource "aws_neptune_cluster" "named_test_resource" { skip_final_snapshot = true iam_database_authentication_enabled = false apply_immediately = true - neptune_cluster_parameter_group_name = "default.neptune1.2" + neptune_cluster_parameter_group_name = "default.neptune1.4" tags = { name = var.resource_name diff --git a/aws-test/tests/aws_rds_db_snapshot/test-get-query.sql b/aws-test/tests/aws_rds_db_snapshot/test-get-query.sql index fffef4d7a..fb3d3d26b 100644 --- a/aws-test/tests/aws_rds_db_snapshot/test-get-query.sql +++ b/aws-test/tests/aws_rds_db_snapshot/test-get-query.sql @@ -1,7 +1,7 @@ SELECT db_snapshot_identifier, arn, - TYPE, + type, allocated_storage, db_instance_identifier, encrypted, @@ -16,4 +16,4 @@ SELECT FROM aws.aws_rds_db_snapshot WHERE - db_snapshot_identifier = '{{ resourceName }}' + db_snapshot_identifier = '{{ resourceName }}-snapshot' and region = '{{ output.region_name.value }}' diff --git a/aws-test/tests/aws_rds_db_snapshot/variables.tf b/aws-test/tests/aws_rds_db_snapshot/variables.tf index 3984e2d9e..758d452c5 100644 --- a/aws-test/tests/aws_rds_db_snapshot/variables.tf +++ b/aws-test/tests/aws_rds_db_snapshot/variables.tf @@ -84,7 +84,7 @@ resource "aws_db_instance" "my_instance" { db_name = var.resource_name allocated_storage = 20 engine = "mysql" - instance_class = "db.t2.micro" + instance_class = "db.t3.micro" username = "turbottest" password = "test123Q" skip_final_snapshot = true diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/dependencies.txt b/aws-test/tests/aws_servicequotas_auto_management_configuration/dependencies.txt new file mode 100644 index 000000000..e69de29bb diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/test-list-expected.json b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-list-expected.json new file mode 100644 index 000000000..f7837b243 --- /dev/null +++ b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-list-expected.json @@ -0,0 +1,9 @@ +[ + { + "opt_in_status": "{{ output.opt_in_status.value }}", + "opt_in_type": "{{ output.opt_in_type.value }}", + "opt_in_level": "{{ output.opt_in_level.value }}", + "notification_arn": "{{ output.notification_arn.value }}", + "exclusion_list": {{ output.exclusion_list.value }} + } +] diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/test-list-query.sql b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-list-query.sql new file mode 100644 index 000000000..fc0c0ccdf --- /dev/null +++ b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-list-query.sql @@ -0,0 +1,3 @@ +select opt_in_status, opt_in_type, opt_in_level, notification_arn, exclusion_list +from aws_servicequotas_auto_management_configuration +where region = '{{ output.resource_aka.value | split:':' | at:3 }}'; diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/test-turbot-expected.json b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-turbot-expected.json new file mode 100644 index 000000000..a011e4696 --- /dev/null +++ b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-turbot-expected.json @@ -0,0 +1,6 @@ +[ + { + "akas": ["{{ output.resource_aka.value }}"], + "title": "Auto Management Configuration" + } +] diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/test-turbot-query.sql b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-turbot-query.sql new file mode 100644 index 000000000..1ecf88558 --- /dev/null +++ b/aws-test/tests/aws_servicequotas_auto_management_configuration/test-turbot-query.sql @@ -0,0 +1,3 @@ +select title, akas +from aws_servicequotas_auto_management_configuration +where region = '{{ output.resource_aka.value | split:':' | at:3 }}'; diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/variables.json b/aws-test/tests/aws_servicequotas_auto_management_configuration/variables.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/aws-test/tests/aws_servicequotas_auto_management_configuration/variables.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/aws-test/tests/aws_servicequotas_auto_management_configuration/variables.tf b/aws-test/tests/aws_servicequotas_auto_management_configuration/variables.tf new file mode 100644 index 000000000..14268b83d --- /dev/null +++ b/aws-test/tests/aws_servicequotas_auto_management_configuration/variables.tf @@ -0,0 +1,82 @@ +variable "resource_name" { + type = string + default = "turbot-test-20200125-create-update" + description = "Name of the resource used throughout the test." +} + +variable "aws_profile" { + type = string + default = "default" + description = "AWS credentials profile used for the test. Default is to use the default profile." +} + +variable "aws_region" { + type = string + default = "us-east-1" + description = "AWS region used for the test. Does not work with default region in config, so must be defined here." +} + +variable "aws_region_alternate" { + type = string + default = "us-east-2" + description = "Alternate AWS region used for tests that require two regions (e.g. DynamoDB global tables)." +} + +provider "aws" { + profile = var.aws_profile + region = var.aws_region +} + +provider "aws" { + alias = "alternate" + profile = var.aws_profile + region = var.aws_region_alternate +} + +data "aws_partition" "current" {} +data "aws_caller_identity" "current" {} +data "aws_region" "primary" {} +data "aws_region" "alternate" { + provider = aws.alternate +} + +data "null_data_source" "resource" { + inputs = { + scope = "arn:${data.aws_partition.current.partition}:::${data.aws_caller_identity.current.account_id}" + } +} + +resource "null_resource" "auto_management_configuration" { + provisioner "local-exec" { + command = "aws service-quotas get-auto-management-configuration > ${path.cwd}/auto_management_configuration.json" + } +} + +data "local_file" "auto_management_configuration" { + depends_on = [null_resource.auto_management_configuration] + filename = "${path.cwd}/auto_management_configuration.json" +} + +output "opt_in_status" { + value = jsondecode(data.local_file.auto_management_configuration.content).OptInStatus +} + +output "opt_in_type" { + value = jsondecode(data.local_file.auto_management_configuration.content).OptInType +} + +output "opt_in_level" { + value = jsondecode(data.local_file.auto_management_configuration.content).OptInLevel +} + +output "notification_arn" { + value = jsondecode(data.local_file.auto_management_configuration.content).NotificationArn +} + +output "exclusion_list" { + value = jsondecode(data.local_file.auto_management_configuration.content).ExclusionList +} + +output "resource_aka" { + value = "arn:${data.aws_partition.current.partition}:servicequotas:${data.aws_region.primary.name}:${data.aws_caller_identity.current.account_id}:auto-management-configuration" +} diff --git a/aws/canonical_policy.go b/aws/canonical_policy.go index 6cdb0e158..ebcf0134c 100644 --- a/aws/canonical_policy.go +++ b/aws/canonical_policy.go @@ -275,7 +275,7 @@ func canonicalPolicy(src string) (interface{}, error) { var policy Policy if err := json.Unmarshal([]byte(src), &policy); err != nil { - return nil, fmt.Errorf("Convert policy failed unmarshalling source data: %+v. src: %s", err, url.QueryEscape(src)) + return nil, fmt.Errorf("convert policy failed unmarshalling source data: %+v. src: %s", err, url.QueryEscape(src)) } return policy, nil diff --git a/aws/connection_config.go b/aws/connection_config.go index 82b33bf01..5239e050e 100644 --- a/aws/connection_config.go +++ b/aws/connection_config.go @@ -16,6 +16,7 @@ type awsConfig struct { SessionToken *string `hcl:"session_token"` MaxErrorRetryAttempts *int `hcl:"max_error_retry_attempts"` MinErrorRetryDelay *int `hcl:"min_error_retry_delay"` + IgnoreErrorMessages []string `hcl:"ignore_error_messages,optional"` IgnoreErrorCodes []string `hcl:"ignore_error_codes,optional"` EndpointUrl *string `hcl:"endpoint_url"` S3ForcePathStyle *bool `hcl:"s3_force_path_style"` diff --git a/aws/cost_explorer.go b/aws/cost_explorer.go index 2f92e78a7..33ef7fcbd 100644 --- a/aws/cost_explorer.go +++ b/aws/cost_explorer.go @@ -26,6 +26,32 @@ func AllCostMetrics() []string { } } +func getMetricsByQueryContext(qc *plugin.QueryContext) []string { + queryColumns := qc.Columns + var metrics []string + + for _, c := range queryColumns { + switch c { + case "blended_cost_amount", "blended_cost_unit": + metrics = append(metrics, "BlendedCost") + case "unblended_cost_amount", "unblended_cost_unit": + metrics = append(metrics, "UnblendedCost") + case "net_unblended_cost_amount", "net_unblended_cost_unit": + metrics = append(metrics, "NetUnblendedCost") + case "amortized_cost_amount", "amortized_cost_unit": + metrics = append(metrics, "AmortizedCost") + case "net_amortized_cost_amount", "net_amortized_cost_unit": + metrics = append(metrics, "NetAmortizedCost") + case "usage_quantity_amount", "usage_quantity_unit": + metrics = append(metrics, "UsageQuantity") + case "normalized_usage_amount", "normalized_usage_unit": + metrics = append(metrics, "NormalizedUsageAmount") + } + } + + return removeDuplicates(metrics) +} + var costExplorerColumnDefs = []*plugin.Column{ { @@ -266,10 +292,12 @@ func getCEStartDateForGranularity(granularity string) time.Time { return time.Now().AddDate(0, 0, -13) } + type CEQuals struct { // Quals stuff SearchStartTime *timestamp.Timestamp SearchEndTime *timestamp.Timestamp + Metrics string Granularity string DimensionType1 string DimensionType2 string diff --git a/aws/endpoint_by_partition.go b/aws/endpoint_by_partition.go index b855e3f22..beb87bb06 100644 --- a/aws/endpoint_by_partition.go +++ b/aws/endpoint_by_partition.go @@ -30,10 +30,11 @@ type Service struct { // Endpoint represents an individual endpoint for a service. type Endpoint struct { - CredentialScope *CredentialScope `json:"credentialScope"` - Hostname string `json:"hostname"` - Deprecated bool `json:"deprecated,omitempty"` - Variants []Variant `json:"variants,omitempty"` + CredentialScope *CredentialScope `json:"credentialScope"` + Hostname string `json:"hostname"` + Deprecated bool `json:"deprecated,omitempty"` + SignatureVersions []string `json:"signatureVersions,omitempty"` + Variants []Variant `json:"variants,omitempty"` } // CredentialScope defines the credential scope for an endpoint. diff --git a/aws/endpoint_service_ids_gen.go b/aws/endpoint_service_ids_gen.go index e02ec58ae..87598f1e9 100644 --- a/aws/endpoint_service_ids_gen.go +++ b/aws/endpoint_service_ids_gen.go @@ -266,6 +266,8 @@ const AWS_FSX_SERVICE_ID = "fsx" const AWS_GAMELIFT_SERVICE_ID = "gamelift" +const AWS_GAMELIFTSTREAMS_SERVICE_ID = "gameliftstreams" + const AWS_GEO_SERVICE_ID = "geo" const AWS_GLACIER_SERVICE_ID = "glacier" @@ -472,6 +474,8 @@ const AWS_QBUSINESS_SERVICE_ID = "qbusiness" const AWS_QLDB_SERVICE_ID = "qldb" +const AWS_QUERY_TIMESTREAM_SERVICE_ID = "query.timestream" + const AWS_QUICKSIGHT_SERVICE_ID = "quicksight" const AWS_RAM_SERVICE_ID = "ram" diff --git a/aws/errors.go b/aws/errors.go index 918cca1a6..7dad1b57e 100644 --- a/aws/errors.go +++ b/aws/errors.go @@ -4,6 +4,7 @@ import ( "context" "errors" "path" + "regexp" "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -31,19 +32,37 @@ func shouldIgnoreErrors(notFoundErrors []string) plugin.ErrorPredicateWithContex } } -// shouldIgnoreErrorPluginDefault:: Plugin level default function to ignore a set errors for hydrate functions based on "ignore_error_codes" config argument +// shouldIgnoreErrorPluginDefault:: Plugin level default function to ignore a set errors for hydrate functions based on "ignore_error_codes" and "ignore_error_messages" config argument func shouldIgnoreErrorPluginDefault() plugin.ErrorPredicateWithContext { return func(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData, err error) bool { - if !hasIgnoredErrorCodes(d.Connection) { + if !hasIgnoredErrorCodesOrMessages(d.Connection) { return false } awsConfig := GetConfig(d.Connection) + + logger := plugin.Logger(ctx) + + // Add to support regex match as per error message + for _, pattern := range awsConfig.IgnoreErrorMessages { + // Validate regex pattern + re, er := regexp.Compile(pattern) + if er != nil { + panic(er.Error() + " the regex pattern configured in 'ignore_error_messages' is invalid. Edit your connection configuration file and then restart Steampipe") + } + result := re.MatchString(err.Error()) + if result { + logger.Debug("errors.shouldIgnoreErrors", "ignore_error_message", err.Error()) + return true + } + } + var ae smithy.APIError if errors.As(err, &ae) { // Added to support regex in not found errors for _, pattern := range awsConfig.IgnoreErrorCodes { if ok, _ := path.Match(pattern, ae.ErrorCode()); ok { + logger.Debug("errors.shouldIgnoreErrorPluginDefault", "ignore_error_code", err.Error()) return true } } @@ -52,7 +71,7 @@ func shouldIgnoreErrorPluginDefault() plugin.ErrorPredicateWithContext { } } -func hasIgnoredErrorCodes(connection *plugin.Connection) bool { +func hasIgnoredErrorCodesOrMessages(connection *plugin.Connection) bool { awsConfig := GetConfig(connection) - return len(awsConfig.IgnoreErrorCodes) > 0 + return len(awsConfig.IgnoreErrorCodes) > 0 || len(awsConfig.IgnoreErrorMessages) > 0 } diff --git a/aws/multi_region.go b/aws/multi_region.go index aee2b8cc3..7707c0ddd 100644 --- a/aws/multi_region.go +++ b/aws/multi_region.go @@ -72,8 +72,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - cloudwatchv1 "github.com/aws/aws-sdk-go/service/cloudwatch" - "github.com/turbot/go-kit/helpers" "github.com/turbot/steampipe-plugin-sdk/v5/logging" "github.com/turbot/steampipe-plugin-sdk/v5/memoize" @@ -99,7 +97,34 @@ func AllRegionsMatrix(ctx context.Context, d *plugin.QueryData) []map[string]int // _metric_ tables must all be limited to the CloudWatch service regions. // This is a convenience function for them to use. func CloudWatchRegionsMatrix(ctx context.Context, d *plugin.QueryData) []map[string]interface{} { - return SupportedRegionMatrixWithExclusions(cloudwatchv1.EndpointsID, []string{})(ctx, d) + return SupportedRegionMatrixWithExclusions(AWS_MONITORING_SERVICE_ID, []string{})(ctx, d) +} + +func S3TablesRegionsMatrix(ctx context.Context, d *plugin.QueryData) []map[string]interface{} { + + commonColumnData, err := getCommonColumns(ctx, d, nil) + if err != nil { + plugin.Logger(ctx).Error("S3TablesRegionsMatrix", "getCommonColumns", "unable to get common column info", err) + panic(err) + } + partitionName := commonColumnData.(*awsCommonColumnData).Partition + + // Get AWS partition based on the partition name + // Get supported service along with the endpoints for the partition + partition, err := getPartitionValueByPartitionName(partitionName) + if err != nil { + panic(fmt.Errorf("S3TablesRegionsMatrix: failed to get the endpoint details for the partition '%s', %v", partitionName, err)) + } + + s3SupportedRegions := partition.Services[AWS_S3_SERVICE_ID].Endpoints + var unsupportedRegionsForS3Tables []string + for region, ed := range s3SupportedRegions { + if !slices.Contains(ed.SignatureVersions, "s3v4") { + unsupportedRegionsForS3Tables = append(unsupportedRegionsForS3Tables, region) + } + } + + return SupportedRegionMatrixWithExclusions(AWS_S3_SERVICE_ID, unsupportedRegionsForS3Tables)(ctx, d) } // Return a matrix of regions supported by serviceID, which will then be diff --git a/aws/parliament_iam_permissions.go b/aws/parliament_iam_permissions.go index feae6a49c..e62aace4c 100644 --- a/aws/parliament_iam_permissions.go +++ b/aws/parliament_iam_permissions.go @@ -1,39 +1,6 @@ -package aws - -type ParliamentCondition struct { - Condition string - Description string - Type string -} - -type ParliamentResourceType struct { - ConditionKeys []string - DependentActions []string - ResourceType string -} - -type ParliamentPrivilege struct { - AccessLevel string - Description string - Privilege string - ResourceTypes []ParliamentResourceType -} - -type ParliamentResource struct { - Arn string - ConditionKeys []string - Resource string -} +//go:build !dev -type ParliamentService struct { - Conditions []ParliamentCondition - Prefix string - Privileges []ParliamentPrivilege - Resources []ParliamentResource - ServiceName string -} - -type ParliamentPermissions []ParliamentService +package aws func getParliamentIamPermissions() ParliamentPermissions { permissions := ParliamentPermissions{ @@ -1884,6 +1851,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an analyzer's configuration", + Privilege: "UpdateAnalyzer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Analyzer*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to modify an archive rule", @@ -2080,6 +2059,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "account", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accountInOrganization", + }, }, }, { @@ -2106,18 +2090,6 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the challenge questions for an account", - Privilege: "GetChallengeQuestions", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "account", - }, - }, - }, { AccessLevel: "Read", Description: "Grants permission to retrieve the primary contact information for an account", @@ -2190,8 +2162,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the alternate contacts for an account", - Privilege: "PutAlternateContact", + Description: "Grants permission to update the name for an account", + Privilege: "PutAccountName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -2203,25 +2175,30 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "accountInOrganization", }, - { - ConditionKeys: []string{ - "account:AlternateContactTypes", - }, - DependentActions: []string{}, - ResourceType: "", - }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the challenge questions for an account", - Privilege: "PutChallengeQuestions", + Description: "Grants permission to modify the alternate contacts for an account", + Privilege: "PutAlternateContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "account", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accountInOrganization", + }, + { + ConditionKeys: []string{ + "account:AlternateContactTypes", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -2544,6 +2521,344 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ServiceName: "AWS Certificate Manager", }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "acm-pca:TemplateArn", + Description: "Filters issue certificate requests based on the presence of TemplateArn in the request", + Type: "String", + }, + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters create requests based on the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters create requests based on the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "acm-pca", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an ACM Private CA and its associated private key and configuration", + Privilege: "CreateCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an audit report for an ACM Private CA", + Privilege: "CreateCertificateAuthorityAuditReport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to create a permission for an ACM Private CA", + Privilege: "CreatePermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ACM Private CA and its associated private key and configuration", + Privilege: "DeleteCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete a permission for an ACM Private CA", + Privilege: "DeletePermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy for an ACM Private CA", + Privilege: "DeletePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a list of the configuration and status fields contained in the specified ACM Private CA", + Privilege: "DescribeCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the status and information about an ACM Private CA audit report", + Privilege: "DescribeCertificateAuthorityAuditReport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an ACM Private CA certificate and certificate chain for the certificate authority specified by an ARN", + Privilege: "GetCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an ACM Private CA certificate and certificate chain for the certificate authority specified by an ARN", + Privilege: "GetCertificateAuthorityCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an ACM Private CA certificate signing request (CSR) for the certificate-authority specified by an ARN", + Privilege: "GetCertificateAuthorityCsr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the policy on an ACM Private CA", + Privilege: "GetPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import an SSL/TLS certificate into ACM Private CA for use as the CA certificate of an ACM Private CA", + Privilege: "ImportCertificateAuthorityCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to issue an ACM Private CA certificate", + Privilege: "IssueCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + { + ConditionKeys: []string{ + "acm-pca:TemplateArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the ACM Private CA certificate authority ARNs, and a summary of the status of each CA in the calling account", + Privilege: "ListCertificateAuthorities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the permissions that have been applied to the ACM Private CA certificate authority", + Privilege: "ListPermissions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags that have been applied to the ACM Private CA certificate authority", + Privilege: "ListTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to put a policy on an ACM Private CA", + Privilege: "PutPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore an ACM Private CA from the deleted state to the state it was in when deleted", + Privilege: "RestoreCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to revoke a certificate issued by an ACM Private CA", + Privilege: "RevokeCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to an ACM Private CA", + Privilege: "TagCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from an ACM Private CA", + Privilege: "UntagCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of an ACM Private CA", + Privilege: "UpdateCertificateAuthority", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate-authority*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:acm-pca:${Region}:${Account}:certificate-authority/${CertificateAuthorityId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "certificate-authority", + }, + }, + ServiceName: "AWS Certificate Manager Private Certificate Authority", + }, ParliamentService{ Conditions: []ParliamentCondition{ { @@ -2577,6 +2892,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -2845,7 +3161,9 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "UntagCertificateAuthority", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "certificate-authority*", }, @@ -2986,6 +3304,378 @@ func getParliamentIamPermissions() ParliamentPermissions { Resources: []ParliamentResource{}, ServiceName: "AWS Activate", }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "aiops", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a new investigation in the specified investigation group", + Privilege: "CreateInvestigation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKey", + "sts:SetContext", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new investigation event in the specified investigation group", + Privilege: "CreateInvestigationEvent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKey", + "sts:SetContext", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new investigation group", + Privilege: "CreateInvestigationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "aiops:TagResource", + "cloudtrail:DescribeTrails", + "iam:PassRole", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAssignmentConfiguration", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + "sso:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an investigation resource in the specified investigation group", + Privilege: "CreateInvestigationResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudwatch:DescribeAlarmHistory", + "cloudwatch:DescribeAlarms", + "cloudwatch:GetInsightRuleReport", + "cloudwatch:GetMetricData", + "kms:GenerateDataKey", + "logs:GetQueryResults", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an investigation in the specified investigation group", + Privilege: "DeleteInvestigation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sts:SetContext", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified investigation group", + Privilege: "DeleteInvestigationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteApplication", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the investigation group policy attached to an investigation group", + Privilege: "DeleteInvestigationGroupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an investigation in the specified investigation group", + Privilege: "GetInvestigation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an investigation event in the specified investigation group", + Privilege: "GetInvestigationEvent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified investigation group", + Privilege: "GetInvestigationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the investigation group policy attached to an investigation group", + Privilege: "GetInvestigationGroupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an investigation resource in the specified investigation group", + Privilege: "GetInvestigationResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all investigation events in the specified investigation group", + Privilege: "ListInvestigationEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all investigation groups in the AWS account making the request", + Privilege: "ListInvestigationGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all investigations that are in the specified investigation group", + Privilege: "ListInvestigations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the tags for the specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create/update the investigation group policy attached to an investigation group", + Privilege: "PutInvestigationGroupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or update the specified tags for the specified resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the specified resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "investigation-group*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an investigation in the specified investigation group", + Privilege: "UpdateInvestigation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKey", + "sts:SetContext", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an investigation event in the specified investigation group", + Privilege: "UpdateInvestigationEvent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKey", + "sts:SetContext", + }, + ResourceType: "investigation-group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified investigation group", + Privilege: "UpdateInvestigationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:DescribeTrails", + "iam:PassRole", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAssignmentConfiguration", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + "sso:TagResource", + }, + ResourceType: "investigation-group*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:aiops:${Region}:${Account}:investigation-group/${InvestigationGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "investigation-group", + }, + }, + ServiceName: "Amazon AI Operations", + }, ParliamentService{ Conditions: []ParliamentCondition{ { @@ -3089,6 +3779,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to invoke Airflow REST API via an endpoint on the Apache Airflow Webserver", + Privilege: "InvokeRestApi", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rbac-role*", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list the Amazon MWAA environments in your account", @@ -3227,6 +3929,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Prefix: "amplify", Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a WebACL to a Resource", + Privilege: "AssociateWebACL", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "apps*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a new Amplify App", @@ -3395,6 +4109,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a WebACL from a Resource", + Privilege: "DisassociateWebACL", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "apps*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to generate website access logs for a specific time range via a pre-signed URL", @@ -3479,6 +4205,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the WebACL associated with a Resource", + Privilege: "GetWebACLForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "apps*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve webhook info that corresponds to a webhookId", @@ -3563,6 +4301,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list the Resources associated with a WebACL", + Privilege: "ListResourcesForWebACL", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list tags for an AWS Amplify Console resource", @@ -4239,9 +4989,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "ListS3Buckets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:ListAllMyBuckets", + }, + ResourceType: "", }, }, }, @@ -5064,6 +5816,14 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Collection*", }, + { + ConditionKeys: []string{ + "aoss:collection", + "aoss:CollectionId", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -5207,6 +5967,14 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Dashboards*", }, + { + ConditionKeys: []string{ + "aoss:collection", + "aoss:CollectionId", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -5445,6 +6213,7 @@ func getParliamentIamPermissions() ParliamentPermissions { ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -6388,6 +7157,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ParliamentService{ Conditions: []ParliamentCondition{ + { + Condition: "apigateway:Request/AccessAssociationSource", + Description: "Filters access by access association source. Available during the CreateDomainNameAccessAssociation operation", + Type: "String", + }, { Condition: "apigateway:Request/AccessLoggingDestination", Description: "Filters access by access log destination. Available during the CreateStage and UpdateStage operations", @@ -6418,11 +7192,21 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by URI of a Lambda authorizer function. Available during CreateAuthorizer and UpdateAuthorizer. Also available during import and reimport as an ArrayOfString", Type: "ArrayOfString", }, + { + Condition: "apigateway:Request/CognitoUserPoolProviderArn", + Description: "Filters access by Cognito user pool provider ARN. Available during CreateAuthorizer and UpdateAuthorizer", + Type: "ARN", + }, { Condition: "apigateway:Request/DisableExecuteApiEndpoint", Description: "Filters access by status of the default execute-api endpoint. Available during the CreateRestApi and DeleteRestApi operations", Type: "Bool", }, + { + Condition: "apigateway:Request/DomainNameArn", + Description: "Filters access by domain name ARN. Available during the CreateDomainNameAccessAssociation operation", + Type: "ARN", + }, { Condition: "apigateway:Request/EndpointType", Description: "Filters access by endpoint type. Available during the CreateDomainName, UpdateDomainName, CreateRestApi, and UpdateRestApi operations", @@ -6483,6 +7267,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by URI of a Lambda authorizer function. Available during UpdateAuthorizer and DeleteAuthorizer operations. Also available during reimport as an ArrayOfString", Type: "ArrayOfString", }, + { + Condition: "apigateway:Resource/CognitoUserPoolProviderArn", + Description: "Filters access by Cognito user pool provider ARN. Available during CreateAuthorizer and UpdateAuthorizer", + Type: "ARN", + }, { Condition: "apigateway:Resource/DisableExecuteApiEndpoint", Description: "Filters access by status of the default execute-api endpoint of the current RestApi resource. Available during UpdateRestApi and DeleteRestApi operations", @@ -6548,6 +7337,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to create an access association from an access association source to a custom domain name for private APIs", + Privilege: "CreateAccessAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete a particular resource", @@ -6593,6 +7394,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "DomainName", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DomainNameAccessAssociation", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -6623,6 +7429,16 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Model", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateBasePathMapping", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -6763,6 +7579,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "DomainName", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DomainNameAccessAssociations", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -6808,6 +7629,21 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Models", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateBasePathMapping", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateBasePathMappings", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -6970,6 +7806,16 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Model", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateBasePathMapping", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -7060,6 +7906,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "DocumentationVersions", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DomainNameAccessAssociations", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -7085,6 +7936,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Models", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateBasePathMappings", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -7175,6 +8031,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to reject an existing access association owned by another account to a custom domain name for private APIs", + Privilege: "RejectAccessAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, + }, + }, { AccessLevel: "Permissions management", Description: "Grants permission to remove certificates for mutual TLS authentication from a domain name. This is an additional authorization control for managing the DomainName resource due to the sensitive nature of mTLS", @@ -7209,6 +8077,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update the management policy of a custom domain name for private APIs", + Privilege: "UpdateDomainNameManagementPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update the invoke policy of a custom domain name for private APIs", + Privilege: "UpdateDomainNamePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DomainNames", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PrivateDomainName", + }, + }, + }, { AccessLevel: "Permissions management", Description: "Grants permission to manage the IAM resource policy for an API. This is an additional authorization control for managing an API due to the sensitive nature of the resource policy", @@ -7252,8 +8149,10 @@ func getParliamentIamPermissions() ParliamentPermissions { ConditionKeys: []string{ "apigateway:Request/AuthorizerType", "apigateway:Request/AuthorizerUri", + "apigateway:Request/CognitoUserPoolProviderArn", "apigateway:Resource/AuthorizerType", "apigateway:Resource/AuthorizerUri", + "apigateway:Resource/CognitoUserPoolProviderArn", "aws:ResourceTag/${TagKey}", }, Resource: "Authorizer", @@ -7263,6 +8162,7 @@ func getParliamentIamPermissions() ParliamentPermissions { ConditionKeys: []string{ "apigateway:Request/AuthorizerType", "apigateway:Request/AuthorizerUri", + "apigateway:Request/CognitoUserPoolProviderArn", "aws:ResourceTag/${TagKey}", }, Resource: "Authorizers", @@ -7364,6 +8264,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resource: "DomainNames", }, + { + Arn: "arn:${Partition}:apigateway:${Region}:${Account}:/domainnameaccessassociations/domainname/${DomainName}/${SourceType}/${SourceId}", + ConditionKeys: []string{}, + Resource: "DomainNameAccessAssociation", + }, + { + Arn: "arn:${Partition}:apigateway:${Region}:${Account}:/domainnameaccessassociations", + ConditionKeys: []string{ + "apigateway:Request/AccessAssociationSource", + "apigateway:Request/DomainNameArn", + "aws:ResourceTag/${TagKey}", + }, + Resource: "DomainNameAccessAssociations", + }, { Arn: "arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/gatewayresponses/${ResponseType}", ConditionKeys: []string{ @@ -7424,6 +8338,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resource: "Models", }, + { + Arn: "arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}+${DomainIdentifier}/basepathmappings/${BasePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "PrivateBasePathMapping", + }, + { + Arn: "arn:${Partition}:apigateway:${Region}::/domainnames/${DomainName}+${DomainIdentifier}/basepathmappings", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "PrivateBasePathMappings", + }, + { + Arn: "arn:${Partition}:apigateway:${Region}:${Account}:/domainnames/${DomainName}+${DomainIdentifier}", + ConditionKeys: []string{ + "apigateway:Request/EndpointType", + "apigateway:Resource/EndpointType", + "aws:ResourceTag/${TagKey}", + }, + Resource: "PrivateDomainName", + }, { Arn: "arn:${Partition}:apigateway:${Region}::/restapis/${RestApiId}/requestvalidators/${RequestValidatorId}", ConditionKeys: []string{ @@ -7649,6 +8586,8 @@ func getParliamentIamPermissions() ParliamentPermissions { "iam:CreateServiceLinkedRole", "iam:PutRolePolicy", "kms:CreateGrant", + "profile:GetDomain", + "profile:GetProfileObjectType", "s3:GetBucketNotification", "s3:GetEncryptionConfiguration", "s3:PutBucketNotification", @@ -7679,6 +8618,8 @@ func getParliamentIamPermissions() ParliamentPermissions { "appflow:DescribeConnectorProfiles", "appflow:TagResource", "appflow:UseConnectorProfile", + "profile:CreateSnapshot", + "profile:GetSnapshot", }, ResourceType: "data-integration*", }, @@ -8141,6 +9082,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a DataIntegrationAssociation", + Privilege: "UpdateDataIntegrationAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "profile:CreateSnapshot", + "profile:GetSnapshot", + }, + ResourceType: "data-integration-association*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to modify an EventIntegration", @@ -8448,6 +9411,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to view account-wide AppConfig settings", + Privilege: "GetAccountSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to view details about an application", @@ -9012,6 +9987,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to modify account-wide AppConfig settings", + Privilege: "UpdateAccountSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to modify an application", @@ -9261,6 +10248,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "appauthorization*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appbundle*", + }, }, }, { @@ -9288,11 +10280,6 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to create app bundles in your account", Privilege: "CreateAppBundle", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "appbundle*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -9358,6 +10345,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "appauthorization*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appbundle*", + }, }, }, { @@ -9377,6 +10369,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to delete ingestions within an app bundle", Privilege: "DeleteIngestion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appbundle*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -9389,6 +10386,16 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to delete destinations within an ingestion", Privilege: "DeleteIngestionDestination", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appbundle*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ingestion*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -9577,6 +10584,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to start ingestions", Privilege: "StartIngestion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appbundle*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -9601,6 +10613,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to stop ingestions", Privilege: "StopIngestion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appbundle*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -10365,6 +11382,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the forecast data for a predictive scaling policy", + Privilege: "GetPredictiveScalingForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list tags for a scalable target", @@ -10604,6 +11633,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to add or remove exclusion windows from Amazon CloudWatch SLOs", + Privilege: "BatchUpdateExclusionWindows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "slo*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a service level objective", @@ -10655,6 +11696,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to share Application Signals resources with a monitoring account", + Privilege: "Link", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list entities associated with other entities", + Privilege: "ListObservedEntities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list service dependencies", @@ -10679,6 +11744,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list exclusion windows for an Amazon CloudWatch SLO", + Privilege: "ListServiceLevelObjectiveExclusionWindows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "slo*", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list service level objectives", @@ -11415,6 +12492,338 @@ func getParliamentIamPermissions() ParliamentPermissions { Resources: []ParliamentResource{}, ServiceName: "Amazon CloudWatch Application Insights", }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "applicationinsights", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an application from a resource group", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a component from a group of resources", + Privilege: "CreateComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create log a pattern", + Privilege: "CreateLogPattern", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a component", + Privilege: "DeleteComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a log pattern", + Privilege: "DeleteLogPattern", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an application", + Privilege: "DescribeApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a component", + Privilege: "DescribeComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a component's configuration", + Privilege: "DescribeComponentConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the recommended application component configuration", + Privilege: "DescribeComponentConfigurationRecommendation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a log pattern", + Privilege: "DescribeLogPattern", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an observation", + Privilege: "DescribeObservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a problem", + Privilege: "DescribeProblem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the observation in a problem", + Privilege: "DescribeProblemObservations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all applications", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list an application's components", + Privilege: "ListComponents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list configuration history", + Privilege: "ListConfigurationHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list log pattern sets for an application", + Privilege: "ListLogPatternSets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list log patterns", + Privilege: "ListLogPatterns", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the problems in an application", + Privilege: "ListProblems", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for the resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a component", + Privilege: "UpdateComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a component's configuration", + Privilege: "UpdateComponentConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a log pattern", + Privilege: "UpdateLogPattern", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "CloudWatch Application Insights", + }, ParliamentService{ Conditions: []ParliamentCondition{ { @@ -13939,6 +15348,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to create a custom branding theme, which might includes a custom logo, website links, and other branding to display to your users", + Privilege: "CreateThemeForStack", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update an existing image within customer account", @@ -14160,6 +15581,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a custom branding theme, which might includes a custom logo, website links, and other branding to display to your users", + Privilege: "DeleteThemeForStack", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to disable usage report generation", @@ -14355,6 +15788,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get the custom branding theme information, which might includes a custom logo, website links, and other branding to display to your users", + Privilege: "DescribeThemeForStack", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve a list that describes one or more usage report subscriptions", @@ -14921,6 +16366,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update the custom branding theme information, which might includes a custom logo, website links, and other branding to display to your users", + Privilege: "UpdateThemeForStack", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, + }, + }, }, Resources: []ParliamentResource{ { @@ -14975,6 +16432,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ServiceName: "Amazon AppStream 2.0", }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "appstudio", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to describe the account's current status", + Privilege: "GetAccountStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch status of a enablement job", + Privilege: "GetEnablementJobStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to submit a enablement job", + Privilege: "StartEnablementJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to rollback an enablement job", + Privilege: "StartRollbackEnablementJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a team deployment", + Privilege: "StartTeamDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:appstudio:${Region}:${Account}:instance/${InstanceId}", + ConditionKeys: []string{}, + Resource: "instance", + }, + { + Arn: "arn:${Partition}:appstudio:${Region}:${Account}:application/${ApplicationId}", + ConditionKeys: []string{}, + Resource: "application", + }, + { + Arn: "arn:${Partition}:appstudio:${Region}:${Account}:connector/${ConnectionId}", + ConditionKeys: []string{}, + Resource: "connector", + }, + }, + ServiceName: "AWS App Studio", + }, ParliamentService{ Conditions: []ParliamentCondition{ { @@ -15036,6 +16577,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to create an API", + Privilege: "CreateApi", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create an API cache in AppSync", @@ -15060,6 +16619,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to create a channel namespace", + Privilege: "CreateChannelNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a data source", @@ -15078,7 +16658,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateDomainName", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -15138,6 +16722,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a API. This will also clean up every AppSync resource below that API", + Privilege: "DeleteApi", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete an API cache in AppSync", @@ -15162,6 +16765,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a channel namespace", + Privilege: "DeleteChannelNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete a data source", @@ -15184,6 +16806,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "domain*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -15313,6 +16942,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to connect to an Event API", + Privilege: "EventConnect", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to publish events to a channel namespace", + Privilege: "EventPublish", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to subscribe to a channel namespace", + Privilege: "EventSubscribe", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to flush an API cache in AppSync", @@ -15325,6 +16990,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an API", + Privilege: "GetApi", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to read custom domain name - GraphQL API association details in AppSync", @@ -15349,6 +17033,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a channel namespace", + Privilege: "GetChannelNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve a data source", @@ -15383,6 +17086,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "domain*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -15529,6 +17239,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list APIs", + Privilege: "ListApis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list channel namespace", + Privilege: "ListChannelNamespaces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list the data sources for a given API", @@ -15547,7 +17290,9 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "ListDomainNames", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -15618,6 +17363,21 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to list the tags for a resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -15753,7 +17513,17 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graphqlapi*", + ResourceType: "api", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", }, { ConditionKeys: []string{}, @@ -15779,7 +17549,17 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graphqlapi*", + ResourceType: "api", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", }, { ConditionKeys: []string{}, @@ -15789,6 +17569,28 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{ "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an API", + Privilege: "UpdateApi", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "api*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -15819,6 +17621,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update a channel namespace", + Privilege: "UpdateChannelNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channelNamespace*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update a data source", @@ -15841,6 +17662,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "domain*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -15920,9 +17748,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Resource: "datasource", }, { - Arn: "arn:${Partition}:appsync:${Region}:${Account}:domainnames/${DomainName}", - ConditionKeys: []string{}, - Resource: "domain", + Arn: "arn:${Partition}:appsync:${Region}:${Account}:domainnames/${DomainName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "domain", }, { Arn: "arn:${Partition}:appsync:${Region}:${Account}:apis/${GraphQLAPIId}", @@ -15956,6 +17786,20 @@ func getParliamentIamPermissions() ParliamentPermissions { ConditionKeys: []string{}, Resource: "mergedApiAssociation", }, + { + Arn: "arn:${Partition}:appsync:${Region}:${Account}:apis/${ApiId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "api", + }, + { + Arn: "arn:${Partition}:appsync:${Region}:${Account}:apis/${ApiId}/channelNamespace/${ChannelNamespaceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channelNamespace", + }, }, ServiceName: "AWS AppSync", }, @@ -16229,6 +18073,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:DescribeVpcEndpointServices", "m2:CreateDataSetImportTask", "m2:GetApplication", + "m2:GetApplicationVersion", "m2:GetBatchJobExecution", "m2:GetDataSetDetails", "m2:GetDataSetImportTask", @@ -16353,35 +18198,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:apptest:${Region}:${Account}:testcase/${testCaseId}", + Arn: "arn:${Partition}:apptest:${Region}:${Account}:testcase/${TestCaseId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "TestCase", }, { - Arn: "arn:${Partition}:apptest:${Region}:${Account}:testconfiguration/${testConfigurationId}", + Arn: "arn:${Partition}:apptest:${Region}:${Account}:testconfiguration/${TestConfigurationId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "TestConfiguration", }, { - Arn: "arn:${Partition}:apptest:${Region}:${Account}:testrun/${testRunId}", + Arn: "arn:${Partition}:apptest:${Region}:${Account}:testrun/${TestRunId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "TestRun", }, { - Arn: "arn:${Partition}:apptest:${Region}:${Account}:testsuite/${testSuiteId}", + Arn: "arn:${Partition}:apptest:${Region}:${Account}:testsuite/${TestSuiteId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "TestSuite", }, }, - ServiceName: "AWS Mainframe Modernization Application Testing provides tools and resources for automated functional equivalence testing for your migration projects.", + ServiceName: "AWS Mainframe Modernization Application Testing", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -16736,6 +18581,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to describe workspace configuration", + Privilege: "DescribeWorkspaceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get a silence", @@ -17203,6 +19067,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update a scraper", + Privilege: "UpdateScraper", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "aps:CreateScraper", + "aps:TagResource", + }, + ResourceType: "scraper*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to modify the alias of existing AMP workspace", @@ -17222,6 +19113,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update workspace configuration", + Privilege: "UpdateWorkspaceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, }, Resources: []ParliamentResource{ { @@ -17263,6 +19173,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ParliamentService{ Conditions: []ParliamentCondition{ + { + Condition: "arc-zonal-shift:ResourceIdentifier", + Description: "Filters access by the resource identifier of the managed resource", + Type: "String", + }, { Condition: "aws:ResourceTag/${TagKey}", Description: "Filters access by the tags associated with the managed resource", @@ -17293,6 +19208,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17321,6 +19237,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17346,6 +19263,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17354,6 +19272,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get autoshift observer notification status", + Privilege: "GetAutoshiftObserverNotificationStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get information about a managed resource", @@ -17371,6 +19301,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17432,6 +19363,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17440,6 +19372,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update autoshift observer notification status", + Privilege: "UpdateAutoshiftObserverNotificationStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update a practice run configuration", @@ -17460,6 +19404,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17485,6 +19430,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17510,6 +19456,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17523,6 +19470,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/app/${LoadBalancerName}/${LoadBalancerId}", ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, @@ -17531,13 +19479,14 @@ func getParliamentIamPermissions() ParliamentPermissions { { Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/net/${LoadBalancerName}/${LoadBalancerId}", ConditionKeys: []string{ + "arc-zonal-shift:ResourceIdentifier", "aws:ResourceTag/${TagKey}", "elasticloadbalancing:ResourceTag/${TagKey}", }, Resource: "NLB", }, }, - ServiceName: "Amazon Route 53 Application Recovery Controller - Zonal Shift", + ServiceName: "Amazon Application Recovery Controller - Zonal Shift", }, ParliamentService{ Conditions: []ParliamentCondition{}, @@ -17586,6 +19535,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to accept the terms of an NDA Document for a given agreement resource", + Privilege: "AcceptNdaForAgreement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "agreement*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to download an AWS agreement that has not yet been accepted or a customer agreement that has been accepted by the customer account", @@ -17627,6 +19588,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get an AWS agreement that has not yet been accepted by the customer account", + Privilege: "GetAgreement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "agreement*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an AWS agreement that has been accepted by the customer account", + Privilege: "GetCustomerAgreement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "customer-agreement*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the NDA Document for a given agreement resource", + Privilege: "GetNdaForAgreement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "agreement*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to download a report", @@ -17663,6 +19660,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list AWS agreements", + Privilege: "ListAgreements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list customer-agreement resources that have been accepted by the customer account", + Privilege: "ListCustomerAgreements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list reports in your account", @@ -19648,6 +21669,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ParliamentService{ Conditions: []ParliamentCondition{ + { + Condition: "autoscaling:CapacityReservationIds", + Description: "Filters access based on the Capacity Reservation IDs", + Type: "ArrayOfString", + }, + { + Condition: "autoscaling:CapacityReservationResourceGroupArns", + Description: "Filters access based on the ARN of a Capacity Reservation resource group", + Type: "ArrayOfString", + }, { Condition: "autoscaling:ImageId", Description: "Filters access based on the AMI ID for the launch configuration", @@ -19905,6 +21936,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "autoscaling:CapacityReservationIds", + "autoscaling:CapacityReservationResourceGroupArns", "autoscaling:InstanceTypes", "autoscaling:LaunchConfigurationName", "autoscaling:LaunchTemplateVersionSpecified", @@ -20749,6 +22782,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "autoscaling:CapacityReservationIds", + "autoscaling:CapacityReservationResourceGroupArns", "autoscaling:InstanceTypes", "autoscaling:LaunchConfigurationName", "autoscaling:LaunchTemplateVersionSpecified", @@ -21057,6 +23092,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to users to view the entitlements associated with an agreement", + Privilege: "GetAgreementEntitlements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to users to view the details of their subscription requests for data products that require subscription verification", @@ -21093,6 +23140,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to users to view charges associated with their agreements", + Privilege: "ListAgreementCharges", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to users to list their subscription requests for products that require subscription verification", @@ -21177,6 +23236,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to users to update purchase orders for charges associated with their agreements", + Privilege: "UpdatePurchaseOrders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to users to see their account's subscriptions", @@ -21628,6 +23699,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ServiceName: "AWS Marketplace Catalog", }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "aws-marketplace", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to view a dashboard that shows a buyer's AWS Marketplace purchase data", + Privilege: "GetBuyerDashboard", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Dashboard*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:aws-marketplace::${Account}:${Catalog}/ReportingData/${FactTable}/Dashboard/${DashboardName}", + ConditionKeys: []string{}, + Resource: "Dashboard", + }, + }, + ServiceName: "AWS Marketplace Reporting", + }, ParliamentService{ Conditions: []ParliamentCondition{}, Prefix: "aws-marketplace", @@ -22204,6 +24301,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a starter JSONATA/XSLT template", + Privilege: "CreateStarterMappingTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "transformer*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a transformer", @@ -22267,6 +24376,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a starter JSONATA/XSLT mapping template from Amazon Bedrock", + Privilege: "GenerateMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "transformer*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get a capability", @@ -22449,6 +24570,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to convert a JSON/XML to an edi document", + Privilege: "TestConversion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "transformer*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to map a sample file", @@ -22635,6 +24768,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the Framework ARNs", Type: "ArrayOfARN", }, + { + Condition: "backup:Index", + Description: "Filters access by the value of Index parameter", + Type: "String", + }, { Condition: "backup:MaxRetentionDays", Description: "Filters access by the value of the MaxRetentionDays parameter", @@ -23278,6 +25416,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get indexing details for a recovery point", + Privilege: "GetRecoveryPointIndexDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recoveryPoint*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get recovery point restore metadata", @@ -23470,6 +25620,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to get list indexed recovery points", + Privilege: "ListIndexedRecoveryPoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to list indexed recovery points to search", + Privilege: "ListIndexedRecoveryPointsForSearch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list legal holds", @@ -23737,6 +25911,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to search a recovery point", + Privilege: "SearchRecoveryPoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recoveryPoint*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to start a new backup job", @@ -23938,6 +26124,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update recovery point index settings", + Privilege: "UpdateRecoveryPointIndexSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recoveryPoint*", + }, + { + ConditionKeys: []string{ + "backup:Index", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update the lifecycle of the recovery point", @@ -24468,21 +26673,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:backup-gateway::${Account}:gateway/${GatewayId}", + Arn: "arn:${Partition}:backup-gateway:${Region}:${Account}:gateway/${GatewayId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "gateway", }, { - Arn: "arn:${Partition}:backup-gateway::${Account}:hypervisor/${HypervisorId}", + Arn: "arn:${Partition}:backup-gateway:${Region}:${Account}:hypervisor/${HypervisorId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "hypervisor", }, { - Arn: "arn:${Partition}:backup-gateway::${Account}:vm/${VirtualmachineId}", + Arn: "arn:${Partition}:backup-gateway:${Region}:${Account}:vm/${VirtualmachineId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, @@ -24491,6 +26696,232 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ServiceName: "AWS Backup Gateway", }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "backup-search", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to get details of a search job", + Privilege: "GetSearchJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of a search result export job", + Privilege: "GetSearchResultExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchExportJob*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list backups in scope of a search job", + Privilege: "ListSearchJobBackups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list results of a search job", + Privilege: "ListSearchJobResults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list search jobs", + Privilege: "ListSearchJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list search result export jobs", + Privilege: "ListSearchResultExportJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchExportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a search job", + Privilege: "StartSearchJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an export job for an existing search job", + Privilege: "StartSearchResultExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "searchJob*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an in-progress search job", + Privilege: "StopSearchJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchExportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchExportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "searchJob", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:backup-search:${Region}:${Account}:search-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "searchJob", + }, + { + Arn: "arn:${Partition}:backup-search:${Region}:${Account}:search-export-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "searchExportJob", + }, + }, + ServiceName: "AWS Backup Search", + }, ParliamentService{ Conditions: []ParliamentCondition{}, Prefix: "backup-storage", @@ -24721,6 +27152,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the image used to start a container for an Amazon EKS job", Type: "String", }, + { + Condition: "batch:EKSNamespace", + Description: "Filters access by the namespace of a cluster used to run the pod for an Amazon EKS job", + Type: "String", + }, { Condition: "batch:EKSPrivileged", Description: "Filters access by the specified privileged parameter value that determines whether the container is given elevated privileges on the host container instance (similar to the root user) for an Amazon EKS job", @@ -24803,23 +27239,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Batch job queue in your account", - Privilege: "CreateJobQueue", + Description: "Grants permission to create an AWS Batch consumable resource in your account", + Privilege: "CreateConsumableResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "compute-environment*", + ResourceType: "consumable-resource*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "job-queue*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Batch job queue in your account", + Privilege: "CreateJobQueue", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scheduling-policy", + ResourceType: "compute-environment*", }, { ConditionKeys: []string{ @@ -24827,7 +27273,12 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job-queue*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "scheduling-policy", }, }, }, @@ -24863,6 +27314,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Batch consumable resource in your account", + Privilege: "DeleteConsumableResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete an AWS Batch job queue in your account", @@ -24911,6 +27374,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to describe one or more AWS Batch consumable resource in your account", + Privilege: "DescribeConsumableResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to describe one or more AWS Batch job definitions in your account", @@ -24971,6 +27446,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list AWS Batch consumable resources in your account", + Privilege: "ListConsumableResources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list jobs for a specified AWS Batch job queue in your account", @@ -24983,6 +27470,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list AWS Batch jobs that require a specific consumable resource in your account", + Privilege: "ListJobsByConsumableResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list AWS Batch scheduling policies in your account", @@ -25005,6 +27504,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "compute-environment", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -25037,6 +27541,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "job-definition*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource", + }, { ConditionKeys: []string{ "batch:User", @@ -25052,6 +27561,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "batch:EKSRunAsUser", "batch:EKSRunAsGroup", "batch:EKSPrivileged", + "batch:EKSNamespace", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -25065,6 +27575,17 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to submit an AWS Batch job from a job definition in your account", Privilege: "SubmitJob", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "batch:ShareIdentifier", + "batch:EKSImage", + "batch:EKSNamespace", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "job*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -25076,14 +27597,9 @@ func getParliamentIamPermissions() ParliamentPermissions { ResourceType: "job-queue*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "batch:ShareIdentifier", - "batch:EKSImage", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "consumable-resource", }, }, }, @@ -25097,6 +27613,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "compute-environment", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -25149,6 +27670,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "compute-environment", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -25190,6 +27716,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update an AWS Batch consumable resource in your account", + Privilege: "UpdateConsumableResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "consumable-resource*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update an AWS Batch job queue in your account", @@ -25266,6 +27804,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resource: "scheduling-policy", }, + { + Arn: "arn:${Partition}:batch:${Region}:${Account}:consumable-resource/${ConsumableResourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "consumable-resource", + }, }, ServiceName: "AWS Batch", }, @@ -25526,77 +28071,77 @@ func getParliamentIamPermissions() ParliamentPermissions { Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by creating requests based on the allowed set of values for each of the mandatory tags", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by having actions based on the tag value associated with the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by creating requests based on the presence of mandatory tags in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, - { - Condition: "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn", - Description: "Filters access by the secretArn containing the credentials of the third party platform", - Type: "ARN", - }, }, - Prefix: "bedrock", + Prefix: "bcm-pricing-calculator", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Grants permission to configure vended log delivery for a knowledge base", - Privilege: "AllowVendedLogDeliveryForResource", + AccessLevel: "Write", + Description: "Grants permission to create a new bill estimate. Charge is incurred for successful bill estimates", + Privilege: "CreateBillEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base", + ResourceType: "bill-scenario", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to apply a guardrail", - Privilege: "ApplyGuardrail", + AccessLevel: "Write", + Description: "Grants permission to create a new bill scenario", + Privilege: "CreateBillScenario", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "guardrail*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a knowledge base with an agent", - Privilege: "AssociateAgentKnowledgeBase", + Description: "Grants permission to create new commitments or remove existing commitment from a specified bill scenario", + Privilege: "CreateBillScenarioCommitmentModification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "bill-scenario*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create usage in the specified bill scenario", + Privilege: "CreateBillScenarioUsageModification", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "bill-scenario*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to use 3rd party platform to store knowledge data", - Privilege: "AssociateThirdPartyKnowledgeBase", + Description: "Grants permission to create a new Workload estimate", + Privilege: "CreateWorkloadEstimate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -25604,326 +28149,349 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new agent and a test agent alias pointing to the DRAFT agent version", - Privilege: "CreateAgent", + Description: "Grants permission to create usage in the specified workload estimate", + Privilege: "CreateWorkloadEstimateUsage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workload-estimate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new action group in an existing agent", - Privilege: "CreateAgentActionGroup", + Description: "Grants permission to delete bill estimate", + Privilege: "DeleteBillEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bill-estimate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new alias for an agent", - Privilege: "CreateAgentAlias", + Description: "Grants permission to delete a bill scenario", + Privilege: "DeleteBillScenario", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bill-scenario*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a data source", - Privilege: "CreateDataSource", + Description: "Grants permission to delete newly added commitments from the specified bill scenario", + Privilege: "DeleteBillScenarioCommitmentModification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "bill-scenario*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a job for evaluation foundation models or custom models", - Privilege: "CreateEvaluationJob", + Description: "Grants permission to delete newly added usage from the specified bill scenario", + Privilege: "DeleteBillScenarioUsageModification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "bill-scenario*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified workload estimate", + Privilege: "DeleteWorkloadEstimate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workload-estimate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new foundation model agreement", - Privilege: "CreateFoundationModelAgreement", + Description: "Grants permission to delete newly added usage from the specified workload estimate", + Privilege: "DeleteWorkloadEstimateUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workload-estimate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new guardrail", - Privilege: "CreateGuardrail", + AccessLevel: "Read", + Description: "Grants permission to retrieve details of a bill estimate including estimated cost", + Privilege: "GetBillEstimate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bill-estimate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new guardrail version", - Privilege: "CreateGuardrailVersion", + AccessLevel: "Read", + Description: "Grants permission to retrieve information associated with a bill scenario", + Privilege: "GetBillScenario", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "guardrail*", + ResourceType: "bill-scenario*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a knowledge base", - Privilege: "CreateKnowledgeBase", + AccessLevel: "Read", + Description: "Grants permission to retrieve applicable rate type preferences for the account", + Privilege: "GetPreferences", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a job for customizing the model with your custom training data", - Privilege: "CreateModelCustomizationJob", + AccessLevel: "Read", + Description: "Grants permission to retrieve information associated with a workload estimate", + Privilege: "GetWorkloadEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "workload-estimate*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list commitments associated with the specified bill estimate", + Privilege: "ListBillEstimateCommitments", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "bill-estimate*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list added or removed commitments for a specified bill estimate", + Privilege: "ListBillEstimateInputCommitmentModifications", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bill-estimate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a job for evaluation foundation models or custom models", - Privilege: "CreateModelEvaluationJob", + AccessLevel: "List", + Description: "Grants permission to list added or modified usage for a specified bill estimate", + Privilege: "ListBillEstimateInputUsageModifications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "bill-estimate*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list result line items for a specified bill estimate", + Privilege: "ListBillEstimateLineItems", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "bill-estimate*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list bill estimates", + Privilege: "ListBillEstimates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new model invocation job", - Privilege: "CreateModelInvocationJob", + AccessLevel: "List", + Description: "Grants permission to list commitments included in a bill scenario", + Privilege: "ListBillScenarioCommitmentModifications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "bill-scenario*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list usage lines of a specified bill scenario", + Privilege: "ListBillScenarioUsageModifications", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "bill-scenario*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list bill scenarios", + Privilege: "ListBillScenarios", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new provisioned model throughput", - Privilege: "CreateProvisionedModelThroughput", + AccessLevel: "Tagging", + Description: "Grants permission to return a list of tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list usage lines for the specified workload estimate", + Privilege: "ListWorkloadEstimateUsage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "workload-estimate*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list workload estimates", + Privilege: "ListWorkloadEstimates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Agent that you created earlier", - Privilege: "DeleteAgent", + AccessLevel: "Tagging", + Description: "Grants permission to add a tag to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an actionGroup that you created earlier", - Privilege: "DeleteAgentActionGroup", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AgentAlias that you created earlier", - Privilege: "DeleteAgentAlias", + Description: "Grants permission to update bill estimate name and expiration date time", + Privilege: "UpdateBillEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-alias*", + ResourceType: "bill-estimate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Agent Version that you created earlier", - Privilege: "DeleteAgentVersion", + Description: "Grants permission to update name and expiration date time of the specified bill scenario", + Privilege: "UpdateBillScenario", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "bill-scenario*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom model that you created earlier", - Privilege: "DeleteCustomModel", + Description: "Grants permission to update commitment group of commitments in the specified bill scenario", + Privilege: "UpdateBillScenarioCommitmentModification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "bill-scenario*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a data source", - Privilege: "DeleteDataSource", + Description: "Grants permission to update usage amount, usage hour, and usage group in the specified bill scenario", + Privilege: "UpdateBillScenarioUsageModification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "bill-scenario*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a foundation model agreement that you created earlier", - Privilege: "DeleteFoundationModelAgreement", + Description: "Grants permission to update rate type preferences for the account", + Privilege: "UpdatePreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -25934,68 +28502,133 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a guardrail or its version", - Privilege: "DeleteGuardrail", + Description: "Grants permission to update name and expiration date time of the specified workload estimate", + Privilege: "UpdateWorkloadEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "guardrail*", + ResourceType: "workload-estimate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a knowledge base", - Privilege: "DeleteKnowledgeBase", + Description: "Grants permission to update usage amount and usage group in the specified workload estimate based on the usage id", + Privilege: "UpdateWorkloadEstimateUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "workload-estimate*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete an existing Invocation logging configuration", - Privilege: "DeleteModelInvocationLoggingConfiguration", + Arn: "arn:${Partition}:bcm-pricing-calculator:${Region}:${Account}:bill-estimate/${BillEstimateId}", + ConditionKeys: []string{}, + Resource: "bill-estimate", + }, + { + Arn: "arn:${Partition}:bcm-pricing-calculator:${Region}:${Account}:bill-scenario/${BillScenarioId}", + ConditionKeys: []string{}, + Resource: "bill-scenario", + }, + { + Arn: "arn:${Partition}:bcm-pricing-calculator:${Region}:${Account}:workload-estimate/${WorkloadEstimateId}", + ConditionKeys: []string{}, + Resource: "workload-estimate", + }, + }, + ServiceName: "AWS Billing And Cost Management Pricing Calculator", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by creating requests based on the allowed set of values for each of the mandatory tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by having actions based on the tag value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by creating requests based on the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "bedrock:GuardrailIdentifier", + Description: "Filters access by the GuardrailIdentifier containing the GuardrailArn or the GuardrailArn:NumericVersion", + Type: "ARN", + }, + { + Condition: "bedrock:InferenceProfileArn", + Description: "Filters access by the specified inference profile", + Type: "ARN", + }, + { + Condition: "bedrock:InlineAgentName", + Description: "Filters access by the Inline Agent Names, this will be used in InvokeInlineAgent API names", + Type: "String", + }, + { + Condition: "bedrock:PromptRouterArn", + Description: "Filters access by the specified prompt router", + Type: "ARN", + }, + { + Condition: "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn", + Description: "Filters access by the secretArn containing the credentials of the third party platform", + Type: "ARN", + }, + }, + Prefix: "bedrock", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for a knowledge base", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a provisioned model throughput that you created earlier", - Privilege: "DeleteProvisionedModelThroughput", + AccessLevel: "Read", + Description: "Grants permission to apply a guardrail", + Privilege: "ApplyGuardrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioned-model*", + ResourceType: "guardrail*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect if the provided content is generated using Amazon Bedrock", - Privilege: "DetectGeneratedContent", + AccessLevel: "Write", + Description: "Grants permission to associate another existing agent as a collaborator to an existing agent", + Privilege: "AssociateAgentCollaborator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "agent*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a knowledge base from the agent", - Privilege: "DisassociateAgentKnowledgeBase", + Description: "Grants permission to associate a knowledge base with an agent", + Privilege: "AssociateAgentKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26010,45 +28643,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing agent", - Privilege: "GetAgent", + AccessLevel: "Write", + Description: "Grants permission to use 3rd party platform to store knowledge data", + Privilege: "AssociateThirdPartyKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn", + }, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing action group", - Privilege: "GetAgentActionGroup", + AccessLevel: "Write", + Description: "Grants permission to batch delete list of bedrock evaluation jobs", + Privilege: "BatchDeleteEvaluationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "evaluation-job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing alias", - Privilege: "GetAgentAlias", + AccessLevel: "Write", + Description: "Grants permission to create a new agent and a test agent alias pointing to the DRAFT agent version", + Privilege: "CreateAgent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "agent-alias*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a knowledge base associated with an agent", - Privilege: "GetAgentKnowledgeBase", + AccessLevel: "Write", + Description: "Grants permission to create a new action group in an existing agent", + Privilege: "CreateAgentActionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26056,515 +28694,713 @@ func getParliamentIamPermissions() ParliamentPermissions { ResourceType: "agent*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing version of an agent", - Privilege: "GetAgentVersion", + AccessLevel: "Write", + Description: "Grants permission to create a new alias for an agent", + Privilege: "CreateAgentAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "agent*", }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a Bedrock custom model that you have created", - Privilege: "GetCustomModel", + AccessLevel: "Write", + Description: "Grants permission to create a blueprint for custom output from data automation", + Privilege: "CreateBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing data source", - Privilege: "GetDataSource", + AccessLevel: "Write", + Description: "Grants permission to create a new version for an existing blueprint", + Privilege: "CreateBlueprintVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "blueprint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a evaluation job. Use this operation to get the status of a evaluation job", - Privilege: "GetEvaluationJob", + AccessLevel: "Write", + Description: "Grants permission to create a data automation project", + Privilege: "CreateDataAutomationProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-job*", + ResourceType: "blueprint", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a Bedrock foundation model", - Privilege: "GetFoundationModel", + AccessLevel: "Write", + Description: "Grants permission to create a data source", + Privilege: "CreateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the availability of a foundation model", - Privilege: "GetFoundationModelAvailability", + AccessLevel: "Write", + Description: "Grants permission to create a job for evaluation foundation models or custom models", + Privilege: "CreateEvaluationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "custom-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "default-prompt-router*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt-router*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a guardrail or its version", - Privilege: "GetGuardrail", + AccessLevel: "Write", + Description: "Grants permission to create a prompt flow", + Privilege: "CreateFlow", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "guardrail*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing ingestion job", - Privilege: "GetIngestionJob", + AccessLevel: "Write", + Description: "Grants permission to create an alias of a prompt flow", + Privilege: "CreateFlowAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "flow*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing knowledge base", - Privilege: "GetKnowledgeBase", + AccessLevel: "Write", + Description: "Grants permission to create an immutable version of a prompt flow", + Privilege: "CreateFlowVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a model-customization job. Use this operation to get the status of a model-customization job", - Privilege: "GetModelCustomizationJob", + AccessLevel: "Write", + Description: "Grants permission to create a new foundation model agreement", + Privilege: "CreateFoundationModelAgreement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-customization-job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a model-evaluation job. Use this operation to get the status of a model-evaluation job", - Privilege: "GetModelEvaluationJob", + AccessLevel: "Write", + Description: "Grants permission to create a new guardrail", + Privilege: "CreateGuardrail", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "model-evaluation-job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a model invocation job", - Privilege: "GetModelInvocationJob", + AccessLevel: "Write", + Description: "Grants permission to create a new guardrail version", + Privilege: "CreateGuardrailVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-invocation-job*", + ResourceType: "guardrail*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing Invocation logging configuration", - Privilege: "GetModelInvocationLoggingConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create inference profiles", + Privilege: "CreateInferenceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application-inference-profile*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-profile*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a provisioned model throughput", - Privilege: "GetProvisionedModelThroughput", + AccessLevel: "Write", + Description: "Grants permission to create a new invocation in an existing session", + Privilege: "CreateInvocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioned-model*", + ResourceType: "session*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a use case for model access", - Privilege: "GetUseCaseForModelAccess", + AccessLevel: "Write", + Description: "Grants permission to create a knowledge base", + Privilege: "CreateKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to send user input (text-only) to the alias of an agent for Bedrock", - Privilege: "InvokeAgent", + AccessLevel: "Write", + Description: "Grants permission to create a marketplace model endpoint", + Privilege: "CreateMarketplaceModelEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-alias*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to invoke the specified Bedrock model to run inference using the input provided in the request body", - Privilege: "InvokeModel", + AccessLevel: "Write", + Description: "Grants permission to create a job for copying a custom model across region or across account", + Privilege: "CreateModelCopyJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "custom-model*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "provisioned-model*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to invoke the specified Bedrock model to run inference using the input provided in the request body with streaming response", - Privilege: "InvokeModelWithResponseStream", + AccessLevel: "Write", + Description: "Grants permission to create a job for customizing the model with your custom training data", + Privilege: "CreateModelCustomizationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "foundation-model*", + ResourceType: "custom-model*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioned-model*", + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list action groups in an agent", - Privilege: "ListAgentActionGroups", + AccessLevel: "Write", + Description: "Grants permission to create a job for evaluation foundation models or custom models", + Privilege: "CreateModelEvaluationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "custom-model*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list aliases for an agent", - Privilege: "ListAgentAliases", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list knowledge bases associated with an agent", - Privilege: "ListAgentKnowledgeBases", + AccessLevel: "Write", + Description: "Grants permission to create a job for importing model into Bedrock", + Privilege: "CreateModelImportJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list existing versions of an agent", - Privilege: "ListAgentVersions", + AccessLevel: "Write", + Description: "Grants permission to create a new model invocation job", + Privilege: "CreateModelInvocationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "custom-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "foundation-model*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing agents", - Privilege: "ListAgents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "model-invocation-job*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of Bedrock custom models that you have created", - Privilege: "ListCustomModels", + AccessLevel: "Write", + Description: "Grants permission to create a prompt", + Privilege: "CreatePrompt", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list existing data sources in an knowledge base", - Privilege: "ListDataSources", + AccessLevel: "Write", + Description: "Grants permission to create a custom prompt router", + Privilege: "CreatePromptRouter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "application-inference-profile*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-profile*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the list of evaluation jobs that you have submitted", - Privilege: "ListEvaluationJobs", + AccessLevel: "Write", + Description: "Grants permission to create a version of a prompt", + Privilege: "CreatePromptVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "prompt*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of foundation model agreement offers", - Privilege: "ListFoundationModelAgreementOffers", + AccessLevel: "Write", + Description: "Grants permission to create a new provisioned model throughput", + Privilege: "CreateProvisionedModelThroughput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "custom-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Bedrock foundation models that you can use", - Privilege: "ListFoundationModels", + AccessLevel: "Write", + Description: "Grants permission to create a new session", + Privilege: "CreateSession", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list guardrails or its versions", - Privilege: "ListGuardrails", + AccessLevel: "Write", + Description: "Grants permission to delete an Agent that you created earlier", + Privilege: "DeleteAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "guardrail", + ResourceType: "agent*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list ingestion jobs in a data source", - Privilege: "ListIngestionJobs", + AccessLevel: "Write", + Description: "Grants permission to delete an actionGroup that you created earlier", + Privilege: "DeleteAgentActionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "agent*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list existing knowledge bases", - Privilege: "ListKnowledgeBases", + AccessLevel: "Write", + Description: "Grants permission to delete an AgentAlias that you created earlier", + Privilege: "DeleteAgentAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent-alias*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the list of model customization jobs that you have submitted", - Privilege: "ListModelCustomizationJobs", + AccessLevel: "Write", + Description: "Grants permission to delete existing memory for an alias", + Privilege: "DeleteAgentMemory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent-alias*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the list of model evaluation jobs that you have submitted", - Privilege: "ListModelEvaluationJobs", + AccessLevel: "Write", + Description: "Grants permission to delete an Agent Version that you created earlier", + Privilege: "DeleteAgentVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list model invocation jobs that you created earlier", - Privilege: "ListModelInvocationJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a blueprint for data automation", + Privilege: "DeleteBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list provisioned model throughputs that you created earlier", - Privilege: "ListProvisionedModelThroughputs", + AccessLevel: "Write", + Description: "Grants permission to delete a custom model that you created earlier", + Privilege: "DeleteCustomModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom-model*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a Bedrock resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a data automation project", + Privilege: "DeleteDataAutomationProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "data-automation-project*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a data source", + Privilege: "DeleteDataSource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-alias*", + ResourceType: "knowledge-base*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a prompt flow", + Privilege: "DeleteFlow", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", + ResourceType: "flow*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an alias of a prompt flow", + Privilege: "DeleteFlowAlias", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-job*", + ResourceType: "flow-alias*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a version of a prompt flow", + Privilege: "DeleteFlowVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "guardrail*", + ResourceType: "flow*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a foundation model agreement that you created earlier", + Privilege: "DeleteFoundationModelAgreement", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a guardrail or its version", + Privilege: "DeleteGuardrail", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-customization-job*", + ResourceType: "guardrail*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete previously created Bedrock imported model", + Privilege: "DeleteImportedModel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-evaluation-job*", + ResourceType: "imported-model*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete inference profiles", + Privilege: "DeleteInferenceProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-invocation-job*", + ResourceType: "application-inference-profile*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a knowledge base", + Privilege: "DeleteKnowledgeBase", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioned-model*", + ResourceType: "knowledge-base*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to prepare an existing agent to receive runtime requests", - Privilege: "PrepareAgent", + Description: "Grants permission to delete documents from a knowledge base", + Privilege: "DeleteKnowledgeBaseDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "knowledge-base*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put entitlement to access a foundation model", - Privilege: "PutFoundationModelEntitlement", + Description: "Grants permission to unsubscribe from a bedrock marketplace enabled AWS marketplace model", + Privilege: "DeleteMarketplaceModelAgreement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26575,20 +29411,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an existing Invocation logging configuration", - Privilege: "PutModelInvocationLoggingConfiguration", + Description: "Grants permission to delete a marketplace model endpoint", + Privilege: "DeleteMarketplaceModelEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bedrock-marketplace-model-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put a use case for model access", - Privilege: "PutUseCaseForModelAccess", + Description: "Grants permission to delete an existing Invocation logging configuration", + Privilege: "DeleteModelInvocationLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26598,210 +29434,151 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve ingested data from a knowledge base", - Privilege: "Retrieve", + AccessLevel: "Write", + Description: "Grants permission to delete a prompt or its version", + Privilege: "DeletePrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "prompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt-version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send user input to perform retrieval and generation", - Privilege: "RetrieveAndGenerate", + Description: "Grants permission to delete a custom prompt router", + Privilege: "DeletePromptRouter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt-router*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an ingestion job", - Privilege: "StartIngestionJob", + Description: "Grants permission to delete a provisioned model throughput that you created earlier", + Privilege: "DeleteProvisionedModelThroughput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "provisioned-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a evaluation job while in progress", - Privilege: "StopEvaluationJob", + Description: "Deletes a previously created Bedrock resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-job*", + ResourceType: "custom-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a Bedrock model customization job while in progress", - Privilege: "StopModelCustomizationJob", + Description: "Grants permission to delete a Session that you created earlier", + Privilege: "DeleteSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-customization-job*", + ResourceType: "session*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a model invocation job that you started earlier", - Privilege: "StopModelInvocationJob", + Description: "Grants permission to deregister a marketplace model endpoint to make it unusable in Bedrock Marketplace", + Privilege: "DeregisterMarketplaceModelEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-invocation-job*", + ResourceType: "bedrock-marketplace-model-endpoint*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to Tag a Bedrock resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to detect if the provided content is generated using Amazon Bedrock", + Privilege: "DetectGeneratedContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent", + ResourceType: "foundation-model*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to diassociate a collaborator that you associated earlier", + Privilege: "DisassociateAgentCollaborator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-alias", + ResourceType: "agent*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a knowledge base from the agent", + Privilege: "DisassociateAgentKnowledgeBase", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model", + ResourceType: "agent*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "guardrail", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "knowledge-base", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-customization-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-evaluation-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-invocation-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "provisioned-model", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to Untag a Bedrock resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to end a Session that you created earlier", + Privilege: "EndSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "agent-alias", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "custom-model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "evaluation-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "guardrail", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "knowledge-base", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-customization-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-evaluation-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-invocation-job", + ResourceType: "session*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to generate queries associated with user input", + Privilege: "GenerateQuery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioned-model", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing agent", - Privilege: "UpdateAgent", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing agent", + Privilege: "GetAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26811,9 +29588,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing action group", - Privilege: "UpdateAgentActionGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing action group", + Privilege: "GetAgentActionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26823,9 +29600,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing alias", - Privilege: "UpdateAgentAlias", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing alias", + Privilege: "GetAgentAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -26835,27 +29612,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a knowledge base associated with an agent", - Privilege: "UpdateAgentKnowledgeBase", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing collaborator", + Privilege: "GetAgentCollaborator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "agent*", }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "knowledge-base*", - }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a data source", - Privilege: "UpdateDataSource", + AccessLevel: "Read", + Description: "Grants permission to describe a knowledge base associated with an agent", + Privilege: "GetAgentKnowledgeBase", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "agent*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -26864,151 +29641,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a guardrail", - Privilege: "UpdateGuardrail", + AccessLevel: "Read", + Description: "Grants permission to retrieve existing memory for an alias", + Privilege: "GetAgentMemory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "guardrail*", + ResourceType: "agent-alias*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a knowledge base", - Privilege: "UpdateKnowledgeBase", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing version of an agent", + Privilege: "GetAgentVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "knowledge-base*", + ResourceType: "agent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a provisioned model throughput that you created earlier", - Privilege: "UpdateProvisionedModelThroughput", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with an asynchronous invocation that you have submitted", + Privilege: "GetAsyncInvoke", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-model*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "foundation-model*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "provisioned-model*", + ResourceType: "async-invoke*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:bedrock:${Region}::foundation-model/${ResourceId}", - ConditionKeys: []string{}, - Resource: "foundation-model", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:custom-model/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "custom-model", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:provisioned-model/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "provisioned-model", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-customization-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model-customization-job", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:agent/${AgentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "agent", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:agent-alias/${AgentId}/${AgentAliasId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "agent-alias", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:knowledge-base/${KnowledgeBaseId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "knowledge-base", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-evaluation-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model-evaluation-job", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:evaluation-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "evaluation-job", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-invocation-job/${JobIdentifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model-invocation-job", - }, - { - Arn: "arn:${Partition}:bedrock:${Region}:${Account}:guardrail/${GuardrailId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "guardrail", - }, - }, - ServiceName: "Amazon Bedrock", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "billing", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to perform queries on billing information", - Privilege: "GetBillingData", + Description: "Grants permission to retrieve an existing blueprint for data automation", + Privilege: "GetBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view detailed line item billing information", - Privilege: "GetBillingDetails", + Description: "Grants permission to retrieve blueprint recommendation", + Privilege: "GetBlueprintRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27019,116 +29702,116 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view notifications sent by AWS related to your accounts billing information", - Privilege: "GetBillingNotifications", + Description: "Grants permission to get the properties associated with a Bedrock custom model that you have created", + Privilege: "GetCustomModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom-model*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view billing preferences such as reserved instance, savings plans and credits sharing", - Privilege: "GetBillingPreferences", + Description: "Grants permission to retrieve an existing data automation project", + Privilege: "GetDataAutomationProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-automation-project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the account's contract information including the contract number, end-user organization names, PO numbers and if the account is used to service public-sector customers", - Privilege: "GetContractInformation", + Description: "Grants permission to retrieve the status of a data automation invocation job", + Privilege: "GetDataAutomationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-automation-invocation-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view credits that have been redeemed", - Privilege: "GetCredits", + Description: "Grants permission to retrieve an existing data source", + Privilege: "GetDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the state of the Allow IAM Access billing preference", - Privilege: "GetIAMAccessPreference", + Description: "Grants permission to get the properties associated with a evaluation job. Use this operation to get the status of a evaluation job", + Privilege: "GetEvaluationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "evaluation-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the account's default Seller of Record", - Privilege: "GetSellerOfRecord", + Description: "Grants permission to retrieve an existing prompt flow", + Privilege: "GetFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flow*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get billing information for your proforma billing groups", - Privilege: "ListBillingViews", + Description: "Grants permission to retrieve an existing alias of a prompt flow", + Privilege: "GetFlowAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flow-alias*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the account's contract information end-user organization names and if the account is used to service public-sector customers", - Privilege: "PutContractInformation", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing version of a prompt flow", + Privilege: "GetFlowVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to redeem an AWS credit", - Privilege: "RedeemCredits", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a Bedrock foundation model", + Privilege: "GetFoundationModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "foundation-model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update billing preferences such as reserved instance, savings plans and credits sharing", - Privilege: "UpdateBillingPreferences", + AccessLevel: "Read", + Description: "Grants permission to get the availability of a foundation model", + Privilege: "GetFoundationModelAvailability", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27138,286 +29821,252 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the Allow IAM Access billing preference", - Privilege: "UpdateIAMAccessPreference", + AccessLevel: "Read", + Description: "Grants permission to retrieve a guardrail or its version", + Privilege: "GetGuardrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "guardrail*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Billing", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "billingconductor", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate between one and 30 accounts to a billing group", - Privilege: "AssociateAccounts", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with Bedrock imported model", + Privilege: "GetImportedModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "imported-model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate pricing rules", - Privilege: "AssociatePricingRules", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with an inference profile", + Privilege: "GetInferenceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan*", + ResourceType: "application-inference-profile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule*", + ResourceType: "inference-profile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to batch associate resources to a percentage custom line item", - Privilege: "BatchAssociateResourcesToCustomLineItem", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing ingestion job", + Privilege: "GetIngestionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem*", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to batch disassociate resources from a percentage custom line item", - Privilege: "BatchDisassociateResourcesFromCustomLineItem", + AccessLevel: "Read", + Description: "Grants permission to get an invocation step from a session", + Privilege: "GetInvocationStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem*", + ResourceType: "session*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a billing group", - Privilege: "CreateBillingGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing knowledge base", + Privilege: "GetKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a custom line item", - Privilege: "CreateCustomLineItem", + AccessLevel: "Read", + Description: "Grants permission to get details for documents in a knowledge base", + Privilege: "GetKnowledgeBaseDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a pricing plan", - Privilege: "CreatePricingPlan", + AccessLevel: "Read", + Description: "Grants permission to get the properties of a marketplace model endpoint", + Privilege: "GetMarketplaceModelEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule*", + ResourceType: "bedrock-marketplace-model-endpoint*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a model-copy job. Use this operation to get the status of a model-copy job", + Privilege: "GetModelCopyJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-copy-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a pricing rule", - Privilege: "CreatePricingRule", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a model-customization job. Use this operation to get the status of a model-customization job", + Privilege: "GetModelCustomizationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-customization-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a billing group", - Privilege: "DeleteBillingGroup", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a model-evaluation job. Use this operation to get the status of a model-evaluation job", + Privilege: "GetModelEvaluationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "model-evaluation-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a custom line item", - Privilege: "DeleteCustomLineItem", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a model import job and is used to get the status of a model import job", + Privilege: "GetModelImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem*", + ResourceType: "model-import-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a pricing plan", - Privilege: "DeletePricingPlan", + AccessLevel: "Read", + Description: "Grants permission to retrieve a model invocation job", + Privilege: "GetModelInvocationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan*", + ResourceType: "model-invocation-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a pricing rule", - Privilege: "DeletePricingRule", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing Invocation logging configuration", + Privilege: "GetModelInvocationLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to detach between one and 30 accounts from a billing group", - Privilege: "DisassociateAccounts", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing prompt or its version", + Privilege: "GetPrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "prompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt-version*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate pricing rules", - Privilege: "DisassociatePricingRules", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a prompt router", + Privilege: "GetPromptRouter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan*", + ResourceType: "default-prompt-router*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule*", + ResourceType: "prompt-router*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the billing group cost report for the specified billing group", - Privilege: "GetBillingGroupCostReport", + Description: "Grants permission to retrieve a provisioned model throughput", + Privilege: "GetProvisionedModelThroughput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "provisioned-model*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the linked accounts of the payer account for the given billing period while also providing the billing group the linked accounts belong to", - Privilege: "ListAccountAssociations", + AccessLevel: "Read", + Description: "Gets the resource policy document for a Bedrock resource", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom-model*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the billing group cost report", - Privilege: "ListBillingGroupCostReports", + Description: "Grants permission to retrieve an existing session", + Privilege: "GetSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the details of billing groups", - Privilege: "ListBillingGroups", + Description: "Grants permission to retrieve a use case for model access", + Privilege: "GetUseCaseForModelAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27427,153 +30076,156 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view custom line item versions", - Privilege: "ListCustomLineItemVersions", + AccessLevel: "Write", + Description: "Grants permission to directly ingest documents into a knowledge base", + Privilege: "IngestKnowledgeBaseDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem*", + ResourceType: "knowledge-base*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view custom line item details", - Privilege: "ListCustomLineItems", + Description: "Grants permission to send user input (text-only) to the alias of an agent for Bedrock", + Privilege: "InvokeAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent-alias*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the pricing plans details", - Privilege: "ListPricingPlans", + AccessLevel: "Write", + Description: "Grants permission to invoke blueprint recommendations asynchronously", + Privilege: "InvokeBlueprintRecommendationAsync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-automation-profile*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list pricing plans associated with a pricing rule", - Privilege: "ListPricingPlansAssociatedWithPricingRule", + AccessLevel: "Write", + Description: "Grants permission to use the conversational builder which aids in building supported bedrock resources", + Privilege: "InvokeBuilder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view pricing rules details", - Privilege: "ListPricingRules", + AccessLevel: "Write", + Description: "Grants permission to invoke a Bedrock data automation job", + Privilege: "InvokeDataAutomationAsync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-automation-profile*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-automation-project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list pricing rules associated to a pricing plan", - Privilege: "ListPricingRulesAssociatedToPricingPlan", + AccessLevel: "Read", + Description: "Grants permission to invoke a prompt flow with user input", + Privilege: "InvokeFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan*", + ResourceType: "flow-alias*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list resources associated to a percentage custom line item", - Privilege: "ListResourcesAssociatedToCustomLineItem", + AccessLevel: "Read", + Description: "Grants permission to send user input (text-only) to the inline agent for Bedrock", + Privilege: "InvokeInlineAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags of a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to invoke the specified Bedrock model to run inference using the input provided in the request body", + Privilege: "InvokeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup", + ResourceType: "application-inference-profile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem", + ResourceType: "async-invoke*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan", + ResourceType: "bedrock-marketplace-model-endpoint*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule", + ResourceType: "default-prompt-router*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "foundation-model*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup", + ResourceType: "imported-model*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem", + ResourceType: "inference-profile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan", + ResourceType: "prompt-router*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule", + ResourceType: "provisioned-model*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "bedrock:InferenceProfileArn", + "bedrock:PromptRouterArn", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "bedrock:GuardrailIdentifier", }, DependentActions: []string{}, ResourceType: "", @@ -27581,33 +30233,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to invoke the specified Bedrock model to run inference using the input provided in the request body with streaming response", + Privilege: "InvokeModelWithResponseStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup", + ResourceType: "application-inference-profile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem", + ResourceType: "bedrock-marketplace-model-endpoint*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan", + ResourceType: "default-prompt-router*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule", + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "imported-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-profile*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt-router*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provisioned-model*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "bedrock:InferenceProfileArn", + "bedrock:PromptRouterArn", + "bedrock:GuardrailIdentifier", }, DependentActions: []string{}, ResourceType: "", @@ -27615,110 +30289,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a billing group", - Privilege: "UpdateBillingGroup", + AccessLevel: "List", + Description: "Grants permission to list action groups in an agent", + Privilege: "ListAgentActionGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "agent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a custom line item", - Privilege: "UpdateCustomLineItem", + AccessLevel: "List", + Description: "Grants permission to list aliases for an agent", + Privilege: "ListAgentAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customlineitem*", + ResourceType: "agent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a pricing plan", - Privilege: "UpdatePricingPlan", + AccessLevel: "List", + Description: "Grants permission to list collaborators for an agent", + Privilege: "ListAgentCollaborators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingplan*", + ResourceType: "agent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a pricing rule", - Privilege: "UpdatePricingRule", + AccessLevel: "List", + Description: "Grants permission to list knowledge bases associated with an agent", + Privilege: "ListAgentKnowledgeBases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pricingrule*", + ResourceType: "agent*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:billingconductor::${Account}:billinggroup/${BillingGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "billinggroup", - }, - { - Arn: "arn:${Partition}:billingconductor::${Account}:pricingplan/${PricingPlanId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "pricingplan", - }, - { - Arn: "arn:${Partition}:billingconductor::${Account}:pricingrule/${PricingRuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "pricingrule", - }, { - Arn: "arn:${Partition}:billingconductor::${Account}:customlineitem/${CustomLineItemId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list existing versions of an agent", + Privilege: "ListAgentVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "agent*", + }, }, - Resource: "customlineitem", - }, - }, - ServiceName: "AWS Billing Conductor", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", }, - }, - Prefix: "braket", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept the Amazon Braket user agreement", - Privilege: "AcceptUserAgreement", + AccessLevel: "List", + Description: "Grants permission to list existing agents", + Privilege: "ListAgents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27728,9 +30361,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to check if an Amazon Braket feature is enabled for an account. Customers need this permission to use all features available in the console", - Privilege: "AccessBraketFeature", + AccessLevel: "List", + Description: "Grants permission to get a list of asynchronous invocations that you have submitted", + Privilege: "ListAsyncInvokes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27740,63 +30373,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a job", - Privilege: "CancelJob", + AccessLevel: "List", + Description: "Grants permission to list existing blueprints for data automation", + Privilege: "ListBlueprints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "data-automation-project", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a quantum task", - Privilege: "CancelQuantumTask", + AccessLevel: "List", + Description: "Grants permission to get a list of Bedrock custom models that you have created", + Privilege: "ListCustomModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quantum-task*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a job", - Privilege: "CreateJob", + AccessLevel: "List", + Description: "Grants permission to list existing data automation projects", + Privilege: "ListDataAutomationProjects", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a quantum task", - Privilege: "CreateQuantumTask", + AccessLevel: "List", + Description: "Grants permission to list existing data sources in an knowledge base", + Privilege: "ListDataSources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the devices available in Amazon Braket", - Privilege: "GetDevice", + AccessLevel: "List", + Description: "Grants permission to get the list of evaluation jobs that you have submitted", + Privilege: "ListEvaluationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27806,33 +30433,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve jobs", - Privilege: "GetJob", + AccessLevel: "List", + Description: "Grants permission to list existing aliases of a prompt flow", + Privilege: "ListFlowAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve quantum tasks", - Privilege: "GetQuantumTask", + AccessLevel: "List", + Description: "Grants permission to list existing versions of a prompt flow", + Privilege: "ListFlowVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quantum-task*", + ResourceType: "flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check if the Amazon Braket service linked role has been created", - Privilege: "GetServiceLinkedRoleStatus", + AccessLevel: "List", + Description: "Grants permission to list existing prompt flows", + Privilege: "ListFlows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27842,9 +30469,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to check if the account has accepted the Amazon Braket user agreement", - Privilege: "GetUserAgreementStatus", + AccessLevel: "List", + Description: "Grants permission to get a list of foundation model agreement offers", + Privilege: "ListFoundationModelAgreementOffers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27854,26 +30481,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to listing the tags that have been applied to the quantum task resource or the job", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list Bedrock foundation models that you can use", + Privilege: "ListFoundationModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list guardrails or its versions", + Privilege: "ListGuardrails", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quantum-task", + ResourceType: "guardrail", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for devices available in Amazon Braket", - Privilege: "SearchDevices", + AccessLevel: "List", + Description: "Grants permission to get list of Bedrock imported models", + Privilege: "ListImportedModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27883,9 +30517,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for jobs", - Privilege: "SearchJobs", + AccessLevel: "List", + Description: "Grants permission to list inference profiles that you can use", + Privilege: "ListInferenceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -27895,585 +30529,398 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for quantum tasks", - Privilege: "SearchQuantumTasks", + AccessLevel: "List", + Description: "Grants permission to list ingestion jobs in a data source", + Privilege: "ListIngestionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a quantum task or a hybrid job", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to get list of invocation step from a session", + Privilege: "ListInvocationSteps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "session*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list invocations in a session", + Privilege: "ListInvocations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quantum-task", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from a quantum task resource or a job. A tag consists of a key-value pair", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list documents in a knowledge base", + Privilege: "ListKnowledgeBaseDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "knowledge-base*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list existing knowledge bases", + Privilege: "ListKnowledgeBases", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quantum-task", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list marketplace model endpoints that you can use", + Privilege: "ListMarketplaceModelEndpoints", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:braket:${Region}:${Account}:quantum-task/${RandomId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to get the list of model copy jobs that you have submitted", + Privilege: "ListModelCopyJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "quantum-task", }, { - Arn: "arn:${Partition}:braket:${Region}:${Account}:job/${JobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to get the list of model customization jobs that you have submitted", + Privilege: "ListModelCustomizationJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "job", - }, - }, - ServiceName: "Amazon Braket", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the tag keys that are passed in the request", - Type: "ArrayOfString", }, - }, - Prefix: "budgets", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to configure a response that executes once your budget exceeds a specific budget threshold. Creating a budget action with tags also requires the 'budgets:TagResource' permission", - Privilege: "CreateBudgetAction", + AccessLevel: "List", + Description: "Grants permission to get the list of model evaluation jobs that you have submitted", + Privilege: "ListModelEvaluationJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "budgetAction*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an action that is associated with a specific budget", - Privilege: "DeleteBudgetAction", + AccessLevel: "List", + Description: "Grants permission to get list of model import jobs", + Privilege: "ListModelImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of a specific budget action associated with a budget", - Privilege: "DescribeBudgetAction", + AccessLevel: "List", + Description: "Grants permission to list model invocation jobs that you created earlier", + Privilege: "ListModelInvocationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a historical view of the budget actions statuses associated with a particular budget action. These status include statues such as 'Standby', 'Pending' and 'Executed'", - Privilege: "DescribeBudgetActionHistories", + AccessLevel: "List", + Description: "Grants permission to list prompt routers that you can use", + Privilege: "ListPromptRouters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of all of the budget actions associated with your account", - Privilege: "DescribeBudgetActionsForAccount", + AccessLevel: "List", + Description: "Grants permission to list existing prompts", + Privilege: "ListPrompts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of all of the budget actions associated with a budget", - Privilege: "DescribeBudgetActionsForBudget", + AccessLevel: "List", + Description: "Grants permission to list provisioned model throughputs that you created earlier", + Privilege: "ListProvisionedModelThroughputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budget*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate a pending budget action as well as reverse a previously executed budget action", - Privilege: "ExecuteBudgetAction", + AccessLevel: "List", + Description: "Grants permission to list existing sessions", + Privilege: "ListSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view resource tags for a budget or budget action", + Description: "Grants permission to list tags for a Bedrock resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budget", + ResourceType: "agent*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction", + ResourceType: "agent-alias*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create and modify budgets, and edit budget details. Creating a budget with tags also requires the 'budgets:TagResource' permission", - Privilege: "ModifyBudget", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budget*", + ResourceType: "application-inference-profile*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to apply resource tags to a budget or budget action. Also needed to create a budget or budget action with tags", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budget", + ResourceType: "async-invoke*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction", + ResourceType: "blueprint*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom-model*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove resource tags from a budget or budget action", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budget", + ResourceType: "data-automation-invocation-job*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budgetAction", + ResourceType: "data-automation-project*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "evaluation-job*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the details of a specific budget action associated with a budget", - Privilege: "UpdateBudgetAction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "budgetAction*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "flow*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view budgets and budget details", - Privilege: "ViewBudget", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "budget*", + ResourceType: "flow-alias*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:budgets::${Account}:budget/${BudgetName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - Resource: "budget", - }, - { - Arn: "arn:${Partition}:budgets::${Account}:budget/${BudgetName}/action/${ActionId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - Resource: "budgetAction", - }, - }, - ServiceName: "AWS Budget Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "bugbust", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create a BugBust event", - Privilege: "CreateEvent", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "guardrail*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to evaluate checked-in profiling groups", - Privilege: "EvaluateProfilingGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "imported-model*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view customer details about an event", - Privilege: "GetEvent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "model-copy-job*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-customization-job*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the status of a BugBust player's attempt to join a BugBust event", - Privilege: "GetJoinEventStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "model-evaluation-job*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-import-job*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to join an event", - Privilege: "JoinEvent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "model-invocation-job*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the bugs that were imported into an event for players to work on", - Privilege: "ListBugs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeguru-reviewer:DescribeCodeReview", - "codeguru-reviewer:ListRecommendations", - }, - ResourceType: "Event*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt-router*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt-version*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the participants of an event", - Privilege: "ListEventParticipants", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "provisioned-model*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the scores of an event's players", - Privilege: "ListEventScores", + Description: "Grants permission to optimize a prompt with user input", + Privilege: "OptimizePrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to List BugBust events", - Privilege: "ListEvents", + AccessLevel: "Write", + Description: "Grants permission to prepare an existing agent to receive runtime requests", + Privilege: "PrepareAgent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the profiling groups that were imported into an event for players to work on", - Privilege: "ListProfilingGroups", + AccessLevel: "Write", + Description: "Grants permission to apply the latest changes made to a prompt flow, so that they are reflected at runtime", + Privilege: "PrepareFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the pull requests used by players to submit fixes to their claimed bugs in an event", - Privilege: "ListPullRequests", + AccessLevel: "Write", + Description: "Grants permission to put entitlement to access a foundation model", + Privilege: "PutFoundationModelEntitlement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists tag for a Bugbust resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to put an invocation step into an invocation in session", + Privilege: "PutInvocationStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "session*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an existing Invocation logging configuration", + Privilege: "PutModelInvocationLoggingConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a Bugbust resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Adds a resource policy for a Bedrock resource", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", + ResourceType: "custom-model*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -28481,646 +30928,404 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a Bugbust resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to put a use case for model access", + Privilege: "PutUseCaseForModelAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Event*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a BugBust event", - Privilege: "UpdateEvent", + Description: "Grants permission to register a sagemaker endpoint as a marketplace model endpoint", + Privilege: "RegisterMarketplaceModelEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeguru-profiler:DescribeProfilingGroup", - "codeguru-profiler:ListProfilingGroups", - "codeguru-reviewer:DescribeCodeReview", - "codeguru-reviewer:ListCodeReviews", - "codeguru-reviewer:ListRecommendations", - "codeguru-reviewer:TagResource", - "codeguru-reviewer:UnTagResource", - }, - ResourceType: "Event*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bedrock-marketplace-model-endpoint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a work item as claimed or unclaimed (bug or profiling group)", - Privilege: "UpdateWorkItem", + AccessLevel: "Read", + Description: "Grants permission to render an existing prompt or its version", + Privilege: "RenderPrompt", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeguru-reviewer:ListRecommendations", - }, - ResourceType: "Event*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt-version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an event's work item (bug or profiling group)", - Privilege: "UpdateWorkItemAdmin", + Description: "Grants permission to rank documents based on user input", + Privilege: "Rerank", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeguru-reviewer:ListRecommendations", - }, - ResourceType: "Event*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:bugbust:${Region}:${Account}:events/${EventId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Event", - }, - }, - ServiceName: "AWS BugBust", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "connect:UserArn", - Description: "Filters access by connect's UserArn", - Type: "ARN", - }, - }, - Prefix: "cases", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the fields in the case domain", - Privilege: "BatchGetField", + Description: "Grants permission to retrieve ingested data from a knowledge base", + Privilege: "Retrieve", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "knowledge-base*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the field options in the case domain", - Privilege: "BatchPutFieldOptions", + Description: "Grants permission to send user input to perform retrieval and generation", + Privilege: "RetrieveAndGenerate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a case in the case domain", - Privilege: "CreateCase", + Description: "Grants permission to start an ingestion job", + Privilege: "StartIngestionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Domain*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "knowledge-base*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a evaluation job while in progress", + Privilege: "StopEvaluationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", - }, - { - ConditionKeys: []string{ - "connect:UserArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "evaluation-job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new case domain", - Privilege: "CreateDomain", + Description: "Grants permission to stop an ingestion job", + Privilege: "StopIngestionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "knowledge-base*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a field in the case domain", - Privilege: "CreateField", + Description: "Grants permission to stop a Bedrock model customization job while in progress", + Privilege: "StopModelCustomizationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "model-customization-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a model invocation job that you started earlier", + Privilege: "StopModelInvocationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "model-invocation-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a layout in the case domain", - Privilege: "CreateLayout", + AccessLevel: "Tagging", + Description: "Grants permission to Tag a Bedrock resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "agent", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout*", + ResourceType: "agent-alias", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a related item associated to a case in the case domain", - Privilege: "CreateRelatedItem", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", + ResourceType: "application-inference-profile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "async-invoke", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelatedItem*", + ResourceType: "blueprint", }, { - ConditionKeys: []string{ - "connect:UserArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom-model", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a template in the case domain", - Privilege: "CreateTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "data-automation-invocation-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout*", + ResourceType: "data-automation-project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "evaluation-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the domain", - Privilege: "DeleteDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "flow", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the field in the case domain", - Privilege: "DeleteField", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "flow-alias", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "guardrail", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the layout in the case domain", - Privilege: "DeleteLayout", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "imported-model", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout*", + ResourceType: "knowledge-base", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a related item associated to a case in the case domain", - Privilege: "DeleteRelatedItem", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", + ResourceType: "model-copy-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "model-customization-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelatedItem*", + ResourceType: "model-evaluation-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the template in the case domain", - Privilege: "DeleteTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "model-import-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "model-invocation-job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a case in the case domain", - Privilege: "GetCase", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", + ResourceType: "prompt", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "prompt-router", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "prompt-version", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view audit history of a case", - Privilege: "GetCaseAuditEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", + ResourceType: "provisioned-model", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "session", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the case event configuraton in the case domain", - Privilege: "GetCaseEventConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to Untag a Bedrock resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "agent", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the case domain", - Privilege: "GetDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "agent-alias", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the layout in the case domain", - Privilege: "GetLayout", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "application-inference-profile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout*", + ResourceType: "async-invoke", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the template in the case domain", - Privilege: "GetTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "blueprint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "custom-model", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list cases for a specific contact in the case domain", - Privilege: "ListCasesForContact", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "data-automation-invocation-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all domains in the aws account", - Privilege: "ListDomains", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-automation-project", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list field options for a single select field in the case domain", - Privilege: "ListFieldOptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "evaluation-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "flow", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list fields in the case domain", - Privilege: "ListFields", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "flow-alias", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list layouts in the case domain", - Privilege: "ListLayouts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "guardrail", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list the tags for the specified resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "imported-model", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list templates in the case domain", - Privilege: "ListTemplates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "knowledge-base", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to insert or update the case event configuration in the case domain", - Privilege: "PutCaseEventConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "model-copy-job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to search for cases in the case domain", - Privilege: "SearchCases", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "model-customization-job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to search for related items associated to the case in the case domain", - Privilege: "SearchRelatedItems", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", + ResourceType: "model-evaluation-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "model-import-job", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add the specified tags to the specified resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case", + ResourceType: "model-invocation-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain", + ResourceType: "prompt", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field", + ResourceType: "prompt-router", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout", + ResourceType: "prompt-version", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelatedItem", + ResourceType: "provisioned-model", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template", + ResourceType: "session", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -29129,210 +31334,448 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update an existing agent", + Privilege: "UpdateAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case", + ResourceType: "agent*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing action group", + Privilege: "UpdateAgentActionGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain", + ResourceType: "agent*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing alias", + Privilege: "UpdateAgentAlias", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field", + ResourceType: "agent-alias*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing collaborator", + Privilege: "UpdateAgentCollaborator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout", + ResourceType: "agent*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a knowledge base associated with an agent", + Privilege: "UpdateAgentKnowledgeBase", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelatedItem", + ResourceType: "agent*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template", + ResourceType: "knowledge-base*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a blueprint for data automation", + Privilege: "UpdateBlueprint", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the field values on the case in the case domain", - Privilege: "UpdateCase", + Description: "Grants permission to update a data automation project", + Privilege: "UpdateDataAutomationProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Case*", + ResourceType: "data-automation-project*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "blueprint", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a data source", + Privilege: "UpdateDataSource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "knowledge-base*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a prompt flow", + Privilege: "UpdateFlow", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:UserArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the field in the case domain", - Privilege: "UpdateField", + Description: "Grants permission to update the configuration of an alias of a prompt flow", + Privilege: "UpdateFlowAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "flow-alias*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a guardrail", + Privilege: "UpdateGuardrail", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Field*", + ResourceType: "guardrail*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the layout in the case domain", - Privilege: "UpdateLayout", + Description: "Grants permission to update a knowledge base", + Privilege: "UpdateKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "knowledge-base*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a marketplace model endpoint", + Privilege: "UpdateMarketplaceModelEndpoint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Layout*", + ResourceType: "bedrock-marketplace-model-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the template in the case domain", - Privilege: "UpdateTemplate", + Description: "Grants permission to update a prompt", + Privilege: "UpdatePrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "prompt*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a provisioned model throughput that you created earlier", + Privilege: "UpdateProvisionedModelThroughput", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "custom-model*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "foundation-model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provisioned-model*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing session", + Privilege: "UpdateSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "session*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to validate prompt flow definitions", + Privilege: "ValidateFlowDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/case/${CaseId}", + Arn: "arn:${Partition}:bedrock:${Region}::foundation-model/${ResourceId}", + ConditionKeys: []string{}, + Resource: "foundation-model", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:async-invoke/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Case", + Resource: "async-invoke", }, { - Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}", + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:inference-profile/${ResourceId}", + ConditionKeys: []string{}, + Resource: "inference-profile", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:default-prompt-router/${ResourceId}", + ConditionKeys: []string{}, + Resource: "default-prompt-router", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:prompt-router/${ResourceId}", + ConditionKeys: []string{}, + Resource: "prompt-router", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:application-inference-profile/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Domain", + Resource: "application-inference-profile", }, { - Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/field/${FieldId}", + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:custom-model/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Field", + Resource: "custom-model", }, { - Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/layout/${LayoutId}", + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:provisioned-model/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Layout", + Resource: "provisioned-model", }, { - Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/case/${CaseId}/related-item/${RelatedItemId}", + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-customization-job/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "RelatedItem", + Resource: "model-customization-job", }, { - Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/template/${TemplateId}", + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:agent/${AgentId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Template", + Resource: "agent", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:agent-alias/${AgentId}/${AgentAliasId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "agent-alias", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:knowledge-base/${KnowledgeBaseId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "knowledge-base", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-evaluation-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model-evaluation-job", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:evaluation-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "evaluation-job", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-invocation-job/${JobIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model-invocation-job", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:guardrail/${GuardrailId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "guardrail", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:flow/${FlowId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "flow", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:flow/${FlowId}/alias/${FlowAliasId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "flow-alias", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-copy-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model-copy-job", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:prompt/${PromptId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "prompt", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:prompt/${PromptId}:${PromptVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "prompt-version", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:model-import-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model-import-job", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:imported-model/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "imported-model", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:marketplace/model-endpoint/all-access", + ConditionKeys: []string{}, + Resource: "bedrock-marketplace-model-endpoint", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:data-automation-project/${ProjectId}", + ConditionKeys: []string{}, + Resource: "data-automation-project", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:blueprint/${BlueprintId}", + ConditionKeys: []string{}, + Resource: "blueprint", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:data-automation-invocation/${JobId}", + ConditionKeys: []string{}, + Resource: "data-automation-invocation-job", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:data-automation-profile/${ProfileId}", + ConditionKeys: []string{}, + Resource: "data-automation-profile", + }, + { + Arn: "arn:${Partition}:bedrock:${Region}:${Account}:session/${SessionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "session", }, }, - ServiceName: "Amazon Connect Cases", + ServiceName: "Amazon Bedrock", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "cassandra", + Prefix: "billing", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to alter a keyspace or table", - Privilege: "Alter", + Description: "Grants permission to create a billing view", + Privilege: "CreateBillingView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ResourceType: "billingview*", }, { ConditionKeys: []string{ @@ -29346,23 +31789,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to alter a multiregion keyspace or table", - Privilege: "AlterMultiRegionResource", + Description: "Grants permission to delete a billing view", + Privilege: "DeleteBillingView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ResourceType: "billingview*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29370,24 +31807,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a keyspace or table", - Privilege: "Create", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a billing view resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ResourceType: "billingview*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29395,122 +31826,121 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a multiregion keyspace or table", - Privilege: "CreateMultiRegionResource", + AccessLevel: "Read", + Description: "Grants permission to perform queries on billing information", + Privilege: "GetBillingData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view detailed line item billing information", + Privilege: "GetBillingDetails", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to drop a keyspace or table", - Privilege: "Drop", + AccessLevel: "Read", + Description: "Grants permission to view notifications sent by AWS related to your accounts billing information", + Privilege: "GetBillingNotifications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view billing preferences such as reserved instance, savings plans and credits sharing", + Privilege: "GetBillingPreferences", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to drop a multiregion keyspace or table", - Privilege: "DropMultiRegionResource", + AccessLevel: "Read", + Description: "Grants permission to get the metadata for a specified billing view", + Privilege: "GetBillingView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", + ResourceType: "billingview*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "table", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to INSERT, UPDATE or DELETE data in a table", - Privilege: "Modify", + AccessLevel: "Read", + Description: "Grants permission to view the account's contract information including the contract number, end-user organization names, PO numbers and if the account is used to service public-sector customers", + Privilege: "GetContractInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to INSERT, UPDATE or DELETE data in a multiregion table", - Privilege: "ModifyMultiRegionResource", + AccessLevel: "Read", + Description: "Grants permission to view credits that have been redeemed", + Privilege: "GetCredits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore table from a backup", - Privilege: "Restore", + AccessLevel: "Read", + Description: "Grants permission to retrieve the state of the Allow IAM Access billing preference", + Privilege: "GetIAMAccessPreference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore multiregion table from a backup", - Privilege: "RestoreMultiRegionTable", + AccessLevel: "Permissions management", + Description: "Grants permission to get the resource policy specified billing view", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "billingview*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29519,47 +31949,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to SELECT data from a table", - Privilege: "Select", + Description: "Grants permission to retrieve the account's default Seller of Record", + Privilege: "GetSellerOfRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to SELECT data from a multiregion table", - Privilege: "SelectMultiRegionResource", + Description: "Grants permission to get a list of all your available billing views", + Privilege: "ListBillingViews", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a multiregion keyspace or table", - Privilege: "TagMultiRegionResource", + AccessLevel: "List", + Description: "Grants permission to get the list of source views for a specified billing view", + Privilege: "ListSourceViewsForBillingView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ResourceType: "billingview*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29567,24 +31991,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a keyspace or table", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get the list of tags for a specified billing view", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ResourceType: "billingview*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29592,49 +32010,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a multiregion keyspace or table", - Privilege: "UnTagMultiRegionResource", + AccessLevel: "Write", + Description: "Grants permission to set the account's contract information end-user organization names and if the account is used to service public-sector customers", + Privilege: "PutContractInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a keyspace or table", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to put a billing view resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "keyspace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ResourceType: "billingview*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29643,94 +32042,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to UPDATE the partitioner in a system table", - Privilege: "UpdatePartitioner", + Description: "Grants permission to redeem an AWS credit", + Privilege: "RedeemCredits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", - }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cassandra:${Region}:${Account}:/keyspace/${KeyspaceName}/", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "keyspace", - }, - { - Arn: "arn:${Partition}:cassandra:${Region}:${Account}:/keyspace/${KeyspaceName}/table/${TableName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "table", - }, - }, - ServiceName: "Amazon Keyspaces (for Apache Cassandra)", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "ce", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create a new Anomaly Monitor", - Privilege: "CreateAnomalyMonitor", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Anomaly Subscription", - Privilege: "CreateAnomalySubscription", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a specified billing view", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billingview*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Cost Category with the requested name and rules", - Privilege: "CreateCostCategoryDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29738,41 +32074,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create Reservation expiration alerts", - Privilege: "CreateNotificationSubscription", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create Cost Explorer Reports", - Privilege: "CreateReport", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Anomaly Monitor", - Privilege: "DeleteAnomalyMonitor", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a specified billing view", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor*", + ResourceType: "billingview*", }, { ConditionKeys: []string{ + "aws:TagKeys", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -29782,32 +32095,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an Anomaly Subscription", - Privilege: "DeleteAnomalySubscription", + Description: "Grants permission to update billing preferences such as reserved instance, savings plans and credits sharing", + Privilege: "UpdateBillingPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalysubscription*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Cost Category", - Privilege: "DeleteCostCategoryDefinition", + Description: "Grants permission to update a billing view", + Privilege: "UpdateBillingView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "costcategory*", + ResourceType: "billingview*", }, { ConditionKeys: []string{ @@ -29820,8 +32126,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete Reservation expiration alerts", - Privilege: "DeleteNotificationSubscription", + Description: "Grants permission to update the Allow IAM Access billing preference", + Privilege: "UpdateIAMAccessPreference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -29830,74 +32136,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:billing::${Account}:billingview/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "billingview", + }, + }, + ServiceName: "AWS Billing", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "billingconductor", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete Cost Explorer Reports", - Privilege: "DeleteReport", + Description: "Grants permission to associate between one and 30 accounts to a billing group", + Privilege: "AssociateAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve descriptions such as the name, ARN, rules, definition, and effective dates of a Cost Category", - Privilege: "DescribeCostCategoryDefinition", + AccessLevel: "Write", + Description: "Grants permission to associate pricing rules", + Privilege: "AssociatePricingRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "costcategory*", + ResourceType: "pricingplan*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingrule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view Reservation expiration alerts", - Privilege: "DescribeNotificationSubscription", + AccessLevel: "Write", + Description: "Grants permission to batch associate resources to a percentage custom line item", + Privilege: "BatchAssociateResourcesToCustomLineItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view Cost Explorer Reports page", - Privilege: "DescribeReport", + AccessLevel: "Write", + Description: "Grants permission to batch disassociate resources from a percentage custom line item", + Privilege: "BatchDisassociateResourcesFromCustomLineItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve anomalies", - Privilege: "GetAnomalies", + AccessLevel: "Write", + Description: "Grants permission to create a billing group", + Privilege: "CreateBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor*", + ResourceType: "pricingplan*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29905,18 +32242,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to query Anomaly Monitors", - Privilege: "GetAnomalyMonitors", + AccessLevel: "Write", + Description: "Grants permission to create a custom line item", + Privilege: "CreateCustomLineItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor*", + ResourceType: "billinggroup*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29924,18 +32262,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to query Anomaly Subscriptions", - Privilege: "GetAnomalySubscriptions", + AccessLevel: "Write", + Description: "Grants permission to create a pricing plan", + Privilege: "CreatePricingPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalysubscription*", + ResourceType: "pricingrule*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -29943,165 +32282,113 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve approximate usage record count for the chosen resource, level, and hourly granularity preferences, derived from the past month's usage", - Privilege: "GetApproximateUsageRecords", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view whether existing or fine-grained IAM actions are being used to control authorization to Billing, Cost Management, and Account consoles", - Privilege: "GetConsoleActionSetEnforced", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the cost and usage metrics for your account", - Privilege: "GetCostAndUsage", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the cost and usage metrics with resources for your account", - Privilege: "GetCostAndUsageWithResources", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to query Cost Catagory names and values for a specified time period", - Privilege: "GetCostCategories", + AccessLevel: "Write", + Description: "Grants permission to create a pricing rule", + Privilege: "CreatePricingRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a cost forecast for a forecast time period", - Privilege: "GetCostForecast", + AccessLevel: "Write", + Description: "Grants permission to delete a billing group", + Privilege: "DeleteBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all available filter values for a filter for a period of time", - Privilege: "GetDimensionValues", + AccessLevel: "Write", + Description: "Grants permission to delete a custom line item", + Privilege: "DeleteCustomLineItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view Cost Explorer Preferences page", - Privilege: "GetPreferences", + AccessLevel: "Write", + Description: "Grants permission to delete a pricing plan", + Privilege: "DeletePricingPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingplan*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the reservation coverage for your account", - Privilege: "GetReservationCoverage", + AccessLevel: "Write", + Description: "Grants permission to delete a pricing rule", + Privilege: "DeletePricingRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingrule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the reservation recommendations for your account", - Privilege: "GetReservationPurchaseRecommendation", + AccessLevel: "Write", + Description: "Grants permission to detach between one and 30 accounts from a billing group", + Privilege: "DisassociateAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the reservation utilization for your account", - Privilege: "GetReservationUtilization", + AccessLevel: "Write", + Description: "Grants permission to disassociate pricing rules", + Privilege: "DisassociatePricingRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingplan*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the rightsizing recommendations for your account", - Privilege: "GetRightsizingRecommendation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingrule*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the Savings Plan recommendation details for your account", - Privilege: "GetSavingsPlanPurchaseRecommendationDetails", + Description: "Grants permission to view the billing group cost report for the specified billing group", + Privilege: "GetBillingGroupCostReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the Savings Plans coverage for your account", - Privilege: "GetSavingsPlansCoverage", + AccessLevel: "List", + Description: "Grants permission to list the linked accounts of the payer account for the given billing period while also providing the billing group the linked accounts belong to", + Privilege: "ListAccountAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30112,8 +32399,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the Savings Plans recommendations for your account", - Privilege: "GetSavingsPlansPurchaseRecommendation", + Description: "Grants permission to view the billing group cost report", + Privilege: "ListBillingGroupCostReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30124,8 +32411,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the Savings Plans utilization for your account", - Privilege: "GetSavingsPlansUtilization", + Description: "Grants permission to view the details of billing groups", + Privilege: "ListBillingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30136,20 +32423,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the Savings Plans utilization details for your account", - Privilege: "GetSavingsPlansUtilizationDetails", + Description: "Grants permission to view custom line item versions", + Privilege: "ListCustomLineItemVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to query tags for a specified time period", - Privilege: "GetTags", + Description: "Grants permission to view custom line item details", + Privilege: "ListCustomLineItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30160,8 +32447,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a usage forecast for a forecast time period", - Privilege: "GetUsageForecast", + Description: "Grants permission to view the pricing plans details", + Privilege: "ListPricingPlans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30172,20 +32459,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list Cost Allocation Tag backfill history", - Privilege: "ListCostAllocationTagBackfillHistory", + Description: "Grants permission to list pricing plans associated with a pricing rule", + Privilege: "ListPricingPlansAssociatedWithPricingRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingrule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Cost Allocation Tags", - Privilege: "ListCostAllocationTags", + AccessLevel: "Read", + Description: "Grants permission to view pricing rules details", + Privilege: "ListPricingRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30196,118 +32483,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve names, ARN, and effective dates for all Cost Categories", - Privilege: "ListCostCategoryDefinitions", + Description: "Grants permission to list pricing rules associated to a pricing plan", + Privilege: "ListPricingRulesAssociatedToPricingPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingplan*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of your historical recommendation generations", - Privilege: "ListSavingsPlansPurchaseRecommendationGeneration", + Description: "Grants permission to list resources associated to a percentage custom line item", + Privilege: "ListResourcesAssociatedToCustomLineItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a Cost Explorer resource", + Description: "Grants permission to list tags of a resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor", + ResourceType: "billinggroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalysubscription", + ResourceType: "customlineitem", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "costcategory", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingplan", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to provide feedback on detected anomalies", - Privilege: "ProvideAnomalyFeedback", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingrule", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to request a Cost Allocation Tag backfill", - Privilege: "StartCostAllocationTagBackfill", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to request a Savings Plans recommendation generation", - Privilege: "StartSavingsPlansPurchaseRecommendationGeneration", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billinggroup", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a Cost Explorer resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor", + ResourceType: "customlineitem", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalysubscription", + ResourceType: "pricingplan", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "costcategory", + ResourceType: "pricingrule", }, { ConditionKeys: []string{ "aws:TagKeys", "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -30316,66 +32577,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a Cost Explorer resource", + Description: "Grants permission to untag a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "anomalysubscription", + ResourceType: "billinggroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "costcategory", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing Anomaly Monitor", - Privilege: "UpdateAnomalyMonitor", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalymonitor*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingplan", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing Anomaly Subscription", - Privilege: "UpdateAnomalySubscription", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomalysubscription*", + ResourceType: "pricingrule", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -30384,117 +32611,109 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change whether existing or fine-grained IAM actions will be used to control authorization to Billing, Cost Management, and Account consoles", - Privilege: "UpdateConsoleActionSetEnforced", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update existing Cost Allocation Tags status", - Privilege: "UpdateCostAllocationTagsStatus", + Description: "Grants permission to update a billing group", + Privilege: "UpdateBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "billinggroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing Cost Category", - Privilege: "UpdateCostCategoryDefinition", + Description: "Grants permission to update a custom line item", + Privilege: "UpdateCustomLineItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "costcategory*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "customlineitem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Reservation expiration alerts", - Privilege: "UpdateNotificationSubscription", + Description: "Grants permission to update a pricing plan", + Privilege: "UpdatePricingPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingplan*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to edit Cost Explorer Preferences page", - Privilege: "UpdatePreferences", + Description: "Grants permission to update a pricing rule", + Privilege: "UpdatePricingRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pricingrule*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update Cost Explorer Reports", - Privilege: "UpdateReport", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:billingconductor::${Account}:billinggroup/${BillingGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "billinggroup", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ce::${Account}:anomalysubscription/${Identifier}", + Arn: "arn:${Partition}:billingconductor::${Account}:pricingplan/${PricingPlanId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "anomalysubscription", + Resource: "pricingplan", }, { - Arn: "arn:${Partition}:ce::${Account}:anomalymonitor/${Identifier}", + Arn: "arn:${Partition}:billingconductor::${Account}:pricingrule/${PricingRuleId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "anomalymonitor", + Resource: "pricingrule", }, { - Arn: "arn:${Partition}:ce::${Account}:costcategory/${Identifier}", + Arn: "arn:${Partition}:billingconductor::${Account}:customlineitem/${CustomLineItemId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "costcategory", + Resource: "customlineitem", }, }, - ServiceName: "AWS Cost Explorer Service", + ServiceName: "AWS Billing Conductor", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "chatbot", + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "braket", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an AWS Chatbot Chime Webhook Configuration", - Privilege: "CreateChimeWebhookConfiguration", + Description: "Grants permission to accept the Amazon Braket user agreement", + Privilege: "AcceptUserAgreement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30504,9 +32723,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Chatbot Microsoft Teams Channel Configuration", - Privilege: "CreateMicrosoftTeamsChannelConfiguration", + AccessLevel: "Read", + Description: "Grants permission to check if an Amazon Braket feature is enabled for an account. Customers need this permission to use all features available in the console", + Privilege: "AccessBraketFeature", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30517,35 +32736,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Chatbot Slack Channel Configuration", - Privilege: "CreateSlackChannelConfiguration", + Description: "Grants permission to cancel a job", + Privilege: "CancelJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Chatbot Chime Webhook Configuration", - Privilege: "DeleteChimeWebhookConfiguration", + Description: "Grants permission to cancel a quantum task", + Privilege: "CancelQuantumTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChatbotConfiguration*", + ResourceType: "quantum-task*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Chatbot Microsoft Teams Channel Configuration", - Privilege: "DeleteMicrosoftTeamsChannelConfiguration", + Description: "Grants permission to create a job", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -30553,20 +32775,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the Microsoft Teams configured with AWS Chatbot in an AWS account", - Privilege: "DeleteMicrosoftTeamsConfiguredTeam", + Description: "Grants permission to create a quantum task", + Privilege: "CreateQuantumTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Chatbot Microsoft Teams User Identity", - Privilege: "DeleteMicrosoftTeamsUserIdentity", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the devices available in Amazon Braket", + Privilege: "GetDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30576,33 +32801,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Chatbot Slack Channel Configuration", - Privilege: "DeleteSlackChannelConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve jobs", + Privilege: "GetJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChatbotConfiguration*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Chatbot Slack User Identity", - Privilege: "DeleteSlackUserIdentity", + AccessLevel: "Read", + Description: "Grants permission to retrieve quantum tasks", + Privilege: "GetQuantumTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "quantum-task*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the Slack workspace authorization with AWS Chatbot, associated with an AWS account", - Privilege: "DeleteSlackWorkspaceAuthorization", + AccessLevel: "Read", + Description: "Grants permission to check if the Amazon Braket service linked role has been created", + Privilege: "GetServiceLinkedRoleStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30613,8 +32838,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list all AWS Chatbot Chime Webhook Configurations in an AWS Account", - Privilege: "DescribeChimeWebhookConfigurations", + Description: "Grants permission to check if the account has accepted the Amazon Braket user agreement", + Privilege: "GetUserAgreementStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30625,20 +32850,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list all AWS Chatbot Slack Channel Configurations in an AWS account", - Privilege: "DescribeSlackChannelConfigurations", + Description: "Grants permission to listing the tags that have been applied to the quantum task resource or the job", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quantum-task", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all public Slack channels in the Slack workspace connected to the AWS Account onboarded with AWS Chatbot service", - Privilege: "DescribeSlackChannels", + Description: "Grants permission to search for devices available in Amazon Braket", + Privilege: "SearchDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30649,8 +32879,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe AWS Chatbot Slack User Identities", - Privilege: "DescribeSlackUserIdentities", + Description: "Grants permission to search for jobs", + Privilege: "SearchJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30661,8 +32891,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list all authorized Slack workspaces connected to the AWS Account onboarded with AWS Chatbot service", - Privilege: "DescribeSlackWorkspaces", + Description: "Grants permission to search for quantum tasks", + Privilege: "SearchQuantumTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30672,81 +32902,156 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve AWS Chatbot account preferences", - Privilege: "GetAccountPreferences", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a quantum task or a hybrid job", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quantum-task", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a single AWS Chatbot Microsoft Teams Channel Configurations in an AWS account", - Privilege: "GetMicrosoftTeamsChannelConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from a quantum task resource or a job. A tag consists of a key-value pair", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quantum-task", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to generate OAuth parameters to request Microsoft Teams OAuth code to be used by the AWS Chatbot service", - Privilege: "GetMicrosoftTeamsOauthParameters", + Arn: "arn:${Partition}:braket:${Region}:${Account}:quantum-task/${RandomId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "quantum-task", + }, + { + Arn: "arn:${Partition}:braket:${Region}:${Account}:job/${JobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "job", + }, + }, + ServiceName: "Amazon Braket", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "budgets", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to configure a response that executes once your budget exceeds a specific budget threshold. Creating a budget action with tags also requires the 'budgets:TagResource' permission", + Privilege: "CreateBudgetAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "budgetAction*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate OAuth parameters to request Slack OAuth code to be used by the AWS Chatbot service", - Privilege: "GetSlackOauthParameters", + AccessLevel: "Write", + Description: "Grants permission to delete an action that is associated with a specific budget", + Privilege: "DeleteBudgetAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budgetAction*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all AWS Chatbot Microsoft Teams Channel Configurations in an AWS account", - Privilege: "ListMicrosoftTeamsChannelConfigurations", + Description: "Grants permission to retrieve the details of a specific budget action associated with a budget", + Privilege: "DescribeBudgetAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budgetAction*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all Microsoft Teams connected to the AWS Account onboarded with AWS Chatbot service", - Privilege: "ListMicrosoftTeamsConfiguredTeams", + Description: "Grants permission to retrieve a historical view of the budget actions statuses associated with a particular budget action. These status include statues such as 'Standby', 'Pending' and 'Executed'", + Privilege: "DescribeBudgetActionHistories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budgetAction*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe AWS Chatbot Microsoft Teams User Identities", - Privilege: "ListMicrosoftTeamsUserIdentities", + Description: "Grants permission to retrieve the details of all of the budget actions associated with your account", + Privilege: "DescribeBudgetActionsForAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -30757,354 +33062,461 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to List all tags associated with the AWS Chatbot Channel Configuration", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve the details of all of the budget actions associated with a budget", + Privilege: "DescribeBudgetActionsForBudget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budget*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to redeem previously generated parameters with Microsoft APIs, to acquire OAuth tokens to be used by the AWS Chatbot service", - Privilege: "RedeemMicrosoftTeamsOauthCode", + Description: "Grants permission to initiate a pending budget action as well as reverse a previously executed budget action", + Privilege: "ExecuteBudgetAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budgetAction*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to redeem previously generated parameters with Slack API, to acquire OAuth tokens to be used by the AWS Chatbot service", - Privilege: "RedeemSlackOauthCode", + AccessLevel: "Read", + Description: "Grants permission to view resource tags for a budget or budget action", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budget", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "budgetAction", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to create tags on AWS Chatbot Channel Configuration", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create and modify budgets, and edit budget details. Creating a budget with tags also requires the 'budgets:TagResource' permission", + Privilege: "ModifyBudget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budget*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags on AWS Chatbot Channel Configuration", - Privilege: "UntagResource", + Description: "Grants permission to apply resource tags to a budget or budget action. Also needed to create a budget or budget action with tags", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "budget", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update AWS Chatbot account preferences", - Privilege: "UpdateAccountPreferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "budgetAction", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an AWS Chatbot Chime Webhook Configuration", - Privilege: "UpdateChimeWebhookConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to remove resource tags from a budget or budget action", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChatbotConfiguration*", + ResourceType: "budget", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "budgetAction", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an AWS Chatbot Microsoft Teams Channel Configuration", - Privilege: "UpdateMicrosoftTeamsChannelConfiguration", + Description: "Grants permission to update the details of a specific budget action associated with a budget", + Privilege: "UpdateBudgetAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "budgetAction*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an AWS Chatbot Slack Channel Configuration", - Privilege: "UpdateSlackChannelConfiguration", + AccessLevel: "Read", + Description: "Grants permission to view budgets and budget details", + Privilege: "ViewBudget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChatbotConfiguration*", + ResourceType: "budget*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:chatbot::${Account}:chat-configuration/${ConfigurationType}/${ChatbotConfigurationName}", - ConditionKeys: []string{}, - Resource: "ChatbotConfiguration", + Arn: "arn:${Partition}:budgets::${Account}:budget/${BudgetName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "budget", + }, + { + Arn: "arn:${Partition}:budgets::${Account}:budget/${BudgetName}/action/${ActionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "budgetAction", }, }, - ServiceName: "AWS Chatbot", + ServiceName: "AWS Budget Service", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", + Description: "Filters access based on the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", + Description: "Filters access based on the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", + Description: "Filters access based on the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "chime", + Prefix: "bugbust", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept the delegate invitation to share management of an Amazon Chime account with another AWS Account", - Privilege: "AcceptDelegate", + Description: "Grants permission to create a BugBust event", + Privilege: "CreateEvent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate users in an Amazon Chime Enterprise account", - Privilege: "ActivateUsers", + Description: "Grants permission to evaluate checked-in profiling groups", + Privilege: "EvaluateProfilingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Event*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add a domain to your Amazon Chime account", - Privilege: "AddDomain", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add new or update existing Active Directory or Okta user groups associated with your Amazon Chime Enterprise account", - Privilege: "AddOrUpdateGroups", + AccessLevel: "Read", + Description: "Grants permission to view customer details about an event", + Privilege: "GetEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a flow with a channel", - Privilege: "AssociateChannelFlow", + AccessLevel: "Read", + Description: "Grants permission to view the status of a BugBust player's attempt to join a BugBust event", + Privilege: "GetJoinEventStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Event*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to join an event", + Privilege: "JoinEvent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Event*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "channel-flow*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a phone number with an Amazon Chime user", - Privilege: "AssociatePhoneNumberWithUser", + AccessLevel: "Read", + Description: "Grants permission to view the bugs that were imported into an event for players to work on", + Privilege: "ListBugs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeguru-reviewer:DescribeCodeReview", + "codeguru-reviewer:ListRecommendations", + }, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate multiple phone numbers with an Amazon Chime Voice Connector", - Privilege: "AssociatePhoneNumbersWithVoiceConnector", + AccessLevel: "Read", + Description: "Grants permission to view the participants of an event", + Privilege: "ListEventParticipants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "Event*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to associate multiple phone numbers with an Amazon Chime Voice Connector Group", - Privilege: "AssociatePhoneNumbersWithVoiceConnectorGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate the specified sign-in delegate groups with the specified Amazon Chime account", - Privilege: "AssociateSigninDelegateGroupsWithAccount", + AccessLevel: "Read", + Description: "Grants permission to view the scores of an event's players", + Privilege: "ListEventScores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to authorize an Active Directory for your Amazon Chime Enterprise account", - Privilege: "AuthorizeDirectory", + AccessLevel: "List", + Description: "Grants permission to List BugBust events", + Privilege: "ListEvents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create new attendees for an active Amazon Chime SDK meeting", - Privilege: "BatchCreateAttendee", + AccessLevel: "Read", + Description: "Grants permission to view the profiling groups that were imported into an event for players to work on", + Privilege: "ListProfilingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add multiple users and bots to a channel", - Privilege: "BatchCreateChannelMembership", + AccessLevel: "Read", + Description: "Grants permission to view the pull requests used by players to submit fixes to their claimed bugs in an event", + Privilege: "ListPullRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Event*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to batch add room members", - Privilege: "BatchCreateRoomMembership", + AccessLevel: "Read", + Description: "Grants permission to lists tag for a Bugbust resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to move up to 50 phone numbers to the deletion queue", - Privilege: "BatchDeletePhoneNumber", + AccessLevel: "Tagging", + Description: "Grants permission to tag a Bugbust resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to suspend up to 50 users from a Team or EnterpriseLWA Amazon Chime account", - Privilege: "BatchSuspendUser", + AccessLevel: "Tagging", + Description: "Grants permission to untag a Bugbust resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the suspension from up to 50 previously suspended users for the specified Amazon Chime EnterpriseLWA account", - Privilege: "BatchUnsuspendUser", + Description: "Grants permission to update a BugBust event", + Privilege: "UpdateEvent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeguru-profiler:DescribeProfilingGroup", + "codeguru-profiler:ListProfilingGroups", + "codeguru-reviewer:DescribeCodeReview", + "codeguru-reviewer:ListCodeReviews", + "codeguru-reviewer:ListRecommendations", + "codeguru-reviewer:TagResource", + "codeguru-reviewer:UnTagResource", + }, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -31112,148 +33524,162 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update AttendeeCapabilities except the capabilities listed in an ExcludedAttendeeIds table", - Privilege: "BatchUpdateAttendeeCapabilitiesExcept", + Description: "Grants permission to update a work item as claimed or unclaimed (bug or profiling group)", + Privilege: "UpdateWorkItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeguru-reviewer:ListRecommendations", + }, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update phone number details within the UpdatePhoneNumberRequestItem object for up to 50 phone numbers", - Privilege: "BatchUpdatePhoneNumber", + Description: "Grants permission to update an event's work item (bug or profiling group)", + Privilege: "UpdateWorkItemAdmin", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeguru-reviewer:ListRecommendations", + }, + ResourceType: "Event*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update user details within the UpdateUserRequestItem object for up to 20 users for the specified Amazon Chime account", - Privilege: "BatchUpdateUser", + Arn: "arn:${Partition}:bugbust:${Region}:${Account}:events/${EventId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Event", + }, + }, + ServiceName: "AWS BugBust", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "connect:UserArn", + Description: "Filters access by connect's UserArn", + Type: "ARN", + }, + }, + Prefix: "cases", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the case rules in the case domain", + Privilege: "BatchGetCaseRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "CaseRule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to callback for a message on a channel", - Privilege: "ChannelFlowCallback", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to establish a web socket connection for app instance user to the messaging session endpoint", - Privilege: "Connect", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the fields in the case domain", + Privilege: "BatchGetField", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to connect an Active Directory to your Amazon Chime Enterprise account", - Privilege: "ConnectDirectory", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:ConnectDirectory", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Field*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Chime account under the administrator's AWS account", - Privilege: "CreateAccount", + Description: "Grants permission to update the field options in the case domain", + Privilege: "BatchPutFieldOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new SCIM access key for your Amazon Chime account and Okta configuration", - Privilege: "CreateApiKey", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Field*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an app instance under the AWS account", - Privilege: "CreateAppInstance", + Description: "Grants permission to create a case in the case domain", + Privilege: "CreateCase", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Case*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to promote a user or bot to an AppInstanceAdmin", - Privilege: "CreateAppInstanceAdmin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "Domain*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Field*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Template*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a bot under an Amazon Chime AppInstance", - Privilege: "CreateAppInstanceBot", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "connect:UserArn", }, DependentActions: []string{}, ResourceType: "", @@ -31262,35 +33688,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a user under an Amazon Chime AppInstance", - Privilege: "CreateAppInstanceUser", + Description: "Grants permission to create a case rule in the case domain", + Privilege: "CreateCaseRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "CaseRule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new attendee for an active Amazon Chime SDK meeting", - Privilege: "CreateAttendee", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a bot for an Amazon Chime Enterprise account", - Privilege: "CreateBot", + Description: "Grants permission to create a new case domain", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -31301,80 +33717,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new Call Detail Record S3 bucket", - Privilege: "CreateCDRBucket", + Description: "Grants permission to create a field in the case domain", + Privilege: "CreateField", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:CreateBucket", - "s3:ListAllMyBuckets", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Field*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a channel for an app instance under the AWS account", - Privilege: "CreateChannel", + Description: "Grants permission to create a layout in the case domain", + Privilege: "CreateLayout", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Domain*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Layout*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to ban a user or bot from a channel", - Privilege: "CreateChannelBan", + Description: "Grants permission to create a related item associated to a case in the case domain", + Privilege: "CreateRelatedItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Case*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a channel flow for an app instance under the AWS account", - Privilege: "CreateChannelFlow", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "RelatedItem*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "connect:UserArn", }, DependentActions: []string{}, ResourceType: "", @@ -31383,356 +33780,253 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a user or bot to a channel", - Privilege: "CreateChannelMembership", + Description: "Grants permission to create a template in the case domain", + Privilege: "CreateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Domain*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Layout*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a channel moderator", - Privilege: "CreateChannelModerator", + Description: "Grants permission to delete the case rule in the case domain", + Privilege: "DeleteCaseRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "CaseRule*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a media capture pipeline", - Privilege: "CreateMediaCapturePipeline", + Description: "Grants permission to delete the domain", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "s3:GetBucketPolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a media concatenation pipeline", - Privilege: "CreateMediaConcatenationPipeline", + Description: "Grants permission to delete the field in the case domain", + Privilege: "DeleteField", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "s3:GetBucketPolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Field*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a media insights pipeline", - Privilege: "CreateMediaInsightsPipeline", + Description: "Grants permission to delete the layout in the case domain", + Privilege: "DeleteLayout", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "chime:TagResource", - "kinesisvideo:DescribeStream", - }, - ResourceType: "media-insights-pipeline-configuration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Layout*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a media insights pipeline configuration", - Privilege: "CreateMediaInsightsPipelineConfiguration", + Description: "Grants permission to delete a related item associated to a case in the case domain", + Privilege: "DeleteRelatedItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "chime:TagResource", - "iam:PassRole", - "kinesis:DescribeStream", - "s3:ListBucket", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Case*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a media live connector pipeline", - Privilege: "CreateMediaLiveConnectorPipeline", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create kinesis video stream pool", - Privilege: "CreateMediaPipelineKinesisVideoStreamPool", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "kinesis:DescribeStream", - "kinesisvideo:CreateStream", - "kinesisvideo:GetDataEndpoint", - "kinesisvideo:ListStreams", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RelatedItem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a media stream pipeline", - Privilege: "CreateMediaStreamPipeline", + Description: "Grants permission to delete the template in the case domain", + Privilege: "DeleteTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kinesisvideo:DescribeStream", - "kinesisvideo:GetDataEndpoint", - "kinesisvideo:PutMedia", - }, - ResourceType: "media-pipeline-kinesis-video-stream-pool*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon Chime SDK meeting in the specified media Region, with no initial attendees", - Privilege: "CreateMeeting", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a case in the case domain", + Privilege: "GetCase", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Case*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to call a phone number to join the specified Amazon Chime SDK meeting", - Privilege: "CreateMeetingDialOut", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon Chime SDK meeting in the specified media Region, with a set of attendees", - Privilege: "CreateMeetingWithAttendees", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Field*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a phone number order with the Carriers", - Privilege: "CreatePhoneNumberOrder", + AccessLevel: "Read", + Description: "Grants permission to view audit history of a case", + Privilege: "GetCaseAuditEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Case*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a proxy session for the specified Amazon Chime Voice Connector", - Privilege: "CreateProxySession", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a room", - Privilege: "CreateRoom", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the case event configuraton in the case domain", + Privilege: "GetCaseEventConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a room member", - Privilege: "CreateRoomMembership", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the case domain", + Privilege: "GetDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "CreateSipMediaApplication", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the layout in the case domain", + Privilege: "GetLayout", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create outbound call for Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "CreateSipMediaApplicationCall", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "Layout*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Chime SIP rule under the administrator's AWS account", - Privilege: "CreateSipRule", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the template in the case domain", + Privilege: "GetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a user under the specified Amazon Chime account", - Privilege: "CreateUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Amazon Chime Voice Connector under the administrator's AWS account", - Privilege: "CreateVoiceConnector", + AccessLevel: "List", + Description: "Grants permission to list case rules in the case domain", + Privilege: "ListCaseRules", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Amazon Chime Voice Connector Group under the administrator's AWS account", - Privilege: "CreateVoiceConnectorGroup", + AccessLevel: "List", + Description: "Grants permission to list cases for a specific contact in the case domain", + Privilege: "ListCasesForContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a voice profile", - Privilege: "CreateVoiceProfile", + AccessLevel: "List", + Description: "Grants permission to list all domains in the aws account", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -31742,285 +34036,234 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a voice profile domain", - Privilege: "CreateVoiceProfileDomain", + AccessLevel: "List", + Description: "Grants permission to list field options for a single select field in the case domain", + Privilege: "ListFieldOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "chime:TagResource", - "kms:CreateGrant", - "kms:DescribeKey", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified Amazon Chime account", - Privilege: "DeleteAccount", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Field*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the OpenIdConfig attributes from your Amazon Chime account", - Privilege: "DeleteAccountOpenIdConfig", + AccessLevel: "List", + Description: "Grants permission to list fields in the case domain", + Privilege: "ListFields", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified SCIM access key associated with your Amazon Chime account and Okta configuration", - Privilege: "DeleteApiKey", + AccessLevel: "List", + Description: "Grants permission to list layouts in the case domain", + Privilege: "ListLayouts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AppInstance", - Privilege: "DeleteAppInstance", + AccessLevel: "Read", + Description: "Grants permission to list the tags for the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to demote an AppInstanceAdmin to a user or bot", - Privilege: "DeleteAppInstanceAdmin", + AccessLevel: "List", + Description: "Grants permission to list templates in the case domain", + Privilege: "ListTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AppInstanceBot", - Privilege: "DeleteAppInstanceBot", + Description: "Grants permission to insert or update the case event configuration in the case domain", + Privilege: "PutCaseEventConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable data streaming for the app instance", - Privilege: "DeleteAppInstanceStreamingConfigurations", + AccessLevel: "Read", + Description: "Grants permission to search for cases in the case domain", + Privilege: "SearchCases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AppInstanceUser", - Privilege: "DeleteAppInstanceUser", + AccessLevel: "Read", + Description: "Grants permission to search for related items associated to the case in the case domain", + Privilege: "SearchRelatedItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Case*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified attendee from an Amazon Chime SDK meeting", - Privilege: "DeleteAttendee", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Call Detail Record S3 bucket from your Amazon Chime account", - Privilege: "DeleteCDRBucket", + AccessLevel: "Tagging", + Description: "Grants permission to add the specified tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:DeleteBucket", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Case", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a channel", - Privilege: "DeleteChannel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "CaseRule", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Domain", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Field", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove a user or bot from a channel's ban list", - Privilege: "DeleteChannelBan", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Layout", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "RelatedItem", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Template", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a channel flow", - Privilege: "DeleteChannelFlow", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Case", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove a member from a channel", - Privilege: "DeleteChannelMembership", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "CaseRule", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Domain", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Field", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a channel message", - Privilege: "DeleteChannelMessage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Layout", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "RelatedItem", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Template", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a channel moderator", - Privilege: "DeleteChannelModerator", + Description: "Grants permission to update the field values on the case in the case domain", + Privilege: "UpdateCase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "Case*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "Domain*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Field*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete delegated AWS account management from your Amazon Chime account", - Privilege: "DeleteDelegate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:UserArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -32028,571 +34271,511 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a domain from your Amazon Chime account", - Privilege: "DeleteDomain", + Description: "Grants permission to update the case rule in the case domain", + Privilege: "UpdateCaseRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "CaseRule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an events configuration for a bot to receive outgoing events", - Privilege: "DeleteEventsConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete Active Directory or Okta user groups from your Amazon Chime Enterprise account", - Privilege: "DeleteGroups", + Description: "Grants permission to update the field in the case domain", + Privilege: "UpdateField", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a media capture pipeline", - Privilege: "DeleteMediaCapturePipeline", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline*", + ResourceType: "Field*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a media insights pipeline configuration", - Privilege: "DeleteMediaInsightsPipelineConfiguration", + Description: "Grants permission to update the layout in the case domain", + Privilege: "UpdateLayout", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "chime:ListVoiceConnectors", - }, - ResourceType: "media-insights-pipeline-configuration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a media pipeline", - Privilege: "DeleteMediaPipeline", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline*", + ResourceType: "Layout*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete kinesis video stream pool", - Privilege: "DeleteMediaPipelineKinesisVideoStreamPool", + Description: "Grants permission to update the template in the case domain", + Privilege: "UpdateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline-kinesis-video-stream-pool*", + ResourceType: "Domain*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified Amazon Chime SDK meeting", - Privilege: "DeleteMeeting", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "Template*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete the data streaming configurations of an AppInstance", - Privilege: "DeleteMessagingStreamingConfigurations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance*", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/case/${CaseId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "Case", }, { - AccessLevel: "Write", - Description: "Grants permission to move a phone number to the deletion queue", - Privilege: "DeletePhoneNumber", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "Domain", }, { - AccessLevel: "Write", - Description: "Grants permission to delete a proxy session for the specified Amazon Chime Voice Connector", - Privilege: "DeleteProxySession", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "voice-connector*", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/field/${FieldId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "Field", }, { - AccessLevel: "Write", - Description: "Grants permission to delete a room", - Privilege: "DeleteRoom", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/layout/${LayoutId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "Layout", }, { - AccessLevel: "Write", - Description: "Grants permission to remove a room member", - Privilege: "DeleteRoomMembership", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/case/${CaseId}/related-item/${RelatedItemId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "RelatedItem", }, { - AccessLevel: "Write", - Description: "Grants permission to delete Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "DeleteSipMediaApplication", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "sip-media-application*", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/template/${TemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "Template", }, { - AccessLevel: "Write", - Description: "Grants permission to delete Amazon Chime SIP rule under the administrator's AWS account", - Privilege: "DeleteSipRule", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:cases:${Region}:${Account}:domain/${DomainId}/case-rule/${CaseRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "CaseRule", }, + }, + ServiceName: "Amazon Connect Cases", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to delete the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnector", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - }, - ResourceType: "voice-connector*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", }, + }, + Prefix: "cassandra", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete emergency calling configuration for the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnectorEmergencyCallingConfiguration", + Description: "Grants permission to alter a keyspace or table", + Privilege: "Alter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "keyspace", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified Amazon Chime Voice Connector Group", - Privilege: "DeleteVoiceConnectorGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "table", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the origination settings for the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnectorOrigination", + Description: "Grants permission to alter a multiregion keyspace or table", + Privilege: "AlterMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "keyspace", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete proxy configuration for the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnectorProxy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "table", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete streaming configuration for the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnectorStreamingConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the termination settings for the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnectorTermination", + Description: "Grants permission to create a keyspace or table", + Privilege: "Create", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "keyspace", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete SIP termination credentials for the specified Amazon Chime Voice Connector", - Privilege: "DeleteVoiceConnectorTerminationCredentials", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "table", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a voice profile", - Privilege: "DeleteVoiceProfile", + Description: "Grants permission to create a multiregion keyspace or table", + Privilege: "CreateMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile*", + ResourceType: "keyspace", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a voice profile domain", - Privilege: "DeleteVoiceProfileDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile-domain*", + ResourceType: "table", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an endpoint for an app instance user", - Privilege: "DeregisterAppInstanceUserEndpoint", + Description: "Grants permission to drop a keyspace or table", + Privilege: "Drop", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "keyspace", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the full details of an AppInstance", - Privilege: "DescribeAppInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "table", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of an AppInstanceAdmin", - Privilege: "DescribeAppInstanceAdmin", + AccessLevel: "Write", + Description: "Grants permission to drop a multiregion keyspace or table", + Privilege: "DropMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "keyspace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of an AppInstanceBot", - Privilege: "DescribeAppInstanceBot", + AccessLevel: "Write", + Description: "Grants permission to INSERT, UPDATE or DELETE data in a table", + Privilege: "Modify", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of an AppInstanceUser", - Privilege: "DescribeAppInstanceUser", + AccessLevel: "Write", + Description: "Grants permission to INSERT, UPDATE or DELETE data in a multiregion table", + Privilege: "ModifyMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an endpoint registered for an app instance user", - Privilege: "DescribeAppInstanceUserEndpoint", + AccessLevel: "Write", + Description: "Grants permission to restore table from a backup", + Privilege: "Restore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of a channel", - Privilege: "DescribeChannel", + AccessLevel: "Write", + Description: "Grants permission to restore multiregion table from a backup", + Privilege: "RestoreMultiRegionTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "table*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the full details of a channel ban", - Privilege: "DescribeChannelBan", + Description: "Grants permission to SELECT data from a table", + Privilege: "Select", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "table*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the full details of a channel flow", - Privilege: "DescribeChannelFlow", + Description: "Grants permission to SELECT data from a multiregion table", + Privilege: "SelectMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel-flow*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of a channel membership", - Privilege: "DescribeChannelMembership", + AccessLevel: "Tagging", + Description: "Grants permission to tag a multiregion keyspace or table", + Privilege: "TagMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "keyspace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the details of a channel based on the membership of the specified user or bot", - Privilege: "DescribeChannelMembershipForAppInstanceUser", + AccessLevel: "Tagging", + Description: "Grants permission to tag a keyspace or table", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "keyspace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of a channel moderated by the specified user or bot", - Privilege: "DescribeChannelModeratedByAppInstanceUser", + AccessLevel: "Tagging", + Description: "Grants permission to untag a multiregion keyspace or table", + Privilege: "UnTagMultiRegionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "keyspace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the full details of a single ChannelModerator", - Privilege: "DescribeChannelModerator", + AccessLevel: "Tagging", + Description: "Grants permission to untag a keyspace or table", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "keyspace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "table", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a flow from a channel", - Privilege: "DisassociateChannelFlow", + Description: "Grants permission to UPDATE the partitioner in a system table", + Privilege: "UpdatePartitioner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel-flow*", + ResourceType: "table*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:cassandra:${Region}:${Account}:/keyspace/${KeyspaceName}/", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "keyspace", + }, + { + Arn: "arn:${Partition}:cassandra:${Region}:${Account}:/keyspace/${KeyspaceName}/table/${TableName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "table", + }, + }, + ServiceName: "Amazon Keyspaces (for Apache Cassandra)", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "ce", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to disassociate the primary provisioned number from the specified Amazon Chime user", - Privilege: "DisassociatePhoneNumberFromUser", + Description: "Grants permission to create a new Anomaly Monitor", + Privilege: "CreateAnomalyMonitor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -32600,23 +34783,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate multiple phone numbers from the specified Amazon Chime Voice Connector", - Privilege: "DisassociatePhoneNumbersFromVoiceConnector", + Description: "Grants permission to create a new Anomaly Subscription", + Privilege: "CreateAnomalySubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate multiple phone numbers from the specified Amazon Chime Voice Connector Group", - Privilege: "DisassociatePhoneNumbersFromVoiceConnectorGroup", + Description: "Grants permission to create a new Cost Category with the requested name and rules", + Privilege: "CreateCostCategoryDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -32624,8 +34813,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the specified sign-in delegate groups from the specified Amazon Chime account", - Privilege: "DisassociateSigninDelegateGroupsFromAccount", + Description: "Grants permission to create Reservation expiration alerts", + Privilege: "CreateNotificationSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32636,8 +34825,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disconnect the Active Directory from your Amazon Chime Enterprise account", - Privilege: "DisconnectDirectory", + Description: "Grants permission to create Cost Explorer Reports", + Privilege: "CreateReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32647,45 +34836,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details for the specified Amazon Chime account", - Privilege: "GetAccount", + AccessLevel: "Write", + Description: "Grants permission to delete an Anomaly Monitor", + Privilege: "DeleteAnomalyMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "anomalymonitor*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details for the account resource associated with your Amazon Chime account", - Privilege: "GetAccountResource", + AccessLevel: "Write", + Description: "Grants permission to delete an Anomaly Subscription", + Privilege: "DeleteAnomalySubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "anomalysubscription*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get account settings for the specified Amazon Chime account ID", - Privilege: "GetAccountSettings", + AccessLevel: "Write", + Description: "Grants permission to delete a Cost Category", + Privilege: "DeleteCostCategoryDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "costcategory*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the account details and OpenIdConfig attributes for your Amazon Chime account", - Privilege: "GetAccountWithOpenIdConfig", + AccessLevel: "Write", + Description: "Grants permission to delete Reservation expiration alerts", + Privilege: "DeleteNotificationSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32695,45 +34905,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get retention settings for an app instance", - Privilege: "GetAppInstanceRetentionSettings", + AccessLevel: "Write", + Description: "Grants permission to delete Cost Explorer Reports", + Privilege: "DeleteReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the streaming configurations for an app instance", - Privilege: "GetAppInstanceStreamingConfigurations", + Description: "Grants permission to retrieve descriptions such as the name, ARN, rules, definition, and effective dates of a Cost Category", + Privilege: "DescribeCostCategoryDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "costcategory*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get attendee details for a specified meeting ID and attendee ID", - Privilege: "GetAttendee", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details for the specified bot", - Privilege: "GetBot", + Description: "Grants permission to view Reservation expiration alerts", + Privilege: "DescribeNotificationSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32744,92 +34949,77 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get details of a Call Detail Record S3 bucket associated with your Amazon Chime account", - Privilege: "GetCDRBucket", + Description: "Grants permission to view Cost Explorer Reports page", + Privilege: "DescribeReport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetBucketAcl", - "s3:GetBucketLocation", - "s3:GetBucketLogging", - "s3:GetBucketVersioning", - "s3:GetBucketWebsite", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the preferences for a channel membership", - Privilege: "GetChannelMembershipPreferences", + Description: "Grants permission to retrieve anomalies", + Privilege: "GetAnomalies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "anomalymonitor*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the full details of a channel message", - Privilege: "GetChannelMessage", + Description: "Grants permission to query Anomaly Monitors", + Privilege: "GetAnomalyMonitors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "anomalymonitor*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the status of a channel message", - Privilege: "GetChannelMessageStatus", + Description: "Grants permission to query Anomaly Subscriptions", + Privilege: "GetAnomalySubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "anomalysubscription*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get domain details for a domain associated with your Amazon Chime account", - Privilege: "GetDomain", + Description: "Grants permission to retrieve approximate usage record count for the chosen resource, level, and hourly granularity preferences, derived from the past month's usage", + Privilege: "GetApproximateUsageRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32840,8 +35030,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details for an events configuration for a bot to receive outgoing events", - Privilege: "GetEventsConfiguration", + Description: "Grants permission to retrieve the commitment purchase analysis for your account", + Privilege: "GetCommitmentPurchaseAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32852,8 +35042,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get global settings related to Amazon Chime for the AWS account", - Privilege: "GetGlobalSettings", + Description: "Grants permission to view whether existing or fine-grained IAM actions are being used to control authorization to Billing, Cost Management, and Account consoles", + Privilege: "GetConsoleActionSetEnforced", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32864,104 +35054,115 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an existing media capture pipeline", - Privilege: "GetMediaCapturePipeline", + Description: "Grants permission to retrieve the cost and usage metrics for your account", + Privilege: "GetCostAndUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline*", + ResourceType: "billingview", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a media insights pipeline configuration", - Privilege: "GetMediaInsightsPipelineConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "media-insights-pipeline-configuration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get an existing media pipeline", - Privilege: "GetMediaPipeline", + Description: "Grants permission to retrieve the cost and usage metrics with resources for your account", + Privilege: "GetCostAndUsageWithResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline*", + ResourceType: "billingview", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an existing media pipeline", - Privilege: "GetMediaPipelineKinesisVideoStreamPool", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "media-pipeline-kinesis-video-stream-pool*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the meeting record for a specified meeting ID", - Privilege: "GetMeeting", + Description: "Grants permission to query Cost Catagory names and values for a specified time period", + Privilege: "GetCostCategories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "billingview", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get attendee, connection, and other details for a meeting", - Privilege: "GetMeetingDetail", + Description: "Grants permission to retrieve a cost forecast for a forecast time period", + Privilege: "GetCostForecast", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "billingview", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the endpoint for the messaging session", - Privilege: "GetMessagingSessionEndpoint", + Description: "Grants permission to retrieve all available filter values for a filter for a period of time", + Privilege: "GetDimensionValues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "billingview", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the data streaming configurations of an AppInstance", - Privilege: "GetMessagingStreamingConfigurations", + Description: "Grants permission to view Cost Explorer Preferences page", + Privilege: "GetPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details for the specified phone number", - Privilege: "GetPhoneNumber", + Description: "Grants permission to retrieve the reservation coverage for your account", + Privilege: "GetReservationCoverage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32972,8 +35173,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get details for the specified phone number order", - Privilege: "GetPhoneNumberOrder", + Description: "Grants permission to retrieve the reservation recommendations for your account", + Privilege: "GetReservationPurchaseRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32984,8 +35185,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get phone number settings related to Amazon Chime for the AWS account", - Privilege: "GetPhoneNumberSettings", + Description: "Grants permission to retrieve the reservation utilization for your account", + Privilege: "GetReservationUtilization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -32996,20 +35197,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get details of the specified proxy session for the specified Amazon Chime Voice Connector", - Privilege: "GetProxySession", + Description: "Grants permission to retrieve the rightsizing recommendations for your account", + Privilege: "GetRightsizingRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the retention settings for the specified Amazon Chime account", - Privilege: "GetRetentionSettings", + Description: "Grants permission to retrieve the Savings Plan recommendation details for your account", + Privilege: "GetSavingsPlanPurchaseRecommendationDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33020,8 +35221,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a room", - Privilege: "GetRoom", + Description: "Grants permission to retrieve the Savings Plans coverage for your account", + Privilege: "GetSavingsPlansCoverage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33032,73 +35233,82 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get details of Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "GetSipMediaApplication", + Description: "Grants permission to retrieve the Savings Plans recommendations for your account", + Privilege: "GetSavingsPlansPurchaseRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get Alexa Skill configuration settings for Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "GetSipMediaApplicationAlexaSkillConfiguration", + Description: "Grants permission to retrieve the Savings Plans utilization for your account", + Privilege: "GetSavingsPlansUtilization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get logging configuration settings for Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "GetSipMediaApplicationLoggingConfiguration", + Description: "Grants permission to retrieve the Savings Plans utilization details for your account", + Privilege: "GetSavingsPlansUtilizationDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details of Amazon Chime SIP rule under the administrator's AWS account", - Privilege: "GetSipRule", + Description: "Grants permission to query tags for a specified time period", + Privilege: "GetTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "billingview", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a speaker search task on the specified Amazon Chime resource", - Privilege: "GetSpeakerSearchTask", + Description: "Grants permission to retrieve a usage forecast for a forecast time period", + Privilege: "GetUsageForecast", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "billingview", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get telephony limits for the AWS account", - Privilege: "GetTelephonyLimits", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of your historical commitment purchase analyses", + Privilege: "ListCommitmentPurchaseAnalyses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33108,9 +35318,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details for the specified user ID", - Privilege: "GetUser", + AccessLevel: "List", + Description: "Grants permission to list Cost Allocation Tag backfill history", + Privilege: "ListCostAllocationTagBackfillHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33120,9 +35330,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a summary of user activity on the user details page", - Privilege: "GetUserActivityReportData", + AccessLevel: "List", + Description: "Grants permission to list Cost Allocation Tags", + Privilege: "ListCostAllocationTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33132,9 +35342,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get user details for an Amazon Chime user based on the email address in an Amazon Chime Enterprise or Team account", - Privilege: "GetUserByEmail", + AccessLevel: "List", + Description: "Grants permission to retrieve names, ARN, and effective dates for all Cost Categories", + Privilege: "ListCostCategoryDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33144,9 +35354,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get user settings related to the specified Amazon Chime user", - Privilege: "GetUserSettings", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of your historical recommendation generations", + Privilege: "ListSavingsPlansPurchaseRecommendationGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33157,205 +35367,184 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get details for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnector", + Description: "Grants permission to list tags for a Cost Explorer resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "anomalymonitor", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details of the emergency calling configuration for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorEmergencyCallingConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "anomalysubscription", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details for the specified Amazon Chime Voice Connector Group", - Privilege: "GetVoiceConnectorGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "costcategory", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of the logging configuration for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorLoggingConfiguration", + AccessLevel: "Write", + Description: "Grants permission to provide feedback on detected anomalies", + Privilege: "ProvideAnomalyFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of the origination settings for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorOrigination", + AccessLevel: "Write", + Description: "Grants permission to request a commitment purchase analysis", + Privilege: "StartCommitmentPurchaseAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of the proxy configuration for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorProxy", + AccessLevel: "Write", + Description: "Grants permission to request a Cost Allocation Tag backfill", + Privilege: "StartCostAllocationTagBackfill", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of the streaming configuration for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorStreamingConfiguration", + AccessLevel: "Write", + Description: "Grants permission to request a Savings Plans recommendation generation", + Privilege: "StartSavingsPlansPurchaseRecommendationGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of the termination settings for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorTermination", + AccessLevel: "Tagging", + Description: "Grants permission to tag a Cost Explorer resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "anomalymonitor", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details of the termination health for the specified Amazon Chime Voice Connector", - Privilege: "GetVoiceConnectorTerminationHealth", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "anomalysubscription", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a voice profile", - Privilege: "GetVoiceProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile*", + ResourceType: "costcategory", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a voice profile domain", - Privilege: "GetVoiceProfileDomain", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "voice-profile-domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a voice tone analysis task on the specified Amazon Chime resource", - Privilege: "GetVoiceToneAnalysisTask", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a Cost Explorer resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "anomalymonitor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "anomalysubscription", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send an invitation to accept a request for AWS account delegation for an Amazon Chime account", - Privilege: "InviteDelegate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "costcategory", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invite as many as 50 users to the specified Amazon Chime account", - Privilege: "InviteUsers", + Description: "Grants permission to update an existing Anomaly Monitor", + Privilege: "UpdateAnomalyMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "anomalymonitor*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invite users from a third party provider to your Amazon Chime account", - Privilege: "InviteUsersFromProvider", + Description: "Grants permission to update an existing Anomaly Subscription", + Privilege: "UpdateAnomalySubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "anomalysubscription*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Amazon Chime account usage reporting data", - Privilege: "ListAccountUsageReportData", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon Chime accounts under the administrator's AWS account", - Privilege: "ListAccounts", + AccessLevel: "Write", + Description: "Grants permission to change whether existing or fine-grained IAM actions will be used to control authorization to Billing, Cost Management, and Account consoles", + Privilege: "UpdateConsoleActionSetEnforced", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33365,9 +35554,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the SCIM access keys defined for your Amazon Chime account and Okta configuration", - Privilege: "ListApiKeys", + AccessLevel: "Write", + Description: "Grants permission to update existing Cost Allocation Tags status", + Privilege: "UpdateCostAllocationTagsStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33377,103 +35566,118 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list administrators in the app instance", - Privilege: "ListAppInstanceAdmins", + AccessLevel: "Write", + Description: "Grants permission to update an existing Cost Category", + Privilege: "UpdateCostCategoryDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "costcategory*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all AppInstanceBots created under a single app instance", - Privilege: "ListAppInstanceBots", + AccessLevel: "Write", + Description: "Grants permission to update Reservation expiration alerts", + Privilege: "UpdateNotificationSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the endpoints registered for an app instance user", - Privilege: "ListAppInstanceUserEndpoints", + AccessLevel: "Write", + Description: "Grants permission to edit Cost Explorer Preferences page", + Privilege: "UpdatePreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all AppInstanceUsers created under a single app instance", - Privilege: "ListAppInstanceUsers", + AccessLevel: "Write", + Description: "Grants permission to update Cost Explorer Reports", + Privilege: "UpdateReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list all Amazon Chime app instances created under a single AWS account", - Privilege: "ListAppInstances", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance*", - }, + Arn: "arn:${Partition}:ce::${Account}:anomalysubscription/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "anomalysubscription", }, { - AccessLevel: "List", - Description: "Grants permission to list the tags applied to an Amazon Chime SDK attendee resource", - Privilege: "ListAttendeeTags", + Arn: "arn:${Partition}:ce::${Account}:anomalymonitor/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "anomalymonitor", + }, + { + Arn: "arn:${Partition}:ce::${Account}:costcategory/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "costcategory", + }, + { + Arn: "arn:${Partition}:billing::${Account}:billingview/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "billingview", + }, + }, + ServiceName: "AWS Cost Explorer Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "chatbot", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a resource with a configuration", + Privilege: "AssociateToConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "ChatbotConfiguration*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list up to 100 attendees for a specified Amazon Chime SDK meeting", - Privilege: "ListAttendees", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "custom-action*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the available AWS Regions in which you can create an Amazon Chime SDK Voice Connector", - Privilege: "ListAvailableVoiceConnectorRegions", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Chatbot Chime Webhook Configuration", + Privilege: "CreateChimeWebhookConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33483,9 +35687,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the bots associated with the administrator's Amazon Chime Enterprise account", - Privilege: "ListBots", + AccessLevel: "Write", + Description: "Grants permission to create a custom action", + Privilege: "CreateCustomAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33495,24 +35699,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list Call Detail Record S3 buckets", - Privilege: "ListCDRBucket", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Chatbot Microsoft Teams Channel Configuration", + Privilege: "CreateMicrosoftTeamsChannelConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:ListAllMyBuckets", - "s3:ListBucket", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the calling regions available for the administrator's AWS account", - Privilege: "ListCallingRegions", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Chatbot Slack Channel Configuration", + Privilege: "CreateSlackChannelConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33522,184 +35723,254 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the users and bots banned from a particular channel", - Privilege: "ListChannelBans", + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Chatbot Chime Webhook Configuration", + Privilege: "DeleteChimeWebhookConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "ChatbotConfiguration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a custom action", + Privilege: "DeleteCustomAction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "custom-action*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Chatbot Microsoft Teams Channel Configuration", + Privilege: "DeleteMicrosoftTeamsChannelConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "ChatbotConfiguration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Channel Flows created under a single Chime AppInstance", - Privilege: "ListChannelFlows", + AccessLevel: "Write", + Description: "Grants permission to delete the Microsoft Teams configured with AWS Chatbot in an AWS account", + Privilege: "DeleteMicrosoftTeamsConfiguredTeam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel-flow*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all channel memberships in a channel", - Privilege: "ListChannelMemberships", + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Chatbot Microsoft Teams User Identity", + Privilege: "DeleteMicrosoftTeamsUserIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Chatbot Slack Channel Configuration", + Privilege: "DeleteSlackChannelConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "ChatbotConfiguration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Chatbot Slack User Identity", + Privilege: "DeleteSlackUserIdentity", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all channels that a particular user or bot is a part of", - Privilege: "ListChannelMembershipsForAppInstanceUser", + AccessLevel: "Write", + Description: "Grants permission to delete the Slack workspace authorization with AWS Chatbot, associated with an AWS account", + Privilege: "DeleteSlackWorkspaceAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all AWS Chatbot Chime Webhook Configurations in an AWS Account", + Privilege: "DescribeChimeWebhookConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the messages in a channel", - Privilege: "ListChannelMessages", + Description: "Grants permission to list all AWS Chatbot Slack Channel Configurations in an AWS account", + Privilege: "DescribeSlackChannelConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all public Slack channels in the Slack workspace connected to the AWS Account onboarded with AWS Chatbot service", + Privilege: "DescribeSlackChannels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe AWS Chatbot Slack User Identities", + Privilege: "DescribeSlackUserIdentities", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the moderators for a channel", - Privilege: "ListChannelModerators", + AccessLevel: "Read", + Description: "Grants permission to list all authorized Slack workspaces connected to the AWS Account onboarded with AWS Chatbot service", + Privilege: "DescribeSlackWorkspaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a resource from a configuration", + Privilege: "DisassociateFromConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "ChatbotConfiguration*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "custom-action*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Channels created under a single Chime AppInstance", - Privilege: "ListChannels", + AccessLevel: "Read", + Description: "Grants permission to retrieve AWS Chatbot account preferences", + Privilege: "GetAccountPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a custom action", + Privilege: "GetCustomAction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "custom-action*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Channels associated with a single Chime Channel Flow", - Privilege: "ListChannelsAssociatedWithChannelFlow", + AccessLevel: "Read", + Description: "Grants permission to get a single AWS Chatbot Microsoft Teams Channel Configurations in an AWS account", + Privilege: "GetMicrosoftTeamsChannelConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel-flow*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all channels moderated by a user or bot", - Privilege: "ListChannelsModeratedByAppInstanceUser", + AccessLevel: "Read", + Description: "Grants permission to generate OAuth parameters to request Microsoft Teams OAuth code to be used by the AWS Chatbot service", + Privilege: "GetMicrosoftTeamsOauthParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to generate OAuth parameters to request Slack OAuth code to be used by the AWS Chatbot service", + Privilege: "GetSlackOauthParameters", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list account delegate information associated with your Amazon Chime account", - Privilege: "ListDelegates", + AccessLevel: "Read", + Description: "Grants permission to list resources associated with a configuration", + Privilege: "ListAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChatbotConfiguration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list active Active Directories hosted in the Directory Service of your AWS account", - Privilege: "ListDirectories", + Description: "Grants permission to list custom actions", + Privilege: "ListCustomActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33709,9 +35980,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list domains associated with your Amazon Chime account", - Privilege: "ListDomains", + AccessLevel: "Read", + Description: "Grants permission to list all AWS Chatbot Microsoft Teams Channel Configurations in an AWS account", + Privilege: "ListMicrosoftTeamsChannelConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33721,9 +35992,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list Active Directory or Okta user groups associated with your Amazon Chime Enterprise account", - Privilege: "ListGroups", + AccessLevel: "Read", + Description: "Grants permission to list all Microsoft Teams connected to the AWS Account onboarded with AWS Chatbot service", + Privilege: "ListMicrosoftTeamsConfiguredTeams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33733,9 +36004,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list media capture pipelines", - Privilege: "ListMediaCapturePipelines", + AccessLevel: "Read", + Description: "Grants permission to describe AWS Chatbot Microsoft Teams User Identities", + Privilege: "ListMicrosoftTeamsUserIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33745,9 +36016,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all media insights pipeline configurations", - Privilege: "ListMediaInsightsPipelineConfigurations", + AccessLevel: "Read", + Description: "Grants permission to List all tags associated with the AWS Chatbot Channel Configuration", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33757,9 +36028,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list media pipelines", - Privilege: "ListMediaPipelineKinesisVideoStreamPools", + AccessLevel: "Write", + Description: "Grants permission to redeem previously generated parameters with Microsoft APIs, to acquire OAuth tokens to be used by the AWS Chatbot service", + Privilege: "RedeemMicrosoftTeamsOauthCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33769,9 +36040,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list media pipelines", - Privilege: "ListMediaPipelines", + AccessLevel: "Write", + Description: "Grants permission to redeem previously generated parameters with Slack API, to acquire OAuth tokens to be used by the AWS Chatbot service", + Privilege: "RedeemSlackOauthCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33781,9 +36052,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all events that occurred for a specified meeting", - Privilege: "ListMeetingEvents", + AccessLevel: "Tagging", + Description: "Grants permission to create tags on AWS Chatbot Channel Configuration", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33793,21 +36064,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags applied to an Amazon Chime SDK meeting resource", - Privilege: "ListMeetingTags", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags on AWS Chatbot Channel Configuration", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list up to 100 active Amazon Chime SDK meetings", - Privilege: "ListMeetings", + AccessLevel: "Write", + Description: "Grants permission to update AWS Chatbot account preferences", + Privilege: "UpdateAccountPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33817,57 +36088,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list meetings ended during the specified date range", - Privilege: "ListMeetingsReportData", + AccessLevel: "Write", + Description: "Grants permission to update an AWS Chatbot Chime Webhook Configuration", + Privilege: "UpdateChimeWebhookConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChatbotConfiguration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the phone number orders under the administrator's AWS account", - Privilege: "ListPhoneNumberOrders", + AccessLevel: "Write", + Description: "Grants permission to update a custom action", + Privilege: "UpdateCustomAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom-action*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the phone numbers under the administrator's AWS account", - Privilege: "ListPhoneNumbers", + AccessLevel: "Write", + Description: "Grants permission to update an AWS Chatbot Microsoft Teams Channel Configuration", + Privilege: "UpdateMicrosoftTeamsChannelConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChatbotConfiguration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list proxy sessions for the specified Amazon Chime Voice Connector", - Privilege: "ListProxySessions", + AccessLevel: "Write", + Description: "Grants permission to update an AWS Chatbot Slack Channel Configuration", + Privilege: "UpdateSlackChannelConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "ChatbotConfiguration*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list all room members", - Privilege: "ListRoomMemberships", + Arn: "arn:${Partition}:chatbot::${Account}:chat-configuration/${ConfigurationType}/${ChatbotConfigurationName}", + ConditionKeys: []string{}, + Resource: "ChatbotConfiguration", + }, + { + Arn: "arn:${Partition}:chatbot::${Account}:custom-action/${ActionName}", + ConditionKeys: []string{}, + Resource: "custom-action", + }, + }, + ServiceName: "AWS Chatbot", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in a request", + Type: "ArrayOfString", + }, + }, + Prefix: "chime", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept the delegate invitation to share management of an Amazon Chime account with another AWS Account", + Privilege: "AcceptDelegate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33877,9 +36183,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list rooms", - Privilege: "ListRooms", + AccessLevel: "Write", + Description: "Grants permission to activate users in an Amazon Chime Enterprise account", + Privilege: "ActivateUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33889,9 +36195,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Amazon Chime SIP media applications under the administrator's AWS account", - Privilege: "ListSipMediaApplications", + AccessLevel: "Write", + Description: "Grants permission to add a domain to your Amazon Chime account", + Privilege: "AddDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33901,21 +36207,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Amazon Chime SIP rules under the administrator's AWS account", - Privilege: "ListSipRules", + AccessLevel: "Write", + Description: "Grants permission to add new or update existing Active Directory or Okta user groups associated with your Amazon Chime Enterprise account", + Privilege: "AddOrUpdateGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the SubChannels under a single Channel", - Privilege: "ListSubChannels", + AccessLevel: "Write", + Description: "Grants permission to associate a flow with a channel", + Privilege: "AssociateChannelFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33932,12 +36238,17 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "channel*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel-flow*", + }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the phone number countries supported by the AWS account", - Privilege: "ListSupportedPhoneNumberCountries", + AccessLevel: "Write", + Description: "Grants permission to associate a phone number with an Amazon Chime user", + Privilege: "AssociatePhoneNumberWithUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -33947,76 +36258,103 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags applied to an Amazon Chime resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to associate multiple phone numbers with an Amazon Chime Voice Connector", + Privilege: "AssociatePhoneNumbersWithVoiceConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate multiple phone numbers with an Amazon Chime Voice Connector Group", + Privilege: "AssociatePhoneNumbersWithVoiceConnectorGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel-flow", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate the specified sign-in delegate groups with the specified Amazon Chime account", + Privilege: "AssociateSigninDelegateGroupsWithAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-insights-pipeline-configuration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate the specified Amazon Connect instance with an Amazon Chime Voice Connector", + Privilege: "AssociateVoiceConnectorConnect", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to authorize an Active Directory for your Amazon Chime Enterprise account", + Privilege: "AuthorizeDirectory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline-kinesis-video-stream-pool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create new attendees for an active Amazon Chime SDK meeting", + Privilege: "BatchCreateAttendee", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting", + ResourceType: "meeting*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add multiple users and bots to a channel", + Privilege: "BatchCreateChannelMembership", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "app-instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile-domain", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the users that belong to the specified Amazon Chime account", - Privilege: "ListUsers", + AccessLevel: "Write", + Description: "Grants permission to batch add room members", + Privilege: "BatchCreateRoomMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34026,9 +36364,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon Chime Voice Connector Groups under the administrator's AWS account", - Privilege: "ListVoiceConnectorGroups", + AccessLevel: "Write", + Description: "Grants permission to move up to 50 phone numbers to the deletion queue", + Privilege: "BatchDeletePhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34038,21 +36376,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the SIP termination credentials for the specified Amazon Chime Voice Connector", - Privilege: "ListVoiceConnectorTerminationCredentials", + AccessLevel: "Write", + Description: "Grants permission to suspend up to 50 users from a Team or EnterpriseLWA Amazon Chime account", + Privilege: "BatchSuspendUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon Chime Voice Connectors under the administrator's AWS account", - Privilege: "ListVoiceConnectors", + AccessLevel: "Write", + Description: "Grants permission to remove the suspension from up to 50 previously suspended users for the specified Amazon Chime EnterpriseLWA account", + Privilege: "BatchUnsuspendUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34062,33 +36400,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list voice profile domains", - Privilege: "ListVoiceProfileDomains", + AccessLevel: "Write", + Description: "Grants permission to update AttendeeCapabilities except the capabilities listed in an ExcludedAttendeeIds table", + Privilege: "BatchUpdateAttendeeCapabilitiesExcept", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list voice profiles", - Privilege: "ListVoiceProfiles", + AccessLevel: "Write", + Description: "Grants permission to update phone number details within the UpdatePhoneNumberRequestItem object for up to 50 phone numbers", + Privilege: "BatchUpdatePhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile-domain*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to log out the specified user from all of the devices they are currently logged into", - Privilege: "LogoutUser", + Description: "Grants permission to update user details within the UpdateUserRequestItem object for up to 20 users for the specified Amazon Chime account", + Privilege: "BatchUpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34099,86 +36437,76 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable data retention for the app instance", - Privilege: "PutAppInstanceRetentionSettings", + Description: "Grants permission to callback for a message on a channel", + Privilege: "ChannelFlowCallback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configure data streaming for the app instance", - Privilege: "PutAppInstanceStreamingConfigurations", + Description: "Grants permission to establish a web socket connection for app instance user to the messaging session endpoint", + Privilege: "Connect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "app-instance-user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put expiration settings for an AppInstanceUser", - Privilege: "PutAppInstanceUserExpirationSettings", + Description: "Grants permission to connect an Active Directory to your Amazon Chime Enterprise account", + Privilege: "ConnectDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:ConnectDirectory", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put expiration settings for a channel", - Privilege: "PutChannelExpirationSettings", + Description: "Grants permission to create an Amazon Chime account under the administrator's AWS account", + Privilege: "CreateAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put the preferences for a channel membership", - Privilege: "PutChannelMembershipPreferences", + Description: "Grants permission to create a new SCIM access key for your Amazon Chime account and Okta configuration", + Privilege: "CreateApiKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update details for an events configuration for a bot to receive outgoing events", - Privilege: "PutEventsConfiguration", + Description: "Grants permission to create an app instance in the AWS account (tag-based access controls are only supported on identity-chime..amazonaws.com endpoints)", + Privilege: "CreateAppInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -34186,23 +36514,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to put the data streaming configurations of an AppInstance", - Privilege: "PutMessagingStreamingConfigurations", + Description: "Grants permission to promote a user or bot to an AppInstanceAdmin", + Privilege: "CreateAppInstanceAdmin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "app-instance*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", + }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update retention settings for the specified Amazon Chime account", - Privilege: "PutRetentionSettings", + Description: "Grants permission to create a bot within an AppInstance (tag-based access controls are only supported on identity-chime..amazonaws.com endpoints)", + Privilege: "CreateAppInstanceBot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -34210,130 +36551,151 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update Alexa Skill configuration settings for Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "PutSipMediaApplicationAlexaSkillConfiguration", + Description: "Grants permission to create a user within an AppInstance (tag-based access controls are only supported on identity-chime..amazonaws.com endpoints)", + Privilege: "CreateAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update logging configuration settings for Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "PutSipMediaApplicationLoggingConfiguration", + Description: "Grants permission to create a new attendee for an active Amazon Chime SDK meeting", + Privilege: "CreateAttendee", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "meeting*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add emergency calling configuration for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorEmergencyCallingConfiguration", + Description: "Grants permission to create a bot for an Amazon Chime Enterprise account", + Privilege: "CreateBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add logging configuration for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorLoggingConfiguration", + Description: "Grants permission to create a new Call Detail Record S3 bucket", + Privilege: "CreateCDRBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "logs:CreateLogDelivery", - "logs:CreateLogGroup", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", + "s3:CreateBucket", + "s3:ListAllMyBuckets", }, - ResourceType: "voice-connector*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the origination settings for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorOrigination", + Description: "Grants permission to create a channel for an app instance in the AWS account (tag-based access controls are only supported on messaging-chime..amazonaws.com endpoints)", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "app-instance-bot*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add proxy configuration for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorProxy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add streaming configuration for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorStreamingConfiguration", + Description: "Grants permission to ban a user or bot from a channel", + Privilege: "CreateChannelBan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "chime:GetMediaInsightsPipelineConfiguration", - }, - ResourceType: "voice-connector*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-insights-pipeline-configuration", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the termination settings for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorTermination", + Description: "Grants permission to create a channel flow for an app instance in the AWS account (tag-based access controls are only supported on messaging-chime..amazonaws.com endpoints)", + Privilege: "CreateChannelFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "app-instance*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add SIP termination credentials for the specified Amazon Chime Voice Connector", - Privilege: "PutVoiceConnectorTerminationCredentials", + Description: "Grants permission to add a user or bot to a channel", + Privilege: "CreateChannelMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to redact message content", - Privilege: "RedactChannelMessage", + Description: "Grants permission to create a channel moderator", + Privilege: "CreateChannelModerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34354,61 +36716,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to redact the specified Chime conversation Message", - Privilege: "RedactConversationMessage", + Description: "Grants permission to create an Amazon Connect Analytics Connector in the AWS account (tag-based access controls are only supported on voice-chime..amazonaws.com endpoints)", + Privilege: "CreateConnectAnalyticsConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "chime:CreateVoiceConnector", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to redacts the specified Chime room Message", - Privilege: "RedactRoomMessage", + Description: "Grants permission to create an Amazon Connect Call Transfer Connector in the AWS account (tag-based access controls are only supported on voice-chime..amazonaws.com endpoints)", + Privilege: "CreateConnectCallTransferConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "chime:CreateVoiceConnector", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to regenerate the security token for the specified bot", - Privilege: "RegenerateSecurityToken", + Description: "Grants permission to create a media capture pipeline (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaCapturePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "s3:GetBucketPolicy", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register an endpoint for an app instance user", - Privilege: "RegisterAppInstanceUserEndpoint", + Description: "Grants permission to create a media concatenation pipeline (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaConcatenationPipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{ - "mobiletargeting:GetApp", + "s3:GetBucketPolicy", }, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the account name for your Amazon Chime Enterprise or Team account", - Privilege: "RenameAccount", + Description: "Grants permission to create a media insights pipeline (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaInsightsPipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "chime:TagResource", + "kinesisvideo:DescribeStream", + }, + ResourceType: "media-insights-pipeline-configuration*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -34416,23 +36807,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to renew the delegation request associated with an Amazon Chime account", - Privilege: "RenewDelegate", + Description: "Grants permission to create a media insights pipeline configuration (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaInsightsPipelineConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "chime:TagResource", + "iam:PassRole", + "kinesis:DescribeStream", + "s3:ListBucket", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset the account resource in your Amazon Chime account", - Privilege: "ResetAccountResource", + Description: "Grants permission to create a media live connector pipeline (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaLiveConnectorPipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -34440,95 +36842,118 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset the personal meeting PIN for the specified user on an Amazon Chime account", - Privilege: "ResetPersonalPIN", + Description: "Grants permission to create kinesis video stream pool (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaPipelineKinesisVideoStreamPool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "kinesis:DescribeStream", + "kinesisvideo:CreateStream", + "kinesisvideo:GetDataEndpoint", + "kinesisvideo:ListStreams", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore the specified phone number from the deltion queue back to the phone number inventory", - Privilege: "RestorePhoneNumber", + Description: "Grants permission to create a media stream pipeline (tag-based access controls are only supported on media-pipelines-chime..amazonaws.com endpoints)", + Privilege: "CreateMediaStreamPipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "kinesisvideo:DescribeStream", + "kinesisvideo:GetDataEndpoint", + "kinesisvideo:PutMedia", + }, + ResourceType: "media-pipeline-kinesis-video-stream-pool*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to download the file containing links to all user attachments returned as part of the \"Request attachments\" action", - Privilege: "RetrieveDataExports", + AccessLevel: "Write", + Description: "Grants permission to create a new meeting in the specified media Region, with no initial attendees (tag-based access controls are only supported on meetings-chime..amazonaws.com endpoints)", + Privilege: "CreateMeeting", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search phone numbers that can be ordered from the carrier", - Privilege: "SearchAvailablePhoneNumbers", + AccessLevel: "Write", + Description: "Grants permission to call a phone number to join the specified Amazon Chime SDK meeting", + Privilege: "CreateMeetingDialOut", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search channels that an AppInstanceUser belongs to, or search channels across the AppInstance for an AppInstaceAdmin", - Privilege: "SearchChannels", + AccessLevel: "Write", + Description: "Grants permission to create a new meeting in the specified media Region, with a set of attendees (tag-based access controls are only supported on meetings-chime..amazonaws.com endpoints)", + Privilege: "CreateMeetingWithAttendees", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send a message to a particular channel that the member is a part of", - Privilege: "SendChannelMessage", + Description: "Grants permission to create a phone number order with the Carriers", + Privilege: "CreatePhoneNumberOrder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a proxy session for the specified Amazon Chime Voice Connector", + Privilege: "CreateProxySession", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to submit the \"Request attachments\" request", - Privilege: "StartDataExport", + Description: "Grants permission to create a room", + Privilege: "CreateRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34539,8 +36964,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start transcription for a meeting", - Privilege: "StartMeetingTranscription", + Description: "Grants permission to add a room member", + Privilege: "CreateRoomMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34551,42 +36976,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a speaker search task on the specified Amazon Chime resource", - Privilege: "StartSpeakerSearchTask", + Description: "Grants permission to create an Amazon Chime SIP media application in the AWS account (tag-based access controls are only supported on voice-chime..amazonaws.com endpoints)", + Privilege: "CreateSipMediaApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "media-pipeline", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a voice tone analysis task on the specified Amazon Chime resource", - Privilege: "StartVoiceToneAnalysisTask", + Description: "Grants permission to create outbound call for Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "CreateSipMediaApplicationCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "sip-media-application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Chime SIP rule under the administrator's AWS account", + Privilege: "CreateSipRule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "sip-media-application", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop transcription for a meeting", - Privilege: "StopMeetingTranscription", + Description: "Grants permission to create a user under the specified Amazon Chime account", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34597,14 +37027,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop a speaker search task on the specified Amazon Chime resource", - Privilege: "StopSpeakerSearchTask", + Description: "Grants permission to create a Voice Connector in the AWS account (tag-based access controls are only supported on voice-chime..amazonaws.com endpoints)", + Privilege: "CreateVoiceConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "media-pipeline", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "chime:CreateConnectAnalyticsConnector", + "chime:CreateConnectCallTransferConnector", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Amazon Chime Voice Connector Group under the administrator's AWS account", + Privilege: "CreateVoiceConnectorGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, @@ -34614,25 +37057,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop a voice tone analysis task on the specified Amazon Chime resource", - Privilege: "StopVoiceToneAnalysisTask", + Description: "Grants permission to create a voice profile", + Privilege: "CreateVoiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a voice profile domain (tag-based access controls are only supported on voice-chime..amazonaws.com endpoints)", + Privilege: "CreateVoiceProfileDomain", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "voice-connector", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "chime:TagResource", + "kms:CreateGrant", + "kms:DescribeKey", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to submit a customer service support request", - Privilege: "SubmitSupportRequest", + Description: "Grants permission to delete the specified Amazon Chime account", + Privilege: "DeleteAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34643,8 +37100,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to suspend users from an Amazon Chime Enterprise account", - Privilege: "SuspendUsers", + Description: "Grants permission to delete the OpenIdConfig attributes from your Amazon Chime account", + Privilege: "DeleteAccountOpenIdConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34654,228 +37111,239 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to apply the specified tags to the specified Amazon Chime SDK attendee", - Privilege: "TagAttendee", + AccessLevel: "Write", + Description: "Grants permission to delete the specified SCIM access key associated with your Amazon Chime account and Okta configuration", + Privilege: "DeleteApiKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to apply the specified tags to the specified Amazon Chime SDK meeting", - Privilege: "TagMeeting", + AccessLevel: "Write", + Description: "Grants permission to delete an AppInstance", + Privilege: "DeleteAppInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to apply the specified tags to the specified Amazon Chime resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to demote an AppInstanceAdmin to a user or bot", + Privilege: "DeleteAppInstanceAdmin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance", + ResourceType: "app-instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel-flow", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "media-insights-pipeline-configuration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline-kinesis-video-stream-pool", + ResourceType: "app-instance-user*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AppInstanceBot", + Privilege: "DeleteAppInstanceBot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting", + ResourceType: "app-instance-bot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable data streaming for the app instance", + Privilege: "DeleteAppInstanceStreamingConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application", + ResourceType: "app-instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AppInstanceUser", + Privilege: "DeleteAppInstanceUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "app-instance-user*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified attendee from an Amazon Chime SDK meeting", + Privilege: "DeleteAttendee", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile-domain", + ResourceType: "meeting*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a Call Detail Record S3 bucket from your Amazon Chime account", + Privilege: "DeleteCDRBucket", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:DeleteBucket", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unauthorize an Active Directory from your Amazon Chime Enterprise account", - Privilege: "UnauthorizeDirectory", + Description: "Grants permission to delete a channel", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-bot*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified tags from the specified Amazon Chime SDK attendee", - Privilege: "UntagAttendee", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified tags from the specified Amazon Chime SDK meeting", - Privilege: "UntagMeeting", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified tags from the specified Amazon Chime resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to remove a user or bot from a channel's ban list", + Privilege: "DeleteChannelBan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot", + ResourceType: "app-instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a channel flow", + Privilege: "DeleteChannelFlow", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a member from a channel", + Privilege: "DeleteChannelMembership", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel-flow", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-insights-pipeline-configuration", + ResourceType: "app-instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a channel message", + Privilege: "DeleteChannelMessage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline-kinesis-video-stream-pool", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "meeting", + ResourceType: "app-instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a channel moderator", + Privilege: "DeleteChannelModerator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile-domain", + ResourceType: "app-instance-user*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update account details for the specified Amazon Chime account", - Privilege: "UpdateAccount", + Description: "Grants permission to delete delegated AWS account management from your Amazon Chime account", + Privilege: "DeleteDelegate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34886,8 +37354,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the OpenIdConfig attributes for your Amazon Chime account", - Privilege: "UpdateAccountOpenIdConfig", + Description: "Grants permission to delete a domain from your Amazon Chime account", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34898,8 +37366,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the account resource in your Amazon Chime account", - Privilege: "UpdateAccountResource", + Description: "Grants permission to delete an events configuration for a bot to receive outgoing events", + Privilege: "DeleteEventsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34910,8 +37378,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the settings for the specified Amazon Chime account", - Privilege: "UpdateAccountSettings", + Description: "Grants permission to delete Active Directory or Okta user groups from your Amazon Chime Enterprise account", + Privilege: "DeleteGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34922,56 +37390,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update AppInstance metadata", - Privilege: "UpdateAppInstance", + Description: "Grants permission to delete a media capture pipeline", + Privilege: "DeleteMediaCapturePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance*", + ResourceType: "media-pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the details for an AppInstanceBot", - Privilege: "UpdateAppInstanceBot", + Description: "Grants permission to delete a media insights pipeline configuration", + Privilege: "DeleteMediaInsightsPipelineConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-bot*", + ConditionKeys: []string{}, + DependentActions: []string{ + "chime:ListVoiceConnectors", + }, + ResourceType: "media-insights-pipeline-configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the details for an AppInstanceUser", - Privilege: "UpdateAppInstanceUser", + Description: "Grants permission to delete a media pipeline", + Privilege: "DeleteMediaPipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "media-pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an endpoint registered for an app instance user", - Privilege: "UpdateAppInstanceUserEndpoint", + Description: "Grants permission to delete kinesis video stream pool", + Privilege: "DeleteMediaPipelineKinesisVideoStreamPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-user*", + ResourceType: "media-pipeline-kinesis-video-stream-pool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the capabilties that you want to update", - Privilege: "UpdateAttendeeCapabilities", + Description: "Grants permission to delete the specified Amazon Chime SDK meeting", + Privilege: "DeleteMeeting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -34982,114 +37452,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the status of the specified bot", - Privilege: "UpdateBot", + Description: "Grants permission to delete the data streaming configurations of an AppInstance", + Privilege: "DeleteMessagingStreamingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update your Call Detail Record S3 bucket", - Privilege: "UpdateCDRSettings", + Description: "Grants permission to move a phone number to the deletion queue", + Privilege: "DeletePhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:CreateBucket", - "s3:DeleteBucket", - "s3:ListAllMyBuckets", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a channel's attributes", - Privilege: "UpdateChannel", + Description: "Grants permission to delete a proxy session for the specified Amazon Chime Voice Connector", + Privilege: "DeleteProxySession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a channel flow", - Privilege: "UpdateChannelFlow", + Description: "Grants permission to delete a room", + Privilege: "DeleteRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel-flow*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the content of a message", - Privilege: "UpdateChannelMessage", + Description: "Grants permission to remove a room member", + Privilege: "DeleteRoomMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the timestamp to the point when a user last read messages in a channel", - Privilege: "UpdateChannelReadMarker", + Description: "Grants permission to delete Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "DeleteSipMediaApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-instance-bot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-instance-user*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "sip-media-application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the global settings related to Amazon Chime for the AWS account", - Privilege: "UpdateGlobalSettings", + Description: "Grants permission to delete Amazon Chime SIP rule under the administrator's AWS account", + Privilege: "DeleteSipRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -35100,49 +37536,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the status of a media insights pipeline configuration", - Privilege: "UpdateMediaInsightsPipelineConfiguration", + Description: "Grants permission to delete the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "chime:ListVoiceConnectors", - "iam:PassRole", - "kinesis:DescribeStream", - "s3:ListBucket", + "logs:CreateLogDelivery", + "logs:DeleteLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", }, - ResourceType: "media-insights-pipeline-configuration*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of a media insights pipeline", - Privilege: "UpdateMediaInsightsPipelineStatus", + Description: "Grants permission to delete emergency calling configuration for the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorEmergencyCallingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update kinesis video stream pool", - Privilege: "UpdateMediaPipelineKinesisVideoStreamPool", + Description: "Grants permission to delete the configuration of the external system that is connected with the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorExternalSystemsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "media-pipeline-kinesis-video-stream-pool*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update phone number details for the specified phone number", - Privilege: "UpdatePhoneNumber", + Description: "Grants permission to delete the specified Amazon Chime Voice Connector Group", + Privilege: "DeleteVoiceConnectorGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -35153,20 +37589,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update phone number settings related to Amazon Chime for the AWS account", - Privilege: "UpdatePhoneNumberSettings", + Description: "Grants permission to delete the origination settings for the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorOrigination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a proxy session for the specified Amazon Chime Voice Connector", - Privilege: "UpdateProxySession", + Description: "Grants permission to delete proxy configuration for the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorProxy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -35177,944 +37613,753 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a room", - Privilege: "UpdateRoom", + Description: "Grants permission to delete streaming configuration for the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorStreamingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update room membership role", - Privilege: "UpdateRoomMembership", + Description: "Grants permission to delete the termination settings for the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorTermination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update properties of Amazon Chime SIP media application under the administrator's AWS account", - Privilege: "UpdateSipMediaApplication", + Description: "Grants permission to delete SIP termination credentials for the specified Amazon Chime Voice Connector", + Privilege: "DeleteVoiceConnectorTerminationCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Amazon Chime SIP media application call under the administrator's AWS account", - Privilege: "UpdateSipMediaApplicationCall", + Description: "Grants permission to delete a voice profile", + Privilege: "DeleteVoiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application*", + ResourceType: "voice-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update properties of Amazon Chime SIP rule under the administrator's AWS account", - Privilege: "UpdateSipRule", + Description: "Grants permission to delete a voice profile domain", + Privilege: "DeleteVoiceProfileDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sip-media-application", + ResourceType: "voice-profile-domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the supported license tiers available for users in your Amazon Chime account", - Privilege: "UpdateSupportedLicenses", + Description: "Grants permission to deregister an endpoint for an app instance user", + Privilege: "DeregisterAppInstanceUserEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update user details for a specified user ID", - Privilege: "UpdateUser", + AccessLevel: "Read", + Description: "Grants permission to get the full details of an AppInstance", + Privilege: "DescribeAppInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the licenses for your Amazon Chime users", - Privilege: "UpdateUserLicenses", + AccessLevel: "Read", + Description: "Grants permission to get the full details of an AppInstanceAdmin", + Privilege: "DescribeAppInstanceAdmin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update user settings related to the specified Amazon Chime user", - Privilege: "UpdateUserSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Amazon Chime Voice Connector details for the specified Amazon Chime Voice Connector", - Privilege: "UpdateVoiceConnector", + AccessLevel: "Read", + Description: "Grants permission to get the full details of an AppInstanceBot", + Privilege: "DescribeAppInstanceBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector*", + ResourceType: "app-instance-bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Amazon Chime Voice Connector Group details for the specified Amazon Chime Voice Connector Group", - Privilege: "UpdateVoiceConnectorGroup", + AccessLevel: "Read", + Description: "Grants permission to get the full details of an AppInstanceUser", + Privilege: "DescribeAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-connector", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a voice profile", - Privilege: "UpdateVoiceProfile", + AccessLevel: "Read", + Description: "Grants permission to describe an endpoint registered for an app instance user", + Privilege: "DescribeAppInstanceUserEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile*", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a voice profile domain", - Privilege: "UpdateVoiceProfileDomain", + AccessLevel: "Read", + Description: "Grants permission to get the full details of a channel", + Privilege: "DescribeChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "voice-profile-domain*", + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to validate the account resource in your Amazon Chime account", - Privilege: "ValidateAccountResource", + Description: "Grants permission to get the full details of a channel ban", + Privilege: "DescribeChannelBan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to validate an address to be used for 911 calls made with Amazon Chime Voice Connectors", - Privilege: "ValidateE911Address", + Description: "Grants permission to get the full details of a channel flow", + Privilege: "DescribeChannelFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-flow*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:chime::${AccountId}:meeting/${MeetingId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "meeting", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "app-instance", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/user/${AppInstanceUserId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "app-instance-user", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/bot/${AppInstanceBotId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "app-instance-bot", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/channel/${ChannelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "channel", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/channel-flow/${ChannelFlowId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "channel-flow", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:media-pipeline/${MediaPipelineId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "media-pipeline", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:media-insights-pipeline-configuration/${ConfigurationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "media-insights-pipeline-configuration", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:media-pipeline-kinesis-video-stream-pool/${PoolName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "media-pipeline-kinesis-video-stream-pool", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:voice-profile-domain/${VoiceProfileDomainId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "voice-profile-domain", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:voice-profile/${VoiceProfileId}", - ConditionKeys: []string{}, - Resource: "voice-profile", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:vc/${VoiceConnectorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "voice-connector", - }, - { - Arn: "arn:${Partition}:chime:${Region}:${AccountId}:sma/${SipMediaApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "sip-media-application", - }, - }, - ServiceName: "Amazon Chime", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "cleanrooms", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to view details of analysisTemplates associated to the collaboration", - Privilege: "BatchGetCollaborationAnalysisTemplate", + Description: "Grants permission to get the full details of a channel membership", + Privilege: "DescribeChannelMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms:GetCollaborationAnalysisTemplate", - }, - ResourceType: "analysistemplate*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for schemas", - Privilege: "BatchGetSchema", + Description: "Grants permission to get the details of a channel based on the membership of the specified user or bot", + Privilege: "DescribeChannelMembershipForAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms:GetSchema", - }, - ResourceType: "collaboration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view analysis rules associated with schemas", - Privilege: "BatchGetSchemaAnalysisRule", + Description: "Grants permission to get the full details of a channel moderated by the specified user or bot", + Privilege: "DescribeChannelModeratedByAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms:GetSchema", - }, - ResourceType: "collaboration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new analysis template", - Privilege: "CreateAnalysisTemplate", + AccessLevel: "Read", + Description: "Grants permission to get the full details of a single ChannelModerator", + Privilege: "DescribeChannelModerator", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new collaboration, a shared data collaboration environment", - Privilege: "CreateCollaboration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to link a Cleanrooms ML configured audience model with a collaboration by creating a new association", - Privilege: "CreateConfiguredAudienceModelAssociation", + Description: "Grants permission to disassociate a flow from a channel", + Privilege: "DisassociateChannelFlow", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "cleanrooms-ml:GetConfiguredAudienceModel", - "cleanrooms-ml:GetConfiguredAudienceModelPolicy", - "cleanrooms-ml:PutConfiguredAudienceModelPolicy", - }, - ResourceType: "configuredaudiencemodelassociation*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new configured table", - Privilege: "CreateConfiguredTable", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "glue:BatchGetPartition", - "glue:GetDatabase", - "glue:GetDatabases", - "glue:GetPartition", - "glue:GetPartitions", - "glue:GetSchemaVersion", - "glue:GetTable", - "glue:GetTables", - }, - ResourceType: "configuredtable*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel-flow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a analysis rule for a configured table", - Privilege: "CreateConfiguredTableAnalysisRule", + Description: "Grants permission to disassociate the primary provisioned number from the specified Amazon Chime user", + Privilege: "DisassociatePhoneNumberFromUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to link a configured table with a collaboration by creating a new association", - Privilege: "CreateConfiguredTableAssociation", + Description: "Grants permission to disassociate multiple phone numbers from the specified Amazon Chime Voice Connector", + Privilege: "DisassociatePhoneNumbersFromVoiceConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "configuredtable*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "configuredtableassociation*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to join collaborations by creating a membership", - Privilege: "CreateMembership", + Description: "Grants permission to disassociate multiple phone numbers from the specified Amazon Chime Voice Connector Group", + Privilege: "DisassociatePhoneNumbersFromVoiceConnectorGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - "logs:CreateLogDelivery", - "logs:CreateLogGroup", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery", - "s3:GetBucketLocation", - }, - ResourceType: "collaboration*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new privacy budget template", - Privilege: "CreatePrivacyBudgetTemplate", + Description: "Grants permission to disassociate the specified sign-in delegate groups from the specified Amazon Chime account", + Privilege: "DisassociateSigninDelegateGroupsFromAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "membership*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing analysis template", - Privilege: "DeleteAnalysisTemplate", + Description: "Grants permission to disassociate the Amazon Connect instance from the specified Amazon Chime Voice Connector", + Privilege: "DisassociateVoiceConnectorConnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing collaboration", - Privilege: "DeleteCollaboration", + Description: "Grants permission to disconnect the Active Directory from your Amazon Chime Enterprise account", + Privilege: "DisconnectDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms-ml:DeleteConfiguredAudienceModelPolicy", - "cleanrooms-ml:GetConfiguredAudienceModelPolicy", - "cleanrooms-ml:PutConfiguredAudienceModelPolicy", - }, - ResourceType: "collaboration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing configured audience model association", - Privilege: "DeleteConfiguredAudienceModelAssociation", + AccessLevel: "Read", + Description: "Grants permission to get details for the specified Amazon Chime account", + Privilege: "GetAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms-ml:DeleteConfiguredAudienceModelPolicy", - "cleanrooms-ml:GetConfiguredAudienceModelPolicy", - "cleanrooms-ml:PutConfiguredAudienceModelPolicy", - }, - ResourceType: "configuredaudiencemodelassociation*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a configured table", - Privilege: "DeleteConfiguredTable", + AccessLevel: "Read", + Description: "Grants permission to get details for the account resource associated with your Amazon Chime account", + Privilege: "GetAccountResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing analysis rule", - Privilege: "DeleteConfiguredTableAnalysisRule", + AccessLevel: "Read", + Description: "Grants permission to get account settings for the specified Amazon Chime account ID", + Privilege: "GetAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a configured table association from a collaboration", - Privilege: "DeleteConfiguredTableAssociation", + AccessLevel: "Read", + Description: "Grants permission to get the account details and OpenIdConfig attributes for your Amazon Chime account", + Privilege: "GetAccountWithOpenIdConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete members from a collaboration", - Privilege: "DeleteMember", + AccessLevel: "Read", + Description: "Grants permission to get retention settings for an app instance", + Privilege: "GetAppInstanceRetentionSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms-ml:DeleteConfiguredAudienceModelPolicy", - "cleanrooms-ml:GetConfiguredAudienceModelPolicy", - "cleanrooms-ml:PutConfiguredAudienceModelPolicy", - }, - ResourceType: "collaboration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to leave collaborations by deleting a membership", - Privilege: "DeleteMembership", + AccessLevel: "Read", + Description: "Grants permission to get the streaming configurations for an app instance", + Privilege: "GetAppInstanceStreamingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing privacy budget template", - Privilege: "DeletePrivacyBudgetTemplate", + AccessLevel: "Read", + Description: "Grants permission to get attendee details for a specified meeting ID and attendee ID", + Privilege: "GetAttendee", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate*", + ResourceType: "meeting*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for an analysis template", - Privilege: "GetAnalysisTemplate", + Description: "Grants permission to retrieve details for the specified bot", + Privilege: "GetBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a collaboration", - Privilege: "GetCollaboration", + Description: "Grants permission to get details of a Call Detail Record S3 bucket associated with your Amazon Chime account", + Privilege: "GetCDRBucket", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "collaboration*", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetBucketAcl", + "s3:GetBucketLocation", + "s3:GetBucketLogging", + "s3:GetBucketVersioning", + "s3:GetBucketWebsite", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for an analysis template within a collaboration", - Privilege: "GetCollaborationAnalysisTemplate", + Description: "Grants permission to get the preferences for a channel membership", + Privilege: "GetChannelMembershipPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate*", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a configured audience model association within a collaboration", - Privilege: "GetCollaborationConfiguredAudienceModelAssociation", + Description: "Grants permission to get the full details of a channel message", + Privilege: "GetChannelMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a privacy budget template within a collaboration", - Privilege: "GetCollaborationPrivacyBudgetTemplate", + Description: "Grants permission to get the status of a channel message", + Privilege: "GetChannelMessageStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate*", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a configured audience model association", - Privilege: "GetConfiguredAudienceModelAssociation", + Description: "Grants permission to get domain details for a domain associated with your Amazon Chime account", + Privilege: "GetDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a configured table", - Privilege: "GetConfiguredTable", + Description: "Grants permission to retrieve details for an events configuration for a bot to receive outgoing events", + Privilege: "GetEventsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view analysis rules for a configured table", - Privilege: "GetConfiguredTableAnalysisRule", + Description: "Grants permission to get global settings related to Amazon Chime for the AWS account", + Privilege: "GetGlobalSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a configured table association", - Privilege: "GetConfiguredTableAssociation", + Description: "Grants permission to get an existing media capture pipeline", + Privilege: "GetMediaCapturePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "media-pipeline*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a membership", - Privilege: "GetMembership", + Description: "Grants permission to get a media insights pipeline configuration", + Privilege: "GetMediaInsightsPipelineConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "media-insights-pipeline-configuration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a privacy budget template", - Privilege: "GetPrivacyBudgetTemplate", + Description: "Grants permission to get an existing media pipeline", + Privilege: "GetMediaPipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate*", + ResourceType: "media-pipeline*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view a protected query", - Privilege: "GetProtectedQuery", + Description: "Grants permission to get an existing media pipeline", + Privilege: "GetMediaPipelineKinesisVideoStreamPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "media-pipeline-kinesis-video-stream-pool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details for a schema", - Privilege: "GetSchema", + Description: "Grants permission to get the meeting record for a specified meeting ID", + Privilege: "GetMeeting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "meeting*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view analysis rules associated with a schema", - Privilege: "GetSchemaAnalysisRule", + Description: "Grants permission to get attendee, connection, and other details for a meeting", + Privilege: "GetMeetingDetail", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms:GetSchema", - }, - ResourceType: "collaboration*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available analysis templates", - Privilege: "ListAnalysisTemplates", + AccessLevel: "Read", + Description: "Grants permission to get the endpoint for the messaging session", + Privilege: "GetMessagingSessionEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the data streaming configurations of an AppInstance", + Privilege: "GetMessagingStreamingConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available analysis templates within a collaboration", - Privilege: "ListCollaborationAnalysisTemplates", + AccessLevel: "Read", + Description: "Grants permission to get details for the specified phone number", + Privilege: "GetPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available configured audience model association within a collaboration", - Privilege: "ListCollaborationConfiguredAudienceModelAssociations", + AccessLevel: "Read", + Description: "Grants permission to get details for the specified phone number order", + Privilege: "GetPhoneNumberOrder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available privacy budget templates within a collaboration", - Privilege: "ListCollaborationPrivacyBudgetTemplates", + AccessLevel: "Read", + Description: "Grants permission to get phone number settings related to Amazon Chime for the AWS account", + Privilege: "GetPhoneNumberSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list privacy budgets within a collaboration", - Privilege: "ListCollaborationPrivacyBudgets", + AccessLevel: "Read", + Description: "Grants permission to get details of the specified proxy session for the specified Amazon Chime Voice Connector", + Privilege: "GetProxySession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available collaborations", - Privilege: "ListCollaborations", + AccessLevel: "Read", + Description: "Grants permission to retrieve the retention settings for the specified Amazon Chime account", + Privilege: "GetRetentionSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -36124,43 +38369,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list available configured audience model associations for a membership", - Privilege: "ListConfiguredAudienceModelAssociations", + AccessLevel: "Read", + Description: "Grants permission to retrieve a room", + Privilege: "GetRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "GetSipMediaApplication", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "sip-media-application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available configured table associations for a membership", - Privilege: "ListConfiguredTableAssociations", + AccessLevel: "Read", + Description: "Grants permission to get Alexa Skill configuration settings for Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "GetSipMediaApplicationAlexaSkillConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation*", + ResourceType: "sip-media-application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get logging configuration settings for Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "GetSipMediaApplicationLoggingConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "sip-media-application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available configured tables", - Privilege: "ListConfiguredTables", + AccessLevel: "Read", + Description: "Grants permission to get details of Amazon Chime SIP rule under the administrator's AWS account", + Privilege: "GetSipRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -36170,21 +38429,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the members of a collaboration", - Privilege: "ListMembers", + AccessLevel: "Read", + Description: "Grants permission to get a speaker search task on the specified Amazon Chime resource", + Privilege: "GetSpeakerSearchTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "media-pipeline", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "voice-connector", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available memberships", - Privilege: "ListMemberships", + AccessLevel: "Read", + Description: "Grants permission to get telephony limits for the AWS account", + Privilege: "GetTelephonyLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -36194,690 +38458,673 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list available privacy budget templates", - Privilege: "ListPrivacyBudgetTemplates", + AccessLevel: "Read", + Description: "Grants permission to get details for the specified user ID", + Privilege: "GetUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a summary of user activity on the user details page", + Privilege: "GetUserActivityReportData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available privacy budgets", - Privilege: "ListPrivacyBudgets", + AccessLevel: "Read", + Description: "Grants permission to get user details for an Amazon Chime user based on the email address in an Amazon Chime Enterprise or Team account", + Privilege: "GetUserByEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list protected queries", - Privilege: "ListProtectedQueries", + AccessLevel: "Read", + Description: "Grants permission to get user settings related to the specified Amazon Chime user", + Privilege: "GetUserSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view available schemas for a collaboration", - Privilege: "ListSchemas", + AccessLevel: "Read", + Description: "Grants permission to get details for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to get details of the emergency calling configuration for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorEmergencyCallingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the configuration of the external system that is connected with the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorExternalSystemsConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details for the specified Amazon Chime Voice Connector Group", + Privilege: "GetVoiceConnectorGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of the logging configuration for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorLoggingConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of the origination settings for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorOrigination", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of the proxy configuration for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorProxy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of the streaming configuration for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorStreamingConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to preview privacy budget template settings", - Privilege: "PreviewPrivacyImpact", + Description: "Grants permission to get details of the termination settings for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorTermination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start protected queries", - Privilege: "StartProtectedQuery", + AccessLevel: "Read", + Description: "Grants permission to get details of the termination health for the specified Amazon Chime Voice Connector", + Privilege: "GetVoiceConnectorTerminationHealth", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "cleanrooms:GetCollaborationAnalysisTemplate", - "cleanrooms:GetSchema", - "s3:GetBucketLocation", - "s3:ListBucket", - "s3:PutObject", - }, - ResourceType: "configuredtableassociation*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a voice profile", + Privilege: "GetVoiceProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate", + ResourceType: "voice-profile*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get a voice profile domain", + Privilege: "GetVoiceProfileDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate", + ResourceType: "voice-profile-domain*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a voice tone analysis task on the specified Amazon Chime resource", + Privilege: "GetVoiceToneAnalysisTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration", + ResourceType: "media-pipeline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation", + ResourceType: "voice-connector", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send an invitation to accept a request for AWS account delegation for an Amazon Chime account", + Privilege: "InviteDelegate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to invite as many as 50 users to the specified Amazon Chime account", + Privilege: "InviteUsers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to invite users from a third party provider to your Amazon Chime account", + Privilege: "InviteUsersFromProvider", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Amazon Chime account usage reporting data", + Privilege: "ListAccountUsageReportData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list the Amazon Chime accounts under the administrator's AWS account", + Privilege: "ListAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the SCIM access keys defined for your Amazon Chime account and Okta configuration", + Privilege: "ListApiKeys", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list administrators in the app instance", + Privilege: "ListAppInstanceAdmins", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation", + ResourceType: "app-instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtableassociation", + ResourceType: "app-instance-user*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all AppInstanceBots created under a single app instance", + Privilege: "ListAppInstanceBots", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership", + ResourceType: "app-instance-bot*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the endpoints registered for an app instance user", + Privilege: "ListAppInstanceUserEndpoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update details of the analysis template", - Privilege: "UpdateAnalysisTemplate", + AccessLevel: "List", + Description: "Grants permission to list all AppInstanceUsers created under a single app instance", + Privilege: "ListAppInstanceUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysistemplate*", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update details of the collaboration", - Privilege: "UpdateCollaboration", + AccessLevel: "List", + Description: "Grants permission to list all Amazon Chime app instances created under a single AWS account", + Privilege: "ListAppInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collaboration*", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a configured audience model association", - Privilege: "UpdateConfiguredAudienceModelAssociation", + AccessLevel: "List", + Description: "Grants permission to list the tags applied to an Amazon Chime SDK attendee resource", + Privilege: "ListAttendeeTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodelassociation*", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing configured table", - Privilege: "UpdateConfiguredTable", + AccessLevel: "List", + Description: "Grants permission to list up to 100 attendees for a specified Amazon Chime SDK meeting", + Privilege: "ListAttendees", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update analysis rules for a configured table", - Privilege: "UpdateConfiguredTableAnalysisRule", + AccessLevel: "List", + Description: "Grants permission to list the available AWS Regions in which you can create an Amazon Chime SDK Voice Connector", + Privilege: "ListAvailableVoiceConnectorRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredtable*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a configured table association", - Privilege: "UpdateConfiguredTableAssociation", + AccessLevel: "List", + Description: "Grants permission to list the bots associated with the administrator's Amazon Chime Enterprise account", + Privilege: "ListBots", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "configuredtableassociation*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update details of a membership", - Privilege: "UpdateMembership", + AccessLevel: "List", + Description: "Grants permission to list Call Detail Record S3 buckets", + Privilege: "ListCDRBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", - "logs:CreateLogDelivery", - "logs:CreateLogGroup", - "logs:DeleteLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "logs:UpdateLogDelivery", - "s3:GetBucketLocation", + "s3:ListAllMyBuckets", + "s3:ListBucket", }, - ResourceType: "membership*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update details of the privacy budget template", - Privilege: "UpdatePrivacyBudgetTemplate", + AccessLevel: "List", + Description: "Grants permission to list the calling regions available for the administrator's AWS account", + Privilege: "ListCallingRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "privacybudgettemplate*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update protected queries", - Privilege: "UpdateProtectedQuery", + AccessLevel: "List", + Description: "Grants permission to list all the users and bots banned from a particular channel", + Privilege: "ListChannelBans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "membership*", + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/analysistemplate/${AnalysisTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "analysistemplate", - }, - { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:collaboration/${CollaborationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "collaboration", - }, - { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/configuredaudiencemodelassociation/${ConfiguredAudienceModelAssociationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "configuredaudiencemodelassociation", - }, - { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:configuredtable/${ConfiguredTableId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "configuredtable", - }, - { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/configuredtableassociation/${ConfiguredTableAssociationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "configuredtableassociation", - }, - { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "membership", - }, { - Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/privacybudgettemplate/${PrivacyBudgetTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list all the Channel Flows created under a single Chime AppInstance", + Privilege: "ListChannelFlows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel-flow*", + }, }, - Resource: "privacybudgettemplate", - }, - }, - ServiceName: "AWS Clean Rooms", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "cleanrooms-ml:CollaborationId", - Description: "Filters access by clean rooms collaboration id", - Type: "String", }, - }, - Prefix: "cleanrooms-ml", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an audience model", - Privilege: "CreateAudienceModel", + AccessLevel: "List", + Description: "Grants permission to list all channel memberships in a channel", + Privilege: "ListChannelMemberships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trainingdataset*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a configured audience model", - Privilege: "CreateConfiguredAudienceModel", + AccessLevel: "List", + Description: "Grants permission to list all channels that a particular user or bot is a part of", + Privilege: "ListChannelMembershipsForAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a training dataset, or seed audience. In Clean Rooms ML, the TrainingDataset is metadata that points to a Glue table, which is read only during AudienceModel creation", - Privilege: "CreateTrainingDataset", + AccessLevel: "Read", + Description: "Grants permission to list all the messages in a channel", + Privilege: "ListChannelMessages", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-bot*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified audience generation job, and removes all data associated with the job", - Privilege: "DeleteAudienceGenerationJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob*", + ResourceType: "app-instance-user*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified audience generation job, and removes all data associated with the job", - Privilege: "DeleteAudienceModel", + AccessLevel: "List", + Description: "Grants permission to list all the moderators for a channel", + Privilege: "ListChannelModerators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified configured audience model", - Privilege: "DeleteConfiguredAudienceModel", + AccessLevel: "List", + Description: "Grants permission to list all the Channels created under a single Chime AppInstance", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified configured audience model policy", - Privilege: "DeleteConfiguredAudienceModelPolicy", + AccessLevel: "List", + Description: "Grants permission to list all the Channels associated with a single Chime Channel Flow", + Privilege: "ListChannelsAssociatedWithChannelFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-flow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a training dataset", - Privilege: "DeleteTrainingDataset", + AccessLevel: "List", + Description: "Grants permission to list all channels moderated by a user or bot", + Privilege: "ListChannelsModeratedByAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trainingdataset*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about an audience generation job", - Privilege: "GetAudienceGenerationJob", + AccessLevel: "List", + Description: "Grants permission to list account delegate information associated with your Amazon Chime account", + Privilege: "ListDelegates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about an audience model", - Privilege: "GetAudienceModel", + AccessLevel: "List", + Description: "Grants permission to list active Active Directories hosted in the Directory Service of your AWS account", + Privilege: "ListDirectories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a configured audience model", - Privilege: "GetConfiguredAudienceModel", + AccessLevel: "List", + Description: "Grants permission to list domains associated with your Amazon Chime account", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a configured audience model policy", - Privilege: "GetConfiguredAudienceModelPolicy", + AccessLevel: "List", + Description: "Grants permission to list Active Directory or Okta user groups associated with your Amazon Chime Enterprise account", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list media capture pipelines", + Privilege: "ListMediaCapturePipelines", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a training dataset", - Privilege: "GetTrainingDataset", + AccessLevel: "List", + Description: "Grants permission to list all media insights pipeline configurations", + Privilege: "ListMediaInsightsPipelineConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trainingdataset*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list media pipelines", + Privilege: "ListMediaPipelineKinesisVideoStreamPools", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -36885,19 +39132,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of the audience export jobs", - Privilege: "ListAudienceExportJobs", + Description: "Grants permission to list media pipelines", + Privilege: "ListMediaPipelines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all events that occurred for a specified meeting", + Privilege: "ListMeetingEvents", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -36905,19 +39156,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of audience generation jobs", - Privilege: "ListAudienceGenerationJobs", + Description: "Grants permission to list the tags applied to an Amazon Chime SDK meeting resource", + Privilege: "ListMeetingTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel", + ResourceType: "meeting*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list up to 100 active Amazon Chime SDK meetings", + Privilege: "ListMeetings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -36925,8 +39180,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of audience models", - Privilege: "ListAudienceModels", + Description: "Grants permission to list meetings ended during the specified date range", + Privilege: "ListMeetingsReportData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -36937,8 +39192,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of configured audience models", - Privilege: "ListConfiguredAudienceModels", + Description: "Grants permission to list the phone number orders under the administrator's AWS account", + Privilege: "ListPhoneNumberOrders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -36949,43 +39204,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of tags for a provided resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to list the phone numbers under the administrator's AWS account", + Privilege: "ListPhoneNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list proxy sessions for the specified Amazon Chime Voice Connector", + Privilege: "ListProxySessions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel", + ResourceType: "voice-connector*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all room members", + Privilege: "ListRoomMemberships", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list rooms", + Privilege: "ListRooms", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trainingdataset", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of training datasets", - Privilege: "ListTrainingDatasets", + Description: "Grants permission to list all Amazon Chime SIP media applications under the administrator's AWS account", + Privilege: "ListSipMediaApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -36995,644 +39263,497 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update the resource policy for a configured audience model", - Privilege: "PutConfiguredAudienceModelPolicy", + AccessLevel: "List", + Description: "Grants permission to list all Amazon Chime SIP rules under the administrator's AWS account", + Privilege: "ListSipRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", + ResourceType: "sip-media-application", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to export an audience of a specified size after you have generated an audience", - Privilege: "StartAudienceExportJob", + AccessLevel: "List", + Description: "Grants permission to list all the SubChannels under a single Channel", + Privilege: "ListSubChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the audience generation job", - Privilege: "StartAudienceGenerationJob", + AccessLevel: "List", + Description: "Grants permission to list the phone number countries supported by the AWS account", + Privilege: "ListSupportedPhoneNumberCountries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "cleanrooms-ml:CollaborationId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a specific resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to list the tags applied to an Amazon Chime resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob", + ResourceType: "app-instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel", + ResourceType: "app-instance-bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel", + ResourceType: "app-instance-user", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trainingdataset", + ResourceType: "channel", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-flow", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to untag a specific resource", - Privilege: "UnTagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencegenerationjob", + ResourceType: "media-insights-pipeline-configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel", + ResourceType: "media-pipeline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel", + ResourceType: "media-pipeline-kinesis-video-stream-pool", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trainingdataset", + ResourceType: "meeting", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sip-media-application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a configured audience model.", - Privilege: "UpdateConfiguredAudienceModel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuredaudiencemodel*", + ResourceType: "voice-connector", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audiencemodel", + ResourceType: "voice-profile-domain", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the users that belong to the specified Amazon Chime account", + Privilege: "ListUsers", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:training-dataset/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the Amazon Chime Voice Connector Groups under the administrator's AWS account", + Privilege: "ListVoiceConnectorGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "trainingdataset", }, { - Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:audience-model/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the SIP termination credentials for the specified Amazon Chime Voice Connector", + Privilege: "ListVoiceConnectorTerminationCredentials", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "voice-connector*", + }, }, - Resource: "audiencemodel", }, { - Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:configured-audience-model/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the Amazon Chime Voice Connectors under the administrator's AWS account", + Privilege: "ListVoiceConnectors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "configuredaudiencemodel", }, { - Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:audience-generation-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "audiencegenerationjob", - }, - }, - ServiceName: "AWS Clean Rooms ML", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "cloud9:EnvironmentId", - Description: "Filters access by the AWS Cloud9 environment ID", - Type: "String", - }, - { - Condition: "cloud9:EnvironmentName", - Description: "Filters access by the AWS Cloud9 environment name", - Type: "String", - }, - { - Condition: "cloud9:InstanceType", - Description: "Filters access by the instance type of the AWS Cloud9 environment's Amazon EC2 instance", - Type: "String", - }, - { - Condition: "cloud9:OwnerArn", - Description: "Filters access by the owner ARN specified", - Type: "ARN", - }, - { - Condition: "cloud9:Permissions", - Description: "Filters access by the type of AWS Cloud9 permissions", - Type: "String", - }, - { - Condition: "cloud9:SubnetId", - Description: "Filters access by the subnet ID that the AWS Cloud9 environment will be created in", - Type: "String", - }, - { - Condition: "cloud9:UserArn", - Description: "Filters access by the user ARN specified", - Type: "ARN", - }, - }, - Prefix: "cloud9", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to start the Amazon EC2 instance that your AWS Cloud9 IDE connects to", - Privilege: "ActivateEC2Remote", + AccessLevel: "List", + Description: "Grants permission to list voice profile domains", + Privilege: "ListVoiceProfileDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then hosts the environment on the instance", - Privilege: "CreateEnvironmentEC2", + AccessLevel: "List", + Description: "Grants permission to list voice profiles", + Privilege: "ListVoiceProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "cloud9:EnvironmentName", - "cloud9:InstanceType", - "cloud9:SubnetId", - "cloud9:UserArn", - "cloud9:OwnerArn", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "voice-profile-domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add an environment member to an AWS Cloud9 development environment", - Privilege: "CreateEnvironmentMembership", + Description: "Grants permission to log out the specified user from all of the devices they are currently logged into", + Privilege: "LogoutUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{ - "cloud9:UserArn", - "cloud9:EnvironmentId", - "cloud9:Permissions", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Cloud9 SSH development environment", - Privilege: "CreateEnvironmentSSH", + Description: "Grants permission to enable data retention for the app instance", + Privilege: "PutAppInstanceRetentionSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "cloud9:EnvironmentName", - "cloud9:OwnerArn", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to create an authentication token that allows a connection between the AWS Cloud9 IDE and the user's environment", - Privilege: "CreateEnvironmentToken", + AccessLevel: "Write", + Description: "Grants permission to configure data streaming for the app instance", + Privilege: "PutAppInstanceStreamingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "app-instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Cloud9 development environment. If the environment is hosted on an Amazon Elastic Compute Cloud (Amazon EC2) instance, also terminates the instance", - Privilege: "DeleteEnvironment", + Description: "Grants permission to put expiration settings for an AppInstanceUser", + Privilege: "PutAppInstanceUserExpirationSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "environment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an environment member from an AWS Cloud9 development environment", - Privilege: "DeleteEnvironmentMembership", + Description: "Grants permission to put expiration settings for a channel", + Privilege: "PutChannelExpirationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about the connection to the EC2 development environment, including host, user, and port", - Privilege: "DescribeEC2Remote", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about environment members for an AWS Cloud9 development environment", - Privilege: "DescribeEnvironmentMemberships", + AccessLevel: "Write", + Description: "Grants permission to put the preferences for a channel membership", + Privilege: "PutChannelMembershipPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{ - "cloud9:UserArn", - "cloud9:EnvironmentId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-bot*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get status information for an AWS Cloud9 development environment", - Privilege: "DescribeEnvironmentStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about AWS Cloud9 development environments", - Privilege: "DescribeEnvironments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about the connection to the SSH development environment, including host, user, and port", - Privilege: "DescribeSSHRemote", + AccessLevel: "Write", + Description: "Grants permission to update details for an events configuration for a bot to receive outgoing events", + Privilege: "PutEventsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get configuration information that's used to initialize the AWS Cloud9 IDE", - Privilege: "GetEnvironmentConfig", + AccessLevel: "Write", + Description: "Grants permission to put the data streaming configurations of an AppInstance", + Privilege: "PutMessagingStreamingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the AWS Cloud9 IDE settings for a specified development environment", - Privilege: "GetEnvironmentSettings", + AccessLevel: "Write", + Description: "Grants permission to create or update retention settings for the specified Amazon Chime account", + Privilege: "PutRetentionSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the AWS Cloud9 IDE settings for a specified environment member", - Privilege: "GetMembershipSettings", + AccessLevel: "Write", + Description: "Grants permission to update Alexa Skill configuration settings for Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "PutSipMediaApplicationAlexaSkillConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "sip-media-application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the migration experience for a cloud9 user", - Privilege: "GetMigrationExperiences", + AccessLevel: "Write", + Description: "Grants permission to update logging configuration settings for Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "PutSipMediaApplicationLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sip-media-application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the user's public SSH key, which is used by AWS Cloud9 to connect to SSH development environments", - Privilege: "GetUserPublicKey", + AccessLevel: "Write", + Description: "Grants permission to add emergency calling configuration for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorEmergencyCallingConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "cloud9:UserArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the AWS Cloud9 IDE settings for a specified user", - Privilege: "GetUserSettings", + AccessLevel: "Write", + Description: "Grants permission to update the configuration of the external system that is connected with the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorExternalSystemsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of AWS Cloud9 development environment identifiers", - Privilege: "ListEnvironments", + AccessLevel: "Write", + Description: "Grants permission to add logging configuration for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:CreateLogDelivery", + "logs:CreateLogGroup", + "logs:DeleteLogDelivery", + "logs:DescribeLogGroups", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + }, + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a cloud9 environment", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update the origination settings for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorOrigination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set AWS managed temporary credentials on the Amazon EC2 instance that's used by the AWS Cloud9 integrated development environment (IDE)", - Privilege: "ModifyTemporaryCredentialsOnEnvironmentEC2", + Description: "Grants permission to add proxy configuration for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorProxy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "voice-connector*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a cloud9 environment", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to add streaming configuration for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorStreamingConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment*", + ConditionKeys: []string{}, + DependentActions: []string{ + "chime:GetMediaInsightsPipelineConfiguration", + }, + ResourceType: "voice-connector*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "media-insights-pipeline-configuration", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a cloud9 environment", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update the termination settings for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorTermination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the settings of an existing AWS Cloud9 development environment", - Privilege: "UpdateEnvironment", + Description: "Grants permission to add SIP termination credentials for the specified Amazon Chime Voice Connector", + Privilege: "PutVoiceConnectorTerminationCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the settings of an existing environment member for an AWS Cloud9 development environment", - Privilege: "UpdateEnvironmentMembership", + Description: "Grants permission to redact message content", + Privilege: "RedactChannelMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "app-instance-bot*", }, { - ConditionKeys: []string{ - "cloud9:UserArn", - "cloud9:EnvironmentId", - "cloud9:Permissions", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the AWS Cloud9 IDE settings for a specified development environment", - Privilege: "UpdateEnvironmentSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the AWS Cloud9 IDE settings for a specified environment member", - Privilege: "UpdateMembershipSettings", + Description: "Grants permission to redact the specified Chime conversation Message", + Privilege: "RedactConversationMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update details about the connection to the SSH development environment, including host, user, and port", - Privilege: "UpdateSSHRemote", + Description: "Grants permission to redacts the specified Chime room Message", + Privilege: "RedactRoomMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update IDE-specific settings of an AWS Cloud9 user", - Privilege: "UpdateUserSettings", + Description: "Grants permission to regenerate the security token for the specified bot", + Privilege: "RegenerateSecurityToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -37642,191 +39763,158 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to validate the environment name during the process of creating an AWS Cloud9 development environment", - Privilege: "ValidateEnvironmentName", + AccessLevel: "Write", + Description: "Grants permission to register an endpoint for an app instance user", + Privilege: "RegisterAppInstanceUserEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "mobiletargeting:GetApp", + }, + ResourceType: "app-instance-user*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cloud9:${Region}:${Account}:environment:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment", - }, - }, - ServiceName: "AWS Cloud9", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "clouddirectory", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add a new Facet to an object", - Privilege: "AddFacetToObject", + Description: "Grants permission to modify the account name for your Amazon Chime Enterprise or Team account", + Privilege: "RenameAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy input published schema into Directory with same name and version as that of published schema", - Privilege: "ApplySchema", + Description: "Grants permission to renew the delegation request associated with an Amazon Chime account", + Privilege: "RenewDelegate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach an existing object to another existing object", - Privilege: "AttachObject", + Description: "Grants permission to reset the account resource in your Amazon Chime account", + Privilege: "ResetAccountResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a policy object to any other object", - Privilege: "AttachPolicy", + Description: "Grants permission to reset the personal meeting PIN for the specified user on an Amazon Chime account", + Privilege: "ResetPersonalPIN", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach the specified object to the specified index", - Privilege: "AttachToIndex", + Description: "Grants permission to restore the specified phone number from the deltion queue back to the phone number inventory", + Privilege: "RestorePhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a typed link b/w a source & target object reference", - Privilege: "AttachTypedLink", + AccessLevel: "Read", + Description: "Grants permission to download the file containing links to all user attachments returned as part of the \"Request attachments\" action", + Privilege: "RetrieveDataExports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to perform all the read operations in a batch. Each individual operation inside BatchRead needs to be granted permissions explicitly", - Privilege: "BatchRead", + Description: "Grants permission to search phone numbers that can be ordered from the carrier", + Privilege: "SearchAvailablePhoneNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to perform all the write operations in a batch. Each individual operation inside BatchWrite needs to be granted permissions explicitly", - Privilege: "BatchWrite", + AccessLevel: "List", + Description: "Grants permission to search channels that an AppInstanceUser belongs to, or search channels across the AppInstance for an AppInstaceAdmin", + Privilege: "SearchChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "app-instance-bot*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Directory by copying the published schema into the directory", - Privilege: "CreateDirectory", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "app-instance-user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new Facet in a schema", - Privilege: "CreateFacet", + Description: "Grants permission to send a message to a particular channel that the member is a part of", + Privilege: "SendChannelMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "app-instance-user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an index object", - Privilege: "CreateIndex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an object in a Directory", - Privilege: "CreateObject", + Description: "Grants permission to submit the \"Request attachments\" request", + Privilege: "StartDataExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new schema in a development state", - Privilege: "CreateSchema", + Description: "Grants permission to start transcription for a meeting", + Privilege: "StartMeetingTranscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -37837,404 +39925,355 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new Typed Link facet in a schema", - Privilege: "CreateTypedLinkFacet", + Description: "Grants permission to start a speaker search task on the specified Amazon Chime resource", + Privilege: "StartSpeakerSearchTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "media-pipeline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "voice-connector", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a directory. Only disabled directories can be deleted", - Privilege: "DeleteDirectory", + Description: "Grants permission to start a voice tone analysis task on the specified Amazon Chime resource", + Privilege: "StartVoiceToneAnalysisTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "media-pipeline", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a given Facet. All attributes and Rules associated with the facet will be deleted", - Privilege: "DeleteFacet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "voice-connector", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an object and its associated attributes", - Privilege: "DeleteObject", + Description: "Grants permission to stop transcription for a meeting", + Privilege: "StopMeetingTranscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a given schema", - Privilege: "DeleteSchema", + Description: "Grants permission to stop a speaker search task on the specified Amazon Chime resource", + Privilege: "StopSpeakerSearchTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "media-pipeline", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a given TypedLink Facet. All attributes and Rules associated with the facet will be deleted", - Privilege: "DeleteTypedLinkFacet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "voice-connector", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach the specified object from the specified index", - Privilege: "DetachFromIndex", + Description: "Grants permission to stop a voice tone analysis task on the specified Amazon Chime resource", + Privilege: "StopVoiceToneAnalysisTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "media-pipeline", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to detach a given object from the parent object", - Privilege: "DetachObject", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "voice-connector", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach a policy from an object", - Privilege: "DetachPolicy", + Description: "Grants permission to submit a customer service support request", + Privilege: "SubmitSupportRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach a given typed link b/w given source and target object reference", - Privilege: "DetachTypedLink", + Description: "Grants permission to suspend users from an Amazon Chime Enterprise account", + Privilege: "SuspendUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable the specified directory", - Privilege: "DisableDirectory", + AccessLevel: "Tagging", + Description: "Grants permission to apply the specified tags to the specified Amazon Chime SDK attendee", + Privilege: "TagAttendee", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable the specified directory", - Privilege: "EnableDirectory", + AccessLevel: "Tagging", + Description: "Grants permission to apply the specified tags to the specified Amazon Chime SDK meeting", + Privilege: "TagMeeting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "meeting*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return current applied schema version ARN, including the minor version in use", - Privilege: "GetAppliedSchemaVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata about a directory", - Privilege: "GetDirectory", + AccessLevel: "Tagging", + Description: "Grants permission to apply the specified tags to the specified resource (tag-based access controls are only supported on *-chime..amazonaws.com endpoints)", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "app-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details of the Facet, such as Facet Name, Attributes, Rules, or ObjectType", - Privilege: "GetFacet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "app-instance-bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "app-instance-user", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve attributes that are associated with a typed link", - Privilege: "GetLinkAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "channel-flow", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve attributes within a facet that are associated with an object", - Privilege: "GetObjectAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "media-insights-pipeline-configuration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata about an object", - Privilege: "GetObjectInformation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "media-pipeline", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a JSON representation of the schema", - Privilege: "GetSchemaAsJson", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "media-pipeline-kinesis-video-stream-pool", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "meeting", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "sip-media-application", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return identity attributes order information associated with a given typed link facet", - Privilege: "GetTypedLinkFacetInformation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "voice-connector", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "voice-profile-domain", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list schemas applied to a directory", - Privilege: "ListAppliedSchemaArns", + AccessLevel: "Write", + Description: "Grants permission to unauthorize an Active Directory from your Amazon Chime Enterprise account", + Privilege: "UnauthorizeDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list indices attached to an object", - Privilege: "ListAttachedIndices", + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified tags from the specified Amazon Chime SDK attendee", + Privilege: "UntagAttendee", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the ARNs of schemas in the development state", - Privilege: "ListDevelopmentSchemaArns", + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified tags from the specified Amazon Chime SDK meeting", + Privilege: "UntagMeeting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list directories created within an account", - Privilege: "ListDirectories", + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified tags from the specified resource (tag-based access controls are only supported on *-chime..amazonaws.com endpoints)", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve attributes attached to the facet", - Privilege: "ListFacetAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "app-instance-bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "app-instance-user", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the names of facets that exist in a schema", - Privilege: "ListFacetNames", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "channel-flow", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "media-insights-pipeline-configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "media-pipeline", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "media-pipeline-kinesis-video-stream-pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "meeting", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "sip-media-application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "voice-connector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "voice-profile-domain", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of all incoming TypedLinks for a given object", - Privilege: "ListIncomingTypedLinks", + AccessLevel: "Write", + Description: "Grants permission to update account details for the specified Amazon Chime account", + Privilege: "UpdateAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list objects attached to the specified index", - Privilege: "ListIndex", + AccessLevel: "Write", + Description: "Grants permission to update the OpenIdConfig attributes for your Amazon Chime account", + Privilege: "UpdateAccountOpenIdConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the major version families of each managed schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead", - Privilege: "ListManagedSchemaArns", + AccessLevel: "Write", + Description: "Grants permission to update the account resource in your Amazon Chime account", + Privilege: "UpdateAccountResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -38244,397 +40283,432 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all attributes associated with an object", - Privilege: "ListObjectAttributes", + AccessLevel: "Write", + Description: "Grants permission to update the settings for the specified Amazon Chime account", + Privilege: "UpdateAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of child objects associated with a given object", - Privilege: "ListObjectChildren", + AccessLevel: "Write", + Description: "Grants permission to update AppInstance metadata", + Privilege: "UpdateAppInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "app-instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all available parent paths for any object type such as node, leaf node, policy node, and index node objects", - Privilege: "ListObjectParentPaths", + AccessLevel: "Write", + Description: "Grants permission to update the details for an AppInstanceBot", + Privilege: "UpdateAppInstanceBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "app-instance-bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list parent objects associated with a given object in pagination fashion", - Privilege: "ListObjectParents", + AccessLevel: "Write", + Description: "Grants permission to update the details for an AppInstanceUser", + Privilege: "UpdateAppInstanceUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return policies attached to an object in pagination fashion", - Privilege: "ListObjectPolicies", + AccessLevel: "Write", + Description: "Grants permission to update an endpoint registered for an app instance user", + Privilege: "UpdateAppInstanceUserEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "app-instance-user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of all outgoing TypedLinks for a given object", - Privilege: "ListOutgoingTypedLinks", + AccessLevel: "Write", + Description: "Grants permission to the capabilties that you want to update", + Privilege: "UpdateAttendeeCapabilities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "meeting*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return all of the ObjectIdentifiers to which a given policy is attached", - Privilege: "ListPolicyAttachments", + AccessLevel: "Write", + Description: "Grants permission to update the status of the specified bot", + Privilege: "UpdateBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve published schema ARNs", - Privilege: "ListPublishedSchemaArns", + AccessLevel: "Write", + Description: "Grants permission to update your Call Detail Record S3 bucket", + Privilege: "UpdateCDRSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:CreateBucket", + "s3:DeleteBucket", + "s3:ListAllMyBuckets", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a channel's attributes", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-instance-bot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-instance-user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a channel flow", + Privilege: "UpdateChannelFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "channel-flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of attributes associated with typed link facet", - Privilege: "ListTypedLinkFacetAttributes", + AccessLevel: "Write", + Description: "Grants permission to update the content of a message", + Privilege: "UpdateChannelMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "app-instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of typed link facet names that exist in a schema", - Privilege: "ListTypedLinkFacetNames", + AccessLevel: "Write", + Description: "Grants permission to set the timestamp to the point when a user last read messages in a channel", + Privilege: "UpdateChannelReadMarker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "app-instance-bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "app-instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all policies from the root of the Directory to the object specified", - Privilege: "LookupPolicy", + AccessLevel: "Write", + Description: "Grants permission to update the global settings related to Amazon Chime for the AWS account", + Privilege: "UpdateGlobalSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to publish a development schema with a version", - Privilege: "PublishSchema", + Description: "Grants permission to update the status of a media insights pipeline configuration", + Privilege: "UpdateMediaInsightsPipelineConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "chime:ListVoiceConnectors", + "iam:PassRole", + "kinesis:DescribeStream", + "s3:ListBucket", + }, + ResourceType: "media-insights-pipeline-configuration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the status of a media insights pipeline", + Privilege: "UpdateMediaInsightsPipelineStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "media-pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a schema using JSON upload. Only available for development schemas", - Privilege: "PutSchemaFromJson", + Description: "Grants permission to update kinesis video stream pool", + Privilege: "UpdateMediaPipelineKinesisVideoStreamPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "media-pipeline-kinesis-video-stream-pool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the specified facet from the specified object", - Privilege: "RemoveFacetFromObject", + Description: "Grants permission to update phone number details for the specified phone number", + Privilege: "UpdatePhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update phone number settings related to Amazon Chime for the AWS account", + Privilege: "UpdatePhoneNumberSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a proxy session for the specified Amazon Chime Voice Connector", + Privilege: "UpdateProxySession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "voice-connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add/update/delete existing Attributes, Rules, or ObjectType of a Facet", - Privilege: "UpdateFacet", + Description: "Grants permission to update a room", + Privilege: "UpdateRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "appliedSchema*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update room membership role", + Privilege: "UpdateRoomMembership", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a given typed link’s attributes. Attributes to be updated must not contribute to the typed link’s identity, as defined by its IdentityAttributeOrder", - Privilege: "UpdateLinkAttributes", + Description: "Grants permission to update properties of Amazon Chime SIP media application under the administrator's AWS account", + Privilege: "UpdateSipMediaApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "sip-media-application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a given object's attributes", - Privilege: "UpdateObjectAttributes", + Description: "Grants permission to update an Amazon Chime SIP media application call under the administrator's AWS account", + Privilege: "UpdateSipMediaApplicationCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "sip-media-application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the schema name with a new name", - Privilege: "UpdateSchema", + Description: "Grants permission to update properties of Amazon Chime SIP rule under the administrator's AWS account", + Privilege: "UpdateSipRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "sip-media-application", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add/update/delete existing Attributes, Rules, identity attribute order of a TypedLink Facet", - Privilege: "UpdateTypedLinkFacet", + Description: "Grants permission to update the supported license tiers available for users in your Amazon Chime account", + Privilege: "UpdateSupportedLicenses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upgrade a single directory in-place using the PublishedSchemaArn with schema updates found in MinorVersion. Backwards-compatible minor version upgrades are instantaneously available for readers on all objects in the directory", - Privilege: "UpgradeAppliedSchema", + Description: "Grants permission to update user details for a specified user ID", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the licenses for your Amazon Chime users", + Privilege: "UpdateUserLicenses", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upgrade a published schema under a new minor version revision using the current contents of DevelopmentSchemaArn", - Privilege: "UpgradePublishedSchema", + Description: "Grants permission to update user settings related to the specified Amazon Chime user", + Privilege: "UpdateUserSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "developmentSchema*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update Amazon Chime Voice Connector details for the specified Amazon Chime Voice Connector", + Privilege: "UpdateVoiceConnector", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishedSchema*", + ResourceType: "voice-connector*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:directory/${DirectoryId}/schema/${SchemaName}/${Version}", - ConditionKeys: []string{}, - Resource: "appliedSchema", - }, - { - Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:schema/development/${SchemaName}", - ConditionKeys: []string{}, - Resource: "developmentSchema", - }, - { - Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:directory/${DirectoryId}", - ConditionKeys: []string{}, - Resource: "directory", - }, - { - Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:schema/published/${SchemaName}/${Version}", - ConditionKeys: []string{}, - Resource: "publishedSchema", - }, - }, - ServiceName: "Amazon Cloud Directory", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "cloudformation", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel resource requests in your account", - Privilege: "CancelResourceRequest", + Description: "Grants permission to update Amazon Chime Voice Connector Group details for the specified Amazon Chime Voice Connector Group", + Privilege: "UpdateVoiceConnectorGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-connector", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create resources in your account", - Privilege: "CreateResource", + Description: "Grants permission to update a voice profile", + Privilege: "UpdateVoiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete resources in your account", - Privilege: "DeleteResource", + Description: "Grants permission to update a voice profile domain", + Privilege: "UpdateVoiceProfileDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "voice-profile-domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get resources in your account", - Privilege: "GetResource", + Description: "Grants permission to validate the account resource in your Amazon Chime account", + Privilege: "ValidateAccountResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -38645,8 +40719,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get resource requests in your account", - Privilege: "GetResourceRequestStatus", + Description: "Grants permission to validate an address to be used for 911 calls made with Amazon Chime Voice Connectors", + Privilege: "ValidateE911Address", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -38655,865 +40729,988 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to list resource requests in your account", - Privilege: "ListResourceRequests", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:chime::${AccountId}:meeting/${MeetingId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "meeting", }, { - AccessLevel: "Read", - Description: "Grants permission to list resources in your account", - Privilege: "ListResources", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "app-instance", }, { - AccessLevel: "Write", - Description: "Grants permission to update resources in your account", - Privilege: "UpdateResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/user/${AppInstanceUserId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "app-instance-user", }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Cloud Control API", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/bot/${AppInstanceBotId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "app-instance-bot", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/channel/${ChannelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:app-instance/${AppInstanceId}/channel-flow/${ChannelFlowId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel-flow", }, { - Condition: "cloudformation:ChangeSetName", - Description: "Filters access by an AWS CloudFormation change set name. Use to control which change sets IAM users can execute or delete", - Type: "String", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:media-pipeline/${MediaPipelineId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "media-pipeline", }, { - Condition: "cloudformation:ImportResourceTypes", - Description: "Filters access by the template resource types, such as AWS::EC2::Instance. Use to control which resource types IAM users can work with when they want to import a resource into a stack", - Type: "String", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:media-insights-pipeline-configuration/${ConfigurationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "media-insights-pipeline-configuration", }, { - Condition: "cloudformation:ResourceTypes", - Description: "Filters access by the template resource types, such as AWS::EC2::Instance. Use to control which resource types IAM users can work with when they create or update a stack", - Type: "ArrayOfString", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:media-pipeline-kinesis-video-stream-pool/${PoolName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "media-pipeline-kinesis-video-stream-pool", }, { - Condition: "cloudformation:RoleArn", - Description: "Filters access by the ARN of an IAM service role. Use to control which service role IAM users can use to work with stacks or change sets", - Type: "ARN", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:voice-profile-domain/${VoiceProfileDomainId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "voice-profile-domain", }, { - Condition: "cloudformation:StackPolicyUrl", - Description: "Filters access by an Amazon S3 stack policy URL. Use to control which stack policies IAM users can associate with a stack during a create or update stack action", - Type: "String", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:voice-profile/${VoiceProfileId}", + ConditionKeys: []string{}, + Resource: "voice-profile", }, { - Condition: "cloudformation:TargetRegion", - Description: "Filters access by stack set target region. Use to control which regions IAM users can use when they create or update stack sets", - Type: "ArrayOfString", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:vc/${VoiceConnectorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "voice-connector", }, { - Condition: "cloudformation:TemplateUrl", - Description: "Filters access by an Amazon S3 template URL. Use to control which templates IAM users can use when they create or update stacks", + Arn: "arn:${Partition}:chime:${Region}:${AccountId}:sma/${SipMediaApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "sip-media-application", + }, + }, + ServiceName: "Amazon Chime", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", Type: "String", }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, }, - Prefix: "cloudformation", + Prefix: "cleanrooms", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to activate trusted access between StackSets and Organizations. With trusted access between StackSets and Organizations activated, the management account has permissions to create and manage StackSets for your organization", - Privilege: "ActivateOrganizationsAccess", + AccessLevel: "Read", + Description: "Grants permission to view details of analysisTemplates associated to the collaboration", + Privilege: "BatchGetCollaborationAnalysisTemplate", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms:GetCollaborationAnalysisTemplate", + }, + ResourceType: "analysistemplate*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to activate a public third-party extension, making it available for use in stack templates", - Privilege: "ActivateType", + AccessLevel: "Read", + Description: "Grants permission to view details for schemas", + Privilege: "BatchGetSchema", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms:GetSchema", + }, + ResourceType: "collaboration*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "idmappingtable", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return configuration data for the specified CloudFormation extensions", - Privilege: "BatchDescribeTypeConfigurations", + Description: "Grants permission to view analysis rules associated with schemas", + Privilege: "BatchGetSchemaAnalysisRule", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms:GetSchema", + }, + ResourceType: "collaboration*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an update on the specified stack", - Privilege: "CancelUpdateStack", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "idmappingtable", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to continue rolling back a stack that is in the UPDATE_ROLLBACK_FAILED state to the UPDATE_ROLLBACK_COMPLETE state", - Privilege: "ContinueUpdateRollback", + Description: "Grants permission to create a new analysis template", + Privilege: "CreateAnalysisTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "analysistemplate*", }, { ConditionKeys: []string{ - "cloudformation:RoleArn", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a list of changes for a stack", - Privilege: "CreateChangeSet", + Description: "Grants permission to create a new collaboration, a shared data collaboration environment", + Privilege: "CreateCollaboration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stack*", - }, { ConditionKeys: []string{ - "cloudformation:ChangeSetName", - "cloudformation:ResourceTypes", - "cloudformation:ImportResourceTypes", - "cloudformation:RoleArn", - "cloudformation:StackPolicyUrl", - "cloudformation:TemplateUrl", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a template from existing resources that are not already managed with CloudFormation", - Privilege: "CreateGeneratedTemplate", + Description: "Grants permission to link a Cleanrooms ML configured audience model with a collaboration by creating a new association", + Privilege: "CreateConfiguredAudienceModelAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "cleanrooms-ml:GetConfiguredAudienceModel", + "cleanrooms-ml:GetConfiguredAudienceModelPolicy", + "cleanrooms-ml:PutConfiguredAudienceModelPolicy", + }, + ResourceType: "configuredaudiencemodelassociation*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a stack as specified in the template", - Privilege: "CreateStack", + Description: "Grants permission to create a new configured table", + Privilege: "CreateConfiguredTable", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stack*", - }, { ConditionKeys: []string{ - "cloudformation:ResourceTypes", - "cloudformation:RoleArn", - "cloudformation:StackPolicyUrl", - "cloudformation:TemplateUrl", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "athena:GetTableMetadata", + "glue:BatchGetPartition", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetPartition", + "glue:GetPartitions", + "glue:GetSchemaVersion", + "glue:GetTable", + "glue:GetTables", + }, + ResourceType: "configuredtable*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create stack instances for the specified accounts, within the specified regions", - Privilege: "CreateStackInstances", + Description: "Grants permission to create a analysis rule for a configured table", + Privilege: "CreateConfiguredTableAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "configuredtable*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to link a configured table with a collaboration by creating a new association", + Privilege: "CreateConfiguredTableAssociation", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stackset-target", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "configuredtable*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "type", + ResourceType: "configuredtableassociation*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "cloudformation:TargetRegion", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a stackset as specified in the template", - Privilege: "CreateStackSet", + Description: "Grants permission to create an analysis rule for a configured table association", + Privilege: "CreateConfiguredTableAssociationAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "cloudformation:RoleArn", - "cloudformation:TemplateUrl", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload templates to Amazon S3 buckets. Used only by the AWS CloudFormation console and is not documented in the API reference", - Privilege: "CreateUploadBucket", + Description: "Grants permission to link an id mapping workflow with a collaboration by creating a new id mapping table", + Privilege: "CreateIdMappingTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "entityresolution:AddPolicyStatement", + "entityresolution:GetIdMappingWorkflow", + }, + ResourceType: "idmappingtable*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deactivate trusted access between StackSets and Organizations. If trusted access is deactivated, the management account does not have permissions to create and manage service-managed StackSets for your organization", - Privilege: "DeactivateOrganizationsAccess", + Description: "Grants permission to link an AWS Entity Resolution Id Namespace with a collaboration by creating a new association", + Privilege: "CreateIdNamespaceAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "entityresolution:AddPolicyStatement", + "entityresolution:GetIdNamespace", + }, + ResourceType: "idnamespaceassociation*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deactivate a public extension that was previously activated in this account and region", - Privilege: "DeactivateType", + Description: "Grants permission to join collaborations by creating a membership", + Privilege: "CreateMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + "logs:CreateLogDelivery", + "logs:CreateLogGroup", + "logs:DeleteLogDelivery", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:PutResourcePolicy", + "logs:UpdateLogDelivery", + "s3:GetBucketLocation", + }, + ResourceType: "collaboration*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified change set. Deleting change sets ensures that no one executes the wrong change set", - Privilege: "DeleteChangeSet", + Description: "Grants permission to create a new privacy budget template", + Privilege: "CreatePrivacyBudgetTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "membership*", }, { ConditionKeys: []string{ - "cloudformation:ChangeSetName", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "privacybudgettemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a generated template", - Privilege: "DeleteGeneratedTemplate", + Description: "Grants permission to delete an existing analysis template", + Privilege: "DeleteAnalysisTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysistemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified stack", - Privilege: "DeleteStack", + Description: "Grants permission to delete an existing collaboration", + Privilege: "DeleteCollaboration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stack*", - }, - { - ConditionKeys: []string{ - "cloudformation:RoleArn", + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms-ml:DeleteConfiguredAudienceModelPolicy", + "cleanrooms-ml:GetConfiguredAudienceModelPolicy", + "cleanrooms-ml:PutConfiguredAudienceModelPolicy", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete stack instances for the specified accounts, in the specified regions", - Privilege: "DeleteStackInstances", + Description: "Grants permission to delete an existing configured audience model association", + Privilege: "DeleteConfiguredAudienceModelAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stackset*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stackset-target", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "type", - }, - { - ConditionKeys: []string{ - "cloudformation:TargetRegion", + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms-ml:DeleteConfiguredAudienceModelPolicy", + "cleanrooms-ml:GetConfiguredAudienceModelPolicy", + "cleanrooms-ml:PutConfiguredAudienceModelPolicy", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredaudiencemodelassociation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified stackset", - Privilege: "DeleteStackSet", + Description: "Grants permission to delete a configured table", + Privilege: "DeleteConfiguredTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "configuredtable*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an existing CloudFormation type or type version", - Privilege: "DeregisterType", + Description: "Grants permission to delete an existing analysis rule", + Privilege: "DeleteConfiguredTableAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtable*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve your account's AWS CloudFormation limits", - Privilege: "DescribeAccountLimits", + AccessLevel: "Write", + Description: "Grants permission to remove a configured table association from a collaboration", + Privilege: "DeleteConfiguredTableAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the description for the specified change set", - Privilege: "DescribeChangeSet", + AccessLevel: "Write", + Description: "Grants permission to delete an existing configured table association analysis rule", + Privilege: "DeleteConfiguredTableAssociationAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", - }, - { - ConditionKeys: []string{ - "cloudformation:ChangeSetName", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the Hook invocation information for the specified change set", - Privilege: "DescribeChangeSetHooks", + AccessLevel: "Write", + Description: "Grants permission to remove an id mapping table from a collaboration", + Privilege: "DeleteIdMappingTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stack*", + ConditionKeys: []string{}, + DependentActions: []string{ + "entityresolution:DeletePolicyStatement", + }, + ResourceType: "idmappingtable*", }, { - ConditionKeys: []string{ - "cloudformation:ChangeSetName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a generated template. The output includes details about the progress of the creation of a generated template", - Privilege: "DescribeGeneratedTemplate", + AccessLevel: "Write", + Description: "Grants permission to remove an Id Namespace Association from a collaboration", + Privilege: "DeleteIdNamespaceAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "entityresolution:DeletePolicyStatement", + }, + ResourceType: "idnamespaceassociation*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the account's OrganizationAccess status", - Privilege: "DescribeOrganizationsAccess", + AccessLevel: "Write", + Description: "Grants permission to delete members from a collaboration", + Privilege: "DeleteMember", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms-ml:DeleteConfiguredAudienceModelPolicy", + "cleanrooms-ml:GetConfiguredAudienceModelPolicy", + "cleanrooms-ml:PutConfiguredAudienceModelPolicy", + }, + ResourceType: "collaboration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a CloudFormation extension publisher", - Privilege: "DescribePublisher", + AccessLevel: "Write", + Description: "Grants permission to leave collaborations by deleting a membership", + Privilege: "DeleteMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe details of a resource scan", - Privilege: "DescribeResourceScan", + AccessLevel: "Write", + Description: "Grants permission to delete an existing privacy budget template", + Privilege: "DeletePrivacyBudgetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "privacybudgettemplate*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a stack drift detection operation", - Privilege: "DescribeStackDriftDetectionStatus", + Description: "Grants permission to view details for an analysis template", + Privilege: "GetAnalysisTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysistemplate*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return all stack related events for a specified stack", - Privilege: "DescribeStackEvents", + Description: "Grants permission to view details for a collaboration", + Privilege: "GetCollaboration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the stack instance that's associated with the specified stack set, AWS account, and region", - Privilege: "DescribeStackInstance", + Description: "Grants permission to view details for an analysis template within a collaboration", + Privilege: "GetCollaborationAnalysisTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "analysistemplate*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return a description of the specified resource in the specified stack", - Privilege: "DescribeStackResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return drift information for the resources that have been checked for drift in the specified stack", - Privilege: "DescribeStackResourceDrifts", + Description: "Grants permission to view details for a configured audience model association within a collaboration", + Privilege: "GetCollaborationConfiguredAudienceModelAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "collaboration*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return AWS resource descriptions for running and deleted stacks", - Privilege: "DescribeStackResources", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "configuredaudiencemodelassociation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the description of the specified stack set", - Privilege: "DescribeStackSet", + Description: "Grants permission to get id namespace association within a collaboration", + Privilege: "GetCollaborationIdNamespaceAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "collaboration*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "idnamespaceassociation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the description of the specified stack set operation", - Privilege: "DescribeStackSetOperation", + Description: "Grants permission to view details for a privacy budget template within a collaboration", + Privilege: "GetCollaborationPrivacyBudgetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "collaboration*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "privacybudgettemplate*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the description for the specified stack, and to all stacks when used in combination with the ListStacks action", - Privilege: "DescribeStacks", + AccessLevel: "Read", + Description: "Grants permission to view details for a configured audience model association", + Privilege: "GetConfiguredAudienceModelAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:ListStacks", - }, - ResourceType: "stack", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuredaudiencemodelassociation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the CloudFormation type requested", - Privilege: "DescribeType", + Description: "Grants permission to view details for a configured table", + Privilege: "GetConfiguredTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtable*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the registration process for a CloudFormation type", - Privilege: "DescribeTypeRegistration", + Description: "Grants permission to view analysis rules for a configured table", + Privilege: "GetConfiguredTableAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtable*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to detects whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters", - Privilege: "DetectStackDrift", + Description: "Grants permission to view details for a configured table association", + Privilege: "GetConfiguredTableAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "configuredtableassociation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about whether a resource's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters", - Privilege: "DetectStackResourceDrift", + Description: "Grants permission to view analysis rules for a configured table association", + Privilege: "GetConfiguredTableAssociationAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "configuredtableassociation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to enable users to detect drift on a stack set and the stack instances that belong to that stack set", - Privilege: "DetectStackSetDrift", + Description: "Grants permission to view details of an id mapping table", + Privilege: "GetIdMappingTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "idmappingtable*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the estimated monthly cost of a template", - Privilege: "EstimateTemplateCost", + Description: "Grants permission to view details of an id namespace association", + Privilege: "GetIdNamespaceAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "cloudformation:TemplateUrl", + ConditionKeys: []string{}, + DependentActions: []string{ + "entityresolution:GetIdNamespace", }, + ResourceType: "idnamespaceassociation*", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a stack using the input information that was provided when the specified change set was created", - Privilege: "ExecuteChangeSet", + AccessLevel: "Read", + Description: "Grants permission to view details about a membership", + Privilege: "GetMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", - }, - { - ConditionKeys: []string{ - "cloudformation:ChangeSetName", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a generated template", - Privilege: "GetGeneratedTemplate", + Description: "Grants permission to view details for a privacy budget template", + Privilege: "GetPrivacyBudgetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "privacybudgettemplate*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the stack policy for a specified stack", - Privilege: "GetStackPolicy", + Description: "Grants permission to view a protected job", + Privilege: "GetProtectedJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "membership*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the template body for a specified stack", - Privilege: "GetTemplate", + Description: "Grants permission to view a protected query", + Privilege: "GetProtectedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "membership*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a new or existing template", - Privilege: "GetTemplateSummary", + Description: "Grants permission to view details for a schema", + Privilege: "GetSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "collaboration*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset", - }, - { - ConditionKeys: []string{ - "cloudformation:TemplateUrl", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable users to import existing stacks to a new or existing stackset", - Privilege: "ImportStacksToStackSet", + AccessLevel: "Read", + Description: "Grants permission to view analysis rules associated with a schema", + Privilege: "GetSchemaAnalysisRule", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms:GetSchema", + }, + ResourceType: "collaboration*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "configuredtableassociation*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state", - Privilege: "ListChangeSets", + Description: "Grants permission to list available analysis templates", + Privilege: "ListAnalysisTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "analysistemplate*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all exported output values in the account and region in which you call this action", - Privilege: "ListExports", + Description: "Grants permission to list available analysis templates within a collaboration", + Privilege: "ListCollaborationAnalysisTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list your generated templates in this Region", - Privilege: "ListGeneratedTemplates", + Description: "Grants permission to list available configured audience model association within a collaboration", + Privilege: "ListCollaborationConfiguredAudienceModelAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all stacks that are importing an exported output value", - Privilege: "ListImports", + Description: "Grants permission to list id namespace within a collaboration", + Privilege: "ListCollaborationIdNamespaceAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the related resources for a list of resources from a resource scan. The response indicates whether each returned resource is already managed by CloudFormation", - Privilege: "ListResourceScanRelatedResources", + Description: "Grants permission to list available privacy budget templates within a collaboration", + Privilege: "ListCollaborationPrivacyBudgetTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the resources from a resource scan. The results can be filtered by resource identifier, resource type prefix, tag key, and tag value", - Privilege: "ListResourceScanResources", + Description: "Grants permission to list privacy budgets within a collaboration", + Privilege: "ListCollaborationPrivacyBudgets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the resource scans from newest to oldest. By default it will return up to 10 resource scans", - Privilege: "ListResourceScans", + Description: "Grants permission to list available collaborations", + Privilege: "ListCollaborations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -39524,92 +41721,100 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return drift information for the resources that have been checked for drift in the specified stack instance", - Privilege: "ListStackInstanceResourceDrifts", + Description: "Grants permission to list available configured audience model associations for a membership", + Privilege: "ListConfiguredAudienceModelAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "configuredaudiencemodelassociation*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return summary information about stack instances that are associated with the specified stack set", - Privilege: "ListStackInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "membership*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return descriptions of all resources of the specified stack", - Privilege: "ListStackResources", + Description: "Grants permission to list available configured table associations for a membership", + Privilege: "ListConfiguredTableAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "configuredtableassociation*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return summary information about StackSet Auto Deployment Targets", - Privilege: "ListStackSetAutoDeploymentTargets", + Description: "Grants permission to list available configured tables", + Privilege: "ListConfiguredTables", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return summary information about the results of a stack set operation", - Privilege: "ListStackSetOperationResults", + Description: "Grants permission to list available id mapping tables for a membership", + Privilege: "ListIdMappingTables", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "idmappingtable*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return summary information about operations performed on a stack set", - Privilege: "ListStackSetOperations", + Description: "Grants permission to list entity resolution data associations for a membership", + Privilege: "ListIdNamespaceAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "idnamespaceassociation*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return summary information about stack sets that are associated with the user", - Privilege: "ListStackSets", + Description: "Grants permission to list the members of a collaboration", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return the summary information for stacks whose status matches the specified StackStatusFilter. In combination with the DescribeStacks action, grants permission to list descriptions for stacks", - Privilege: "ListStacks", + Description: "Grants permission to list available memberships", + Privilege: "ListMemberships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -39620,287 +41825,278 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list CloudFormation type registration attempts", - Privilege: "ListTypeRegistrations", + Description: "Grants permission to list available privacy budget templates", + Privilege: "ListPrivacyBudgetTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "privacybudgettemplate*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list versions of a particular CloudFormation type", - Privilege: "ListTypeVersions", + Description: "Grants permission to list available privacy budgets", + Privilege: "ListPrivacyBudgets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list available CloudFormation types", - Privilege: "ListTypes", + Description: "Grants permission to list protected jobs", + Privilege: "ListProtectedJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to publish the specified extension to the CloudFormation registry as a public extension in this region", - Privilege: "PublishType", + AccessLevel: "List", + Description: "Grants permission to list protected queries", + Privilege: "ListProtectedQueries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to record the handler progress", - Privilege: "RecordHandlerProgress", + AccessLevel: "List", + Description: "Grants permission to view available schemas for a collaboration", + Privilege: "ListSchemas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "collaboration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register account as a publisher of public extensions in the CloudFormation registry", - Privilege: "RegisterPublisher", + AccessLevel: "List", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysistemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register a new CloudFormation type", - Privilege: "RegisterType", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to rollback the stack to the last stable state", - Privilege: "RollbackStack", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "configuredaudiencemodelassociation", }, { - ConditionKeys: []string{ - "cloudformation:RoleArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtable", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to set a stack policy for a specified stack", - Privilege: "SetStackPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "configuredtableassociation", }, { - ConditionKeys: []string{ - "cloudformation:StackPolicyUrl", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the configuration data for a registered CloudFormation extension, in the given account and region", - Privilege: "SetTypeConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "privacybudgettemplate", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set which version of a CloudFormation type applies to CloudFormation operations", - Privilege: "SetTypeDefaultVersion", + AccessLevel: "Read", + Description: "Grants permission to access a collaboration in the context of Clean Rooms ML custom models", + Privilege: "PassCollaboration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collaboration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a signal to the specified resource with a success or failure status", - Privilege: "SignalResource", + AccessLevel: "Read", + Description: "Grants permission to access a membership in the context of Clean Rooms ML custom models", + Privilege: "PassMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a scan of the resources in this account in this Region", - Privilege: "StartResourceScan", + Description: "Grants permission to start an Id Mapping Job in AWS Entity Resolution to generate id mapping results in cleanrooms collaboration.", + Privilege: "PopulateIdMappingTable", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "entityresolution:GetIdMappingWorkflow", + }, + ResourceType: "idmappingtable*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an in-progress operation on a stack set and its associated stack instances", - Privilege: "StopStackSetOperation", + AccessLevel: "Read", + Description: "Grants permission to preview privacy budget template settings", + Privilege: "PreviewPrivacyImpact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag cloudformation resources", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to start protected jobs", + Privilege: "StartProtectedJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "changeset", + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms:GetCollaborationAnalysisTemplate", + "cleanrooms:GetSchema", + }, + ResourceType: "membership*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "analysistemplate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to test a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry", - Privilege: "TestType", + Description: "Grants permission to start protected queries", + Privilege: "StartProtectedQuery", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cleanrooms:GetCollaborationAnalysisTemplate", + "cleanrooms:GetSchema", + "s3:GetBucketLocation", + "s3:ListBucket", + "s3:PutObject", + }, + ResourceType: "membership*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysistemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuredtableassociation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "idmappingtable", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to untag cloudformation resources", - Privilege: "UntagResource", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "changeset", + ResourceType: "analysistemplate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "collaboration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset", + ResourceType: "configuredaudiencemodelassociation", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtable", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a generated template. This can be used to change the name, add and remove resources, refresh resources, and change the DeletionPolicy and UpdateReplacePolicy settings", - Privilege: "UpdateGeneratedTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a stack as specified in the template", - Privilege: "UpdateStack", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "idmappingtable", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "idnamespaceassociation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "privacybudgettemplate", }, { ConditionKeys: []string{ - "cloudformation:ResourceTypes", - "cloudformation:RoleArn", - "cloudformation:StackPolicyUrl", - "cloudformation:TemplateUrl", - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -39908,412 +42104,443 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the parameter values for stack instances for the specified accounts, within the specified regions", - Privilege: "UpdateStackInstances", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "analysistemplate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset-target", + ResourceType: "collaboration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "type", + ResourceType: "configuredaudiencemodelassociation", }, { - ConditionKeys: []string{ - "cloudformation:TargetRegion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtable", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a stackset as specified in the template", - Privilege: "UpdateStackSet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset*", + ResourceType: "configuredtableassociation", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stackset-target", + ResourceType: "idmappingtable", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "type", + ResourceType: "idnamespaceassociation", }, { - ConditionKeys: []string{ - "cloudformation:RoleArn", - "cloudformation:TemplateUrl", - "cloudformation:TargetRegion", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update termination protection for the specified stack", - Privilege: "UpdateTerminationProtection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack*", + ResourceType: "privacybudgettemplate", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to validate a specified template", - Privilege: "ValidateTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "cloudformation:TemplateUrl", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:changeSet/${ChangeSetName}/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "changeset", - }, - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:stack/${StackName}/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "stack", - }, - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:stackset/${StackSetName}:${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "stackset", - }, - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:stackset-target/${StackSetTarget}", - ConditionKeys: []string{}, - Resource: "stackset-target", - }, - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:type/resource/${Type}", - ConditionKeys: []string{}, - Resource: "type", - }, - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:generatedTemplate/${Id}", - ConditionKeys: []string{}, - Resource: "generatedtemplate", - }, - { - Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}", - ConditionKeys: []string{}, - Resource: "resourcescan", - }, - }, - ServiceName: "AWS CloudFormation", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "cloudfront", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate an alias to a CloudFront distribution", - Privilege: "AssociateAlias", + Description: "Grants permission to update details of the analysis template", + Privilege: "UpdateAnalysisTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "analysistemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy an existing distribution and create a new web distribution", - Privilege: "CopyDistribution", + Description: "Grants permission to update details of the collaboration", + Privilege: "UpdateCollaboration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudfront:CopyDistribution", - "cloudfront:CreateDistribution", - "cloudfront:GetDistribution", - }, - ResourceType: "distribution*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "collaboration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a new cache policy to CloudFront", - Privilege: "CreateCachePolicy", + Description: "Grants permission to update a configured audience model association", + Privilege: "UpdateConfiguredAudienceModelAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cache-policy*", + ResourceType: "configuredaudiencemodelassociation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new CloudFront origin access identity", - Privilege: "CreateCloudFrontOriginAccessIdentity", + Description: "Grants permission to update an existing configured table", + Privilege: "UpdateConfiguredTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-access-identity*", + ResourceType: "configuredtable*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a new continuous-deployment policy to CloudFront", - Privilege: "CreateContinuousDeploymentPolicy", + Description: "Grants permission to update analysis rules for a configured table", + Privilege: "UpdateConfiguredTableAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "continuous-deployment-policy*", + ResourceType: "configuredtable*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new web distribution", - Privilege: "CreateDistribution", + Description: "Grants permission to update a configured table association", + Privilege: "UpdateConfiguredTableAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "distribution*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "configuredtableassociation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new field-level encryption configuration", - Privilege: "CreateFieldLevelEncryptionConfig", + Description: "Grants permission to update analysis rules for a configured table association", + Privilege: "UpdateConfiguredTableAssociationAnalysisRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredtableassociation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a field-level encryption profile", - Privilege: "CreateFieldLevelEncryptionProfile", + Description: "Grants permission to update an id mapping table", + Privilege: "UpdateIdMappingTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "idmappingtable*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a CloudFront function", - Privilege: "CreateFunction", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new invalidation batch request", - Privilege: "CreateInvalidation", + Description: "Grants permission to update a entity resolution input association", + Privilege: "UpdateIdNamespaceAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "entityresolution:GetIdNamespace", + }, + ResourceType: "idnamespaceassociation*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a new key group to CloudFront", - Privilege: "CreateKeyGroup", + Description: "Grants permission to update details of a membership", + Privilege: "UpdateMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "logs:CreateLogDelivery", + "logs:CreateLogGroup", + "logs:DeleteLogDelivery", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:PutResourcePolicy", + "logs:UpdateLogDelivery", + "s3:GetBucketLocation", + }, + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a CloudFront KeyValueStore", - Privilege: "CreateKeyValueStore", + Description: "Grants permission to update details of the privacy budget template", + Privilege: "UpdatePrivacyBudgetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-value-store*", + ResourceType: "privacybudgettemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable additional CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost", - Privilege: "CreateMonitoringSubscription", + Description: "Grants permission to update protected jobs", + Privilege: "UpdateProtectedJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new origin access control", - Privilege: "CreateOriginAccessControl", + Description: "Grants permission to update protected queries", + Privilege: "UpdateProtectedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to add a new origin request policy to CloudFront", - Privilege: "CreateOriginRequestPolicy", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "origin-request-policy*", - }, + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/analysistemplate/${AnalysisTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "analysistemplate", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:collaboration/${CollaborationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "collaboration", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/configuredaudiencemodelassociation/${ConfiguredAudienceModelAssociationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configuredaudiencemodelassociation", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:configuredtable/${ConfiguredTableId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configuredtable", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/configuredtableassociation/${ConfiguredTableAssociationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configuredtableassociation", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/idmappingtable/${IdMappingTableId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "idmappingtable", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/idnamespaceassociation/${IdNamespaceAssociationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "idnamespaceassociation", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "membership", + }, + { + Arn: "arn:${Partition}:cleanrooms:${Region}:${Account}:membership/${MembershipId}/privacybudgettemplate/${PrivacyBudgetTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "privacybudgettemplate", + }, + }, + ServiceName: "AWS Clean Rooms", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "cleanrooms-ml:CollaborationId", + Description: "Filters access by Clean rooms collaboration id", + Type: "String", + }, + }, + Prefix: "cleanrooms-ml", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add a new public key to CloudFront", - Privilege: "CreatePublicKey", + Description: "Grants permission to cancel a trained model", + Privilege: "CancelTrainedModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "TrainedModel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a real-time log configuration", - Privilege: "CreateRealtimeLogConfig", + Description: "Grants permission to cancel a trained model inference job", + Privilege: "CancelTrainedModelInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "realtime-log-config*", + ResourceType: "TrainedModelInferenceJob*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a new response headers policy to CloudFront", - Privilege: "CreateResponseHeadersPolicy", + Description: "Grants permission to create an audience model", + Privilege: "CreateAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-headers-policy*", + ResourceType: "trainingdataset*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new savings plan", - Privilege: "CreateSavingsPlan", + Description: "Grants permission to create a configured audience model", + Privilege: "CreateConfiguredAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "audiencemodel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new RTMP distribution", - Privilege: "CreateStreamingDistribution", + Description: "Grants permission to create a configured model algorithm", + Privilege: "CreateConfiguredModelAlgorithm", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "streaming-distribution*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new RTMP distribution with tags", - Privilege: "CreateStreamingDistributionWithTags", + Description: "Grants permission to create a configured model algorithm association", + Privilege: "CreateConfiguredModelAlgorithmAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-distribution*", + ResourceType: "ConfiguredModelAlgorithm*", }, { ConditionKeys: []string{ @@ -40327,119 +42554,114 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a cache policy", - Privilege: "DeleteCachePolicy", + Description: "Grants permission to create an ML input channel", + Privilege: "CreateMLInputChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cache-policy*", + ResourceType: "ConfiguredModelAlgorithmAssociation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a CloudFront origin access identity", - Privilege: "DeleteCloudFrontOriginAccessIdentity", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "origin-access-identity*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a continuous-deployment policy", - Privilege: "DeleteContinuousDeploymentPolicy", + Description: "Grants permission to create a trained model", + Privilege: "CreateTrainedModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "continuous-deployment-policy*", + ResourceType: "ConfiguredModelAlgorithmAssociation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a web distribution", - Privilege: "DeleteDistribution", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a field-level encryption configuration", - Privilege: "DeleteFieldLevelEncryptionConfig", + Description: "Grants permission to create a training dataset, or seed audience. In Clean Rooms ML, the TrainingDataset is metadata that points to a Glue table, which is read only during AudienceModel creation", + Privilege: "CreateTrainingDataset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "field-level-encryption-config*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a field-level encryption profile", - Privilege: "DeleteFieldLevelEncryptionProfile", + Description: "Grants permission to delete the specified audience generation job, and removes all data associated with the job", + Privilege: "DeleteAudienceGenerationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "field-level-encryption-profile*", + ResourceType: "audiencegenerationjob*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a CloudFront function", - Privilege: "DeleteFunction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a key group", - Privilege: "DeleteKeyGroup", + Description: "Grants permission to delete the specified audience generation job, and removes all data associated with the job", + Privilege: "DeleteAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "audiencemodel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a CloudFront KeyValueStore", - Privilege: "DeleteKeyValueStore", + Description: "Grants permission to delete the specified configured audience model", + Privilege: "DeleteConfiguredAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-value-store*", + ResourceType: "configuredaudiencemodel*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable additional CloudWatch metrics for the specified CloudFront distribution", - Privilege: "DeleteMonitoringSubscription", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40447,275 +42669,257 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an origin access control", - Privilege: "DeleteOriginAccessControl", + Description: "Grants permission to delete the specified configured audience model policy", + Privilege: "DeleteConfiguredAudienceModelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-access-control*", + ResourceType: "configuredaudiencemodel*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an origin request policy", - Privilege: "DeleteOriginRequestPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "origin-request-policy*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a public key from CloudFront", - Privilege: "DeletePublicKey", + Description: "Grants permission to delete a configured model algorithm", + Privilege: "DeleteConfiguredModelAlgorithm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "ConfiguredModelAlgorithm*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a real-time log configuration", - Privilege: "DeleteRealtimeLogConfig", + Description: "Grants permission to delete a configured model algorithm association", + Privilege: "DeleteConfiguredModelAlgorithmAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "realtime-log-config*", + ResourceType: "ConfiguredModelAlgorithmAssociation*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a response headers policy", - Privilege: "DeleteResponseHeadersPolicy", + Description: "Grants permission to delete an ML configuration", + Privilege: "DeleteMLConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "response-headers-policy*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an RTMP distribution", - Privilege: "DeleteStreamingDistribution", + Description: "Grants permission to delete all data associated with the ML input channel", + Privilege: "DeleteMLInputChannelData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-distribution*", + ResourceType: "MLInputChannel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a CloudFront function summary", - Privilege: "DescribeFunction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a CloudFront KeyValueStore summary", - Privilege: "DescribeKeyValueStore", + AccessLevel: "Write", + Description: "Grants permission to delete all output associated with the trained model", + Privilege: "DeleteTrainedModelOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-value-store*", + ResourceType: "TrainedModel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the cache policy", - Privilege: "GetCachePolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cache-policy*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the cache policy configuration", - Privilege: "GetCachePolicyConfig", + AccessLevel: "Write", + Description: "Grants permission to delete a training dataset", + Privilege: "DeleteTrainingDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cache-policy*", + ResourceType: "trainingdataset*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the information about a CloudFront origin access identity", - Privilege: "GetCloudFrontOriginAccessIdentity", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "origin-access-identity*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the configuration information about a Cloudfront origin access identity", - Privilege: "GetCloudFrontOriginAccessIdentityConfig", + Description: "Grants permission to return information about an audience generation job", + Privilege: "GetAudienceGenerationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-access-identity*", + ResourceType: "audiencegenerationjob*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the continuous-deployment policy", - Privilege: "GetContinuousDeploymentPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "continuous-deployment-policy*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the continuous-deployment policy configuration", - Privilege: "GetContinuousDeploymentPolicyConfig", + Description: "Grants permission to return information about an audience model", + Privilege: "GetAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "continuous-deployment-policy*", + ResourceType: "audiencemodel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the information about a web distribution", - Privilege: "GetDistribution", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the configuration information about a distribution", - Privilege: "GetDistributionConfig", + Description: "Grants permission to return information about a configured model algorithm association created by any member in the collaboration", + Privilege: "GetCollaborationConfiguredModelAlgorithmAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "ConfiguredModelAlgorithmAssociation*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the field-level encryption configuration information", - Privilege: "GetFieldLevelEncryption", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, - ResourceType: "field-level-encryption-config*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the field-level encryption configuration information", - Privilege: "GetFieldLevelEncryptionConfig", + Description: "Grants permission to return information about an ML input channel created by any member in the collaboration", + Privilege: "GetCollaborationMLInputChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "field-level-encryption-config*", + ResourceType: "MLInputChannel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the field-level encryption configuration information", - Privilege: "GetFieldLevelEncryptionProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, - ResourceType: "field-level-encryption-profile*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the field-level encryption profile configuration information", - Privilege: "GetFieldLevelEncryptionProfileConfig", + Description: "Grants permission to return information about a trained model created by any member in the collaboration", + Privilege: "GetCollaborationTrainedModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "field-level-encryption-profile*", + ResourceType: "TrainedModel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a CloudFront function's code", - Privilege: "GetFunction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the information about an invalidation", - Privilege: "GetInvalidation", + Description: "Grants permission to return information about a configured audience model", + Privilege: "GetConfiguredAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "configuredaudiencemodel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a key group", - Privilege: "GetKeyGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40723,83 +42927,94 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a key group configuration", - Privilege: "GetKeyGroupConfig", + Description: "Grants permission to return information about a configured audience model policy", + Privilege: "GetConfiguredAudienceModelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "configuredaudiencemodel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution", - Privilege: "GetMonitoringSubscription", + Description: "Grants permission to return information about a configured model algorithm", + Privilege: "GetConfiguredModelAlgorithm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "ConfiguredModelAlgorithm*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the origin access control", - Privilege: "GetOriginAccessControl", + Description: "Grants permission to return information about a configured model algorithm association", + Privilege: "GetConfiguredModelAlgorithmAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-access-control*", + ResourceType: "ConfiguredModelAlgorithmAssociation*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the origin access control configuration", - Privilege: "GetOriginAccessControlConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "origin-access-control*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the origin request policy", - Privilege: "GetOriginRequestPolicy", + Description: "Grants permission to return information about an ML configuration", + Privilege: "GetMLConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "origin-request-policy*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the origin request policy configuration", - Privilege: "GetOriginRequestPolicyConfig", + Description: "Grants permission to return information about an ML input channel", + Privilege: "GetMLInputChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-request-policy*", + ResourceType: "MLInputChannel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the public key information", - Privilege: "GetPublicKey", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40807,104 +43022,108 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the public key configuration information", - Privilege: "GetPublicKeyConfig", + Description: "Grants permission to return information about a trained model", + Privilege: "GetTrainedModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "TrainedModel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a real-time log configuration", - Privilege: "GetRealtimeLogConfig", + Description: "Grants permission to return information about a trained model inference job", + Privilege: "GetTrainedModelInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "realtime-log-config*", + ResourceType: "TrainedModelInferenceJob*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the response headers policy", - Privilege: "GetResponseHeadersPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "response-headers-policy*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the response headers policy configuration", - Privilege: "GetResponseHeadersPolicyConfig", + Description: "Grants permission to return information about a training dataset", + Privilege: "GetTrainingDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-headers-policy*", + ResourceType: "trainingdataset*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a savings plan", - Privilege: "GetSavingsPlan", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the information about an RTMP distribution", - Privilege: "GetStreamingDistribution", + AccessLevel: "List", + Description: "Grants permission to return a list of the audience export jobs", + Privilege: "ListAudienceExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-distribution*", + ResourceType: "audiencegenerationjob", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the configuration information about a streaming distribution", - Privilege: "GetStreamingDistributionConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "streaming-distribution*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all cache policies that have been created in CloudFront for this account", - Privilege: "ListCachePolicies", + Description: "Grants permission to return a list of audience generation jobs", + Privilege: "ListAudienceGenerationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "configuredaudiencemodel", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list your CloudFront origin access identities", - Privilege: "ListCloudFrontOriginAccessIdentities", + Description: "Grants permission to return a list of audience models", + Privilege: "ListAudienceModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -40915,23 +43134,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all aliases that conflict with the given alias in CloudFront", - Privilege: "ListConflictingAliases", + Description: "Grants permission to return a list of configured model algorithms created by any member in the collaboration", + Privilege: "ListCollaborationConfiguredModelAlgorithmAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all continuous-deployment policies in the account", - Privilege: "ListContinuousDeploymentPolicies", + Description: "Grants permission to return a list of ML input channels created by any member in the collaboration", + Privilege: "ListCollaborationMLInputChannels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40939,23 +43166,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the distributions associated with your AWS account", - Privilege: "ListDistributions", + Description: "Grants permission to return a list of trained model export jobs started by any member in the collaboration", + Privilege: "ListCollaborationTrainedModelExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "TrainedModel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified cache policy", - Privilege: "ListDistributionsByCachePolicyId", + Description: "Grants permission to return a list of trained model inference jobs started by any member in the collaboration", + Privilege: "ListCollaborationTrainedModelInferenceJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40963,11 +43203,15 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified key group", - Privilege: "ListDistributionsByKeyGroup", + Description: "Grants permission to return a list of trained models created by any member in the collaboration", + Privilege: "ListCollaborationTrainedModels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40975,8 +43219,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the distributions associated a Lambda function", - Privilege: "ListDistributionsByLambdaFunction", + Description: "Grants permission to return a list of configured audience models", + Privilege: "ListConfiguredAudienceModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -40987,11 +43231,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified origin request policy", - Privilege: "ListDistributionsByOriginRequestPolicyId", + Description: "Grants permission to return a list of configured model algorithm associations", + Privilege: "ListConfiguredModelAlgorithmAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -40999,11 +43246,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of distributions that have a cache behavior that’s associated with the specified real-time log configuration", - Privilege: "ListDistributionsByRealtimeLogConfig", + Description: "Grants permission to return a list of configured model algorithms", + Privilege: "ListConfiguredModelAlgorithms", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41011,11 +43261,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified response headers policy", - Privilege: "ListDistributionsByResponseHeadersPolicyId", + Description: "Grants permission to return a list of ML input channels", + Privilege: "ListMLInputChannels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41023,71 +43276,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the distributions associated with your AWS account with given AWS WAF web ACL", - Privilege: "ListDistributionsByWebACLId", + Description: "Grants permission to return a list of tags for a provided resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "audiencegenerationjob", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all field-level encryption configurations that have been created in CloudFront for this account", - Privilege: "ListFieldLevelEncryptionConfigs", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all field-level encryption profiles that have been created in CloudFront for this account", - Privilege: "ListFieldLevelEncryptionProfiles", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "audiencemodel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of CloudFront functions", - Privilege: "ListFunctions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredaudiencemodel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list your invalidation batches", - Privilege: "ListInvalidations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "trainingdataset", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all key groups that have been created in CloudFront for this account", - Privilege: "ListKeyGroups", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41095,11 +43311,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of CloudFront KeyValueStores", - Privilege: "ListKeyValueStores", + Description: "Grants permission to return a list of trained model inference jobs", + Privilege: "ListTrainedModelInferenceJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41107,11 +43326,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all origin access controls in the account", - Privilege: "ListOriginAccessControls", + Description: "Grants permission to return a list of trained models", + Privilege: "ListTrainedModels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41119,8 +43341,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all origin request policies that have been created in CloudFront for this account", - Privilege: "ListOriginRequestPolicies", + Description: "Grants permission to return a list of training datasets", + Privilege: "ListTrainingDatasets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -41130,96 +43352,88 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all public keys that have been added to CloudFront for this account", - Privilege: "ListPublicKeys", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update the resource policy for a configured audience model", + Privilege: "PutConfiguredAudienceModelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredaudiencemodel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list CloudFront rate cards for the account", - Privilege: "ListRateCards", + AccessLevel: "Write", + Description: "Grants permission to put an ML configuration", + Privilege: "PutMLConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of real-time log configurations", - Privilege: "ListRealtimeLogConfigs", + AccessLevel: "Write", + Description: "Grants permission to export an audience of a specified size after you have generated an audience", + Privilege: "StartAudienceExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "audiencegenerationjob*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all response headers policies that have been created in CloudFront for this account", - Privilege: "ListResponseHeadersPolicies", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list savings plans in the account", - Privilege: "ListSavingsPlans", + AccessLevel: "Write", + Description: "Grants permission to start the audience generation job", + Privilege: "StartAudienceGenerationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuredaudiencemodel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list your RTMP distributions", - Privilege: "ListStreamingDistributions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cleanrooms-ml:CollaborationId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a CloudFront resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to start a trained model export job", + Privilege: "StartTrainedModelExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution", + ResourceType: "TrainedModel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list CloudFront usage", - Privilege: "ListUsages", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41227,30 +43441,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to publish a CloudFront function", - Privilege: "PublishFunction", + Description: "Grants permission to start a trained model inference job", + Privilege: "StartTrainedModelInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "ConfiguredModelAlgorithmAssociation*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a CloudFront resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution", + ResourceType: "MLInputChannel*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-distribution", + ResourceType: "TrainedModel*", }, { ConditionKeys: []string{ @@ -41263,216 +43470,121 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to test a CloudFront function", - Privilege: "TestFunction", + AccessLevel: "Tagging", + Description: "Grants permission to tag a specific resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "ConfiguredModelAlgorithm", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a CloudFront resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution", + ResourceType: "ConfiguredModelAlgorithmAssociation", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-distribution", + ResourceType: "MLInputChannel", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "TrainedModel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a cache policy", - Privilege: "UpdateCachePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cache-policy*", + ResourceType: "TrainedModelInferenceJob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the configuration for a CloudFront origin access identity", - Privilege: "UpdateCloudFrontOriginAccessIdentity", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-access-identity*", + ResourceType: "audiencegenerationjob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a continuous-deployment policy", - Privilege: "UpdateContinuousDeploymentPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "continuous-deployment-policy*", + ResourceType: "audiencemodel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the configuration for a web distribution", - Privilege: "UpdateDistribution", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distribution*", + ResourceType: "configuredaudiencemodel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a field-level encryption configuration", - Privilege: "UpdateFieldLevelEncryptionConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "trainingdataset", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a field-level encryption profile", - Privilege: "UpdateFieldLevelEncryptionProfile", + AccessLevel: "Tagging", + Description: "Grants permission to untag a specific resource", + Privilege: "UnTagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "field-level-encryption-profile*", + ResourceType: "ConfiguredModelAlgorithm", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a CloudFront function", - Privilege: "UpdateFunction", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "ConfiguredModelAlgorithmAssociation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a key group", - Privilege: "UpdateKeyGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MLInputChannel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a CloudFront KeyValueStore", - Privilege: "UpdateKeyValueStore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-value-store*", + ResourceType: "TrainedModel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an origin access control", - Privilege: "UpdateOriginAccessControl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-access-control*", + ResourceType: "TrainedModelInferenceJob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an origin request policy", - Privilege: "UpdateOriginRequestPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin-request-policy*", + ResourceType: "audiencegenerationjob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update public key information", - Privilege: "UpdatePublicKey", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "audiencemodel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a real-time log configuration", - Privilege: "UpdateRealtimeLogConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "realtime-log-config*", + ResourceType: "configuredaudiencemodel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a response headers policy", - Privilege: "UpdateResponseHeadersPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-headers-policy*", + ResourceType: "trainingdataset", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a savings plan", - Privilege: "UpdateSavingsPlan", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41480,175 +43592,96 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration for an RTMP distribution", - Privilege: "UpdateStreamingDistribution", + Description: "Grants permission to update a configured audience model.", + Privilege: "UpdateConfiguredAudienceModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-distribution*", + ResourceType: "configuredaudiencemodel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "audiencemodel", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cloudfront::${Account}:distribution/${DistributionId}", + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:training-dataset/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "distribution", + Resource: "trainingdataset", }, { - Arn: "arn:${Partition}:cloudfront::${Account}:streaming-distribution/${DistributionId}", + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:audience-model/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "streaming-distribution", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:origin-access-identity/${Id}", - ConditionKeys: []string{}, - Resource: "origin-access-identity", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:field-level-encryption-config/${Id}", - ConditionKeys: []string{}, - Resource: "field-level-encryption-config", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:field-level-encryption-profile/${Id}", - ConditionKeys: []string{}, - Resource: "field-level-encryption-profile", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:cache-policy/${Id}", - ConditionKeys: []string{}, - Resource: "cache-policy", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:origin-request-policy/${Id}", - ConditionKeys: []string{}, - Resource: "origin-request-policy", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:realtime-log-config/${Name}", - ConditionKeys: []string{}, - Resource: "realtime-log-config", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:function/${Name}", - ConditionKeys: []string{}, - Resource: "function", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:key-value-store/${Name}", - ConditionKeys: []string{}, - Resource: "key-value-store", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:response-headers-policy/${Id}", - ConditionKeys: []string{}, - Resource: "response-headers-policy", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:origin-access-control/${Id}", - ConditionKeys: []string{}, - Resource: "origin-access-control", - }, - { - Arn: "arn:${Partition}:cloudfront::${Account}:continuous-deployment-policy/${Id}", - ConditionKeys: []string{}, - Resource: "continuous-deployment-policy", + Resource: "audiencemodel", }, - }, - ServiceName: "Amazon CloudFront", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "cloudfront-keyvaluestore", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to delete the key value pair specified by the key", - Privilege: "DeleteKey", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-value-store*", - }, + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:configured-audience-model/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "configuredaudiencemodel", }, { - AccessLevel: "Read", - Description: "Grants permission to return metadata information about Key Value Store", - Privilege: "DescribeKeyValueStore", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-value-store*", - }, + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:audience-generation-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "audiencegenerationjob", }, { - AccessLevel: "Read", - Description: "Grants permission to return a key value pair", - Privilege: "GetKey", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-value-store*", - }, + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:configured-model-algorithm/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "ConfiguredModelAlgorithm", }, { - AccessLevel: "List", - Description: "Grants permission to returns a list of key value pairs", - Privilege: "ListKeys", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-value-store*", - }, + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:membership/${MembershipId}/configured-model-algorithm-association/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "ConfiguredModelAlgorithmAssociation", }, { - AccessLevel: "Write", - Description: "Grants permission to create a new key value pair or replace the value of an existing key", - Privilege: "PutKey", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-value-store*", - }, + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:membership/${MembershipId}/ml-input-channel/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "MLInputChannel", }, { - AccessLevel: "Write", - Description: "Grants permission to put or delete multiple key value pairs in a single, all-or-nothing operation", - Privilege: "UpdateKeys", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-value-store*", - }, + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:membership/${MembershipId}/trained-model/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "TrainedModel", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cloudfront::${Account}:key-value-store/${ResourceId}", - ConditionKeys: []string{}, - Resource: "key-value-store", + Arn: "arn:${Partition}:cleanrooms-ml:${Region}:${Account}:membership/${MembershipId}/trained-model-inference-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "TrainedModelInferenceJob", }, }, - ServiceName: "Amazon CloudFront KeyValueStore", + ServiceName: "AWS Clean Rooms ML", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -41667,39 +43700,95 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, + { + Condition: "cloud9:EnvironmentId", + Description: "Filters access by the AWS Cloud9 environment ID", + Type: "String", + }, + { + Condition: "cloud9:EnvironmentName", + Description: "Filters access by the AWS Cloud9 environment name", + Type: "String", + }, + { + Condition: "cloud9:InstanceType", + Description: "Filters access by the instance type of the AWS Cloud9 environment's Amazon EC2 instance", + Type: "String", + }, + { + Condition: "cloud9:OwnerArn", + Description: "Filters access by the owner ARN specified", + Type: "ARN", + }, + { + Condition: "cloud9:Permissions", + Description: "Filters access by the type of AWS Cloud9 permissions", + Type: "String", + }, + { + Condition: "cloud9:SubnetId", + Description: "Filters access by the subnet ID that the AWS Cloud9 environment will be created in", + Type: "String", + }, + { + Condition: "cloud9:UserArn", + Description: "Filters access by the user ARN specified", + Type: "ARN", + }, }, - Prefix: "cloudhsm", + Prefix: "cloud9", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Adds or overwrites one or more tags for the specified AWS CloudHSM resource", - Privilege: "AddTagsToResource", + AccessLevel: "Write", + Description: "Grants permission to start the Amazon EC2 instance that your AWS Cloud9 IDE connects to", + Privilege: "ActivateEC2Remote", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a copy of a backup in the specified region", - Privilege: "CopyBackupToRegion", + Description: "Grants permission to create an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then hosts the environment on the instance", + Privilege: "CreateEnvironmentEC2", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "cloud9:EnvironmentName", + "cloud9:InstanceType", + "cloud9:SubnetId", + "cloud9:UserArn", + "cloud9:OwnerArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{ - "cloudhsm:CopyBackupToRegion", - "cloudhsm:TagResource", - "cloudhsm:UntagResource", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", }, - ResourceType: "backup*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add an environment member to an AWS Cloud9 development environment", + Privilege: "CreateEnvironmentMembership", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "cloud9:UserArn", + "cloud9:EnvironmentId", + "cloud9:Permissions", }, DependentActions: []string{}, ResourceType: "", @@ -41708,25 +43797,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new AWS CloudHSM cluster", - Privilege: "CreateCluster", + Description: "Grants permission to create an AWS Cloud9 SSH development environment", + Privilege: "CreateEnvironmentSSH", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudhsm:TagResource", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:RevokeSecurityGroupEgress", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "backup", - }, { ConditionKeys: []string{ + "cloud9:EnvironmentName", + "cloud9:OwnerArn", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -41736,156 +43813,151 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Creates a high-availability partition group", - Privilege: "CreateHapg", + AccessLevel: "Read", + Description: "Grants permission to create an authentication token that allows a connection between the AWS Cloud9 IDE and the user's environment", + Privilege: "CreateEnvironmentToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new hardware security module (HSM) in the specified AWS CloudHSM cluster", - Privilege: "CreateHsm", + Description: "Grants permission to delete an AWS Cloud9 development environment. If the environment is hosted on an Amazon Elastic Compute Cloud (Amazon EC2) instance, also terminates the instance", + Privilege: "DeleteEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateNetworkInterface", - "ec2:CreateSecurityGroup", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:RevokeSecurityGroupEgress", + "iam:CreateServiceLinkedRole", }, - ResourceType: "cluster*", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Creates an HSM client", - Privilege: "CreateLunaClient", + Description: "Grants permission to delete an environment member from an AWS Cloud9 development environment", + Privilege: "DeleteEnvironmentMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified CloudHSM backup", - Privilege: "DeleteBackup", + AccessLevel: "Read", + Description: "Grants permission to get details about the connection to the EC2 development environment, including host, user, and port", + Privilege: "DescribeEC2Remote", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified AWS CloudHSM cluster", - Privilege: "DeleteCluster", + AccessLevel: "Read", + Description: "Grants permission to get information about environment members for an AWS Cloud9 development environment", + Privilege: "DescribeEnvironmentMemberships", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - "ec2:DeleteSecurityGroup", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "cloud9:UserArn", + "cloud9:EnvironmentId", }, - ResourceType: "cluster*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes a high-availability partition group", - Privilege: "DeleteHapg", + AccessLevel: "Read", + Description: "Grants permission to get status information for an AWS Cloud9 development environment", + Privilege: "DescribeEnvironmentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified HSM", - Privilege: "DeleteHsm", + AccessLevel: "Read", + Description: "Grants permission to get information about AWS Cloud9 development environments", + Privilege: "DescribeEnvironments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", }, }, }, { - AccessLevel: "Write", - Description: "Deletes a client", - Privilege: "DeleteLunaClient", + AccessLevel: "Read", + Description: "Grants permission to get details about the connection to the SSH development environment, including host, user, and port", + Privilege: "DescribeSSHRemote", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the policy attached to CloudHSM resources", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to get configuration information that's used to initialize the AWS Cloud9 IDE", + Privilege: "GetEnvironmentConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "environment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about backups of AWS CloudHSM clusters", - Privilege: "DescribeBackups", + Description: "Grants permission to get the AWS Cloud9 IDE settings for a specified development environment", + Privilege: "GetEnvironmentSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about AWS CloudHSM clusters", - Privilege: "DescribeClusters", + Description: "Grants permission to get the AWS Cloud9 IDE settings for a specified environment member", + Privilege: "GetMembershipSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { AccessLevel: "Read", - Description: "Retrieves information about a high-availability partition group", - Privilege: "DescribeHapg", + Description: "Grants permission to get the migration experience for a cloud9 user", + Privilege: "GetMigrationExperiences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -41896,11 +43968,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number", - Privilege: "DescribeHsm", + Description: "Grants permission to get the user's public SSH key, which is used by AWS Cloud9 to connect to SSH development environments", + Privilege: "GetUserPublicKey", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "cloud9:UserArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -41908,8 +43982,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Retrieves information about an HSM client", - Privilege: "DescribeLunaClient", + Description: "Grants permission to get the AWS Cloud9 IDE settings for a specified user", + Privilege: "GetUserSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -41920,8 +43994,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Gets the configuration files necessary to connect to all high availability partition groups the client is associated with", - Privilege: "GetConfig", + Description: "Grants permission to get a list of AWS Cloud9 development environment identifiers", + Privilege: "ListEnvironments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -41932,133 +44006,140 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about the policy attached to a AWS CloudHSM resource", - Privilege: "GetResourcePolicy", + Description: "Grants permission to list tags for a cloud9 environment", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to claim an AWS CloudHSM cluster", - Privilege: "InitializeCluster", + Description: "Grants permission to set AWS managed temporary credentials on the Amazon EC2 instance that's used by the AWS Cloud9 integrated development environment (IDE)", + Privilege: "ModifyTemporaryCredentialsOnEnvironmentEC2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "environment*", }, }, }, { - AccessLevel: "List", - Description: "Lists the Availability Zones that have available AWS CloudHSM capacity", - Privilege: "ListAvailableZones", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a cloud9 environment", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, - }, - }, - { - AccessLevel: "List", - Description: "Lists the high-availability partition groups for the account", - Privilege: "ListHapgs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Retrieves the identifiers of all of the HSMs provisioned for the current customer", - Privilege: "ListHsms", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a cloud9 environment", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Lists all of the clients", - Privilege: "ListLunaClients", + AccessLevel: "Write", + Description: "Grants permission to change the settings of an existing AWS Cloud9 development environment", + Privilege: "UpdateEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of tags for the specified AWS CloudHSM cluster", - Privilege: "ListTags", + AccessLevel: "Write", + Description: "Grants permission to change the settings of an existing environment member for an AWS Cloud9 development environment", + Privilege: "UpdateEnvironmentMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", + ResourceType: "environment*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "cloud9:UserArn", + "cloud9:EnvironmentId", + "cloud9:Permissions", + }, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Returns a list of all tags for the specified AWS CloudHSM resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update the AWS Cloud9 IDE settings for a specified development environment", + Privilege: "UpdateEnvironmentSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify attributes for an AWS CloudHSM backup", - Privilege: "ModifyBackupAttributes", + Description: "Grants permission to update the AWS Cloud9 IDE settings for a specified environment member", + Privilege: "UpdateMembershipSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify AWS CloudHSM cluster", - Privilege: "ModifyCluster", + Description: "Grants permission to update details about the connection to the SSH development environment, including host, user, and port", + Privilege: "UpdateSSHRemote", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "environment*", }, }, }, { AccessLevel: "Write", - Description: "Modifies an existing high-availability partition group", - Privilege: "ModifyHapg", + Description: "Grants permission to update IDE-specific settings of an AWS Cloud9 user", + Privilege: "UpdateUserSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -42068,9 +44149,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Modifies an HSM", - Privilege: "ModifyHsm", + AccessLevel: "Read", + Description: "Grants permission to validate the environment name during the process of creating an AWS Cloud9 development environment", + Privilege: "ValidateEnvironmentName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -42079,584 +44160,588 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:cloud9:${Region}:${Account}:environment:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "environment", + }, + }, + ServiceName: "AWS Cloud9", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "clouddirectory", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Modifies the certificate used by the client", - Privilege: "ModifyLunaClient", + Description: "Grants permission to add a new Facet to an object", + Privilege: "AddFacetToObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a policy to an AWS CloudHSM resource", - Privilege: "PutResourcePolicy", + Description: "Grants permission to copy input published schema into Directory with same name and version as that of published schema", + Privilege: "ApplySchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "directory*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Removes one or more tags from the specified AWS CloudHSM resource", - Privilege: "RemoveTagsFromResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "publishedSchema*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore the specified CloudHSM backup", - Privilege: "RestoreBackup", + Description: "Grants permission to attach an existing object to another existing object", + Privilege: "AttachObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for the specified AWS CloudHSM cluster", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to attach a policy object to any other object", + Privilege: "AttachPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tag or tags from the specified AWS CloudHSM cluster", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to attach the specified object to the specified index", + Privilege: "AttachToIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach a typed link b/w a source & target object reference", + Privilege: "AttachTypedLink", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cloudhsm:${Region}:${Account}:backup/${CloudHsmBackupInstanceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "backup", - }, - { - Arn: "arn:${Partition}:cloudhsm:${Region}:${Account}:cluster/${CloudHsmClusterInstanceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - }, - ServiceName: "AWS CloudHSM", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "cloudsearch", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Attaches resource tags to an Amazon CloudSearch domain", - Privilege: "AddTags", + AccessLevel: "Read", + Description: "Grants permission to perform all the read operations in a batch. Each individual operation inside BatchRead needs to be granted permissions explicitly", + Privilege: "BatchRead", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Indexes the search suggestions", - Privilege: "BuildSuggesters", + Description: "Grants permission to perform all the write operations in a batch. Each individual operation inside BatchWrite needs to be granted permissions explicitly", + Privilege: "BatchWrite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Creates a new search domain", - Privilege: "CreateDomain", + Description: "Grants permission to create a Directory by copying the published schema into the directory", + Privilege: "CreateDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "publishedSchema*", }, }, }, { AccessLevel: "Write", - Description: "Configures an analysis scheme that can be applied to a text or text-array field to define language-specific text processing options", - Privilege: "DefineAnalysisScheme", + Description: "Grants permission to create a new Facet in a schema", + Privilege: "CreateFacet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", }, }, }, { AccessLevel: "Write", - Description: "Configures an Expression for the search domain", - Privilege: "DefineExpression", + Description: "Grants permission to create an index object", + Privilege: "CreateIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Configures an IndexField for the search domain", - Privilege: "DefineIndexField", + Description: "Grants permission to create an object in a Directory", + Privilege: "CreateObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Configures a suggester for a domain", - Privilege: "DefineSuggester", + Description: "Grants permission to create a new schema in a development state", + Privilege: "CreateSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Deletes an analysis scheme", - Privilege: "DeleteAnalysisScheme", + Description: "Grants permission to create a new Typed Link facet in a schema", + Privilege: "CreateTypedLinkFacet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", }, }, }, { AccessLevel: "Write", - Description: "Permanently deletes a search domain and all of its data", - Privilege: "DeleteDomain", + Description: "Grants permission to delete a directory. Only disabled directories can be deleted", + Privilege: "DeleteDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Removes an Expression from the search domain", - Privilege: "DeleteExpression", + Description: "Grants permission to delete a given Facet. All attributes and Rules associated with the facet will be deleted", + Privilege: "DeleteFacet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "developmentSchema*", }, }, }, { AccessLevel: "Write", - Description: "Removes an IndexField from the search domain", - Privilege: "DeleteIndexField", + Description: "Grants permission to delete an object and its associated attributes", + Privilege: "DeleteObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Deletes a suggester", - Privilege: "DeleteSuggester", + Description: "Grants permission to delete a given schema", + Privilege: "DeleteSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Read", - Description: "Gets the analysis schemes configured for a domain", - Privilege: "DescribeAnalysisSchemes", + AccessLevel: "Write", + Description: "Grants permission to delete a given TypedLink Facet. All attributes and Rules associated with the facet will be deleted", + Privilege: "DeleteTypedLinkFacet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "developmentSchema*", }, }, }, { - AccessLevel: "Read", - Description: "Gets the availability options configured for a domain", - Privilege: "DescribeAvailabilityOptions", + AccessLevel: "Write", + Description: "Grants permission to detach the specified object from the specified index", + Privilege: "DetachFromIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Read", - Description: "Gets the domain endpoint options configured for a domain", - Privilege: "DescribeDomainEndpointOptions", + AccessLevel: "Write", + Description: "Grants permission to detach a given object from the parent object", + Privilege: "DetachObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "List", - Description: "Gets information about the search domains owned by this account", - Privilege: "DescribeDomains", + AccessLevel: "Write", + Description: "Grants permission to detach a policy from an object", + Privilege: "DetachPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Read", - Description: "Gets the expressions configured for the search domain", - Privilege: "DescribeExpressions", + AccessLevel: "Write", + Description: "Grants permission to detach a given typed link b/w given source and target object reference", + Privilege: "DetachTypedLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Read", - Description: "Gets information about the index fields configured for the search domain", - Privilege: "DescribeIndexFields", + AccessLevel: "Write", + Description: "Grants permission to disable the specified directory", + Privilege: "DisableDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Read", - Description: "Gets the scaling parameters configured for a domain", - Privilege: "DescribeScalingParameters", + AccessLevel: "Write", + Description: "Grants permission to enable the specified directory", + Privilege: "EnableDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Read", - Description: "Gets information about the access policies that control access to the domain's document and search endpoints", - Privilege: "DescribeServiceAccessPolicies", + Description: "Grants permission to return current applied schema version ARN, including the minor version in use", + Privilege: "GetAppliedSchemaVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "appliedSchema*", }, }, }, { AccessLevel: "Read", - Description: "Gets the suggesters configured for a domain", - Privilege: "DescribeSuggesters", + Description: "Grants permission to retrieve metadata about a directory", + Privilege: "GetDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Tells the search domain to start indexing its documents using the latest indexing options", - Privilege: "IndexDocuments", + AccessLevel: "Read", + Description: "Grants permission to get details of the Facet, such as Facet Name, Attributes, Rules, or ObjectType", + Privilege: "GetFacet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "List", - Description: "Lists all search domains owned by an account", - Privilege: "ListDomainNames", + AccessLevel: "Read", + Description: "Grants permission to retrieve attributes that are associated with a typed link", + Privilege: "GetLinkAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Read", - Description: "Displays all of the resource tags for an Amazon CloudSearch domain", - Privilege: "ListTags", + Description: "Grants permission to retrieve attributes within a facet that are associated with an object", + Privilege: "GetObjectAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Tagging", - Description: "Removes the specified resource tags from an Amazon ES domain", - Privilege: "RemoveTags", + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata about an object", + Privilege: "GetObjectInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Configures the availability options for a domain", - Privilege: "UpdateAvailabilityOptions", + AccessLevel: "Read", + Description: "Grants permission to retrieve a JSON representation of the schema", + Privilege: "GetSchemaAsJson", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Write", - Description: "Configures the domain endpoint options for a domain", - Privilege: "UpdateDomainEndpointOptions", + AccessLevel: "Read", + Description: "Grants permission to return identity attributes order information associated with a given typed link facet", + Privilege: "GetTypedLinkFacetInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Write", - Description: "Configures scaling parameters for a domain", - Privilege: "UpdateScalingParameters", + AccessLevel: "List", + Description: "Grants permission to list schemas applied to a directory", + Privilege: "ListAppliedSchemaArns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Configures the access rules that control access to the domain's document and search endpoints", - Privilege: "UpdateServiceAccessPolicies", + AccessLevel: "Read", + Description: "Grants permission to list indices attached to an object", + Privilege: "ListAttachedIndices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Allows access to the document service operations", - Privilege: "document", + AccessLevel: "List", + Description: "Grants permission to retrieve the ARNs of schemas in the development state", + Privilege: "ListDevelopmentSchemaArns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Allows access to the search operations", - Privilege: "search", + AccessLevel: "List", + Description: "Grants permission to list directories created within an account", + Privilege: "ListDirectories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Allows access to the suggest operations", - Privilege: "suggest", + Description: "Grants permission to retrieve attributes attached to the facet", + Privilege: "ListFacetAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cloudsearch:${Region}:${Account}:domain/${DomainName}", - ConditionKeys: []string{}, - Resource: "domain", - }, - }, - ServiceName: "Amazon CloudSearch", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "cloudshell:SecurityGroupIds", - Description: "Filters access by security group ids. Available during CreateEnvironment operation", - Type: "ArrayOfString", - }, - { - Condition: "cloudshell:SubnetIds", - Description: "Filters access by subnet ids. Available during CreateEnvironment operation", - Type: "ArrayOfString", - }, - { - Condition: "cloudshell:VpcIds", - Description: "Filters access by vpc ids. Available during CreateEnvironment operation", - Type: "ArrayOfString", - }, - }, - Prefix: "cloudshell", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permissions to create a CloudShell environment", - Privilege: "CreateEnvironment", + AccessLevel: "Read", + Description: "Grants permission to retrieve the names of facets that exist in a schema", + Privilege: "ListFacetNames", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "cloudshell:SecurityGroupIds", - "cloudshell:SubnetIds", - "cloudshell:VpcIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "appliedSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to connect to a CloudShell environment from the AWS Management Console", - Privilege: "CreateSession", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of all incoming TypedLinks for a given object", + Privilege: "ListIncomingTypedLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a CloudShell environment", - Privilege: "DeleteEnvironment", + AccessLevel: "Read", + Description: "Grants permission to list objects attached to the specified index", + Privilege: "ListIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return descriptions of existing user's environments", - Privilege: "DescribeEnvironments", + Description: "Grants permission to list the major version families of each managed schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead", + Privilege: "ListManagedSchemaArns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -42667,434 +44752,384 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to read a CloudShell environment status", - Privilege: "GetEnvironmentStatus", + Description: "Grants permission to list all attributes associated with an object", + Privilege: "ListObjectAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to download files from a CloudShell environment", - Privilege: "GetFileDownloadUrls", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of child objects associated with a given object", + Privilege: "ListObjectChildren", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to upload files to a CloudShell environment", - Privilege: "GetFileUploadUrls", + AccessLevel: "Read", + Description: "Grants permission to retrieve all available parent paths for any object type such as node, leaf node, policy node, and index node objects", + Privilege: "ListObjectParentPaths", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to forward console credentials to the environment", - Privilege: "PutCredentials", + AccessLevel: "Read", + Description: "Grants permission to list parent objects associated with a given object in pagination fashion", + Privilege: "ListObjectParents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a stopped CloudShell environment", - Privilege: "StartEnvironment", + AccessLevel: "Read", + Description: "Grants permission to return policies attached to an object in pagination fashion", + Privilege: "ListObjectPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a running CloudShell environment", - Privilege: "StopEnvironment", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of all outgoing TypedLinks for a given object", + Privilege: "ListOutgoingTypedLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "directory*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cloudshell:${Region}:${Account}:environment/${EnvironmentId}", - ConditionKeys: []string{}, - Resource: "Environment", - }, - }, - ServiceName: "AWS CloudShell", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", - Type: "String", - }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", - Type: "ArrayOfString", - }, - }, - Prefix: "cloudtrail", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a trail, event data store, or channel, up to a limit of 50", - Privilege: "AddTags", + AccessLevel: "Read", + Description: "Grants permission to return all of the ObjectIdentifiers to which a given policy is attached", + Privilege: "ListPolicyAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventdatastore", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve published schema ARNs", + Privilege: "ListPublishedSchemaArns", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a running query", - Privilege: "CancelQuery", + AccessLevel: "Read", + Description: "Grants permission to return tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a channel", - Privilege: "CreateChannel", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of attributes associated with typed link facet", + Privilege: "ListTypedLinkFacetAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudtrail:AddTags", - }, - ResourceType: "channel*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appliedSchema*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "developmentSchema*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an event data store", - Privilege: "CreateEventDataStore", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of typed link facet names that exist in a schema", + Privilege: "ListTypedLinkFacetNames", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudtrail:AddTags", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "kms:Decrypt", - "kms:GenerateDataKey", - "organizations:ListAWSServiceAccessForOrganization", - }, - ResourceType: "eventdatastore*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appliedSchema*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "developmentSchema*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a service-linked channel that specifies the settings for delivery of log data to an AWS service", - Privilege: "CreateServiceLinkedChannel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a trail that specifies the settings for delivery of log data to an Amazon S3 bucket", - Privilege: "CreateTrail", + AccessLevel: "Read", + Description: "Grants permission to list all policies from the root of the Directory to the object specified", + Privilege: "LookupPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudtrail:AddTags", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "organizations:ListAWSServiceAccessForOrganization", - }, - ResourceType: "trail*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a channel", - Privilege: "DeleteChannel", + Description: "Grants permission to publish a development schema with a version", + Privilege: "PublishSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "developmentSchema*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an event data store", - Privilege: "DeleteEventDataStore", + Description: "Grants permission to update a schema using JSON upload. Only available for development schemas", + Privilege: "PutSchemaFromJson", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy from the provided resource", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to remove the specified facet from the specified object", + Privilege: "RemoveFacetFromObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a service-linked channel", - Privilege: "DeleteServiceLinkedChannel", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a trail", - Privilege: "DeleteTrail", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an AWS Organizations member account as a delegated administrator", - Privilege: "DeregisterOrganizationDelegatedAdmin", + Description: "Grants permission to add/update/delete existing Attributes, Rules, or ObjectType of a Facet", + Privilege: "UpdateFacet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DeregisterDelegatedAdministrator", - "organizations:ListAWSServiceAccessForOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "appliedSchema*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list details for the query", - Privilege: "DescribeQuery", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "developmentSchema*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list settings for the trails associated with the current region for your account", - Privilege: "DescribeTrails", + AccessLevel: "Write", + Description: "Grants permission to update a given typed link's attributes. Attributes to be updated must not contribute to the typed link's identity, as defined by its IdentityAttributeOrder", + Privilege: "UpdateLinkAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable federation of event data store data by using the AWS Glue Data Catalog", - Privilege: "DisableFederation", + Description: "Grants permission to update a given object's attributes", + Privilege: "UpdateObjectAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:DeleteDatabase", - "glue:DeleteTable", - "glue:PassConnection", - "lakeformation:DeregisterResource", - "lakeformation:RegisterResource", - }, - ResourceType: "eventdatastore*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable federation of event data store data by using the AWS Glue Data Catalog", - Privilege: "EnableFederation", + Description: "Grants permission to update the schema name with a new name", + Privilege: "UpdateSchema", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:CreateDatabase", - "glue:CreateTable", - "iam:GetRole", - "iam:PassRole", - "lakeformation:DeregisterResource", - "lakeformation:RegisterResource", - }, - ResourceType: "eventdatastore*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "developmentSchema*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate a query for a specified event data store using the CloudTrail Lake query generator", - Privilege: "GenerateQuery", + Description: "Grants permission to add/update/delete existing Attributes, Rules, identity attribute order of a TypedLink Facet", + Privilege: "UpdateTypedLinkFacet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "developmentSchema*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a specific channel", - Privilege: "GetChannel", + AccessLevel: "Write", + Description: "Grants permission to upgrade a single directory in-place using the PublishedSchemaArn with schema updates found in MinorVersion. Backwards-compatible minor version upgrades are instantaneously available for readers on all objects in the directory", + Privilege: "UpgradeAppliedSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "directory*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list settings for the event data store", - Privilege: "GetEventDataStore", + AccessLevel: "Write", + Description: "Grants permission to upgrade a published schema under a new minor version revision using the current contents of DevelopmentSchemaArn", + Privilege: "UpgradePublishedSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "developmentSchema*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "publishedSchema*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get data from an event data store by using the AWS Glue Data Catalog", - Privilege: "GetEventDataStoreData", + Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:directory/${DirectoryId}/schema/${SchemaName}/${Version}", + ConditionKeys: []string{}, + Resource: "appliedSchema", + }, + { + Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:schema/development/${SchemaName}", + ConditionKeys: []string{}, + Resource: "developmentSchema", + }, + { + Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:directory/${DirectoryId}", + ConditionKeys: []string{}, + Resource: "directory", + }, + { + Arn: "arn:${Partition}:clouddirectory:${Region}:${Account}:schema/published/${SchemaName}/${Version}", + ConditionKeys: []string{}, + Resource: "publishedSchema", + }, + }, + ServiceName: "Amazon Cloud Directory", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "cloudformation", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel resource requests in your account", + Privilege: "CancelResourceRequest", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:Decrypt", - "kms:GenerateDataKey", - }, - ResourceType: "eventdatastore*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list settings for event selectors configured for a trail", - Privilege: "GetEventSelectors", + AccessLevel: "Write", + Description: "Grants permission to create resources in your account", + Privilege: "CreateResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a specific import", - Privilege: "GetImport", + AccessLevel: "Write", + Description: "Grants permission to delete resources in your account", + Privilege: "DeleteResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43105,88 +45140,144 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list CloudTrail Insights selectors that are configured for a trail or event data store", - Privilege: "GetInsightSelectors", + Description: "Grants permission to get resources in your account", + Privilege: "GetResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "trail", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to fetch results of a complete query", - Privilege: "GetQueryResults", + Description: "Grants permission to get resource requests in your account", + Privilege: "GetResourceRequestStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:Decrypt", - "kms:GenerateDataKey", - }, - ResourceType: "eventdatastore*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the resource policy attached to the provided resource", - Privilege: "GetResourcePolicy", + Description: "Grants permission to list resource requests in your account", + Privilege: "ListResourceRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list settings for the service-linked channel", - Privilege: "GetServiceLinkedChannel", + Description: "Grants permission to list resources in your account", + Privilege: "ListResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list settings for the trail", - Privilege: "GetTrail", + AccessLevel: "Write", + Description: "Grants permission to update resources in your account", + Privilege: "UpdateResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Cloud Control API", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve a JSON-formatted list of information about the specified trail", - Privilege: "GetTrailStatus", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "cloudformation:ChangeSetName", + Description: "Filters access by an AWS CloudFormation change set name. Use to control which change sets IAM users can execute or delete", + Type: "String", + }, + { + Condition: "cloudformation:CreateAction", + Description: "Filters access by the name of a resource-mutating API action. Use to control which APIs IAM users can use to add or remove tags on a stack or stack set", + Type: "String", + }, + { + Condition: "cloudformation:ImportResourceTypes", + Description: "Filters access by the template resource types, such as AWS::EC2::Instance. Use to control which resource types IAM users can work with when they want to import a resource into a stack", + Type: "String", + }, + { + Condition: "cloudformation:ResourceTypes", + Description: "Filters access by the template resource types, such as AWS::EC2::Instance. Use to control which resource types IAM users can work with when they create or update a stack", + Type: "ArrayOfString", + }, + { + Condition: "cloudformation:RoleArn", + Description: "Filters access by the ARN of an IAM service role. Use to control which service role IAM users can use to work with stacks or change sets", + Type: "ARN", + }, + { + Condition: "cloudformation:StackPolicyUrl", + Description: "Filters access by an Amazon S3 stack policy URL. Use to control which stack policies IAM users can associate with a stack during a create or update stack action", + Type: "String", + }, + { + Condition: "cloudformation:TargetRegion", + Description: "Filters access by stack set target region. Use to control which regions IAM users can use when they create or update stack sets", + Type: "ArrayOfString", + }, + { + Condition: "cloudformation:TemplateUrl", + Description: "Filters access by an Amazon S3 template URL. Use to control which templates IAM users can use when they create or update stacks", + Type: "String", + }, + }, + Prefix: "cloudformation", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to activate trusted access between StackSets and Organizations. With trusted access between StackSets and Organizations activated, the management account has permissions to create and manage StackSets for your organization", + Privilege: "ActivateOrganizationsAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the channels in the current account, and their source names", - Privilege: "ListChannels", + AccessLevel: "Write", + Description: "Grants permission to activate a public third-party extension, making it available for use in stack templates", + Privilege: "ActivateType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43196,9 +45287,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list event data stores associated with the current region for your account", - Privilege: "ListEventDataStores", + AccessLevel: "Read", + Description: "Grants permission to return configuration data for the specified CloudFormation extensions", + Privilege: "BatchDescribeTypeConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43208,103 +45299,161 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a list of failures for the specified import", - Privilege: "ListImportFailures", + AccessLevel: "Write", + Description: "Grants permission to cancel an update on the specified stack", + Privilege: "CancelUpdateStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information on all imports, or a select set of imports by ImportStatus or Destination", - Privilege: "ListImports", + AccessLevel: "Write", + Description: "Grants permission to continue rolling back a stack that is in the UPDATE_ROLLBACK_FAILED state to the UPDATE_ROLLBACK_COMPLETE state", + Privilege: "ContinueUpdateRollback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:RoleArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the public keys whose private keys were used to sign trail digest files within a specified time range", - Privilege: "ListPublicKeys", + AccessLevel: "Write", + Description: "Grants permission to create a list of changes for a stack", + Privilege: "CreateChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:ChangeSetName", + "cloudformation:ResourceTypes", + "cloudformation:ImportResourceTypes", + "cloudformation:RoleArn", + "cloudformation:StackPolicyUrl", + "cloudformation:TemplateUrl", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list queries associated with an event data store", - Privilege: "ListQueries", + AccessLevel: "Write", + Description: "Grants permission to create a template from existing resources that are not already managed with CloudFormation", + Privilege: "CreateGeneratedTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list service-linked channels associated with the current region for a specified account", - Privilege: "ListServiceLinkedChannels", + AccessLevel: "Write", + Description: "Grants permission to create a stack as specified in the template", + Privilege: "CreateStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:ResourceTypes", + "cloudformation:RoleArn", + "cloudformation:StackPolicyUrl", + "cloudformation:TemplateUrl", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for trails, event data stores, or channels in the current region", - Privilege: "ListTags", + AccessLevel: "Write", + Description: "Grants permission to create stack instances for the specified accounts, within the specified regions", + Privilege: "CreateStackInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "stackset*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore", + ResourceType: "stackset-target", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail", + ResourceType: "type", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "cloudformation:TargetRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list trails associated with the current region for your account", - Privilege: "ListTrails", + AccessLevel: "Write", + Description: "Grants permission to create a stack refactor", + Privilege: "CreateStackRefactor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stack*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a stackset as specified in the template", + Privilege: "CreateStackSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "cloudformation:RoleArn", + "cloudformation:TemplateUrl", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to look up and retrieve metric data for API activity events captured by CloudTrail that create, update, or delete resources in your account", - Privilege: "LookupEvents", + AccessLevel: "Write", + Description: "Grants permission to upload templates to Amazon S3 buckets. Used only by the AWS CloudFormation console and is not documented in the API reference", + Privilege: "CreateUploadBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43315,85 +45464,101 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create and update event selectors for a trail", - Privilege: "PutEventSelectors", + Description: "Grants permission to deactivate trusted access between StackSets and Organizations. If trusted access is deactivated, the management account does not have permissions to create and manage service-managed StackSets for your organization", + Privilege: "DeactivateOrganizationsAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and update CloudTrail Insights selectors for a trail or event data store", - Privilege: "PutInsightSelectors", + Description: "Grants permission to deactivate a public extension that was previously activated in this account and region", + Privilege: "DeactivateType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified change set. Deleting change sets ensures that no one executes the wrong change set", + Privilege: "DeleteChangeSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail", + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:ChangeSetName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a resource policy to the provided resource", - Privilege: "PutResourcePolicy", + Description: "Grants permission to delete a generated template", + Privilege: "DeleteGeneratedTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register an AWS Organizations member account as a delegated administrator", - Privilege: "RegisterOrganizationDelegatedAdmin", + Description: "Grants permission to delete a specified stack", + Privilege: "DeleteStack", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "organizations:ListAWSServiceAccessForOrganization", - "organizations:RegisterDelegatedAdministrator", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:RoleArn", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a trail, event data store, or channel", - Privilege: "RemoveTags", + AccessLevel: "Write", + Description: "Grants permission to delete stack instances for the specified accounts, in the specified regions", + Privilege: "DeleteStackInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "stackset*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore", + ResourceType: "stackset-target", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail", + ResourceType: "type", }, { ConditionKeys: []string{ - "aws:TagKeys", + "cloudformation:TargetRegion", }, DependentActions: []string{}, ResourceType: "", @@ -43402,32 +45567,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to restore an event data store", - Privilege: "RestoreEventDataStore", + Description: "Grants permission to delete a specified stackset", + Privilege: "DeleteStackSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "stackset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start ingestion on an event data store", - Privilege: "StartEventDataStoreIngestion", + Description: "Grants permission to deregister an existing CloudFormation type or type version", + Privilege: "DeregisterType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an import of logged trail events from a source S3 bucket to a destination event data store", - Privilege: "StartImport", + AccessLevel: "Read", + Description: "Grants permission to retrieve your account's AWS CloudFormation limits", + Privilege: "DescribeAccountLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43437,48 +45602,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the recording of AWS API calls and log file delivery for a trail", - Privilege: "StartLogging", + AccessLevel: "Read", + Description: "Grants permission to return the description for the specified change set", + Privilege: "DescribeChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:ChangeSetName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new query on a specified event data store", - Privilege: "StartQuery", + AccessLevel: "Read", + Description: "Grants permission to return the Hook invocation information for the specified change set", + Privilege: "DescribeChangeSetHooks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:Decrypt", - "kms:GenerateDataKey", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:ChangeSetName", }, - ResourceType: "eventdatastore*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop ingestion on an event data store", - Privilege: "StopEventDataStoreIngestion", + AccessLevel: "Read", + Description: "Grants permission to describe a generated template. The output includes details about the progress of the creation of a generated template", + Privilege: "DescribeGeneratedTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventdatastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a specified import", - Privilege: "StopImport", + AccessLevel: "Read", + Description: "Grants permission to return information about the account's OrganizationAccess status", + Privilege: "DescribeOrganizationsAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43488,238 +45664,167 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the recording of AWS API calls and log file delivery for a trail", - Privilege: "StopLogging", + AccessLevel: "Read", + Description: "Grants permission to return information about a CloudFormation extension publisher", + Privilege: "DescribePublisher", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trail*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a channel", - Privilege: "UpdateChannel", + AccessLevel: "Read", + Description: "Grants permission to describe details of a resource scan", + Privilege: "DescribeResourceScan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an event data store", - Privilege: "UpdateEventDataStore", + AccessLevel: "Read", + Description: "Grants permission to return information about a stack drift detection operation", + Privilege: "DescribeStackDriftDetectionStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "kms:Decrypt", - "kms:GenerateDataKey", - "organizations:ListAWSServiceAccessForOrganization", - }, - ResourceType: "eventdatastore*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the service-linked channel settings for delivery of log data to an AWS service", - Privilege: "UpdateServiceLinkedChannel", + AccessLevel: "Read", + Description: "Grants permission to return all stack related events for a specified stack", + Privilege: "DescribeStackEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the settings that specify delivery of log files", - Privilege: "UpdateTrail", + AccessLevel: "Read", + Description: "Grants permission to return the stack instance that's associated with the specified stack set, AWS account, and region", + Privilege: "DescribeStackInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "organizations:ListAWSServiceAccessForOrganization", - }, - ResourceType: "trail*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stackset*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:trail/${TrailName}", - ConditionKeys: []string{}, - Resource: "trail", - }, { - Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:eventdatastore/${EventDataStoreId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to return the description for the specified stack refactor", + Privilege: "DescribeStackRefactor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, }, - Resource: "eventdatastore", }, { - Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:channel/${ChannelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to return a description of the specified resource in the specified stack", + Privilege: "DescribeStackResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, }, - Resource: "channel", - }, - }, - ServiceName: "AWS CloudTrail", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", - Type: "String", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", - Type: "ArrayOfString", - }, - }, - Prefix: "cloudtrail-data", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to ingest your application events into CloudTrail Lake", - Privilege: "PutAuditEvents", + AccessLevel: "Read", + Description: "Grants permission to return drift information for the resources that have been checked for drift in the specified stack", + Privilege: "DescribeStackResourceDrifts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "stack*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:channel/${ChannelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to return AWS resource descriptions for running and deleted stacks", + Privilege: "DescribeStackResources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack*", + }, }, - Resource: "channel", - }, - }, - ServiceName: "AWS CloudTrail Data", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the allowed set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag-value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - { - Condition: "cloudwatch:AlarmActions", - Description: "Filters actions based on defined alarm actions", - Type: "ArrayOfString", - }, - { - Condition: "cloudwatch:namespace", - Description: "Filters actions based on the presence of optional namespace values", - Type: "String", - }, - { - Condition: "cloudwatch:requestInsightRuleLogGroups", - Description: "Filters actions based on the Log Groups specified in an Insight Rule", - Type: "ArrayOfString", - }, - { - Condition: "cloudwatch:requestManagedResourceARNs", - Description: "Filters access by the Resource ARNs specified in a managed Insight Rule", - Type: "ArrayOfARN", }, - }, - Prefix: "cloudwatch", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to batch get service level indicator report", - Privilege: "BatchGetServiceLevelIndicatorReport", + Description: "Grants permission to return the description of the specified stack set", + Privilege: "DescribeStackSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stackset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to batch retrieve a service level objective budget report", - Privilege: "BatchGetServiceLevelObjectiveBudgetReport", + Description: "Grants permission to return the description of the specified stack set operation", + Privilege: "DescribeStackSetOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slo*", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a service level objective", - Privilege: "CreateServiceLevelObjective", + AccessLevel: "List", + Description: "Grants permission to return the description for the specified stack, and to all stacks when used in combination with the ListStacks action", + Privilege: "DescribeStacks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:ListStacks", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a collection of alarms", - Privilege: "DeleteAlarms", + AccessLevel: "Read", + Description: "Grants permission to return information about the CloudFormation type requested", + Privilege: "DescribeType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified anomaly detection model from your account", - Privilege: "DeleteAnomalyDetector", + AccessLevel: "Read", + Description: "Grants permission to return information about the registration process for a CloudFormation type", + Privilege: "DescribeTypeRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43729,81 +45834,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete all CloudWatch dashboards that you specify", - Privilege: "DeleteDashboards", + AccessLevel: "Read", + Description: "Grants permission to detects whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters", + Privilege: "DetectStackDrift", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a collection of insight rules", - Privilege: "DeleteInsightRules", + AccessLevel: "Read", + Description: "Grants permission to return information about whether a resource's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters", + Privilege: "DetectStackResourceDrift", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the CloudWatch metric stream that you specify", - Privilege: "DeleteMetricStream", + AccessLevel: "Read", + Description: "Grants permission to enable users to detect drift on a stack set and the stack instances that belong to that stack set", + Privilege: "DetectStackSetDrift", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-stream*", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a service level objective", - Privilege: "DeleteServiceLevelObjective", + AccessLevel: "Read", + Description: "Grants permission to return the estimated monthly cost of a template", + Privilege: "EstimateTemplateCost", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "cloudformation:TemplateUrl", + }, DependentActions: []string{}, - ResourceType: "slo*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the history for the specified alarm", - Privilege: "DescribeAlarmHistory", + AccessLevel: "Write", + Description: "Grants permission to update a stack using the input information that was provided when the specified change set was created", + Privilege: "ExecuteChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:ChangeSetName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe all alarms, currently owned by the user's account", - Privilege: "DescribeAlarms", + AccessLevel: "Write", + Description: "Grants permission to execute a stack refactor using the input information that was provided when the specified stack refactor was created", + Privilege: "ExecuteStackRefactor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "stack*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe all alarms configured on the specified metric, currently owned by the user's account", - Privilege: "DescribeAlarmsForMetric", + Description: "Grants permission to retrieve a generated template", + Privilege: "GetGeneratedTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43814,80 +45928,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the anomaly detection models that you have created in your account", - Privilege: "DescribeAnomalyDetectors", + Description: "Grants permission to return the stack policy for a specified stack", + Privilege: "GetStackPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe all insight rules, currently owned by the user's account", - Privilege: "DescribeInsightRules", + Description: "Grants permission to return the template body for a specified stack", + Privilege: "GetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable actions for a collection of alarms", - Privilege: "DisableAlarmActions", + AccessLevel: "Read", + Description: "Grants permission to return information about a new or existing template", + Privilege: "GetTemplateSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "stack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stackset", + }, + { + ConditionKeys: []string{ + "cloudformation:TemplateUrl", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable a collection of insight rules", - Privilege: "DisableInsightRules", + Description: "Grants permission to enable users to import existing stacks to a new or existing stackset", + Privilege: "ImportStacksToStackSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule*", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable actions for a collection of alarms", - Privilege: "EnableAlarmActions", + AccessLevel: "List", + Description: "Grants permission to return the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state", + Privilege: "ListChangeSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable a collection of insight rules", - Privilege: "EnableInsightRules", + AccessLevel: "List", + Description: "Grants permission to list all exported output values in the account and region in which you call this action", + Privilege: "ListExports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable a CloudWatch topology discovery", - Privilege: "EnableTopologyDiscovery", + AccessLevel: "List", + Description: "Grants permission to list your generated templates in this Region", + Privilege: "ListGeneratedTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43897,45 +46023,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate a Metrics Insights or Logs Insights query string from a natural language prompt", - Privilege: "GenerateQuery", + AccessLevel: "List", + Description: "Grants permission to return Hook invocations result information for the specified target", + Privilege: "ListHookResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stack", + }, + { + ConditionKeys: []string{ + "cloudformation:ChangeSetName", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to display the details of the CloudWatch dashboard you specify", - Privilege: "GetDashboard", + AccessLevel: "List", + Description: "Grants permission to list all stacks that are importing an exported output value", + Privilege: "ListImports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the top-N report of unique contributors over a time range for a given insight rule", - Privilege: "GetInsightRuleReport", + AccessLevel: "List", + Description: "Grants permission to list the related resources for a list of resources from a resource scan. The response indicates whether each returned resource is already managed by CloudFormation", + Privilege: "ListResourceScanRelatedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve batch amounts of CloudWatch metric data and perform metric math on retrieved data", - Privilege: "GetMetricData", + AccessLevel: "List", + Description: "Grants permission to list the resources from a resource scan. The results can be filtered by resource identifier, resource type prefix, tag key, and tag value", + Privilege: "ListResourceScanResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43945,9 +46078,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve statistics for the specified metric", - Privilege: "GetMetricStatistics", + AccessLevel: "List", + Description: "Grants permission to list the resource scans from newest to oldest. By default it will return up to 10 resource scans", + Privilege: "ListResourceScans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -43957,105 +46090,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the details of a CloudWatch metric stream", - Privilege: "GetMetricStream", + AccessLevel: "List", + Description: "Grants permission to return drift information for the resources that have been checked for drift in the specified stack instance", + Privilege: "ListStackInstanceResourceDrifts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-stream*", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve snapshots of metric widgets", - Privilege: "GetMetricWidgetImage", + AccessLevel: "List", + Description: "Grants permission to return summary information about stack instances that are associated with the specified stack set", + Privilege: "ListStackInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a service", - Privilege: "GetService", + AccessLevel: "List", + Description: "Grants permission to return the list of actions of the specified stack refactor", + Privilege: "ListStackRefactorActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve service data", - Privilege: "GetServiceData", + AccessLevel: "List", + Description: "Grants permission to return the ID and status of each active stack refactor", + Privilege: "ListStackRefactors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about service level objective", - Privilege: "GetServiceLevelObjective", + AccessLevel: "List", + Description: "Grants permission to return descriptions of all resources of the specified stack", + Privilege: "ListStackResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slo*", + ResourceType: "stack*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a CloudWatch topology discovery status", - Privilege: "GetTopologyDiscoveryStatus", + AccessLevel: "List", + Description: "Grants permission to return summary information about StackSet Auto Deployment Targets", + Privilege: "ListStackSetAutoDeploymentTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a CloudWatch topology map", - Privilege: "GetTopologyMap", + AccessLevel: "List", + Description: "Grants permission to return summary information about the results of a stack set operation", + Privilege: "ListStackSetOperationResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stackset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to share CloudWatch resources with a monitoring account", - Privilege: "Link", + AccessLevel: "List", + Description: "Grants permission to return summary information about operations performed on a stack set", + Privilege: "ListStackSetOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stackset*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of all CloudWatch dashboards in your account", - Privilege: "ListDashboards", + Description: "Grants permission to return summary information about stack sets that are associated with the user", + Privilege: "ListStackSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -44065,16 +46198,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list available managed Insight Rules for a given Resource ARN", - Privilege: "ListManagedInsightRules", + AccessLevel: "List", + Description: "Grants permission to return the summary information for stacks whose status matches the specified StackStatusFilter. In combination with the DescribeStacks action, grants permission to list descriptions for stacks", + Privilege: "ListStacks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "cloudwatch:requestManagedResourceARNs", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -44082,8 +46211,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of all CloudWatch metric streams in your account", - Privilege: "ListMetricStreams", + Description: "Grants permission to list CloudFormation type registration attempts", + Privilege: "ListTypeRegistrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -44094,8 +46223,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of valid metrics stored for the AWS account owner", - Privilege: "ListMetrics", + Description: "Grants permission to list versions of a particular CloudFormation type", + Privilege: "ListTypeVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -44106,8 +46235,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list service level objectives", - Privilege: "ListServiceLevelObjectives", + Description: "Grants permission to list available CloudFormation types", + Privilege: "ListTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -44117,9 +46246,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list services", - Privilege: "ListServices", + AccessLevel: "Write", + Description: "Grants permission to publish the specified extension to the CloudFormation registry as a public extension in this region", + Privilege: "PublishType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -44129,54 +46258,73 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for an Amazon CloudWatch resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to record the handler progress", + Privilege: "RecordHandlerProgress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm", + ResourceType: "stack*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register account as a publisher of public extensions in the CloudFormation registry", + Privilege: "RegisterPublisher", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register a new CloudFormation type", + Privilege: "RegisterType", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slo", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an anomaly detection model for a CloudWatch metric", - Privilege: "PutAnomalyDetector", + Description: "Grants permission to rollback the stack to the last stable state", + Privilege: "RollbackStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stack*", + }, + { + ConditionKeys: []string{ + "cloudformation:RoleArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update a composite alarm", - Privilege: "PutCompositeAlarm", + AccessLevel: "Permissions management", + Description: "Grants permission to set a stack policy for a specified stack", + Privilege: "SetStackPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "stack*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "cloudwatch:AlarmActions", + "cloudformation:StackPolicyUrl", }, DependentActions: []string{}, ResourceType: "", @@ -44185,48 +46333,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a CloudWatch dashboard, or update an existing dashboard if it already exists", - Privilege: "PutDashboard", + Description: "Grants permission to set the configuration data for a registered CloudFormation extension, in the given account and region", + Privilege: "SetTypeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new insight rule or replace an existing insight rule", - Privilege: "PutInsightRule", + Description: "Grants permission to set which version of a CloudFormation type applies to CloudFormation operations", + Privilege: "SetTypeDefaultVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a signal to the specified resource with a success or failure status", + Privilege: "SignalResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "cloudwatch:requestInsightRuleLogGroups", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create managed Insight Rules", - Privilege: "PutManagedInsightRules", + Description: "Grants permission to start a scan of the resources in this account in this Region", + Privilege: "StartResourceScan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "cloudwatch:requestManagedResourceARNs", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -44234,19 +46381,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update an alarm and associates it with the specified Amazon CloudWatch metric", - Privilege: "PutMetricAlarm", + Description: "Grants permission to stop an in-progress operation on a stack set and its associated stack instances", + Privilege: "StopStackSetOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "stackset*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag cloudformation resources", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "changeset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stackset", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "cloudwatch:AlarmActions", + "aws:RequestTag/${TagKey}", + "cloudformation:CreateAction", }, DependentActions: []string{}, ResourceType: "", @@ -44255,32 +46424,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to publish metric data points to Amazon CloudWatch", - Privilege: "PutMetricData", + Description: "Grants permission to test a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry", + Privilege: "TestType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "cloudwatch:namespace", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a CloudWatch metric stream, or update an existing metric stream if it already exists", - Privilege: "PutMetricStream", + AccessLevel: "Tagging", + Description: "Grants permission to untag cloudformation resources", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-stream*", + ResourceType: "changeset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stackset", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "cloudformation:CreateAction", }, DependentActions: []string{}, ResourceType: "", @@ -44289,64 +46466,63 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to temporarily set the state of an alarm for testing purposes", - Privilege: "SetAlarmState", + Description: "Grants permission to update a generated template. This can be used to change the name, add and remove resources, refresh resources, and change the DeletionPolicy and UpdateReplacePolicy settings", + Privilege: "UpdateGeneratedTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start all CloudWatch metric streams that you specify", - Privilege: "StartMetricStreams", + Description: "Grants permission to update a stack as specified in the template", + Privilege: "UpdateStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-stream*", + ResourceType: "stack*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop all CloudWatch metric streams that you specify", - Privilege: "StopMetricStreams", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "cloudformation:ResourceTypes", + "cloudformation:RoleArn", + "cloudformation:StackPolicyUrl", + "cloudformation:TemplateUrl", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "metric-stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an Amazon CloudWatch resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update the parameter values for stack instances for the specified accounts, within the specified regions", + Privilege: "UpdateStackInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm", + ResourceType: "stackset*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule", + ResourceType: "stackset-target", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slo", + ResourceType: "type", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "cloudformation:TargetRegion", }, DependentActions: []string{}, ResourceType: "", @@ -44354,27 +46530,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from an Amazon CloudWatch resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a stackset as specified in the template", + Privilege: "UpdateStackSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarm", + ResourceType: "stackset*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "insight-rule", + ResourceType: "stackset-target", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slo", + ResourceType: "type", }, { ConditionKeys: []string{ + "cloudformation:RoleArn", + "cloudformation:TemplateUrl", + "cloudformation:TargetRegion", + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -44384,60 +46564,75 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a service level objective", - Privilege: "UpdateServiceLevelObjective", + Description: "Grants permission to update termination protection for the specified stack", + Privilege: "UpdateTerminationProtection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slo*", + ResourceType: "stack*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to validate a specified template", + Privilege: "ValidateTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "cloudformation:TemplateUrl", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:alarm:${AlarmName}", + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:changeSet/${ChangeSetName}/${Id}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "alarm", - }, - { - Arn: "arn:${Partition}:cloudwatch::${Account}:dashboard/${DashboardName}", - ConditionKeys: []string{}, - Resource: "dashboard", + Resource: "changeset", }, { - Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:insight-rule/${InsightRuleName}", + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:stack/${StackName}/${Id}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "insight-rule", + Resource: "stack", }, { - Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:metric-stream/${MetricStreamName}", + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:stackset/${StackSetName}:${Id}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "metric-stream", + Resource: "stackset", }, { - Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:slo/${SloName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "slo", + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:stackset-target/${StackSetTarget}", + ConditionKeys: []string{}, + Resource: "stackset-target", }, { - Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:service/${ServiceName}-${UniqueAttributesHex}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service", + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:type/resource/${Type}", + ConditionKeys: []string{}, + Resource: "type", + }, + { + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:generatedTemplate/${Id}", + ConditionKeys: []string{}, + Resource: "generatedtemplate", + }, + { + Arn: "arn:${Partition}:cloudformation:${Region}:${Account}:resourceScan/${Id}", + ConditionKeys: []string{}, + Resource: "resourcescan", }, }, - ServiceName: "Amazon CloudWatch", + ServiceName: "AWS CloudFormation", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -44457,84 +46652,82 @@ func getParliamentIamPermissions() ParliamentPermissions { Type: "ArrayOfString", }, }, - Prefix: "codeartifact", + Prefix: "cloudfront", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add an external connection to a repository", - Privilege: "AssociateExternalConnection", + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for a distribution", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "distribution", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an existing repository as an upstream repository to another repository", - Privilege: "AssociateWithDownstreamRepository", + Description: "Grants permission to associate an alias to a CloudFront distribution", + Privilege: "AssociateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy package versions from one repository to another repository in the same domain", - Privilege: "CopyPackageVersions", + Description: "Grants permission to associate a distribution tenant with an AWS WAF web ACL", + Privilege: "AssociateDistributionTenantWebACL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "distribution-tenant*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new domain", - Privilege: "CreateDomain", + Description: "Grants permission to associate a distribution with an AWS WAF web ACL", + Privilege: "AssociateDistributionWebACL", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a package group", - Privilege: "CreatePackageGroup", + Description: "Grants permission to copy an existing distribution and create a new web distribution", + Privilege: "CopyDistribution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudfront:CopyDistribution", + "cloudfront:CreateDistribution", + "cloudfront:GetDistribution", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new repository", - Privilege: "CreateRepository", + Description: "Grants permission to create an Anycast static IP list", + Privilege: "CreateAnycastIpList", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "anycast-ip-list*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -44547,925 +46740,927 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a domain", - Privilege: "DeleteDomain", + Description: "Grants permission to add a new cache policy to CloudFront", + Privilege: "CreateCachePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "cache-policy*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the resource policy set on a domain", - Privilege: "DeleteDomainPermissionsPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a new CloudFront origin access identity", + Privilege: "CreateCloudFrontOriginAccessIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "origin-access-identity*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a package", - Privilege: "DeletePackage", + Description: "Grants permission to create a connection group", + Privilege: "CreateConnectionGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a package group", - Privilege: "DeletePackageGroup", + Description: "Grants permission to add a new continuous-deployment policy to CloudFront", + Privilege: "CreateContinuousDeploymentPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "continuous-deployment-policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete package versions", - Privilege: "DeletePackageVersions", + Description: "Grants permission to create a new web distribution", + Privilege: "CreateDistribution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "package*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudfront:CreateConnectionGroup", + }, + ResourceType: "distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a repository", - Privilege: "DeleteRepository", + Description: "Grants permission to create a distribution tenant", + Privilege: "CreateDistributionTenant", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the resource policy set on a repository", - Privilege: "DeleteRepositoryPermissionsPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a new field-level encryption configuration", + Privilege: "CreateFieldLevelEncryptionConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a domain", - Privilege: "DescribeDomain", + AccessLevel: "Write", + Description: "Grants permission to create a field-level encryption profile", + Privilege: "CreateFieldLevelEncryptionProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a package", - Privilege: "DescribePackage", + AccessLevel: "Write", + Description: "Grants permission to create a CloudFront function", + Privilege: "CreateFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "function*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return detailed information about a package group", - Privilege: "DescribePackageGroup", + AccessLevel: "Write", + Description: "Grants permission to create a new invalidation batch request", + Privilege: "CreateInvalidation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a package version", - Privilege: "DescribePackageVersion", + AccessLevel: "Write", + Description: "Grants permission to create an invalidation for a distribution tenant", + Privilege: "CreateInvalidationForDistributionTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "distribution-tenant*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return detailed information about a repository", - Privilege: "DescribeRepository", + AccessLevel: "Write", + Description: "Grants permission to add a new key group to CloudFront", + Privilege: "CreateKeyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an external connection from a repository", - Privilege: "DisassociateExternalConnection", + Description: "Grants permission to create a CloudFront KeyValueStore", + Privilege: "CreateKeyValueStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the status of package versions to Disposed and delete their assets", - Privilege: "DisposePackageVersions", + Description: "Grants permission to enable additional CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost", + Privilege: "CreateMonitoringSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a package's associated package group", - Privilege: "GetAssociatedPackageGroup", + AccessLevel: "Write", + Description: "Grants permission to create a new origin access control", + Privilege: "CreateOriginAccessControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate a temporary authentication token for accessing repositories in a domain", - Privilege: "GetAuthorizationToken", + AccessLevel: "Write", + Description: "Grants permission to add a new origin request policy to CloudFront", + Privilege: "CreateOriginRequestPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "origin-request-policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a domain's resource policy", - Privilege: "GetDomainPermissionsPolicy", + AccessLevel: "Write", + Description: "Grants permission to add a new public key to CloudFront", + Privilege: "CreatePublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return an asset (or file) that is part of a package version", - Privilege: "GetPackageVersionAsset", + AccessLevel: "Write", + Description: "Grants permission to create a real-time log configuration", + Privilege: "CreateRealtimeLogConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "realtime-log-config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a package version's readme file", - Privilege: "GetPackageVersionReadme", + AccessLevel: "Write", + Description: "Grants permission to add a new response headers policy to CloudFront", + Privilege: "CreateResponseHeadersPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "response-headers-policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return an endpoint for a repository", - Privilege: "GetRepositoryEndpoint", + AccessLevel: "Write", + Description: "Grants permission to create a new savings plan", + Privilege: "CreateSavingsPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a repository's resource policy", - Privilege: "GetRepositoryPermissionsPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a new RTMP distribution", + Privilege: "CreateStreamingDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "streaming-distribution*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the allowed repositories for a package group", - Privilege: "ListAllowedRepositoriesForGroup", + AccessLevel: "Write", + Description: "Grants permission to create a new RTMP distribution with tags", + Privilege: "CreateStreamingDistributionWithTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "streaming-distribution*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the packages associated to a package group", - Privilege: "ListAssociatedPackages", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the domains in the current user's AWS account", - Privilege: "ListDomains", + AccessLevel: "Write", + Description: "Grants permission to create a VPC origin", + Privilege: "CreateVpcOrigin", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the package groups in a domain", - Privilege: "ListPackageGroups", + AccessLevel: "Write", + Description: "Grants permission to delete an Anycast static IP list", + Privilege: "DeleteAnycastIpList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "anycast-ip-list*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list a package version's assets", - Privilege: "ListPackageVersionAssets", + AccessLevel: "Write", + Description: "Grants permission to delete a cache policy", + Privilege: "DeleteCachePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "cache-policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the direct dependencies of a package version", - Privilege: "ListPackageVersionDependencies", + AccessLevel: "Write", + Description: "Grants permission to delete a CloudFront origin access identity", + Privilege: "DeleteCloudFrontOriginAccessIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "origin-access-identity*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list a package's versions", - Privilege: "ListPackageVersions", + AccessLevel: "Write", + Description: "Grants permission to delete a connection group", + Privilege: "DeleteConnectionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "connection-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the packages in a repository", - Privilege: "ListPackages", + AccessLevel: "Write", + Description: "Grants permission to delete a continuous-deployment policy", + Privilege: "DeleteContinuousDeploymentPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "continuous-deployment-policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the repositories administered by the calling account", - Privilege: "ListRepositories", + AccessLevel: "Write", + Description: "Grants permission to delete a web distribution", + Privilege: "DeleteDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the repositories in a domain", - Privilege: "ListRepositoriesInDomain", + AccessLevel: "Write", + Description: "Grants permission to delete a distribution tenant", + Privilege: "DeleteDistributionTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "distribution-tenant*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the sub package groups for a parent package group", - Privilege: "ListSubPackageGroups", + AccessLevel: "Write", + Description: "Grants permission to delete a field-level encryption configuration", + Privilege: "DeleteFieldLevelEncryptionConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "field-level-encryption-config*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for a CodeArtifact resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a field-level encryption profile", + Privilege: "DeleteFieldLevelEncryptionProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "package-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository", + ResourceType: "field-level-encryption-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to publish assets and metadata to a repository endpoint", - Privilege: "PublishPackageVersion", + Description: "Grants permission to delete a CloudFront function", + Privilege: "DeleteFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a resource policy to a domain", - Privilege: "PutDomainPermissionsPolicy", + Description: "Grants permission to delete a key group", + Privilege: "DeleteKeyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add, modify or remove package metadata using a repository endpoint", - Privilege: "PutPackageMetadata", + Description: "Grants permission to delete a CloudFront KeyValueStore", + Privilege: "DeleteKeyValueStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "key-value-store*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set origin configuration for a package", - Privilege: "PutPackageOriginConfiguration", + Description: "Grants permission to disable additional CloudWatch metrics for the specified CloudFront distribution", + Privilege: "DeleteMonitoringSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a resource policy to a repository", - Privilege: "PutRepositoryPermissionsPolicy", + Description: "Grants permission to delete an origin access control", + Privilege: "DeleteOriginAccessControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "origin-access-control*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return package assets and metadata from a repository endpoint", - Privilege: "ReadFromRepository", + AccessLevel: "Write", + Description: "Grants permission to delete an origin request policy", + Privilege: "DeleteOriginRequestPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "origin-request-policy*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a CodeArtifact resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a public key from CloudFront", + Privilege: "DeletePublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a real-time log configuration", + Privilege: "DeleteRealtimeLogConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group", + ResourceType: "realtime-log-config*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a response headers policy", + Privilege: "DeleteResponseHeadersPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "response-headers-policy*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from a CodeArtifact resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete an RTMP distribution", + Privilege: "DeleteStreamingDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "streaming-distribution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a VPC origin", + Privilege: "DeleteVpcOrigin", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group", + ResourceType: "vpcorigin*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a CloudFront function summary", + Privilege: "DescribeFunction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the properties of a package group", - Privilege: "UpdatePackageGroup", + AccessLevel: "Read", + Description: "Grants permission to get a CloudFront KeyValueStore summary", + Privilege: "DescribeKeyValueStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "key-value-store*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the package origin configuration of a package group", - Privilege: "UpdatePackageGroupOriginConfiguration", + Description: "Grants permission to disassociate a distribution tenant from an AWS WAF web ACL", + Privilege: "DisassociateDistributionTenantWebACL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package-group*", + ResourceType: "distribution-tenant*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the status of one or more versions of a package", - Privilege: "UpdatePackageVersionsStatus", + Description: "Grants permission to disassociate a distribution from an AWS WAF web ACL", + Privilege: "DisassociateDistributionWebACL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the properties of a repository", - Privilege: "UpdateRepository", + AccessLevel: "Read", + Description: "Grants permission to get an Anycast static IP list", + Privilege: "GetAnycastIpList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "anycast-ip-list*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:domain/${DomainName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "domain", - }, { - Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:repository/${DomainName}/${RepositoryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get the cache policy", + Privilege: "GetCachePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cache-policy*", + }, }, - Resource: "repository", }, { - Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:package-group/${DomainName}${EncodedPackageGroupPattern}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get the cache policy configuration", + Privilege: "GetCachePolicyConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cache-policy*", + }, }, - Resource: "package-group", - }, - { - Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:package/${DomainName}/${RepositoryName}/${PackageFormat}/${PackageNamespace}/${PackageName}", - ConditionKeys: []string{}, - Resource: "package", - }, - }, - ServiceName: "AWS CodeArtifact", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by actions based on the presence of tag keys in the request", - Type: "ArrayOfString", }, - }, - Prefix: "codebuild", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to delete one or more builds", - Privilege: "BatchDeleteBuilds", + AccessLevel: "Read", + Description: "Grants permission to get the information about a CloudFront origin access identity", + Privilege: "GetCloudFrontOriginAccessIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "origin-access-identity*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about one or more build batches", - Privilege: "BatchGetBuildBatches", + Description: "Grants permission to get the configuration information about a Cloudfront origin access identity", + Privilege: "GetCloudFrontOriginAccessIdentityConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "origin-access-identity*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about one or more builds", - Privilege: "BatchGetBuilds", + Description: "Grants permission to get information about a connection group", + Privilege: "GetConnectionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "connection-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return an array of the Fleet objects specified by the input parameter", - Privilege: "BatchGetFleets", + Description: "Grants permission to get information about a connection group by the specified routing endpoint", + Privilege: "GetConnectionGroupByRoutingEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "connection-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about one or more build projects", - Privilege: "BatchGetProjects", + Description: "Grants permission to get the continuous-deployment policy", + Privilege: "GetContinuousDeploymentPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "continuous-deployment-policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return an array of ReportGroup objects that are specified by the input reportGroupArns parameter", - Privilege: "BatchGetReportGroups", + Description: "Grants permission to get the continuous-deployment policy configuration", + Privilege: "GetContinuousDeploymentPolicyConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "continuous-deployment-policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return an array of the Report objects specified by the input reportArns parameter", - Privilege: "BatchGetReports", + Description: "Grants permission to get the information about a web distribution", + Privilege: "GetDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or update information about a report", - Privilege: "BatchPutCodeCoverages", + AccessLevel: "Read", + Description: "Grants permission to get the configuration information about a distribution", + Privilege: "GetDistributionConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or update information about a report", - Privilege: "BatchPutTestCases", + AccessLevel: "Read", + Description: "Grants permission to get information about a distribution tenant", + Privilege: "GetDistributionTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "distribution-tenant*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a compute fleet", - Privilege: "CreateFleet", + AccessLevel: "Read", + Description: "Grants permission to get information about a distribution tenant by the associated domain", + Privilege: "GetDistributionTenantByDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "distribution-tenant*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the field-level encryption configuration information", + Privilege: "GetFieldLevelEncryption", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "field-level-encryption-config*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a build project", - Privilege: "CreateProject", + AccessLevel: "Read", + Description: "Grants permission to get the field-level encryption configuration information", + Privilege: "GetFieldLevelEncryptionConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "field-level-encryption-config*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the field-level encryption configuration information", + Privilege: "GetFieldLevelEncryptionProfile", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "field-level-encryption-profile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a report. A report is created when tests specified in the buildspec file for a report groups run during the build of a project", - Privilege: "CreateReport", + AccessLevel: "Read", + Description: "Grants permission to get the field-level encryption profile configuration information", + Privilege: "GetFieldLevelEncryptionProfileConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "field-level-encryption-profile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a report group", - Privilege: "CreateReportGroup", + AccessLevel: "Read", + Description: "Grants permission to get a CloudFront function's code", + Privilege: "GetFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "function*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the information about an invalidation", + Privilege: "GetInvalidation", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create webhook. For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, enables AWS CodeBuild to start rebuilding the source code every time a code change is pushed to the repository", - Privilege: "CreateWebhook", + AccessLevel: "Read", + Description: "Grants permission to get information about an invalidation for a distribution tenant", + Privilege: "GetInvalidationForDistributionTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "distribution-tenant*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a build batch", - Privilege: "DeleteBuildBatch", + AccessLevel: "Read", + Description: "Grants permission to get a key group", + Privilege: "GetKeyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a compute fleet", - Privilege: "DeleteFleet", + AccessLevel: "Read", + Description: "Grants permission to get a key group configuration", + Privilege: "GetKeyGroupConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an OAuth token from a connected third-party OAuth provider. Only used in the AWS CodeBuild console", - Privilege: "DeleteOAuthToken", + AccessLevel: "Read", + Description: "Grants permission to get details about a CloudFront managed certificate", + Privilege: "GetManagedCertificateDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution-tenant*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a build project", - Privilege: "DeleteProject", + AccessLevel: "Read", + Description: "Grants permission to get information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution", + Privilege: "GetMonitoringSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a report", - Privilege: "DeleteReport", + AccessLevel: "Read", + Description: "Grants permission to get the origin access control", + Privilege: "GetOriginAccessControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "origin-access-control*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a report group", - Privilege: "DeleteReportGroup", + AccessLevel: "Read", + Description: "Grants permission to get the origin access control configuration", + Privilege: "GetOriginAccessControlConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "origin-access-control*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a resource policy for the associated project or report group", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to get the origin request policy", + Privilege: "GetOriginRequestPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "origin-request-policy*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the origin request policy configuration", + Privilege: "GetOriginRequestPolicyConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group", + ResourceType: "origin-request-policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a set of GitHub, GitHub Enterprise, or Bitbucket source credentials", - Privilege: "DeleteSourceCredentials", + AccessLevel: "Read", + Description: "Grants permission to get the public key information", + Privilege: "GetPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45475,98 +47670,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete webhook. For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, stops AWS CodeBuild from rebuilding the source code every time a code change is pushed to the repository", - Privilege: "DeleteWebhook", + AccessLevel: "Read", + Description: "Grants permission to get the public key configuration information", + Privilege: "GetPublicKeyConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return an array of CodeCoverage objects", - Privilege: "DescribeCodeCoverages", + Description: "Grants permission to get a real-time log configuration", + Privilege: "GetRealtimeLogConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "realtime-log-config*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return an array of TestCase objects", - Privilege: "DescribeTestCases", + Description: "Grants permission to get the response headers policy", + Privilege: "GetResponseHeadersPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "response-headers-policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to analyze and accumulate test report values for the test reports in the specified report group", - Privilege: "GetReportGroupTrend", + Description: "Grants permission to get the response headers policy configuration", + Privilege: "GetResponseHeadersPolicyConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "response-headers-policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a resource policy for the specified project or report group", - Privilege: "GetResourcePolicy", + Description: "Grants permission to get a savings plan", + Privilege: "GetSavingsPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the information about an RTMP distribution", + Privilege: "GetStreamingDistribution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group", + ResourceType: "streaming-distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import the source repository credentials for an AWS CodeBuild project that has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket repository", - Privilege: "ImportSourceCredentials", + AccessLevel: "Read", + Description: "Grants permission to get the configuration information about a streaming distribution", + Privilege: "GetStreamingDistributionConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "streaming-distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reset the cache for a project", - Privilege: "InvalidateProjectCache", + AccessLevel: "Read", + Description: "Grants permission to get the information about a VPC origin", + Privilege: "GetVpcOrigin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "vpcorigin*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of build batch IDs, with each build batch ID representing a single build batch", - Privilege: "ListBuildBatches", + Description: "Grants permission to list your Anycast static IP lists", + Privilege: "ListAnycastIpLists", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45577,20 +47779,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of build batch IDs for the specified build project, with each build batch ID representing a single build batch", - Privilege: "ListBuildBatchesForProject", + Description: "Grants permission to list all cache policies that have been created in CloudFront for this account", + Privilege: "ListCachePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of build IDs, with each build ID representing a single build", - Privilege: "ListBuilds", + Description: "Grants permission to list your CloudFront origin access identities", + Privilege: "ListCloudFrontOriginAccessIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45601,20 +47803,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of build IDs for the specified build project, with each build ID representing a single build", - Privilege: "ListBuildsForProject", + Description: "Grants permission to list all aliases that conflict with the given alias in CloudFront", + Privilege: "ListConflictingAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "distribution*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list connected third-party OAuth providers. Only used in the AWS CodeBuild console", - Privilege: "ListConnectedOAuthAccounts", + Description: "Grants permission to list the connection groups in your AWS account", + Privilege: "ListConnectionGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45625,8 +47827,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get information about Docker images that are managed by AWS CodeBuild", - Privilege: "ListCuratedEnvironmentImages", + Description: "Grants permission to list all continuous-deployment policies in the account", + Privilege: "ListContinuousDeploymentPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45637,8 +47839,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of compute fleet ARNs, with each compute fleet ARN representing a single fleet", - Privilege: "ListFleets", + Description: "Grants permission to list the distribution tenants in your AWS account", + Privilege: "ListDistributionTenants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45649,8 +47851,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of build project names, with each build project name representing a single build project", - Privilege: "ListProjects", + Description: "Grants permission to list the distribution tenants by the customization that you specify", + Privilege: "ListDistributionTenantsByCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45661,8 +47863,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of report group ARNs. Each report group ARN represents one report group", - Privilege: "ListReportGroups", + Description: "Grants permission to list the distributions associated with your AWS account", + Privilege: "ListDistributions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45673,8 +47875,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of report ARNs. Each report ARN representing one report", - Privilege: "ListReports", + Description: "Grants permission to list the distributions in your account that are associated with the specified AnycastIpListId", + Privilege: "ListDistributionsByAnycastIpListId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45685,20 +47887,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of report ARNs that belong to the specified report group. Each report ARN represents one report", - Privilege: "ListReportsForReportGroup", + Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified cache policy", + Privilege: "ListDistributionsByCachePolicyId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list source code repositories from a connected third-party OAuth provider. Only used in the AWS CodeBuild console", - Privilege: "ListRepositories", + Description: "Grants permission to list the distributions by the specified connection mode", + Privilege: "ListDistributionsByConnectionMode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45709,8 +47911,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of project ARNs that have been shared with the requester. Each project ARN represents one project", - Privilege: "ListSharedProjects", + Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified key group", + Privilege: "ListDistributionsByKeyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45721,8 +47923,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of report group ARNs that have been shared with the requester. Each report group ARN represents one report group", - Privilege: "ListSharedReportGroups", + Description: "Grants permission to list the distributions associated a Lambda function", + Privilege: "ListDistributionsByLambdaFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45733,8 +47935,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of SourceCredentialsInfo objects", - Privilege: "ListSourceCredentials", + Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified origin request policy", + Privilege: "ListDistributionsByOriginRequestPolicyId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45744,9 +47946,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to save an OAuth token from a connected third-party OAuth provider. Only used in the AWS CodeBuild console", - Privilege: "PersistOAuthToken", + AccessLevel: "List", + Description: "Grants permission to get a list of distributions that have a cache behavior that's associated with the specified real-time log configuration", + Privilege: "ListDistributionsByRealtimeLogConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -45756,394 +47958,289 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create a resource policy for the associated project or report group", - Privilege: "PutResourcePolicy", + AccessLevel: "List", + Description: "Grants permission to list distribution IDs for distributions that have a cache behavior that's associated with the specified response headers policy", + Privilege: "ListDistributionsByResponseHeadersPolicyId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list IDs for distributions associated with the specified VPC origin", + Privilege: "ListDistributionsByVpcOriginId", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to retry a build", - Privilege: "RetryBuild", + AccessLevel: "List", + Description: "Grants permission to list the distributions associated with your AWS account with given AWS WAF web ACL", + Privilege: "ListDistributionsByWebACLId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to retry a build batch", - Privilege: "RetryBuildBatch", + AccessLevel: "List", + Description: "Grants permission to list domain conflicts for a specified domain", + Privilege: "ListDomainConflicts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "distribution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "distribution-tenant", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start running a build", - Privilege: "StartBuild", + AccessLevel: "List", + Description: "Grants permission to list all field-level encryption configurations that have been created in CloudFront for this account", + Privilege: "ListFieldLevelEncryptionConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start running a build batch", - Privilege: "StartBuildBatch", + AccessLevel: "List", + Description: "Grants permission to list all field-level encryption profiles that have been created in CloudFront for this account", + Privilege: "ListFieldLevelEncryptionProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attempt to stop running a build", - Privilege: "StopBuild", + AccessLevel: "List", + Description: "Grants permission to get a list of CloudFront functions", + Privilege: "ListFunctions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attempt to stop running a build batch", - Privilege: "StopBuildBatch", + AccessLevel: "List", + Description: "Grants permission to list your invalidation batches", + Privilege: "ListInvalidations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the settings of an existing compute fleet", - Privilege: "UpdateFleet", + AccessLevel: "List", + Description: "Grants permission to list the invalidations for a distribution tenant", + Privilege: "ListInvalidationsForDistributionTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "distribution-tenant*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all key groups that have been created in CloudFront for this account", + Privilege: "ListKeyGroups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the settings of an existing build project", - Privilege: "UpdateProject", + AccessLevel: "List", + Description: "Grants permission to get a list of CloudFront KeyValueStores", + Privilege: "ListKeyValueStores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the public visibility of a project and its builds", - Privilege: "UpdateProjectVisibility", + AccessLevel: "List", + Description: "Grants permission to list all origin access controls in the account", + Privilege: "ListOriginAccessControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information about a report", - Privilege: "UpdateReport", + AccessLevel: "List", + Description: "Grants permission to list all origin request policies that have been created in CloudFront for this account", + Privilege: "ListOriginRequestPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the settings of an existing report group", - Privilege: "UpdateReportGroup", + AccessLevel: "List", + Description: "Grants permission to list all public keys that have been added to CloudFront for this account", + Privilege: "ListPublicKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-group*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the webhook associated with an AWS CodeBuild build project", - Privilege: "UpdateWebhook", + AccessLevel: "List", + Description: "Grants permission to list CloudFront rate cards for the account", + Privilege: "ListRateCards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codebuild:${Region}:${Account}:build/${BuildId}", - ConditionKeys: []string{}, - Resource: "build", - }, - { - Arn: "arn:${Partition}:codebuild:${Region}:${Account}:build-batch/${BuildBatchId}", - ConditionKeys: []string{}, - Resource: "build-batch", - }, - { - Arn: "arn:${Partition}:codebuild:${Region}:${Account}:project/${ProjectName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "project", - }, - { - Arn: "arn:${Partition}:codebuild:${Region}:${Account}:report-group/${ReportGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "report-group", - }, - { - Arn: "arn:${Partition}:codebuild:${Region}:${Account}:report/${ReportGroupName}:${ReportId}", - ConditionKeys: []string{}, - Resource: "report", - }, - { - Arn: "arn:${Partition}:codebuild:${Region}:${Account}:fleet/${FleetName}:${FleetId}", - ConditionKeys: []string{}, - Resource: "fleet", - }, - }, - ServiceName: "AWS CodeBuild", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", - Type: "ArrayOfString", - }, - }, - Prefix: "codecatalyst", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept a request to connect this account to an Amazon CodeCatalyst space", - Privilege: "AcceptConnection", + AccessLevel: "List", + Description: "Grants permission to get a list of real-time log configurations", + Privilege: "ListRealtimeLogConfigs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an IAM role to a connection", - Privilege: "AssociateIamRoleToConnection", + AccessLevel: "List", + Description: "Grants permission to list all response headers policies that have been created in CloudFront for this account", + Privilege: "ListResponseHeadersPolicies", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "connections*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an IAM Identity Center application with an Amazon CodeCatalyst space", - Privilege: "AssociateIdentityCenterApplicationToSpace", + AccessLevel: "List", + Description: "Grants permission to list savings plans in the account", + Privilege: "ListSavingsPlans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an identity with an IAM Identity Center application for an Amazon CodeCatalyst space", - Privilege: "AssociateIdentityToIdentityCenterApplication", + AccessLevel: "List", + Description: "Grants permission to list your RTMP distributions", + Privilege: "ListStreamingDistributions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate multiple identities with an IAM Identity Center application for an Amazon CodeCatalyst space", - Privilege: "BatchAssociateIdentitiesToIdentityCenterApplication", + AccessLevel: "Read", + Description: "Grants permission to list tags for a CloudFront resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", + ResourceType: "anycast-ip-list", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate multiple identities from an IAM Identity Center application for an Amazon CodeCatalyst space", - Privilege: "BatchDisassociateIdentitiesFromIdentityCenterApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", + ResourceType: "distribution", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution-tenant", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpcorigin", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IAM Identity Center application", - Privilege: "CreateIdentityCenterApplication", + AccessLevel: "List", + Description: "Grants permission to list CloudFront usage", + Privilege: "ListUsages", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon CodeCatalyst space", - Privilege: "CreateSpace", + AccessLevel: "List", + Description: "Grants permission to list VPC origins", + Privilege: "ListVpcOrigins", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -46151,74 +48248,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an administrator role assignment for a given Amazon CodeCatalyst space and IAM Identity Center application", - Privilege: "CreateSpaceAdminRoleAssignment", + Description: "Grants permission to publish a CloudFront function", + Privilege: "PublishFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a connection", - Privilege: "DeleteConnection", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a CloudFront resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections*", + ResourceType: "anycast-ip-list", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an IAM Identity Center application", - Privilege: "DeleteIdentityCenterApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", + ResourceType: "distribution", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution-tenant", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate an IAM role from a connection", - Privilege: "DisassociateIamRoleFromConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections*", + ResourceType: "streaming-distribution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpcorigin", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -46227,74 +48305,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an IAM Identity Center application from an Amazon CodeCatalyst space", - Privilege: "DisassociateIdentityCenterApplicationFromSpace", + Description: "Grants permission to test a CloudFront function", + Privilege: "TestFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an identity from an IAM Identity Center application for an Amazon CodeCatalyst space", - Privilege: "DisassociateIdentityFromIdentityCenterApplication", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a CloudFront resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", + ResourceType: "anycast-ip-list", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection-group", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the billing authorization for a connection", - Privilege: "GetBillingAuthorization", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections*", + ResourceType: "distribution", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution-tenant", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a connection", - Privilege: "GetConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections*", + ResourceType: "streaming-distribution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpcorigin", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -46302,129 +48360,113 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an IAM Identity Center application", - Privilege: "GetIdentityCenterApplication", + AccessLevel: "Write", + Description: "Grants permission to update a cache policy", + Privilege: "UpdateCachePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cache-policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a pending request to connect this account to an Amazon CodeCatalyst space", - Privilege: "GetPendingConnection", + AccessLevel: "Write", + Description: "Grants permission to set the configuration for a CloudFront origin access identity", + Privilege: "UpdateCloudFrontOriginAccessIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "origin-access-identity*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list connections that are not pending", - Privilege: "ListConnections", + AccessLevel: "Write", + Description: "Grants permission to update a connection group", + Privilege: "UpdateConnectionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list IAM roles associated with a connection", - Privilege: "ListIamRolesForConnection", + AccessLevel: "Write", + Description: "Grants permission to update a continuous-deployment policy", + Privilege: "UpdateContinuousDeploymentPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "continuous-deployment-policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of all IAM Identity Center applications in the account", - Privilege: "ListIdentityCenterApplications", + AccessLevel: "Write", + Description: "Grants permission to update the configuration for a web distribution", + Privilege: "UpdateDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of IAM Identity Center applications by Amazon CodeCatalyst space", - Privilege: "ListIdentityCenterApplicationsForSpace", + AccessLevel: "Write", + Description: "Grants permission to update a distribution tenant", + Privilege: "UpdateDistributionTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution-tenant*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of Amazon CodeCatalyst spaces by IAM Identity Center application", - Privilege: "ListSpacesForIdentityCenterApplication", + AccessLevel: "Write", + Description: "Grants permission to copy the configuration from a staging web distribution to its corresponding primary web distribution", + Privilege: "UpdateDistributionWithStagingConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for an Amazon CodeCatalyst resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a domain association", + Privilege: "UpdateDomainAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections", + ResourceType: "distribution", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications", + ResourceType: "distribution-tenant", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a field-level encryption configuration", + Privilege: "UpdateFieldLevelEncryptionConfig", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -46432,27 +48474,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update the billing authorization for a connection", - Privilege: "PutBillingAuthorization", + Description: "Grants permission to update a field-level encryption profile", + Privilege: "UpdateFieldLevelEncryptionProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections*", + ResourceType: "field-level-encryption-profile*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a CloudFront function", + Privilege: "UpdateFunction", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject a request to connect this account to an Amazon CodeCatalyst space", - Privilege: "RejectConnection", + Description: "Grants permission to update a key group", + Privilege: "UpdateKeyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -46463,381 +48510,594 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to synchronize an IAM Identity Center application with the backing identity store", - Privilege: "SynchronizeIdentityCenterApplication", + Description: "Grants permission to update a CloudFront KeyValueStore", + Privilege: "UpdateKeyValueStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", + ResourceType: "key-value-store*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an origin access control", + Privilege: "UpdateOriginAccessControl", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "origin-access-control*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Amazon CodeCatalyst resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update an origin request policy", + Privilege: "UpdateOriginRequestPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections", + ResourceType: "origin-request-policy*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update public key information", + Privilege: "UpdatePublicKey", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a real-time log configuration", + Privilege: "UpdateRealtimeLogConfig", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "realtime-log-config*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag an Amazon CodeCatalyst resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a response headers policy", + Privilege: "UpdateResponseHeadersPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connections", + ResourceType: "response-headers-policy*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a savings plan", + Privilege: "UpdateSavingsPlan", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration for an RTMP distribution", + Privilege: "UpdateStreamingDistribution", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "streaming-distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an IAM Identity Center application", - Privilege: "UpdateIdentityCenterApplication", + Description: "Grants permission to update a VPC origin", + Privilege: "UpdateVpcOrigin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity-center-applications*", + ResourceType: "vpcorigin*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to verify the DNS configuration for a specified domain", + Privilege: "VerifyDnsConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distribution-tenant", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:codecatalyst:${Region}:${Account}:/connections/${ConnectionId}", + Arn: "arn:${Partition}:cloudfront::${Account}:distribution/${DistributionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "connections", + Resource: "distribution", }, { - Arn: "arn:${Partition}:codecatalyst:${Region}:${Account}:/identity-center-applications/${IdentityCenterApplicationId}", + Arn: "arn:${Partition}:cloudfront::${Account}:streaming-distribution/${DistributionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "identity-center-applications", + Resource: "streaming-distribution", }, { - Arn: "arn:${Partition}:codecatalyst:::space/${SpaceId}", + Arn: "arn:${Partition}:cloudfront::${Account}:origin-access-identity/${Id}", ConditionKeys: []string{}, - Resource: "space", + Resource: "origin-access-identity", }, { - Arn: "arn:${Partition}:codecatalyst:::space/${SpaceId}/project/${ProjectId}", + Arn: "arn:${Partition}:cloudfront::${Account}:field-level-encryption-config/${Id}", ConditionKeys: []string{}, - Resource: "project", + Resource: "field-level-encryption-config", }, - }, - ServiceName: "Amazon CodeCatalyst", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", + Arn: "arn:${Partition}:cloudfront::${Account}:field-level-encryption-profile/${Id}", + ConditionKeys: []string{}, + Resource: "field-level-encryption-profile", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", + Arn: "arn:${Partition}:cloudfront::${Account}:cache-policy/${Id}", + ConditionKeys: []string{}, + Resource: "cache-policy", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:cloudfront::${Account}:origin-request-policy/${Id}", + ConditionKeys: []string{}, + Resource: "origin-request-policy", }, { - Condition: "codecommit:References", - Description: "Filters access by Git reference to specified AWS CodeCommit actions", - Type: "String", + Arn: "arn:${Partition}:cloudfront::${Account}:realtime-log-config/${Name}", + ConditionKeys: []string{}, + Resource: "realtime-log-config", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:function/${Name}", + ConditionKeys: []string{}, + Resource: "function", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:key-value-store/${Name}", + ConditionKeys: []string{}, + Resource: "key-value-store", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:response-headers-policy/${Id}", + ConditionKeys: []string{}, + Resource: "response-headers-policy", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:origin-access-control/${Id}", + ConditionKeys: []string{}, + Resource: "origin-access-control", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:continuous-deployment-policy/${Id}", + ConditionKeys: []string{}, + Resource: "continuous-deployment-policy", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:anycast-ip-list/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "anycast-ip-list", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:vpcorigin/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "vpcorigin", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:distribution-tenant/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "distribution-tenant", + }, + { + Arn: "arn:${Partition}:cloudfront::${Account}:connection-group/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connection-group", }, }, - Prefix: "codecommit", + ServiceName: "Amazon CloudFront", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "cloudfront-keyvaluestore", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate an approval rule template with a repository", - Privilege: "AssociateApprovalRuleTemplateWithRepository", + Description: "Grants permission to delete the key value pair specified by the key", + Privilege: "DeleteKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an approval rule template with multiple repositories in a single operation", - Privilege: "BatchAssociateApprovalRuleTemplateWithRepositories", + AccessLevel: "Read", + Description: "Grants permission to return metadata information about Key Value Store", + Privilege: "DescribeKeyValueStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about multiple merge conflicts when attempting to merge two commits using either the three-way merge or the squash merge option", - Privilege: "BatchDescribeMergeConflicts", + Description: "Grants permission to return a key value pair", + Privilege: "GetKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the association between an approval rule template and multiple repositories in a single operation", - Privilege: "BatchDisassociateApprovalRuleTemplateFromRepositories", + AccessLevel: "List", + Description: "Grants permission to returns a list of key value pairs", + Privilege: "ListKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about one or more commits in an AWS CodeCommit repository", - Privilege: "BatchGetCommits", + AccessLevel: "Write", + Description: "Grants permission to create a new key value pair or replace the value of an existing key", + Privilege: "PutKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about one or more pull requests in an AWS CodeCommit repository", - Privilege: "BatchGetPullRequests", + AccessLevel: "Write", + Description: "Grants permission to put or delete multiple key value pairs in a single, all-or-nothing operation", + Privilege: "UpdateKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "key-value-store*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get information about multiple repositories", - Privilege: "BatchGetRepositories", + Arn: "arn:${Partition}:cloudfront::${Account}:key-value-store/${ResourceId}", + ConditionKeys: []string{}, + Resource: "key-value-store", + }, + }, + ServiceName: "Amazon CloudFront KeyValueStore", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "cloudhsm", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a copy of a backup in the specified region", + Privilege: "CopyBackupToRegion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudhsm:CopyBackupToRegion", + "cloudhsm:TagResource", + "cloudhsm:UntagResource", + }, + ResourceType: "backup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to cancel the uploading of an archive to a pipeline in AWS CodePipeline", - Privilege: "CancelUploadArchive", + AccessLevel: "Write", + Description: "Grants permission to create a new AWS CloudHSM cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudhsm:TagResource", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateSecurityGroup", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:RevokeSecurityGroupEgress", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "backup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an approval rule template that will automatically create approval rules in pull requests that match the conditions defined in the template; does not grant permission to create approval rules for individual pull requests", - Privilege: "CreateApprovalRuleTemplate", + Description: "Grants permission to create a new hardware security module (HSM) in the specified AWS CloudHSM cluster", + Privilege: "CreateHsm", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInterface", + "ec2:CreateSecurityGroup", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:RevokeSecurityGroupEgress", + }, + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a branch in an AWS CodeCommit repository with this API; does not control Git create branch actions", - Privilege: "CreateBranch", + Description: "Grants permission to delete the specified CloudHSM backup", + Privilege: "DeleteBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "backup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified AWS CloudHSM cluster", + Privilege: "DeleteCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + "ec2:DeleteSecurityGroup", + }, + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified HSM", + Privilege: "DeleteHsm", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codecommit:References", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add, copy, move or update single or multiple files in a branch in an AWS CodeCommit repository, and generate a commit for the changes in the specified branch", - Privilege: "CreateCommit", + Description: "Grants permission to delete the policy attached to CloudHSM resources", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "backup*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about backups of AWS CloudHSM clusters", + Privilege: "DescribeBackups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codecommit:References", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a pull request in the specified repository", - Privilege: "CreatePullRequest", + AccessLevel: "Read", + Description: "Grants permission to get information about AWS CloudHSM clusters", + Privilege: "DescribeClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an approval rule specific to an individual pull request; does not grant permission to create approval rule templates", - Privilege: "CreatePullRequestApprovalRule", + AccessLevel: "Read", + Description: "Grants permission to get information about the policy attached to a AWS CloudHSM resource", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "backup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS CodeCommit repository", - Privilege: "CreateRepository", + Description: "Grants permission to claim an AWS CloudHSM cluster", + Privilege: "InitializeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of tags for the specified AWS CloudHSM cluster", + Privilege: "ListTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an unreferenced commit that contains the result of merging two commits using either the three-way or the squash merge option; does not control Git merge actions", - Privilege: "CreateUnreferencedMergeCommit", + Description: "Grants permission to modify attributes for an AWS CloudHSM backup", + Privilege: "ModifyBackupAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "backup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify AWS CloudHSM cluster", + Privilege: "ModifyCluster", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codecommit:References", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeSubnets", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an approval rule template", - Privilege: "DeleteApprovalRuleTemplate", + Description: "Grants permission to attach a policy to an AWS CloudHSM resource", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "backup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a branch in an AWS CodeCommit repository with this API; does not control Git delete branch actions", - Privilege: "DeleteBranch", + Description: "Grants permission to restore the specified CloudHSM backup", + Privilege: "RestoreBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "backup*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for the specified AWS CloudHSM cluster", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", }, { ConditionKeys: []string{ - "codecommit:References", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -46845,440 +49105,488 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the content of a comment made on a change, file, or commit in a repository", - Privilege: "DeleteCommentContent", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tag or tags from the specified AWS CloudHSM cluster", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "backup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a specified file from a specified branch", - Privilege: "DeleteFile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "cluster", }, { ConditionKeys: []string{ - "codecommit:References", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete approval rule created for a pull request if the rule was not created by an approval rule template", - Privilege: "DeletePullRequestApprovalRule", + Arn: "arn:${Partition}:cloudhsm:${Region}:${Account}:backup/${CloudHsmBackupInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "backup", + }, + { + Arn: "arn:${Partition}:cloudhsm:${Region}:${Account}:cluster/${CloudHsmClusterInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + }, + ServiceName: "AWS CloudHSM", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "cloudsearch", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Attaches resource tags to an Amazon CloudSearch domain", + Privilege: "AddTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS CodeCommit repository", - Privilege: "DeleteRepository", + Description: "Indexes the search suggestions", + Privilege: "BuildSuggesters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about specific merge conflicts when attempting to merge two commits using either the three-way or the squash merge option", - Privilege: "DescribeMergeConflicts", + AccessLevel: "Write", + Description: "Creates a new search domain", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about one or more pull request events", - Privilege: "DescribePullRequestEvents", + AccessLevel: "Write", + Description: "Configures an analysis scheme that can be applied to a text or text-array field to define language-specific text processing options", + Privilege: "DefineAnalysisScheme", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the association between an approval rule template and a repository", - Privilege: "DisassociateApprovalRuleTemplateFromRepository", + Description: "Configures an Expression for the search domain", + Privilege: "DefineExpression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to evaluate whether a pull request is mergable based on its current approval state and approval rule requirements", - Privilege: "EvaluatePullRequestApprovalRules", + AccessLevel: "Write", + Description: "Configures an IndexField for the search domain", + Privilege: "DefineIndexField", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about an approval rule template", - Privilege: "GetApprovalRuleTemplate", + AccessLevel: "Write", + Description: "Configures a suggester for a domain", + Privilege: "DefineSuggester", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the encoded content of an individual file in an AWS CodeCommit repository from the AWS CodeCommit console", - Privilege: "GetBlob", + AccessLevel: "Write", + Description: "Deletes an analysis scheme", + Privilege: "DeleteAnalysisScheme", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a branch in an AWS CodeCommit repository with this API; does not control Git branch actions", - Privilege: "GetBranch", + AccessLevel: "Write", + Description: "Permanently deletes a search domain and all of its data", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the content of a comment made on a change, file, or commit in a repository", - Privilege: "GetComment", + AccessLevel: "Write", + Description: "Removes an Expression from the search domain", + Privilege: "DeleteExpression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the reactions on a comment", - Privilege: "GetCommentReactions", + AccessLevel: "Write", + Description: "Removes an IndexField from the search domain", + Privilege: "DeleteIndexField", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about comments made on the comparison between two commits", - Privilege: "GetCommentsForComparedCommit", + AccessLevel: "Write", + Description: "Deletes a suggester", + Privilege: "DeleteSuggester", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get comments made on a pull request", - Privilege: "GetCommentsForPullRequest", + Description: "Gets the analysis schemes configured for a domain", + Privilege: "DescribeAnalysisSchemes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a commit, including commit message and committer information, with this API; does not control Git log actions", - Privilege: "GetCommit", + Description: "Gets the availability options configured for a domain", + Privilege: "DescribeAvailabilityOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the history of commits in a repository", - Privilege: "GetCommitHistory", + Description: "Gets the domain endpoint options configured for a domain", + Privilege: "DescribeDomainEndpointOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the difference between commits in the context of a potential merge", - Privilege: "GetCommitsFromMergeBase", + AccessLevel: "List", + Description: "Gets information about the search domains owned by this account", + Privilege: "DescribeDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about the differences between valid commit specifiers such as a branch, tag, HEAD, commit ID, or other fully qualified reference", - Privilege: "GetDifferences", + Description: "Gets the expressions configured for the search domain", + Privilege: "DescribeExpressions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the base-64 encoded contents of a specified file and its metadata", - Privilege: "GetFile", + Description: "Gets information about the index fields configured for the search domain", + Privilege: "DescribeIndexFields", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the contents of a specified folder in a repository", - Privilege: "GetFolder", + Description: "Gets the scaling parameters configured for a domain", + Privilege: "DescribeScalingParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a merge commit created by one of the merge options for pull requests that creates merge commits. Not all merge options create merge commits. This permission does not control Git merge actions", - Privilege: "GetMergeCommit", + Description: "Gets information about the access policies that control access to the domain's document and search endpoints", + Privilege: "DescribeServiceAccessPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", - }, - { - ConditionKeys: []string{ - "codecommit:References", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about merge conflicts between the before and after commit IDs for a pull request in a repository", - Privilege: "GetMergeConflicts", + Description: "Gets the suggesters configured for a domain", + Privilege: "DescribeSuggesters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about merge options for pull requests that can be used to merge two commits; does not control Git merge actions", - Privilege: "GetMergeOptions", + AccessLevel: "Write", + Description: "Tells the search domain to start indexing its documents using the latest indexing options", + Privilege: "IndexDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to resolve blobs, trees, and commits to their identifier", - Privilege: "GetObjectIdentifier", + AccessLevel: "List", + Description: "Lists all search domains owned by an account", + Privilege: "ListDomainNames", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a pull request in a specified repository", - Privilege: "GetPullRequest", + Description: "Displays all of the resource tags for an Amazon CloudSearch domain", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current approvals on an inputted pull request", - Privilege: "GetPullRequestApprovalStates", + AccessLevel: "Tagging", + Description: "Removes the specified resource tags from an Amazon ES domain", + Privilege: "RemoveTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current override state of a given pull request", - Privilege: "GetPullRequestOverrideState", + AccessLevel: "Write", + Description: "Configures the availability options for a domain", + Privilege: "UpdateAvailabilityOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about references in an AWS CodeCommit repository; does not control Git reference actions", - Privilege: "GetReferences", + AccessLevel: "Write", + Description: "Configures the domain endpoint options for a domain", + Privilege: "UpdateDomainEndpointOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an AWS CodeCommit repository", - Privilege: "GetRepository", + AccessLevel: "Write", + Description: "Configures scaling parameters for a domain", + Privilege: "UpdateScalingParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about triggers configured for a repository", - Privilege: "GetRepositoryTriggers", + AccessLevel: "Permissions management", + Description: "Configures the access rules that control access to the domain's document and search endpoints", + Privilege: "UpdateServiceAccessPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the contents of a specified tree in an AWS CodeCommit repository from the AWS CodeCommit console", - Privilege: "GetTree", + AccessLevel: "Write", + Description: "Allows access to the document service operations", + Privilege: "document", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get status information about an archive upload to a pipeline in AWS CodePipeline", - Privilege: "GetUploadArchiveStatus", + Description: "Allows access to the search operations", + Privilege: "search", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to pull information from an AWS CodeCommit repository to a local repo", - Privilege: "GitPull", + Description: "Allows access to the suggest operations", + Privilege: "suggest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "domain", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:cloudsearch:${Region}:${Account}:domain/${DomainName}", + ConditionKeys: []string{}, + Resource: "domain", + }, + }, + ServiceName: "Amazon CloudSearch", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to push information from a local repo to an AWS CodeCommit repository", - Privilege: "GitPush", + Condition: "cloudshell:SecurityGroupIds", + Description: "Filters access by security group ids. Available during CreateEnvironment operation", + Type: "ArrayOfString", + }, + { + Condition: "cloudshell:SubnetIds", + Description: "Filters access by subnet ids. Available during CreateEnvironment operation", + Type: "ArrayOfString", + }, + { + Condition: "cloudshell:VpcIds", + Description: "Filters access by vpc ids. Available during CreateEnvironment operation", + Type: "ArrayOfString", + }, + }, + Prefix: "cloudshell", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to approve a command sent by another AWS service", + Privilege: "ApproveCommand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "Environment*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permissions to create a CloudShell environment", + Privilege: "CreateEnvironment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "codecommit:References", + "cloudshell:SecurityGroupIds", + "cloudshell:SubnetIds", + "cloudshell:VpcIds", }, DependentActions: []string{}, ResourceType: "", @@ -47286,133 +49594,172 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all approval rule templates in an AWS Region for the AWS account", - Privilege: "ListApprovalRuleTemplates", + AccessLevel: "Write", + Description: "Grants permissions to connect to a CloudShell environment from the AWS Management Console", + Privilege: "CreateSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Environment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list approval rule templates that are associated with a repository", - Privilege: "ListAssociatedApprovalRuleTemplatesForRepository", + AccessLevel: "Write", + Description: "Grants permission to delete a CloudShell environment", + Privilege: "DeleteEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "Environment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list branches for an AWS CodeCommit repository with this API; does not control Git branch actions", - Privilege: "ListBranches", + Description: "Grants permission to return descriptions of existing user's environments", + Privilege: "DescribeEnvironments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list commits and changes to a specified file", - Privilege: "ListFileCommitHistory", + AccessLevel: "Read", + Description: "Grants permission to read a CloudShell environment status", + Privilege: "GetEnvironmentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "Environment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list pull requests for a specified repository", - Privilege: "ListPullRequests", + AccessLevel: "Write", + Description: "Grants permissions to download files from a CloudShell environment", + Privilege: "GetFileDownloadUrls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "Environment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about AWS CodeCommit repositories in the current Region for your AWS account", - Privilege: "ListRepositories", + AccessLevel: "Write", + Description: "Grants permissions to upload files to a CloudShell environment", + Privilege: "GetFileUploadUrls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Environment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list repositories that are associated with an approval rule template", - Privilege: "ListRepositoriesForApprovalRuleTemplate", + AccessLevel: "Write", + Description: "Grants permissions to forward console credentials to the environment", + Privilege: "PutCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Environment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the resource attached to a CodeCommit resource ARN", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to start a stopped CloudShell environment", + Privilege: "StartEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository", + ResourceType: "Environment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to merge two commits into the specified destination branch using the fast-forward merge option", - Privilege: "MergeBranchesByFastForward", + Description: "Grants permission to stop a running CloudShell environment", + Privilege: "StopEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", - }, - { - ConditionKeys: []string{ - "codecommit:References", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Environment*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to merge two commits into the specified destination branch using the squash merge option", - Privilege: "MergeBranchesBySquash", + Arn: "arn:${Partition}:cloudshell:${Region}:${Account}:environment/${EnvironmentId}", + ConditionKeys: []string{}, + Resource: "Environment", + }, + }, + ServiceName: "AWS CloudShell", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in a request", + Type: "ArrayOfString", + }, + }, + Prefix: "cloudtrail", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a trail, event data store, channel or dashboard, up to a limit of 50", + Privilege: "AddTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "channel", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dashboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventdatastore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trail", }, { ConditionKeys: []string{ - "codecommit:References", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -47421,36 +49768,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to merge two commits into the specified destination branch using the three-way merge option", - Privilege: "MergeBranchesByThreeWay", + Description: "Grants permission to cancel a running query", + Privilege: "CancelQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", - }, - { - ConditionKeys: []string{ - "codecommit:References", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to close a pull request and attempt to merge it into the specified destination branch for that pull request at the specified commit using the fast-forward merge option", - Privilege: "MergePullRequestByFastForward", + Description: "Grants permission to create a channel", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:AddTags", + }, + ResourceType: "channel*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "eventdatastore*", }, { ConditionKeys: []string{ - "codecommit:References", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -47459,17 +49807,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to close a pull request and attempt to merge it into the specified destination branch for that pull request at the specified commit using the squash merge option", - Privilege: "MergePullRequestBySquash", + Description: "Grants permission to create a dashboard", + Privilege: "CreateDashboard", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:AddTags", + "cloudtrail:StartDashboardRefresh", + "cloudtrail:StartQuery", + }, + ResourceType: "dashboard*", }, { ConditionKeys: []string{ - "codecommit:References", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -47478,17 +49831,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to close a pull request and attempt to merge it into the specified destination branch for that pull request at the specified commit using the three-way merge option", - Privilege: "MergePullRequestByThreeWay", + Description: "Grants permission to create an event data store", + Privilege: "CreateEventDataStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:AddTags", + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "kms:Decrypt", + "kms:GenerateDataKey", + "organizations:ListAWSServiceAccessForOrganization", + }, + ResourceType: "eventdatastore*", }, { ConditionKeys: []string{ - "codecommit:References", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -47497,164 +49858,154 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to override all approval rules for a pull request, including approval rules created by a template", - Privilege: "OverridePullRequestApprovalRules", + Description: "Grants permission to create a service-linked channel that specifies the settings for delivery of log data to an AWS service", + Privilege: "CreateServiceLinkedChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to post a comment on the comparison between two commits", - Privilege: "PostCommentForComparedCommit", + Description: "Grants permission to create a trail that specifies the settings for delivery of log data to an Amazon S3 bucket", + Privilege: "CreateTrail", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:AddTags", + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "organizations:ListAWSServiceAccessForOrganization", + }, + ResourceType: "trail*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to post a comment on a pull request", - Privilege: "PostCommentForPullRequest", + Description: "Grants permission to delete a channel", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to post a comment in reply to a comment on a comparison between commits or a pull request", - Privilege: "PostCommentReply", + Description: "Grants permission to delete a dashboard", + Privilege: "DeleteDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "dashboard*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to post a reaction on a comment", - Privilege: "PutCommentReaction", + Description: "Grants permission to delete an event data store", + Privilege: "DeleteEventDataStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "eventdatastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or update a file in a branch in an AWS CodeCommit repository, and generate a commit for the addition in the specified branch", - Privilege: "PutFile", + Description: "Grants permission to delete a resource policy from the provided resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "channel", }, { - ConditionKeys: []string{ - "codecommit:References", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create, update, or delete triggers for a repository", - Privilege: "PutRepositoryTriggers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "eventdatastore", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to attach resource tags to a CodeCommit resource ARN", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a service-linked channel", + Privilege: "DeleteServiceLinkedChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to test the functionality of repository triggers by sending information to the trigger target", - Privilege: "TestRepositoryTriggers", + Description: "Grants permission to delete a trail", + Privilege: "DeleteTrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "trail*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to disassociate resource tags from a CodeCommit resource ARN", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to deregister an AWS Organizations member account as a delegated administrator", + Privilege: "DeregisterOrganizationDelegatedAdmin", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DeregisterDelegatedAdministrator", + "organizations:ListAWSServiceAccessForOrganization", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the content of approval rule templates; does not grant permission to update content of approval rules created specifically for pull requests", - Privilege: "UpdateApprovalRuleTemplateContent", + AccessLevel: "Read", + Description: "Grants permission to list details for the query", + Privilege: "DescribeQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the description of approval rule templates", - Privilege: "UpdateApprovalRuleTemplateDescription", + AccessLevel: "Read", + Description: "Grants permission to list settings for the trails associated with the current region for your account", + Privilege: "DescribeTrails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -47665,357 +50016,238 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the name of approval rule templates", - Privilege: "UpdateApprovalRuleTemplateName", + Description: "Grants permission to disable federation of event data store data by using the AWS Glue Data Catalog", + Privilege: "DisableFederation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:DeleteDatabase", + "glue:DeleteTable", + "glue:PassConnection", + "lakeformation:DeregisterResource", + "lakeformation:RegisterResource", + }, + ResourceType: "eventdatastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the contents of a comment if the identity matches the identity used to create the comment", - Privilege: "UpdateComment", + Description: "Grants permission to enable federation of event data store data by using the AWS Glue Data Catalog", + Privilege: "EnableFederation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository*", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:CreateDatabase", + "glue:CreateTable", + "iam:GetRole", + "iam:PassRole", + "lakeformation:DeregisterResource", + "lakeformation:RegisterResource", + }, + ResourceType: "eventdatastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the default branch in an AWS CodeCommit repository", - Privilege: "UpdateDefaultBranch", + Description: "Grants permission to generate a query for a specified event data store using the CloudTrail Lake query generator", + Privilege: "GenerateQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the content for approval rules created for a specific pull requests; does not grant permission to update approval rule content for rules created with an approval rule template", - Privilege: "UpdatePullRequestApprovalRuleContent", + AccessLevel: "Read", + Description: "Grants permission to generate a results summary for specified queries using the CloudTrail natural language generator", + Privilege: "GenerateQueryResultsSummary", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:GetQueryResults", + "kms:Decrypt", + "kms:GenerateDataKey", + }, + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the approval state for pull requests", - Privilege: "UpdatePullRequestApprovalState", + AccessLevel: "Read", + Description: "Grants permission to return information about a specific channel", + Privilege: "GetChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the description of a pull request", - Privilege: "UpdatePullRequestDescription", + AccessLevel: "Read", + Description: "Grants permission to list settings for the dashboard", + Privilege: "GetDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the status of a pull request", - Privilege: "UpdatePullRequestStatus", + AccessLevel: "Read", + Description: "Grants permission to list settings for the event data store", + Privilege: "GetEventDataStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the title of a pull request", - Privilege: "UpdatePullRequestTitle", + AccessLevel: "Read", + Description: "Grants permission to get data from an event data store by using the AWS Glue Data Catalog", + Privilege: "GetEventDataStoreData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository*", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKey", + }, + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the description of an AWS CodeCommit repository", - Privilege: "UpdateRepositoryDescription", + AccessLevel: "Read", + Description: "Grants permission to list settings for event selectors configured for a trail", + Privilege: "GetEventSelectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "trail*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the AWS KMS encryption key used to encrypt and decrypt an AWS CodeCommit repository", - Privilege: "UpdateRepositoryEncryptionKey", + AccessLevel: "Read", + Description: "Grants permission to return information about a specific import", + Privilege: "GetImport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the name of an AWS CodeCommit repository", - Privilege: "UpdateRepositoryName", + AccessLevel: "Read", + Description: "Grants permission to list CloudTrail Insights selectors that are configured for a trail or event data store", + Privilege: "GetInsightSelectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "eventdatastore", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to the service role for AWS CodePipeline to upload repository changes into a pipeline", - Privilege: "UploadArchive", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "trail", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codecommit:${Region}:${Account}:${RepositoryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "repository", - }, - }, - ServiceName: "AWS CodeCommit", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "codeconnections:Branch", - Description: "Filters access by the branch name that is passed in the request", - Type: "String", - }, - { - Condition: "codeconnections:BranchName", - Description: "Filters access by the branch name that is passed in the request. Applies only to UseConnection requests for access to a specific repository branch", - Type: "String", - }, - { - Condition: "codeconnections:FullRepositoryId", - Description: "Filters access by the repository that is passed in the request. Applies only to UseConnection requests for access to a specific repository", - Type: "String", - }, - { - Condition: "codeconnections:HostArn", - Description: "Filters access by the host resource associated with the connection used in the request", - Type: "ARN", - }, - { - Condition: "codeconnections:InstallationId", - Description: "Filters access by the third-party ID (such as the Bitbucket App installation ID for CodeConnections) that is used to update a Connection. Allows you to restrict which third-party App installations can be used to make a Connection", - Type: "String", - }, - { - Condition: "codeconnections:OwnerId", - Description: "Filters access by the owner of the third-party repository. Applies only to UseConnection requests for access to repositories owned by a specific user", - Type: "String", - }, - { - Condition: "codeconnections:PassedToService", - Description: "Filters access by the service to which the principal is allowed to pass a Connection or RepositoryLink", - Type: "String", - }, - { - Condition: "codeconnections:ProviderAction", - Description: "Filters access by the provider action in a UseConnection request such as ListRepositories. See documentation for all valid values", - Type: "ArrayOfString", - }, - { - Condition: "codeconnections:ProviderPermissionsRequired", - Description: "Filters access by the write permissions of a provider action in a UseConnection request. Valid types include read_only and read_write", - Type: "String", - }, - { - Condition: "codeconnections:ProviderType", - Description: "Filters access by the type of third-party provider passed in the request", - Type: "String", - }, - { - Condition: "codeconnections:ProviderTypeFilter", - Description: "Filters access by the type of third-party provider used to filter results", - Type: "String", - }, - { - Condition: "codeconnections:RepositoryName", - Description: "Filters access by the repository name that is passed in the request. Applies only to UseConnection requests for access to repositories owned by a specific user", - Type: "String", - }, - }, - Prefix: "codeconnections", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a Connection resource", - Privilege: "CreateConnection", + AccessLevel: "Read", + Description: "Grants permission to fetch results of a complete query", + Privilege: "GetQueryResults", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codeconnections:ProviderType", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKey", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a host resource", - Privilege: "CreateHost", + AccessLevel: "Read", + Description: "Grants permission to get the resource policy attached to the provided resource", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codeconnections:ProviderType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a repository link", - Privilege: "CreateRepositoryLink", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeconnections:PassConnection", - "codeconnections:UseConnection", - }, - ResourceType: "Connection*", + ResourceType: "channel", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a template sync config", - Privilege: "CreateSyncConfiguration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeconnections:PassRepository", - "iam:PassRole", - }, - ResourceType: "RepositoryLink*", + ResourceType: "dashboard", }, { - ConditionKeys: []string{ - "codeconnections:Branch", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Connection resource", - Privilege: "DeleteConnection", + AccessLevel: "Read", + Description: "Grants permission to list settings for the service-linked channel", + Privilege: "GetServiceLinkedChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a host resource", - Privilege: "DeleteHost", + AccessLevel: "Read", + Description: "Grants permission to list settings for the trail", + Privilege: "GetTrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Host*", + ResourceType: "trail*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a repository link", - Privilege: "DeleteRepositoryLink", + AccessLevel: "Read", + Description: "Grants permission to retrieve a JSON-formatted list of information about the specified trail", + Privilege: "GetTrailStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "trail*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a sync configuration", - Privilege: "DeleteSyncConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the channels in the current account, and their source names", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48025,54 +50257,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a Connection resource", - Privilege: "GetConnection", + AccessLevel: "List", + Description: "Grants permission to list dashboards associated with the current region for your account", + Privilege: "ListDashboards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a host resource", - Privilege: "GetHost", + AccessLevel: "List", + Description: "Grants permission to list event data stores associated with the current region for your account", + Privilege: "ListEventDataStores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Host*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "GetIndividualAccessToken", + Description: "Grants permission to return a list of failures for the specified import", + Privilege: "ListImportFailures", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:ProviderType", - }, - DependentActions: []string{ - "codeconnections:StartOAuthHandshake", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "GetInstallationUrl", + AccessLevel: "List", + Description: "Grants permission to return information on all imports, or a select set of imports by ImportStatus or Destination", + Privilege: "ListImports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:ProviderType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -48080,39 +50306,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a repository link", - Privilege: "GetRepositoryLink", + Description: "Grants permission to list the public keys whose private keys were used to sign trail digest files within a specified time range", + Privilege: "ListPublicKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the latest sync status for a repository", - Privilege: "GetRepositorySyncStatus", + AccessLevel: "List", + Description: "Grants permission to list queries associated with an event data store", + Privilege: "ListQueries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", - }, - { - ConditionKeys: []string{ - "codeconnections:Branch", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the latest sync status for a resource (cfn stack or other resources)", - Privilege: "GetResourceSyncStatus", + AccessLevel: "List", + Description: "Grants permission to list service-linked channels associated with the current region for a specified account", + Privilege: "ListServiceLinkedChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48123,166 +50342,151 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe service sync blockers on a resource (cfn stack or other resources)", - Privilege: "GetSyncBlockerSummary", + Description: "Grants permission to list the tags for trails, event data stores, channels or dashboards in the current region", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a sync configuration", - Privilege: "GetSyncConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Connection resources", - Privilege: "ListConnections", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "eventdatastore", }, { - ConditionKeys: []string{ - "codeconnections:ProviderTypeFilter", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trail", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list host resources", - Privilege: "ListHosts", + Description: "Grants permission to list trails associated with the current region for your account", + Privilege: "ListTrails", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:ProviderTypeFilter", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "ListInstallationTargets", + AccessLevel: "Read", + Description: "Grants permission to look up and retrieve metric data for API activity events captured by CloudTrail that create, update, or delete resources in your account", + Privilege: "LookupEvents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codeconnections:GetIndividualAccessToken", - "codeconnections:StartOAuthHandshake", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list repository links", - Privilege: "ListRepositoryLinks", + AccessLevel: "Write", + Description: "Grants permission to create and update event selectors for a trail", + Privilege: "PutEventSelectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trail*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list repository sync definitions", - Privilege: "ListRepositorySyncDefinitions", + AccessLevel: "Write", + Description: "Grants permission to create and update CloudTrail Insights selectors for a trail or event data store", + Privilege: "PutInsightSelectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list sync configurations for a repository link", - Privilege: "ListSyncConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trail", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to the set of key-value pairs that are used to manage the resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to attach a resource policy to the provided resource", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection", + ResourceType: "channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Host", + ResourceType: "dashboard", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink", + ResourceType: "eventdatastore", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to pass a Connection resource to an AWS service that accepts a Connection ARN as input, such as codepipeline:CreatePipeline", - Privilege: "PassConnection", + AccessLevel: "Write", + Description: "Grants permission to register an AWS Organizations member account as a delegated administrator", + Privilege: "RegisterOrganizationDelegatedAdmin", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Connection*", - }, - { - ConditionKeys: []string{ - "codeconnections:PassedToService", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "organizations:ListAWSServiceAccessForOrganization", + "organizations:RegisterDelegatedAdministrator", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to pass a repository link resource to an AWS service that accepts a RepositoryLinkId as input, such as codeconnections:CreateSyncConfiguration", - Privilege: "PassRepository", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a trail, event data store, channel or dashboard", + Privilege: "RemoveTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "channel", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dashboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventdatastore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trail", }, { ConditionKeys: []string{ - "codeconnections:PassedToService", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -48290,314 +50494,375 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", - Privilege: "RegisterAppCode", + AccessLevel: "Write", + Description: "Grants permission to restore an event data store", + Privilege: "RestoreEventDataStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:HostArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", - Privilege: "StartAppRegistrationHandshake", + Description: "Grants permission to perform semantic search for CloudTrail Lake sample queries", + Privilege: "SearchSampleQueries", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:HostArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "StartOAuthHandshake", + AccessLevel: "Write", + Description: "Grants permission to start a refresh on the specified dashboard", + Privilege: "StartDashboardRefresh", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:ProviderType", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:StartQuery", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or modify the tags of the given resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to start ingestion on an event data store", + Privilege: "StartEventDataStoreIngestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Host", + ResourceType: "eventdatastore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an import of logged trail events from a source S3 bucket to a destination event data store", + Privilege: "StartImport", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an AWS resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to start the recording of AWS API calls and log file delivery for a trail", + Privilege: "StartLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Host", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "RepositoryLink", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "trail*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Connection resource with an installation of the CodeStar Connections App", - Privilege: "UpdateConnectionInstallation", + Description: "Grants permission to start a new query on a specified event data store", + Privilege: "StartQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "codeconnections:GetIndividualAccessToken", - "codeconnections:GetInstallationUrl", - "codeconnections:ListInstallationTargets", - "codeconnections:StartOAuthHandshake", + "kms:Decrypt", + "kms:GenerateDataKey", }, - ResourceType: "Connection*", + ResourceType: "eventdatastore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop ingestion on an event data store", + Privilege: "StopEventDataStoreIngestion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:InstallationId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventdatastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a host resource", - Privilege: "UpdateHost", + Description: "Grants permission to stop a specified import", + Privilege: "StopImport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Host*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a repository link", - Privilege: "UpdateRepositoryLink", + Description: "Grants permission to stop the recording of AWS API calls and log file delivery for a trail", + Privilege: "StopLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "trail*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a sync blocker for a resource (cfn stack or other resources)", - Privilege: "UpdateSyncBlocker", + Description: "Grants permission to update a channel", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a sync configuration", - Privilege: "UpdateSyncConfiguration", + Description: "Grants permission to update a dashboard", + Privilege: "UpdateDashboard", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:Branch", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudtrail:StartDashboardRefresh", + "cloudtrail:StartQuery", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to use a Connection resource to call provider actions", - Privilege: "UseConnection", + AccessLevel: "Write", + Description: "Grants permission to update an event data store", + Privilege: "UpdateEventDataStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "kms:Decrypt", + "kms:GenerateDataKey", + "organizations:ListAWSServiceAccessForOrganization", + }, + ResourceType: "eventdatastore*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the service-linked channel settings for delivery of log data to an AWS service", + Privilege: "UpdateServiceLinkedChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the settings that specify delivery of log files", + Privilege: "UpdateTrail", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codeconnections:BranchName", - "codeconnections:FullRepositoryId", - "codeconnections:OwnerId", - "codeconnections:ProviderAction", - "codeconnections:ProviderPermissionsRequired", - "codeconnections:RepositoryName", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "organizations:ListAWSServiceAccessForOrganization", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "trail*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:codeconnections:${Region}:${Account}:connection/${ConnectionId}", + Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:trail/${TrailName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Connection", + Resource: "trail", }, { - Arn: "arn:${Partition}:codeconnections:${Region}:${Account}:host/${HostId}", + Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:eventdatastore/${EventDataStoreId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Host", + Resource: "eventdatastore", }, { - Arn: "arn:${Partition}:codeconnections:${Region}:${Account}:repository-link/${RepositoryLinkId}", + Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:channel/${ChannelId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "RepositoryLink", + Resource: "channel", + }, + { + Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:dashboard/${DashboardName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dashboard", }, }, - ServiceName: "AWS CodeConnections", + ServiceName: "AWS CloudTrail", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", + Description: "Filters access by a tag's key and value in a request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", + Description: "Filters actions based on the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", + Description: "Filters access by the tag keys in a request", Type: "ArrayOfString", }, }, - Prefix: "codedeploy", + Prefix: "cloudtrail-data", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to one or more on-premises instances", - Privilege: "AddTagsToOnPremisesInstances", + AccessLevel: "Write", + Description: "Grants permission to ingest your application events into CloudTrail Lake", + Privilege: "PutAuditEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "channel*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:cloudtrail:${Region}:${Account}:channel/${ChannelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel", + }, + }, + ServiceName: "AWS CloudTrail Data", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "cloudwatch:AlarmActions", + Description: "Filters actions based on defined alarm actions", + Type: "ArrayOfString", + }, + { + Condition: "cloudwatch:namespace", + Description: "Filters actions based on the presence of optional namespace values", + Type: "String", + }, + { + Condition: "cloudwatch:requestInsightRuleLogGroups", + Description: "Filters actions based on the Log Groups specified in an Insight Rule", + Type: "ArrayOfString", + }, + { + Condition: "cloudwatch:requestManagedResourceARNs", + Description: "Filters access by the Resource ARNs specified in a managed Insight Rule", + Type: "ArrayOfARN", + }, + }, + Prefix: "cloudwatch", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to get information about one or more application revisions", - Privilege: "BatchGetApplicationRevisions", + Description: "Grants permission to batch get service level indicator report", + Privilege: "BatchGetServiceLevelIndicatorReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about multiple applications associated with the IAM user", - Privilege: "BatchGetApplications", + Description: "Grants permission to batch retrieve a service level objective budget report", + Privilege: "BatchGetServiceLevelObjectiveBudgetReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "slo*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about one or more deployment groups", - Privilege: "BatchGetDeploymentGroups", + AccessLevel: "Write", + Description: "Grants permission to create a service level objective", + Privilege: "CreateServiceLevelObjective", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about one or more instance that are part of a deployment group", - Privilege: "BatchGetDeploymentInstances", + AccessLevel: "Write", + Description: "Grants permission to delete a collection of alarms", + Privilege: "DeleteAlarms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "alarm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated BatchGetDeploymentInstances. The maximum number of targets that can be returned is 25", - Privilege: "BatchGetDeploymentTargets", + AccessLevel: "Write", + Description: "Grants permission to delete the specified anomaly detection model from your account", + Privilege: "DeleteAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48607,112 +50872,108 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about multiple deployments associated with the IAM user", - Privilege: "BatchGetDeployments", + AccessLevel: "Write", + Description: "Grants permission to delete all CloudWatch dashboards that you specify", + Privilege: "DeleteDashboards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about one or more on-premises instances", - Privilege: "BatchGetOnPremisesInstances", + AccessLevel: "Write", + Description: "Grants permission to delete a collection of insight rules", + Privilege: "DeleteInsightRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "insight-rule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the process of rerouting traffic from instances in the original environment to instances in thereplacement environment without waiting for a specified wait time to elapse", - Privilege: "ContinueDeployment", + Description: "Grants permission to delete the CloudWatch metric stream that you specify", + Privilege: "DeleteMetricStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "metric-stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an application associated with the IAM user", - Privilege: "CreateApplication", + Description: "Grants permission to delete a service level objective", + Privilege: "DeleteServiceLevelObjective", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "slo*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create CloudFormation deployment to cooperate ochestration for a CloudFormation stack update", - Privilege: "CreateCloudFormationDeployment", + AccessLevel: "Read", + Description: "Grants permission to retrieve the history for the specified alarm", + Privilege: "DescribeAlarmHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarm*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a deployment for an application associated with the IAM user", - Privilege: "CreateDeployment", + AccessLevel: "Read", + Description: "Grants permission to describe all alarms, currently owned by the user's account", + Privilege: "DescribeAlarms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "alarm*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a custom deployment configuration associated with the IAM user", - Privilege: "CreateDeploymentConfig", + AccessLevel: "Read", + Description: "Grants permission to describe all alarms configured on the specified metric, currently owned by the user's account", + Privilege: "DescribeAlarmsForMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentconfig*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a deployment group for an application associated with the IAM user", - Privilege: "CreateDeploymentGroup", + AccessLevel: "Read", + Description: "Grants permission to list the anomaly detection models that you have created in your account", + Privilege: "DescribeAnomalyDetectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe all insight rules, currently owned by the user's account", + Privilege: "DescribeInsightRules", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -48720,56 +50981,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an application associated with the IAM user", - Privilege: "DeleteApplication", + Description: "Grants permission to disable actions for a collection of alarms", + Privilege: "DisableAlarmActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "alarm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom deployment configuration associated with the IAM user", - Privilege: "DeleteDeploymentConfig", + Description: "Grants permission to disable a collection of insight rules", + Privilege: "DisableInsightRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentconfig*", + ResourceType: "insight-rule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a deployment group for an application associated with the IAM user", - Privilege: "DeleteDeploymentGroup", + Description: "Grants permission to enable actions for a collection of alarms", + Privilege: "EnableAlarmActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "alarm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a GitHub account connection", - Privilege: "DeleteGitHubAccountToken", + Description: "Grants permission to enable a collection of insight rules", + Privilege: "EnableInsightRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "insight-rule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete resources associated with the given external Id", - Privilege: "DeleteResourcesByExternalId", + Description: "Grants permission to enable a CloudWatch topology discovery", + Privilege: "EnableTopologyDiscovery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48779,129 +51040,129 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister an on-premises instance", - Privilege: "DeregisterOnPremisesInstance", + AccessLevel: "Read", + Description: "Grants permission to generate a Metrics Insights or Logs Insights query string from a natural language prompt", + Privilege: "GenerateQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single application associated with the IAM user", - Privilege: "GetApplication", + AccessLevel: "Read", + Description: "Grants permission to display the details of the CloudWatch dashboard you specify", + Privilege: "GetDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single application revision for an application associated with the IAM user", - Privilege: "GetApplicationRevision", + AccessLevel: "Read", + Description: "Grants permission to return the top-N report of unique contributors over a time range for a given insight rule", + Privilege: "GetInsightRuleReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "insight-rule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single deployment to a deployment group for an application associated with the IAM user", - Privilege: "GetDeployment", + AccessLevel: "Read", + Description: "Grants permission to retrieve batch amounts of CloudWatch metric data and perform metric math on retrieved data", + Privilege: "GetMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single deployment configuration associated with the IAM user", - Privilege: "GetDeploymentConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve statistics for the specified metric", + Privilege: "GetMetricStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentconfig*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single deployment group for an application associated with the IAM user", - Privilege: "GetDeploymentGroup", + AccessLevel: "Read", + Description: "Grants permission to return the details of a CloudWatch metric stream", + Privilege: "GetMetricStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "metric-stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single instance in a deployment associated with the IAM user", - Privilege: "GetDeploymentInstance", + AccessLevel: "Read", + Description: "Grants permission to retrieve snapshots of metric widgets", + Privilege: "GetMetricWidgetImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a deployment target", - Privilege: "GetDeploymentTarget", + Description: "Grants permission to retrieve information about a service", + Privilege: "GetService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a single on-premises instance", - Privilege: "GetOnPremisesInstance", + AccessLevel: "Read", + Description: "Grants permission to retrieve service data", + Privilege: "GetServiceData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "service*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about all application revisions for an application associated with the IAM user", - Privilege: "ListApplicationRevisions", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about service level objective", + Privilege: "GetServiceLevelObjective", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "slo*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about all applications associated with the IAM user", - Privilege: "ListApplications", + AccessLevel: "Read", + Description: "Grants permission to retrieve a CloudWatch topology discovery status", + Privilege: "GetTopologyDiscoveryStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48911,9 +51172,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about all deployment configurations associated with the IAM user", - Privilege: "ListDeploymentConfigs", + AccessLevel: "Read", + Description: "Grants permission to retrieve a CloudWatch topology map", + Privilege: "GetTopologyMap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48923,33 +51184,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about all deployment groups for an application associated with the IAM user", - Privilege: "ListDeploymentGroups", + AccessLevel: "Write", + Description: "Grants permission to share CloudWatch resources with a monitoring account", + Privilege: "Link", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get information about all instances in a deployment associated with the IAM user", - Privilege: "ListDeploymentInstances", + Description: "Grants permission to return a list of all CloudWatch dashboards in your account", + Privilege: "ListDashboards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return an array of target IDs that are associated a deployment", - Privilege: "ListDeploymentTargets", + Description: "Grants permission to retrieve all the entities that are emitting a given metric", + Privilege: "ListEntitiesForMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48959,21 +51220,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about all deployments to a deployment group associated with the IAM user, or to get all deployments associated with the IAM user", - Privilege: "ListDeployments", + AccessLevel: "Read", + Description: "Grants permission to list available managed Insight Rules for a given Resource ARN", + Privilege: "ListManagedInsightRules", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cloudwatch:requestManagedResourceARNs", + }, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the names of stored connections to GitHub accounts", - Privilege: "ListGitHubAccountTokenNames", + Description: "Grants permission to return a list of all CloudWatch metric streams in your account", + Privilege: "ListMetricStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48984,8 +51249,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get a list of one or more on-premises instance names", - Privilege: "ListOnPremisesInstances", + Description: "Grants permission to retrieve a list of valid metrics stored for the AWS account owner", + Privilege: "ListMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -48996,112 +51261,147 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of tags for the resource identified by a specified ARN. Tags are used to organize and categorize your CodeDeploy resources", - Privilege: "ListTagsForResource", + Description: "Grants permission to list service level objectives", + Privilege: "ListServiceLevelObjectives", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list services", + Privilege: "ListServices", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to notify a lifecycle event hook execution status for associated deployment with the IAM user", - Privilege: "PutLifecycleEventHookExecutionStatus", + AccessLevel: "List", + Description: "Grants permission to list tags for an Amazon CloudWatch resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarm", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "insight-rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "slo", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register information about an application revision for an application associated with the IAM user", - Privilege: "RegisterApplicationRevision", + Description: "Grants permission to create or update an anomaly detection model for a CloudWatch metric", + Privilege: "PutAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register an on-premises instance", - Privilege: "RegisterOnPremisesInstance", + Description: "Grants permission to create or update a composite alarm", + Privilege: "PutCompositeAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "alarm*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cloudwatch:AlarmActions", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from one or more on-premises instances", - Privilege: "RemoveTagsFromOnPremisesInstances", + AccessLevel: "Write", + Description: "Grants permission to create a CloudWatch dashboard, or update an existing dashboard if it already exists", + Privilege: "PutDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "dashboard*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to override any specified wait time and starts terminating instances immediately after the traffic routing is complete. This action applies to blue-green deployments only", - Privilege: "SkipWaitTimeForInstanceTermination", + Description: "Grants permission to create a new insight rule or replace an existing insight rule", + Privilege: "PutInsightRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "insight-rule*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cloudwatch:requestInsightRuleLogGroups", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a deployment", - Privilege: "StopDeployment", + Description: "Grants permission to create managed Insight Rules", + Privilege: "PutManagedInsightRules", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "cloudwatch:requestManagedResourceARNs", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate the list of tags in the input Tags parameter with the resource identified by the ResourceArn input parameter", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create or update an alarm and associates it with the specified Amazon CloudWatch metric", + Privilege: "PutMetricAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deploymentgroup", + ResourceType: "alarm*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "cloudwatch:AlarmActions", }, DependentActions: []string{}, ResourceType: "", @@ -49109,22 +51409,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to disassociate a resource from a list of tags. The resource is identified by the ResourceArn input parameter. The tags are identfied by the list of keys in the TagKeys input parameter", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to publish metric data points to Amazon CloudWatch", + Privilege: "PutMetricData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "cloudwatch:namespace", + }, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a CloudWatch metric stream, or update an existing metric stream if it already exists", + Privilege: "PutMetricStream", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup", + ResourceType: "metric-stream*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -49134,128 +51444,155 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an application", - Privilege: "UpdateApplication", + Description: "Grants permission to temporarily set the state of an alarm for testing purposes", + Privilege: "SetAlarmState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "alarm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change information about a single deployment group for an application associated with the IAM user", - Privilege: "UpdateDeploymentGroup", + Description: "Grants permission to start all CloudWatch metric streams that you specify", + Privilege: "StartMetricStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentgroup*", + ResourceType: "metric-stream*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:application:${ApplicationName}", - ConditionKeys: []string{}, - Resource: "application", - }, - { - Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:deploymentconfig:${DeploymentConfigurationName}", - ConditionKeys: []string{}, - Resource: "deploymentconfig", - }, { - Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:deploymentgroup:${ApplicationName}/${DeploymentGroupName}", - ConditionKeys: []string{}, - Resource: "deploymentgroup", - }, - { - Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:instance:${InstanceName}", - ConditionKeys: []string{}, - Resource: "instance", - }, - }, - ServiceName: "AWS CodeDeploy", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "codedeploy-commands-secure", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to get deployment specification", - Privilege: "GetDeploymentSpecification", + AccessLevel: "Write", + Description: "Grants permission to stop all CloudWatch metric streams that you specify", + Privilege: "StopMetricStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "metric-stream*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to request host agent commands", - Privilege: "PollHostCommand", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an Amazon CloudWatch resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "alarm", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "insight-rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "slo", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to mark host agent commands acknowledged", - Privilege: "PutHostCommandAcknowledgement", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from an Amazon CloudWatch resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "alarm", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "insight-rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "slo", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to mark host agent commands completed", - Privilege: "PutHostCommandComplete", + Description: "Grants permission to update a service level objective", + Privilege: "UpdateServiceLevelObjective", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "slo*", }, }, }, }, - Resources: []ParliamentResource{}, - ServiceName: "AWS CodeDeploy secure host commands service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "codeguru", - Privileges: []ParliamentPrivilege{ + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get free trial summary for the CodeGuru service which includes expiration date", - Privilege: "GetCodeGuruFreeTrialSummary", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:alarm:${AlarmName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "alarm", + }, + { + Arn: "arn:${Partition}:cloudwatch::${Account}:dashboard/${DashboardName}", + ConditionKeys: []string{}, + Resource: "dashboard", + }, + { + Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:insight-rule/${InsightRuleName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "insight-rule", + }, + { + Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:metric-stream/${MetricStreamName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "metric-stream", + }, + { + Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:slo/${SloName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "slo", + }, + { + Arn: "arn:${Partition}:cloudwatch:${Region}:${Account}:service/${ServiceName}-${UniqueAttributesHex}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "service", }, }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon CodeGuru", + ServiceName: "Amazon CloudWatch", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -49275,53 +51612,58 @@ func getParliamentIamPermissions() ParliamentPermissions { Type: "ArrayOfString", }, }, - Prefix: "codeguru-profiler", + Prefix: "codeartifact", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add up to 2 topic ARNs of existing AWS SNS topics to publish notifications", - Privilege: "AddNotificationChannels", + Description: "Grants permission to add an external connection to a repository", + Privilege: "AssociateExternalConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the frame metric data for a Profiling Group", - Privilege: "BatchGetFrameMetricData", + AccessLevel: "Write", + Description: "Grants permission to associate an existing repository as an upstream repository to another repository", + Privilege: "AssociateWithDownstreamRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register with the orchestration service and retrieve profiling configuration information, used by agents", - Privilege: "ConfigureAgent", + Description: "Grants permission to copy package versions from one repository to another repository in the same domain", + Privilege: "CopyPackageVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a profiling group", - Privilege: "CreateProfilingGroup", + Description: "Grants permission to create a new domain", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -49330,724 +51672,536 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a profiling group", - Privilege: "DeleteProfilingGroup", + Description: "Grants permission to create a package group", + Privilege: "CreatePackageGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a profiling group", - Privilege: "DescribeProfilingGroup", + AccessLevel: "Write", + Description: "Grants permission to create a new repository", + Privilege: "CreateRepository", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a summary of recent recommendations for each profiling group in the account", - Privilege: "GetFindingsReportAccountSummary", + AccessLevel: "Write", + Description: "Grants permission to delete a domain", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the notification configuration", - Privilege: "GetNotificationConfiguration", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the resource policy set on a domain", + Privilege: "DeleteDomainPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the resource policy associated with the specified Profiling Group", - Privilege: "GetPolicy", + AccessLevel: "Write", + Description: "Grants permission to delete a package", + Privilege: "DeletePackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get aggregated profiles for a specific profiling group", - Privilege: "GetProfile", + AccessLevel: "Write", + Description: "Grants permission to delete a package group", + Privilege: "DeletePackageGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get recommendations", - Privilege: "GetRecommendations", + AccessLevel: "Write", + Description: "Grants permission to delete package versions", + Privilege: "DeletePackageVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the available recommendations reports for a specific profiling group", - Privilege: "ListFindingsReports", + AccessLevel: "Write", + Description: "Grants permission to delete a repository", + Privilege: "DeleteRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the start times of the available aggregated profiles for a specific profiling group", - Privilege: "ListProfileTimes", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the resource policy set on a repository", + Privilege: "DeleteRepositoryPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list profiling groups in the account", - Privilege: "ListProfilingGroups", + AccessLevel: "Read", + Description: "Grants permission to return information about a domain", + Privilege: "DescribeDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for a Profiling Group", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a package", + Privilege: "DescribePackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit a profile collected by an agent belonging to a specific profiling group for aggregation", - Privilege: "PostAgentProfile", + AccessLevel: "Read", + Description: "Grants permission to return detailed information about a package group", + Privilege: "DescribePackageGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the list of principals allowed for an action group in the resource policy associated with the specified Profiling Group", - Privilege: "PutPermission", + AccessLevel: "Read", + Description: "Grants permission to return information about a package version", + Privilege: "DescribePackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an already configured SNStopic arn from the notification configuration", - Privilege: "RemoveNotificationChannel", + AccessLevel: "Read", + Description: "Grants permission to return detailed information about a repository", + Privilege: "DescribeRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove the permission of specified Action Group from the resource policy associated with the specified Profiling Group", - Privilege: "RemovePermission", + AccessLevel: "Write", + Description: "Grants permission to disassociate an external connection from a repository", + Privilege: "DisassociateExternalConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to submit user feedback for useful or non useful anomaly", - Privilege: "SubmitFeedback", + Description: "Grants permission to set the status of package versions to Disposed and delete their assets", + Privilege: "DisposePackageVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "package*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite tags to a Profiling Group", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to return a package's associated package group", + Privilege: "GetAssociatedPackageGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a Profiling Group", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to generate a temporary authentication token for accessing repositories in a domain", + Privilege: "GetAuthorizationToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific profiling group", - Privilege: "UpdateProfilingGroup", + AccessLevel: "Read", + Description: "Grants permission to return a domain's resource policy", + Privilege: "GetDomainPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProfilingGroup*", + ResourceType: "domain*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codeguru-profiler:${Region}:${Account}:profilingGroup/${ProfilingGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ProfilingGroup", - }, - }, - ServiceName: "Amazon CodeGuru Profiler", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "codeguru-reviewer", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associates a repository with Amazon CodeGuru Reviewer", - Privilege: "AssociateRepository", + AccessLevel: "Read", + Description: "Grants permission to return an asset (or file) that is part of a package version", + Privilege: "GetPackageVersionAsset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "codecommit:GetRepository", - "codecommit:ListRepositories", - "codecommit:TagResource", - "codestar-connections:PassConnection", - "events:PutRule", - "events:PutTargets", - "iam:CreateServiceLinkedRole", - "s3:CreateBucket", - "s3:ListBucket", - "s3:PutBucketPolicy", - "s3:PutLifecycleConfiguration", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "package*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a code review", - Privilege: "CreateCodeReview", + AccessLevel: "Read", + Description: "Grants permission to return a package version's readme file", + Privilege: "GetPackageVersionReadme", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - }, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to perform webbased oauth handshake for 3rd party providers", - Privilege: "CreateConnectionToken", + Description: "Grants permission to return an endpoint for a repository", + Privilege: "GetRepositoryEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a code review", - Privilege: "DescribeCodeReview", + Description: "Grants permission to return a repository's resource policy", + Privilege: "GetRepositoryPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a recommendation feedback on a code review", - Privilege: "DescribeRecommendationFeedback", + AccessLevel: "List", + Description: "Grants permission to list the allowed repositories for a package group", + Privilege: "ListAllowedRepositoriesForGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a repository association", - Privilege: "DescribeRepositoryAssociation", + AccessLevel: "List", + Description: "Grants permission to list the packages associated to a package group", + Privilege: "ListAssociatedPackages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a repository with Amazon CodeGuru Reviewer", - Privilege: "DisassociateRepository", + AccessLevel: "List", + Description: "Grants permission to list the domains in the current user's AWS account", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codecommit:UntagResource", - "events:DeleteRule", - "events:RemoveTargets", - }, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view pull request metrics in console", - Privilege: "GetMetricsData", + AccessLevel: "List", + Description: "Grants permission to list the package groups in a domain", + Privilege: "ListPackageGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list summary of code reviews", - Privilege: "ListCodeReviews", + Description: "Grants permission to list a package version's assets", + Privilege: "ListPackageVersionAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list summary of recommendation feedback on a code review", - Privilege: "ListRecommendationFeedback", + Description: "Grants permission to list the direct dependencies of a package version", + Privilege: "ListPackageVersionDependencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list summary of recommendations on a code review", - Privilege: "ListRecommendations", + Description: "Grants permission to list a package's versions", + Privilege: "ListPackageVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list summary of repository associations", - Privilege: "ListRepositoryAssociations", + Description: "Grants permission to list the packages in a repository", + Privilege: "ListPackages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the resource attached to a associated repository ARN", - Privilege: "ListTagsForResource", + Description: "Grants permission to list the repositories administered by the calling account", + Privilege: "ListRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list 3rd party providers repositories in console", - Privilege: "ListThirdPartyRepositories", + AccessLevel: "List", + Description: "Grants permission to list the repositories in a domain", + Privilege: "ListRepositoriesInDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put feedback for a recommendation on a code review", - Privilege: "PutRecommendationFeedback", + AccessLevel: "List", + Description: "Grants permission to list the sub package groups for a parent package group", + Privilege: "ListSubPackageGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to attach resource tags to an associated repository ARN", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list tags for a CodeArtifact resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", + ResourceType: "domain", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to disassociate resource tags from an associated repository ARN", - Privilege: "UnTagResource", + AccessLevel: "Write", + Description: "Grants permission to publish assets and metadata to a repository endpoint", + Privilege: "PublishPackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codeguru-reviewer:${Region}:${Account}:association:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "association", - }, - { - Arn: "arn:${Partition}:codeguru-reviewer:${Region}:${Account}:association:${ResourceId}:codereview:${CodeReviewId}", - ConditionKeys: []string{}, - Resource: "codereview", - }, - }, - ServiceName: "Amazon CodeGuru Reviewer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "codeguru-security", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to batch retrieve specific findings generated by CodeGuru Security", - Privilege: "BatchGetFindings", + AccessLevel: "Write", + Description: "Grants permission to attach a resource policy to a domain", + Privilege: "PutDomainPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a CodeGuru Security scan", - Privilege: "CreateScan", + Description: "Grants permission to add, modify or remove package metadata using a repository endpoint", + Privilege: "PutPackageMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate a presigned url for uploading code archives", - Privilege: "CreateUploadUrl", + Description: "Grants permission to set origin configuration for a package", + Privilege: "PutPackageOriginConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", + ResourceType: "package*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete all the scans and related findings from CodeGuru Security by given category", - Privilege: "DeleteScansByCategory", + Description: "Grants permission to attach a resource policy to a repository", + Privilege: "PutRepositoryPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the account level configurations", - Privilege: "GetAccountConfiguration", + Description: "Grants permission to return package assets and metadata from a repository endpoint", + Privilege: "ReadFromRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve findings for a scan generated by CodeGuru Security", - Privilege: "GetFindings", + AccessLevel: "Tagging", + Description: "Grants permission to tag a CodeArtifact resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", + ResourceType: "domain", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve AWS accout level metrics summary generated by CodeGuru Security", - Privilege: "GetMetricsSummary", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve CodeGuru Security scan metadata", - Privilege: "GetScan", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", + ResourceType: "repository", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -50055,367 +52209,387 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve findings generated by CodeGuru Security", - Privilege: "ListFindings", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a CodeArtifact resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "package-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of account level findings metrics within a date range", - Privilege: "ListFindingsMetrics", + AccessLevel: "Write", + Description: "Grants permission to modify the properties of a package group", + Privilege: "UpdatePackageGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve list of CodeGuru Security scan metadata", - Privilege: "ListScans", + AccessLevel: "Write", + Description: "Grants permission to modify the package origin configuration of a package group", + Privilege: "UpdatePackageGroupOriginConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of tags for a scan name ARN", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to modify the status of one or more versions of a package", + Privilege: "UpdatePackageVersionsStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a scan name ARN", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to modify the properties of a repository", + Privilege: "UpdateRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ScanName*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a scan name ARN", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ScanName*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:domain/${DomainName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "domain", }, { - AccessLevel: "Write", - Description: "Grants permission to update the account level configurations", - Privilege: "UpdateAccountConfiguration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:repository/${DomainName}/${RepositoryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "repository", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:codeguru-security:${Region}:${Account}:scans/${ScanName}", + Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:package-group/${DomainName}${EncodedPackageGroupPattern}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "ScanName", + Resource: "package-group", + }, + { + Arn: "arn:${Partition}:codeartifact:${Region}:${Account}:package/${DomainName}/${RepositoryName}/${PackageFormat}/${PackageNamespace}/${PackageName}", + ConditionKeys: []string{}, + Resource: "package", }, }, - ServiceName: "Amazon CodeGuru Security", + ServiceName: "AWS CodeArtifact", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", + Description: "Filters access by actions based on the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", + Description: "Filters access by actions based on tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", + Description: "Filters access by actions based on the presence of tag keys in the request", Type: "ArrayOfString", }, + { + Condition: "codebuild:buildArn", + Description: "Filters access by the ARN of the AWS CodeBuild build from which the request originated", + Type: "ARN", + }, + { + Condition: "codebuild:projectArn", + Description: "Filters access by the ARN of the AWS CodeBuild project from which the request originated", + Type: "ARN", + }, }, - Prefix: "codepipeline", + Prefix: "codebuild", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to view information about a specified job and whether that job has been received by the job worker", - Privilege: "AcknowledgeJob", + Description: "Grants permission to delete one or more builds", + Privilege: "BatchDeleteBuilds", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to confirm that a job worker has received the specified job (partner actions only)", - Privilege: "AcknowledgeThirdPartyJob", + AccessLevel: "Read", + Description: "Grants permission to get information about one or more build batches", + Privilege: "BatchGetBuildBatches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a custom action that you can use in the pipelines associated with your AWS account", - Privilege: "CreateCustomActionType", + AccessLevel: "Read", + Description: "Grants permission to get information about one or more builds", + Privilege: "BatchGetBuilds", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a uniquely named pipeline", - Privilege: "CreatePipeline", + AccessLevel: "Read", + Description: "Grants permission to get information about one or more command executions", + Privilege: "BatchGetCommandExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "sandbox*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return an array of the Fleet objects specified by the input parameter", + Privilege: "BatchGetFleets", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a custom action", - Privilege: "DeleteCustomActionType", + AccessLevel: "Read", + Description: "Grants permission to get information about one or more build projects", + Privilege: "BatchGetProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specified pipeline", - Privilege: "DeletePipeline", + AccessLevel: "Read", + Description: "Grants permission to return an array of ReportGroup objects that are specified by the input reportGroupArns parameter", + Privilege: "BatchGetReportGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specified webhook", - Privilege: "DeleteWebhook", + AccessLevel: "Read", + Description: "Grants permission to return an array of the Report objects specified by the input reportArns parameter", + Privilege: "BatchGetReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook*", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the registration of a webhook with the third party specified in its configuration", - Privilege: "DeregisterWebhookWithThirdParty", + AccessLevel: "Read", + Description: "Grants permission to get information about one or more sandboxes", + Privilege: "BatchGetSandboxes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook*", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to prevent revisions from transitioning to the next stage in a pipeline", - Privilege: "DisableStageTransition", + Description: "Grants permission to add or update information about a report", + Privilege: "BatchPutCodeCoverages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stage*", + ResourceType: "report-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow revisions to transition to the next stage in a pipeline", - Privilege: "EnableStageTransition", + Description: "Grants permission to add or update information about a report", + Privilege: "BatchPutTestCases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stage*", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about an action type", - Privilege: "GetActionType", + AccessLevel: "Write", + Description: "Grants permission to create a compute fleet", + Privilege: "CreateFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "fleet*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about a job (custom actions only)", - Privilege: "GetJobDetails", + AccessLevel: "Write", + Description: "Grants permission to create a build project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "project*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a pipeline structure", - Privilege: "GetPipeline", + AccessLevel: "Write", + Description: "Grants permission to create a report. A report is created when tests specified in the buildspec file for a report groups run during the build of a project", + Privilege: "CreateReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about an execution of a pipeline, including details about artifacts, the pipeline execution ID, and the name, version, and status of the pipeline", - Privilege: "GetPipelineExecution", + AccessLevel: "Write", + Description: "Grants permission to create a report group", + Privilege: "CreateReportGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "report-group*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about the current state of the stages and actions of a pipeline", - Privilege: "GetPipelineState", + AccessLevel: "Write", + Description: "Grants permission to create webhook. For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, enables AWS CodeBuild to start rebuilding the source code every time a code change is pushed to the repository", + Privilege: "CreateWebhook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the details of a job for a third-party action (partner actions only)", - Privilege: "GetThirdPartyJobDetails", + AccessLevel: "Write", + Description: "Grants permission to delete a build batch", + Privilege: "DeleteBuildBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the action executions that have occurred in a pipeline", - Privilege: "ListActionExecutions", + AccessLevel: "Write", + Description: "Grants permission to delete a compute fleet", + Privilege: "DeleteFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "fleet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list a summary of all the action types available for pipelines in your account", - Privilege: "ListActionTypes", + AccessLevel: "Write", + Description: "Grants permission to delete an OAuth token from a connected third-party OAuth provider. Only used in the AWS CodeBuild console", + Privilege: "DeleteOAuthToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50425,127 +52599,139 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list a summary of the most recent executions for a pipeline", - Privilege: "ListPipelineExecutions", + AccessLevel: "Write", + Description: "Grants permission to delete a build project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list a summary of all the pipelines associated with your AWS account", - Privilege: "ListPipelines", + AccessLevel: "Write", + Description: "Grants permission to delete a report", + Privilege: "DeleteReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a CodePipeline resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a report group", + Privilege: "DeleteReportGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype", + ResourceType: "report-group*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete a resource policy for the associated project or report group", + Privilege: "DeleteResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline", + ResourceType: "project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook", + ResourceType: "report-group", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the webhooks associated with your AWS account", - Privilege: "ListWebhooks", + AccessLevel: "Write", + Description: "Grants permission to delete a set of GitHub, GitHub Enterprise, or Bitbucket source credentials", + Privilege: "DeleteSourceCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to view information about any jobs for CodePipeline to act on", - Privilege: "PollForJobs", + Description: "Grants permission to delete webhook. For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, stops AWS CodeBuild from rebuilding the source code every time a code change is pushed to the repository", + Privilege: "DeleteWebhook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to determine whether there are any third-party jobs for a job worker to act on (partner actions only)", - Privilege: "PollForThirdPartyJobs", + AccessLevel: "Read", + Description: "Grants permission to return an array of CodeCoverage objects", + Privilege: "DescribeCodeCoverages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to edit actions in a pipeline", - Privilege: "PutActionRevision", + AccessLevel: "Read", + Description: "Grants permission to return an array of TestCase objects", + Privilege: "DescribeTestCases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provide a response (Approved or Rejected) to a manual approval request in CodePipeline", - Privilege: "PutApprovalResult", + AccessLevel: "Read", + Description: "Grants permission to analyze and accumulate test report values for the test reports in the specified report group", + Privilege: "GetReportGroupTrend", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", + ResourceType: "report-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to represent the failure of a job as returned to the pipeline by a job worker (custom actions only)", - Privilege: "PutJobFailureResult", + AccessLevel: "Read", + Description: "Grants permission to return a resource policy for the specified project or report group", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "report-group", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to represent the success of a job as returned to the pipeline by a job worker (custom actions only)", - Privilege: "PutJobSuccessResult", + Description: "Grants permission to import the source repository credentials for an AWS CodeBuild project that has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket repository", + Privilege: "ImportSourceCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50556,20 +52742,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to represent the failure of a third-party job as returned to the pipeline by a job worker (partner actions only)", - Privilege: "PutThirdPartyJobFailureResult", + Description: "Grants permission to reset the cache for a project", + Privilege: "InvalidateProjectCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to represent the success of a third-party job as returned to the pipeline by a job worker (partner actions only)", - Privilege: "PutThirdPartyJobSuccessResult", + AccessLevel: "List", + Description: "Grants permission to get a list of build batch IDs, with each build batch ID representing a single build batch", + Privilege: "ListBuildBatches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50579,317 +52765,242 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update a webhook", - Privilege: "PutWebhook", + AccessLevel: "List", + Description: "Grants permission to get a list of build batch IDs for the specified build project, with each build batch ID representing a single build batch", + Privilege: "ListBuildBatchesForProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of build IDs, with each build ID representing a single build", + Privilege: "ListBuilds", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a webhook with the third party specified in its configuration", - Privilege: "RegisterWebhookWithThirdParty", + AccessLevel: "List", + Description: "Grants permission to get a list of build IDs for the specified build project, with each build ID representing a single build", + Privilege: "ListBuildsForProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to resume the pipeline execution by retrying the last failed actions in a stage", - Privilege: "RetryStageExecution", + AccessLevel: "List", + Description: "Grants permission to get a list of command execution IDs for the specified sandbox, with each command execution ID representing a single command execution", + Privilege: "ListCommandExecutionsForSandbox", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stage*", + ResourceType: "sandbox*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to rollback the stage to a previous successful execution", - Privilege: "RollbackStage", + AccessLevel: "List", + Description: "Grants permission to list connected third-party OAuth providers. Only used in the AWS CodeBuild console", + Privilege: "ListConnectedOAuthAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stage*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to run the most recent revision through the pipeline", - Privilege: "StartPipelineExecution", + AccessLevel: "List", + Description: "Grants permission to get information about Docker images that are managed by AWS CodeBuild", + Privilege: "ListCuratedEnvironmentImages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an in-progress pipeline execution", - Privilege: "StopPipelineExecution", + AccessLevel: "List", + Description: "Grants permission to get a list of compute fleet ARNs, with each compute fleet ARN representing a single fleet", + Privilege: "ListFleets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a CodePipeline resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to get a list of build project names, with each build project name representing a single build project", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pipeline", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of report group ARNs. Each report group ARN represents one report group", + Privilege: "ListReportGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from a CodePipeline resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to return a list of report ARNs. Each report ARN representing one report", + Privilege: "ListReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of report ARNs that belong to the specified report group. Each report ARN represents one report", + Privilege: "ListReportsForReportGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline", + ResourceType: "report-group*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list source code repositories from a connected third-party OAuth provider. Only used in the AWS CodeBuild console", + Privilege: "ListRepositories", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webhook", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an action type", - Privilege: "UpdateActionType", + AccessLevel: "List", + Description: "Grants permission to get a list of sandbox IDs, with each sandbox ID representing a single sandbox", + Privilege: "ListSandboxes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "actiontype*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a pipeline with changes to the structure of the pipeline", - Privilege: "UpdatePipeline", + AccessLevel: "List", + Description: "Grants permission to get a list of sandbox IDs for the specified sandbox project, with each sandbox ID representing a single sandbox", + Privilege: "ListSandboxesForProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "project*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:${PipelineName}/${StageName}/${ActionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "action", - }, - { - Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:actiontype:${Owner}/${Category}/${Provider}/${Version}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "actiontype", - }, - { - Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:${PipelineName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "pipeline", - }, - { - Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:${PipelineName}/${StageName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "stage", - }, - { - Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:webhook:${WebhookName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "webhook", - }, - }, - ServiceName: "AWS CodePipeline", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by requests based on the allowed set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag-value associated with the resource", - Type: "String", - }, { - Condition: "aws:TagKeys", - Description: "Filters access by requests based on the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - { - Condition: "iam:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag-value associated with the resource", - Type: "String", - }, - }, - Prefix: "codestar", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Permissions management", - Description: "Grants permission to add a user to the team for an AWS CodeStar project", - Privilege: "AssociateTeamMember", + AccessLevel: "List", + Description: "Grants permission to return a list of project ARNs that have been shared with the requester. Each project ARN represents one project", + Privilege: "ListSharedProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create a project with minimal structure, customer policies, and no resources", - Privilege: "CreateProject", + AccessLevel: "List", + Description: "Grants permission to return a list of report group ARNs that have been shared with the requester. Each report group ARN represents one report group", + Privilege: "ListSharedReportGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a profile for a user that includes user preferences, display name, and email", - Privilege: "CreateUserProfile", + AccessLevel: "List", + Description: "Grants permission to return a list of SourceCredentialsInfo objects", + Privilege: "ListSourceCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to extended delete APIs", - Privilege: "DeleteExtendedAccess", + Description: "Grants permission to save an OAuth token from a connected third-party OAuth provider. Only used in the AWS CodeBuild console", + Privilege: "PersistOAuthToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to delete a project, including project resources. Does not delete users associated with the project, but does delete the IAM roles that allowed access to the project", - Privilege: "DeleteProject", + Description: "Grants permission to create a resource policy for the associated project or report group", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "project", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a user profile in AWS CodeStar, including all personal preference data associated with that profile, such as display name and email address. It does not delete the history of that user, for example the history of commits made by that user", - Privilege: "DeleteUserProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "report-group", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a project and its resources", - Privilege: "DescribeProject", + AccessLevel: "Write", + Description: "Grants permission to retry a build", + Privilege: "RetryBuild", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50899,21 +53010,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a user in AWS CodeStar and the user attributes across all projects", - Privilege: "DescribeUserProfile", + AccessLevel: "Write", + Description: "Grants permission to retry a build batch", + Privilege: "RetryBuildBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove a user from a project. Removing a user from a project also removes the IAM policies from that user that allowed access to the project and its resources", - Privilege: "DisassociateTeamMember", + AccessLevel: "Write", + Description: "Grants permission to start running a build", + Privilege: "StartBuild", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50923,9 +53034,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to extended read APIs", - Privilege: "GetExtendedAccess", + AccessLevel: "Write", + Description: "Grants permission to start running a build batch", + Privilege: "StartBuildBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50935,21 +53046,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all projects in CodeStar associated with your AWS account", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to start running a command execution", + Privilege: "StartCommandExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sandbox*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all resources associated with a project in CodeStar", - Privilege: "ListResources", + AccessLevel: "Write", + Description: "Grants permission to start running a sandbox", + Privilege: "StartSandbox", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50959,21 +53070,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags associated with a project in CodeStar", - Privilege: "ListTagsForProject", + AccessLevel: "Write", + Description: "Grants permission to establish a connection to the sandbox", + Privilege: "StartSandboxConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "sandbox*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all team members associated with a project", - Privilege: "ListTeamMembers", + AccessLevel: "Write", + Description: "Grants permission to attempt to stop running a build", + Privilege: "StopBuild", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -50983,21 +53094,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list user profiles in AWS CodeStar", - Privilege: "ListUserProfiles", + AccessLevel: "Write", + Description: "Grants permission to attempt to stop running a build batch", + Privilege: "StopBuildBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to extended write APIs", - Privilege: "PutExtendedAccess", + Description: "Grants permission to attempt to stop running a sandbox", + Privilege: "StopSandbox", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -51007,14 +53118,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a project in CodeStar", - Privilege: "TagProject", + AccessLevel: "Write", + Description: "Grants permission to change the settings of an existing compute fleet", + Privilege: "UpdateFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "fleet*", }, { ConditionKeys: []string{ @@ -51027,9 +53138,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a project in CodeStar", - Privilege: "UntagProject", + AccessLevel: "Write", + Description: "Grants permission to change the settings of an existing build project", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -51038,6 +53149,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -51047,161 +53159,141 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a project in CodeStar", - Privilege: "UpdateProject", + Description: "Grants permission to change the public visibility of a project and its builds", + Privilege: "UpdateProjectVisibility", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "project*", }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update team member attributes within a CodeStar project", - Privilege: "UpdateTeamMember", + AccessLevel: "Write", + Description: "Grants permission to update information about a report", + Privilege: "UpdateReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "report-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a profile for a user that includes user preferences, display name, and email", - Privilege: "UpdateUserProfile", + Description: "Grants permission to change the settings of an existing report group", + Privilege: "UpdateReportGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "report-group*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to verify whether the AWS CodeStar service role exists in the customer's account", - Privilege: "VerifyServiceRole", + AccessLevel: "Write", + Description: "Grants permission to update the webhook associated with an AWS CodeBuild build project", + Privilege: "UpdateWebhook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:codestar:${Region}:${Account}:project/${ProjectId}", + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:build/${BuildId}", + ConditionKeys: []string{}, + Resource: "build", + }, + { + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:build-batch/${BuildBatchId}", + ConditionKeys: []string{}, + Resource: "build-batch", + }, + { + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:project/${ProjectName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, Resource: "project", }, { - Arn: "arn:${Partition}:iam::${Account}:user/${AwsUserName}", + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:report-group/${ReportGroupName}", ConditionKeys: []string{ - "iam:ResourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, - Resource: "user", + Resource: "report-group", + }, + { + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:report/${ReportGroupName}:${ReportId}", + ConditionKeys: []string{}, + Resource: "report", + }, + { + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:fleet/${FleetName}:${FleetId}", + ConditionKeys: []string{}, + Resource: "fleet", + }, + { + Arn: "arn:${Partition}:codebuild:${Region}:${Account}:sandbox/${SandboxId}", + ConditionKeys: []string{}, + Resource: "sandbox", }, }, - ServiceName: "AWS CodeStar", + ServiceName: "AWS CodeBuild", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", + Description: "Filters access by a tag's key and value in a request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "codestar-connections:Branch", - Description: "Filters access by the branch name that is passed in the request", - Type: "String", - }, - { - Condition: "codestar-connections:BranchName", - Description: "Filters access by the branch name that is passed in the request. Applies only to UseConnection requests for access to a specific repository branch", - Type: "String", - }, - { - Condition: "codestar-connections:FullRepositoryId", - Description: "Filters access by the repository that is passed in the request. Applies only to UseConnection requests for access to a specific repository", - Type: "String", - }, - { - Condition: "codestar-connections:HostArn", - Description: "Filters access by the host resource associated with the connection used in the request", - Type: "ARN", - }, - { - Condition: "codestar-connections:InstallationId", - Description: "Filters access by the third-party ID (such as the Bitbucket App installation ID for CodeStar Connections) that is used to update a Connection. Allows you to restrict which third-party App installations can be used to make a Connection", - Type: "String", - }, - { - Condition: "codestar-connections:OwnerId", - Description: "Filters access by the owner of the third-party repository. Applies only to UseConnection requests for access to repositories owned by a specific user", - Type: "String", - }, - { - Condition: "codestar-connections:PassedToService", - Description: "Filters access by the service to which the principal is allowed to pass a Connection or RepositoryLink", - Type: "String", - }, - { - Condition: "codestar-connections:ProviderAction", - Description: "Filters access by the provider action in a UseConnection request such as ListRepositories. See documentation for all valid values", + Description: "Filters access by the tag keys in a request", Type: "ArrayOfString", }, - { - Condition: "codestar-connections:ProviderPermissionsRequired", - Description: "Filters access by the write permissions of a provider action in a UseConnection request. Valid types include read_only and read_write", - Type: "String", - }, - { - Condition: "codestar-connections:ProviderType", - Description: "Filters access by the type of third-party provider passed in the request", - Type: "String", - }, - { - Condition: "codestar-connections:ProviderTypeFilter", - Description: "Filters access by the type of third-party provider used to filter results", - Type: "String", - }, - { - Condition: "codestar-connections:RepositoryName", - Description: "Filters access by the repository name that is passed in the request. Applies only to UseConnection requests for access to repositories owned by a specific user", - Type: "String", - }, }, - Prefix: "codestar-connections", + Prefix: "codecatalyst", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a Connection resource", - Privilege: "CreateConnection", + Description: "Grants permission to accept a request to connect this account to an Amazon CodeCatalyst space", + Privilege: "AcceptConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "codestar-connections:ProviderType", }, DependentActions: []string{}, ResourceType: "", @@ -51210,14 +53302,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a host resource", - Privilege: "CreateHost", + Description: "Grants permission to associate an IAM role to a connection", + Privilege: "AssociateIamRoleToConnection", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "connections*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codestar-connections:ProviderType", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51226,21 +53323,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a repository link", - Privilege: "CreateRepositoryLink", + Description: "Grants permission to associate an IAM Identity Center application with an Amazon CodeCatalyst space", + Privilege: "AssociateIdentityCenterApplicationToSpace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codestar-connections:PassConnection", - "codestar-connections:UseConnection", - }, - ResourceType: "Connection*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity-center-applications*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51249,20 +53342,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a template sync config", - Privilege: "CreateSyncConfiguration", + Description: "Grants permission to associate an identity with an IAM Identity Center application for an Amazon CodeCatalyst space", + Privilege: "AssociateIdentityToIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codestar-connections:PassRepository", - "iam:PassRole", - }, - ResourceType: "RepositoryLink*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity-center-applications*", }, { ConditionKeys: []string{ - "codestar-connections:Branch", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51271,100 +53361,123 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Connection resource", - Privilege: "DeleteConnection", + Description: "Grants permission to associate multiple identities with an IAM Identity Center application for an Amazon CodeCatalyst space", + Privilege: "BatchAssociateIdentitiesToIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "identity-center-applications*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a host resource", - Privilege: "DeleteHost", + Description: "Grants permission to disassociate multiple identities from an IAM Identity Center application for an Amazon CodeCatalyst space", + Privilege: "BatchDisassociateIdentitiesFromIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Host*", + ResourceType: "identity-center-applications*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a repository link", - Privilege: "DeleteRepositoryLink", + Description: "Grants permission to create an IAM Identity Center application", + Privilege: "CreateIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a sync configuration", - Privilege: "DeleteSyncConfiguration", + Description: "Grants permission to create an Amazon CodeCatalyst space", + Privilege: "CreateSpace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a Connection resource", - Privilege: "GetConnection", + AccessLevel: "Write", + Description: "Grants permission to create an administrator role assignment for a given Amazon CodeCatalyst space and IAM Identity Center application", + Privilege: "CreateSpaceAdminRoleAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "identity-center-applications*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a host resource", - Privilege: "GetHost", + AccessLevel: "Write", + Description: "Grants permission to delete a connection", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Host*", + ResourceType: "connections*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "GetIndividualAccessToken", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "codestar-connections:ProviderType", - }, - DependentActions: []string{ - "codestar-connections:StartOAuthHandshake", + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "GetInstallationUrl", + AccessLevel: "Write", + Description: "Grants permission to delete an IAM Identity Center application", + Privilege: "DeleteIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity-center-applications*", + }, { ConditionKeys: []string{ - "codestar-connections:ProviderType", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51372,30 +53485,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a repository link", - Privilege: "GetRepositoryLink", + AccessLevel: "Write", + Description: "Grants permission to disassociate an IAM role from a connection", + Privilege: "DisassociateIamRoleFromConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "connections*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the latest sync status for a repository", - Privilege: "GetRepositorySyncStatus", + AccessLevel: "Write", + Description: "Grants permission to disassociate an IAM Identity Center application from an Amazon CodeCatalyst space", + Privilege: "DisassociateIdentityCenterApplicationFromSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "identity-center-applications*", }, { ConditionKeys: []string{ - "codestar-connections:Branch", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51403,54 +53523,75 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the latest sync status for a resource (cfn stack or other resources)", - Privilege: "GetResourceSyncStatus", + AccessLevel: "Write", + Description: "Grants permission to disassociate an identity from an IAM Identity Center application for an Amazon CodeCatalyst space", + Privilege: "DisassociateIdentityFromIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "identity-center-applications*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe service sync blockers on a resource (cfn stack or other resources)", - Privilege: "GetSyncBlockerSummary", + Description: "Grants permission to describe the billing authorization for a connection", + Privilege: "GetBillingAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "connections*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a sync configuration", - Privilege: "GetSyncConfiguration", + Description: "Grants permission to get a connection", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "connections*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Connection resources", - Privilege: "ListConnections", + AccessLevel: "Read", + Description: "Grants permission to get information about an IAM Identity Center application", + Privilege: "GetIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "identity-center-applications*", }, { ConditionKeys: []string{ - "codestar-connections:ProviderTypeFilter", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51458,14 +53599,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list host resources", - Privilege: "ListHosts", + AccessLevel: "Read", + Description: "Grants permission to get a pending request to connect this account to an Amazon CodeCatalyst space", + Privilege: "GetPendingConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codestar-connections:ProviderTypeFilter", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -51473,35 +53612,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "ListInstallationTargets", + Description: "Grants permission to list connections that are not pending", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codestar-connections:GetIndividualAccessToken", - "codestar-connections:StartOAuthHandshake", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list repository links", - Privilege: "ListRepositoryLinks", + Description: "Grants permission to list IAM roles associated with a connection", + Privilege: "ListIamRolesForConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "connections*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list repository sync definitions", - Privilege: "ListRepositorySyncDefinitions", + Description: "Grants permission to view a list of all IAM Identity Center applications in the account", + Privilege: "ListIdentityCenterApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -51512,8 +53655,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list sync configurations for a repository link", - Privilege: "ListSyncConfigurations", + Description: "Grants permission to view a list of IAM Identity Center applications by Amazon CodeCatalyst space", + Privilege: "ListIdentityCenterApplicationsForSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -51524,39 +53667,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to the set of key-value pairs that are used to manage the resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to view a list of Amazon CodeCatalyst spaces by IAM Identity Center application", + Privilege: "ListSpacesForIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Host", + ResourceType: "identity-center-applications*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "RepositoryLink", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to pass a Connection resource to an AWS service that accepts a Connection ARN as input, such as codepipeline:CreatePipeline", - Privilege: "PassConnection", + Description: "Grants permission to list tags for an Amazon CodeCatalyst resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "connections", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity-center-applications", }, { ConditionKeys: []string{ - "codestar-connections:PassedToService", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51564,18 +53709,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to pass a repository link resource to an AWS service that accepts a RepositoryLinkId as input, such as codestar-connections:CreateSyncConfiguration", - Privilege: "PassRepository", + AccessLevel: "Write", + Description: "Grants permission to create or update the billing authorization for a connection", + Privilege: "PutBillingAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink*", + ResourceType: "connections*", }, { ConditionKeys: []string{ - "codestar-connections:PassedToService", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51583,41 +53728,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", - Privilege: "RegisterAppCode", + AccessLevel: "Write", + Description: "Grants permission to reject a request to connect this account to an Amazon CodeCatalyst space", + Privilege: "RejectConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codestar-connections:HostArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", - Privilege: "StartAppRegistrationHandshake", + AccessLevel: "Write", + Description: "Grants permission to synchronize an IAM Identity Center application with the backing identity store", + Privilege: "SynchronizeIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "codestar-connections:HostArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity-center-applications*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", - Privilege: "StartOAuthHandshake", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "codestar-connections:ProviderType", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51626,28 +53760,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to add or modify the tags of the given resource", + Description: "Grants permission to tag an Amazon CodeCatalyst resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Host", + ResourceType: "connections", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink", + ResourceType: "identity-center-applications", }, { ConditionKeys: []string{ "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51656,27 +53786,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an AWS resource", + Description: "Grants permission to untag an Amazon CodeCatalyst resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Host", + ResourceType: "connections", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RepositoryLink", + ResourceType: "identity-center-applications", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51685,96 +53811,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a Connection resource with an installation of the CodeStar Connections App", - Privilege: "UpdateConnectionInstallation", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "codestar-connections:GetIndividualAccessToken", - "codestar-connections:GetInstallationUrl", - "codestar-connections:ListInstallationTargets", - "codestar-connections:StartOAuthHandshake", - }, - ResourceType: "Connection*", - }, - { - ConditionKeys: []string{ - "codestar-connections:InstallationId", - }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a host resource", - Privilege: "UpdateHost", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Host*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a repository link", - Privilege: "UpdateRepositoryLink", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "RepositoryLink*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a sync blocker for a resource (cfn stack or other resources)", - Privilege: "UpdateSyncBlocker", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a sync configuration", - Privilege: "UpdateSyncConfiguration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "codestar-connections:Branch", - }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to use a Connection resource to call provider actions", - Privilege: "UseConnection", + Description: "Grants permission to update an IAM Identity Center application", + Privilege: "UpdateIdentityCenterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connection*", + ResourceType: "identity-center-applications*", }, { ConditionKeys: []string{ - "codestar-connections:BranchName", - "codestar-connections:FullRepositoryId", - "codestar-connections:OwnerId", - "codestar-connections:ProviderAction", - "codestar-connections:ProviderPermissionsRequired", - "codestar-connections:RepositoryName", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -51784,189 +53831,160 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:codestar-connections:${Region}:${Account}:connection/${ConnectionId}", + Arn: "arn:${Partition}:codecatalyst:${Region}:${Account}:/connections/${ConnectionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Connection", + Resource: "connections", }, { - Arn: "arn:${Partition}:codestar-connections:${Region}:${Account}:host/${HostId}", + Arn: "arn:${Partition}:codecatalyst:${Region}:${Account}:/identity-center-applications/${IdentityCenterApplicationId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Host", + Resource: "identity-center-applications", }, { - Arn: "arn:${Partition}:codestar-connections:${Region}:${Account}:repository-link/${RepositoryLinkId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "RepositoryLink", + Arn: "arn:${Partition}:codecatalyst:::space/${SpaceId}", + ConditionKeys: []string{}, + Resource: "space", + }, + { + Arn: "arn:${Partition}:codecatalyst:::space/${SpaceId}/project/${ProjectId}", + ConditionKeys: []string{}, + Resource: "project", }, }, - ServiceName: "AWS CodeStar Connections", + ServiceName: "Amazon CodeCatalyst", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", + Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, { - Condition: "codestar-notifications:NotificationsForResource", - Description: "Filters access based on the ARN of the resource for which notifications are configured", - Type: "ARN", + Condition: "codecommit:References", + Description: "Filters access by Git reference to specified AWS CodeCommit actions", + Type: "String", }, }, - Prefix: "codestar-notifications", + Prefix: "codecommit", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a notification rule for a resource", - Privilege: "CreateNotificationRule", + Description: "Grants permission to associate an approval rule template with a repository", + Privilege: "AssociateApprovalRuleTemplateWithRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "codestar-notifications:NotificationsForResource", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a notification rule for a resource", - Privilege: "DeleteNotificationRule", + Description: "Grants permission to associate an approval rule template with multiple repositories in a single operation", + Privilege: "BatchAssociateApprovalRuleTemplateWithRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about multiple merge conflicts when attempting to merge two commits using either the three-way merge or the squash merge option", + Privilege: "BatchDescribeMergeConflicts", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codestar-notifications:NotificationsForResource", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a target for a notification rule", - Privilege: "DeleteTarget", + Description: "Grants permission to remove the association between an approval rule template and multiple repositories in a single operation", + Privilege: "BatchDisassociateApprovalRuleTemplateFromRepositories", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a notification rule", - Privilege: "DescribeNotificationRule", + Description: "Grants permission to return information about one or more commits in an AWS CodeCommit repository", + Privilege: "BatchGetCommits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codestar-notifications:NotificationsForResource", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list notifications event types", - Privilege: "ListEventTypes", + AccessLevel: "Read", + Description: "Grants permission to return information about one or more pull requests in an AWS CodeCommit repository", + Privilege: "BatchGetPullRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list notification rules in an AWS account", - Privilege: "ListNotificationRules", + AccessLevel: "Read", + Description: "Grants permission to get information about multiple repositories", + Privilege: "BatchGetRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags attached to a notification rule resource ARN", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to cancel the uploading of an archive to a pipeline in AWS CodePipeline", + Privilege: "CancelUploadArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the notification rule targets for an AWS account", - Privilege: "ListTargets", + AccessLevel: "Write", + Description: "Grants permission to create an approval rule template that will automatically create approval rules in pull requests that match the conditions defined in the template; does not grant permission to create approval rules for individual pull requests", + Privilege: "CreateApprovalRuleTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -51974,20 +53992,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an association between a notification rule and an Amazon SNS topic", - Privilege: "Subscribe", + Description: "Grants permission to create a branch in an AWS CodeCommit repository with this API; does not control Git create branch actions", + Privilege: "CreateBranch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codestar-notifications:NotificationsForResource", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -51995,20 +54010,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to attach resource tags to a notification rule resource ARN", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to add, copy, move or update single or multiple files in a branch in an AWS CodeCommit repository, and generate a commit for the changes in the specified branch", + Privilege: "CreateCommit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -52017,113 +54030,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove an association between a notification rule and an Amazon SNS topic", - Privilege: "Unsubscribe", + Description: "Grants permission to create a pull request in the specified repository", + Privilege: "CreatePullRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "codestar-notifications:NotificationsForResource", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to disassociate resource tags from a notification rule resource ARN", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create an approval rule specific to an individual pull request; does not grant permission to create approval rule templates", + Privilege: "CreatePullRequestApprovalRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change a notification rule for a resource", - Privilege: "UpdateNotificationRule", + Description: "Grants permission to create an AWS CodeCommit repository", + Privilege: "CreateRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notificationrule*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "codestar-notifications:NotificationsForResource", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:codestar-notifications:${Region}:${Account}:notificationrule/${NotificationRuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "notificationrule", - }, - }, - ServiceName: "AWS CodeStar Notifications", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with CodeWhisperer resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "codewhisperer", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Permissions management", - Description: "Grants permission to configure vended log delivery for CodeWhisperer customization resource", - Privilege: "AllowVendedLogDeliveryForResource", + AccessLevel: "Write", + Description: "Grants permission to create an unreferenced commit that contains the result of merging two commits using either the three-way or the squash merge option; does not control Git merge actions", + Privilege: "CreateUnreferencedMergeCommit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -52132,37 +54093,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to invoke AssociateCustomizationPermission on CodeWhisperer", - Privilege: "AssociateCustomizationPermission", + Description: "Grants permission to delete an approval rule template", + Privilege: "DeleteApprovalRuleTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke CreateCustomization on CodeWhisperer", - Privilege: "CreateCustomization", + Description: "Grants permission to delete a branch in an AWS CodeCommit repository with this API; does not control Git delete branch actions", + Privilege: "DeleteBranch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -52171,37 +54124,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to invoke CreateProfile on CodeWhisperer", - Privilege: "CreateProfile", + Description: "Grants permission to delete the content of a comment made on a change, file, or commit in a repository", + Privilege: "DeleteCommentContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke DeleteCustomization on CodeWhisperer", - Privilege: "DeleteCustomization", + Description: "Grants permission to delete a specified file from a specified branch", + Privilege: "DeleteFile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -52210,426 +54155,418 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to invoke DeleteProfile on CodeWhisperer", - Privilege: "DeleteProfile", + Description: "Grants permission to delete approval rule created for a pull request if the rule was not created by an approval rule template", + Privilege: "DeletePullRequestApprovalRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke DisassociateCustomizationPermission on CodeWhisperer", - Privilege: "DisassociateCustomizationPermission", + Description: "Grants permission to delete an AWS CodeCommit repository", + Privilege: "DeleteRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to invoke GenerateRecommendations on CodeWhisperer", - Privilege: "GenerateRecommendations", + Description: "Grants permission to get information about specific merge conflicts when attempting to merge two commits using either the three-way or the squash merge option", + Privilege: "DescribeMergeConflicts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to invoke GetCustomization on CodeWhisperer", - Privilege: "GetCustomization", + Description: "Grants permission to return information about one or more pull request events", + Privilege: "DescribePullRequestEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to invoke ListCustomizationPermissions on CodeWhisperer", - Privilege: "ListCustomizationPermissions", + AccessLevel: "Write", + Description: "Grants permission to remove the association between an approval rule template and a repository", + Privilege: "DisassociateApprovalRuleTemplateFromRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to invoke ListCustomizationVersions on CodeWhisperer", - Privilege: "ListCustomizationVersions", + AccessLevel: "Read", + Description: "Grants permission to evaluate whether a pull request is mergable based on its current approval state and approval rule requirements", + Privilege: "EvaluatePullRequestApprovalRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about an approval rule template", + Privilege: "GetApprovalRuleTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to invoke ListCustomizations on CodeWhisperer", - Privilege: "ListCustomizations", + AccessLevel: "Read", + Description: "Grants permission to view the encoded content of an individual file in an AWS CodeCommit repository from the AWS CodeCommit console", + Privilege: "GetBlob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to invoke ListProfiles on CodeWhisperer", - Privilege: "ListProfiles", + AccessLevel: "Read", + Description: "Grants permission to get details about a branch in an AWS CodeCommit repository with this API; does not control Git branch actions", + Privilege: "GetBranch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to invoke ListTagsForResource on CodeWhisperer", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to get the content of a comment made on a change, file, or commit in a repository", + Privilege: "GetComment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the reactions on a comment", + Privilege: "GetCommentReactions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to invoke TagResource on CodeWhisperer", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get information about comments made on the comparison between two commits", + Privilege: "GetCommentsForComparedCommit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get comments made on a pull request", + Privilege: "GetCommentsForPullRequest", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a commit, including commit message and committer information, with this API; does not control Git log actions", + Privilege: "GetCommit", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to invoke UntagResource on CodeWhisperer", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get information about the history of commits in a repository", + Privilege: "GetCommitHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the difference between commits in the context of a potential merge", + Privilege: "GetCommitsFromMergeBase", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about the differences between valid commit specifiers such as a branch, tag, HEAD, commit ID, or other fully qualified reference", + Privilege: "GetDifferences", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to invoke UpdateCustomization on CodeWhisperer", - Privilege: "UpdateCustomization", + AccessLevel: "Read", + Description: "Grants permission to return the base-64 encoded contents of a specified file and its metadata", + Privilege: "GetFile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the contents of a specified folder in a repository", + Privilege: "GetFolder", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to invoke UpdateProfile on CodeWhisperer", - Privilege: "UpdateProfile", + AccessLevel: "Read", + Description: "Grants permission to get information about a merge commit created by one of the merge options for pull requests that creates merge commits. Not all merge options create merge commits. This permission does not control Git merge actions", + Privilege: "GetMergeCommit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:codewhisperer::${Account}:profile/${Identifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get information about merge conflicts between the before and after commit IDs for a pull request in a repository", + Privilege: "GetMergeConflicts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, }, - Resource: "profile", }, { - Arn: "arn:${Partition}:codewhisperer::${Account}:customization/${Identifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get information about merge options for pull requests that can be used to merge two commits; does not control Git merge actions", + Privilege: "GetMergeOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, }, - Resource: "customization", - }, - }, - ServiceName: "Amazon CodeWhisperer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a key that is present in the request", - Type: "ArrayOfString", }, - }, - Prefix: "cognito-identity", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a new identity pool", - Privilege: "CreateIdentityPool", + AccessLevel: "Read", + Description: "Grants permission to resolve blobs, trees, and commits to their identifier", + Privilege: "GetObjectIdentifier", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete identities from an identity pool. You can specify a list of 1-60 identities that you want to delete", - Privilege: "DeleteIdentities", + AccessLevel: "Read", + Description: "Grants permission to get information about a pull request in a specified repository", + Privilege: "GetPullRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a user pool. Once a pool is deleted, users will not be able to authenticate with the pool", - Privilege: "DeleteIdentityPool", + AccessLevel: "Read", + Description: "Grants permission to retrieve the current approvals on an inputted pull request", + Privilege: "GetPullRequestApprovalStates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return metadata related to the given identity, including when the identity was created and any associated linked logins", - Privilege: "DescribeIdentity", + Description: "Grants permission to retrieve the current override state of a given pull request", + Privilege: "GetPullRequestOverrideState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a particular identity pool, including the pool name, ID description, creation date, and current number of users", - Privilege: "DescribeIdentityPool", + Description: "Grants permission to get details about references in an AWS CodeCommit repository; does not control Git reference actions", + Privilege: "GetReferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return credentials for the provided identity ID", - Privilege: "GetCredentialsForIdentity", + Description: "Grants permission to get information about an AWS CodeCommit repository", + Privilege: "GetRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to generate (or retrieve) a Cognito ID. Supplying multiple logins will create an implicit linked account", - Privilege: "GetId", + AccessLevel: "Read", + Description: "Grants permission to get information about triggers configured for a repository", + Privilege: "GetRepositoryTriggers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get analytics data about the total current identity count for all identity pool identity provider (IdPs)", - Privilege: "GetIdentityPoolAnalytics", + Description: "Grants permission to view the contents of a specified tree in an AWS CodeCommit repository from the AWS CodeCommit console", + Privilege: "GetTree", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get analytics data about the number of new identities and total identities for all identity pool identity providers (IdPs)", - Privilege: "GetIdentityPoolDailyAnalytics", + Description: "Grants permission to get status information about an archive upload to a pipeline in AWS CodePipeline", + Privilege: "GetUploadArchiveStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the roles for an identity pool", - Privilege: "GetIdentityPoolRoles", + Description: "Grants permission to pull information from an AWS CodeCommit repository to a local repo", + Privilege: "GitPull", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get analytics data about the number of new identities and total identities for one identity pool identity provider (IdPs)", - Privilege: "GetIdentityProviderDailyAnalytics", + AccessLevel: "Write", + Description: "Grants permission to push information from a local repo to an AWS CodeCommit repository", + Privilege: "GitPush", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "codecommit:References", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an OpenID token, using a known Cognito ID", - Privilege: "GetOpenIdToken", + AccessLevel: "List", + Description: "Grants permission to list all approval rule templates in an AWS Region for the AWS account", + Privilege: "ListApprovalRuleTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -52639,127 +54576,140 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to register (or retrieve) a Cognito IdentityId and an OpenID Connect token for a user authenticated by your backend authentication process", - Privilege: "GetOpenIdTokenForDeveloperIdentity", + AccessLevel: "List", + Description: "Grants permission to list approval rule templates that are associated with a repository", + Privilege: "ListAssociatedApprovalRuleTemplatesForRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the principal tags for an identity pool and provider", - Privilege: "GetPrincipalTagAttributeMap", + AccessLevel: "List", + Description: "Grants permission to list branches for an AWS CodeCommit repository with this API; does not control Git branch actions", + Privilege: "ListBranches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the identities in an identity pool", - Privilege: "ListIdentities", + Description: "Grants permission to list commits and changes to a specified file", + Privilege: "ListFileCommitHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all of the Cognito identity pools registered for your account", - Privilege: "ListIdentityPools", + Description: "Grants permission to list pull requests for a specified repository", + Privilege: "ListPullRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags that are assigned to an Amazon Cognito identity pool", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list information about AWS CodeCommit repositories in the current Region for your AWS account", + Privilege: "ListRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the IdentityId associated with a DeveloperUserIdentifier or the list of DeveloperUserIdentifiers associated with an IdentityId for an existing identity", - Privilege: "LookupDeveloperIdentity", + AccessLevel: "List", + Description: "Grants permission to list repositories that are associated with an approval rule template", + Privilege: "ListRepositoriesForApprovalRuleTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to merge two users having different IdentityIds, existing in the same identity pool, and identified by the same developer provider", - Privilege: "MergeDeveloperIdentities", + AccessLevel: "List", + Description: "Grants permission to list the resource attached to a CodeCommit resource ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the roles for an identity pool. These roles are used when making calls to GetCredentialsForIdentity action", - Privilege: "SetIdentityPoolRoles", + Description: "Grants permission to merge two commits into the specified destination branch using the fast-forward merge option", + Privilege: "MergeBranchesByFastForward", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "codecommit:References", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the principal tags for an identity pool and provider. These tags are used when making calls to GetOpenIdToken action", - Privilege: "SetPrincipalTagAttributeMap", + Description: "Grants permission to merge two commits into the specified destination branch using the squash merge option", + Privilege: "MergeBranchesBySquash", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "codecommit:References", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to assign a set of tags to an Amazon Cognito identity pool", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to merge two commits into the specified destination branch using the three-way merge option", + Privilege: "MergeBranchesByThreeWay", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -52768,41 +54718,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to unlink a DeveloperUserIdentifier from an existing identity", - Privilege: "UnlinkDeveloperIdentity", + Description: "Grants permission to close a pull request and attempt to merge it into the specified destination branch for that pull request at the specified commit using the fast-forward merge option", + Privilege: "MergePullRequestByFastForward", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "codecommit:References", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unlink a federated identity from an existing account", - Privilege: "UnlinkIdentity", + Description: "Grants permission to close a pull request and attempt to merge it into the specified destination branch for that pull request at the specified commit using the squash merge option", + Privilege: "MergePullRequestBySquash", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "codecommit:References", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from an Amazon Cognito identity pool", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to close a pull request and attempt to merge it into the specified destination branch for that pull request at the specified commit using the three-way merge option", + Privilege: "MergePullRequestByThreeWay", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool", + ResourceType: "repository*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "codecommit:References", }, DependentActions: []string{}, ResourceType: "", @@ -52811,405 +54775,531 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an identity pool", - Privilege: "UpdateIdentityPool", + Description: "Grants permission to override all approval rules for a pull request, including approval rules created by a template", + Privilege: "OverridePullRequestApprovalRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "repository*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cognito-identity:${Region}:${Account}:identitypool/${IdentityPoolId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to post a comment on the comparison between two commits", + Privilege: "PostCommentForComparedCommit", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, }, - Resource: "identitypool", - }, - }, - ServiceName: "Amazon Cognito Identity", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a key that is present in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "cognito-idp", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add user attributes to the user pool schema", - Privilege: "AddCustomAttributes", + Description: "Grants permission to post a comment on a pull request", + Privilege: "PostCommentForPullRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add any user to any group", - Privilege: "AdminAddUserToGroup", + Description: "Grants permission to post a comment in reply to a comment on a comparison between commits or a pull request", + Privilege: "PostCommentReply", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to confirm any user's registration without a confirmation code", - Privilege: "AdminConfirmSignUp", + Description: "Grants permission to post a reaction on a comment", + Privilege: "PutCommentReaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create new users and send welcome messages via email or SMS", - Privilege: "AdminCreateUser", + Description: "Grants permission to add or update a file in a branch in an AWS CodeCommit repository, and generate a commit for the addition in the specified branch", + Privilege: "PutFile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "codecommit:References", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete any user", - Privilege: "AdminDeleteUser", + Description: "Grants permission to create, update, or delete triggers for a repository", + Privilege: "PutRepositoryTriggers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete attributes from any user", - Privilege: "AdminDeleteUserAttributes", + AccessLevel: "Tagging", + Description: "Grants permission to attach resource tags to a CodeCommit resource ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unlink any user pool user from a third-party identity provider (IdP) user", - Privilege: "AdminDisableProviderForUser", + Description: "Grants permission to test the functionality of repository triggers by sending information to the trigger target", + Privilege: "TestRepositoryTriggers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate any user", - Privilege: "AdminDisableUser", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate resource tags from a CodeCommit resource ARN", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate any user", - Privilege: "AdminEnableUser", + Description: "Grants permission to update the content of approval rule templates; does not grant permission to update content of approval rules created specifically for pull requests", + Privilege: "UpdateApprovalRuleTemplateContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister any user's devices", - Privilege: "AdminForgetDevice", + Description: "Grants permission to update the description of approval rule templates", + Privilege: "UpdateApprovalRuleTemplateDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about any user's devices", - Privilege: "AdminGetDevice", + AccessLevel: "Write", + Description: "Grants permission to update the name of approval rule templates", + Privilege: "UpdateApprovalRuleTemplateName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to look up any user by user name", - Privilege: "AdminGetUser", + AccessLevel: "Write", + Description: "Grants permission to update the contents of a comment if the identity matches the identity used to create the comment", + Privilege: "UpdateComment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to authenticate any user", - Privilege: "AdminInitiateAuth", + Description: "Grants permission to change the default branch in an AWS CodeCommit repository", + Privilege: "UpdateDefaultBranch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to link any user pool user to a third-party IdP user", - Privilege: "AdminLinkProviderForUser", + Description: "Grants permission to update the content for approval rules created for a specific pull requests; does not grant permission to update approval rule content for rules created with an approval rule template", + Privilege: "UpdatePullRequestApprovalRuleContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list any user's remembered devices", - Privilege: "AdminListDevices", + AccessLevel: "Write", + Description: "Grants permission to update the approval state for pull requests", + Privilege: "UpdatePullRequestApprovalState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the groups that any user belongs to", - Privilege: "AdminListGroupsForUser", + AccessLevel: "Write", + Description: "Grants permission to update the description of a pull request", + Privilege: "UpdatePullRequestDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists sign-in events for any user", - Privilege: "AdminListUserAuthEvents", + AccessLevel: "Write", + Description: "Grants permission to update the status of a pull request", + Privilege: "UpdatePullRequestStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove any user from any group", - Privilege: "AdminRemoveUserFromGroup", + Description: "Grants permission to update the title of a pull request", + Privilege: "UpdatePullRequestTitle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset any user's password", - Privilege: "AdminResetUserPassword", + Description: "Grants permission to change the description of an AWS CodeCommit repository", + Privilege: "UpdateRepositoryDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to respond to an authentication challenge during the authentication of any user", - Privilege: "AdminRespondToAuthChallenge", + Description: "Grants permission to change the AWS KMS encryption key used to encrypt and decrypt an AWS CodeCommit repository", + Privilege: "UpdateRepositoryEncryptionKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set any user's preferred MFA method", - Privilege: "AdminSetUserMFAPreference", + Description: "Grants permission to change the name of an AWS CodeCommit repository", + Privilege: "UpdateRepositoryName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set any user's password", - Privilege: "AdminSetUserPassword", + Description: "Grants permission to the service role for AWS CodePipeline to upload repository changes into a pipeline", + Privilege: "UploadArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "repository*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:codecommit:${Region}:${Account}:${RepositoryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "repository", + }, + }, + ServiceName: "AWS CodeCommit", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "codeconnections:Branch", + Description: "Filters access by the branch name that is passed in the request", + Type: "String", + }, + { + Condition: "codeconnections:BranchName", + Description: "Filters access by the branch name that is passed in the request. Applies only to UseConnection requests for access to a specific repository branch", + Type: "String", + }, + { + Condition: "codeconnections:FullRepositoryId", + Description: "Filters access by the repository that is passed in the request. Applies only to UseConnection requests for access to a specific repository", + Type: "String", + }, + { + Condition: "codeconnections:HostArn", + Description: "Filters access by the host resource associated with the connection used in the request", + Type: "ARN", + }, + { + Condition: "codeconnections:InstallationId", + Description: "Filters access by the third-party ID (such as the Bitbucket App installation ID for CodeConnections) that is used to update a Connection. Allows you to restrict which third-party App installations can be used to make a Connection", + Type: "String", + }, + { + Condition: "codeconnections:OwnerId", + Description: "Filters access by the owner of the third-party repository. Applies only to UseConnection requests for access to repositories owned by a specific user", + Type: "String", + }, + { + Condition: "codeconnections:PassedToService", + Description: "Filters access by the service to which the principal is allowed to pass a Connection or RepositoryLink", + Type: "String", + }, + { + Condition: "codeconnections:ProviderAction", + Description: "Filters access by the provider action in a UseConnection request such as ListRepositories. See documentation for all valid values", + Type: "String", + }, + { + Condition: "codeconnections:ProviderPermissionsRequired", + Description: "Filters access by the write permissions of a provider action in a UseConnection request. Valid types include read_only and read_write", + Type: "String", + }, + { + Condition: "codeconnections:ProviderType", + Description: "Filters access by the type of third-party provider passed in the request", + Type: "String", + }, + { + Condition: "codeconnections:ProviderTypeFilter", + Description: "Filters access by the type of third-party provider used to filter results", + Type: "String", + }, + { + Condition: "codeconnections:RepositoryName", + Description: "Filters access by the repository name that is passed in the request. Applies only to UseConnection requests for access to repositories owned by a specific user", + Type: "String", + }, + { + Condition: "codeconnections:VpcId", + Description: "Filters access by the VpcId passed in the request", + Type: "String", + }, + }, + Prefix: "codeconnections", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to set user settings for any user", - Privilege: "AdminSetUserSettings", + Description: "Grants permission to create a Connection resource", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codeconnections:ProviderType", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update advanced security feedback for any user's authentication event", - Privilege: "AdminUpdateAuthEventFeedback", + Description: "Grants permission to create a host resource", + Privilege: "CreateHost", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codeconnections:ProviderType", + "codeconnections:VpcId", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of any user's remembered devices", - Privilege: "AdminUpdateDeviceStatus", + Description: "Grants permission to create a repository link", + Privilege: "CreateRepositoryLink", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeconnections:PassConnection", + "codeconnections:UseConnection", + }, + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to updates any user's standard or custom attributes", - Privilege: "AdminUpdateUserAttributes", + Description: "Grants permission to create a template sync config", + Privilege: "CreateSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeconnections:PassRepository", + "iam:PassRole", + }, + ResourceType: "RepositoryLink*", + }, + { + ConditionKeys: []string{ + "codeconnections:Branch", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to sign out any user from all sessions", - Privilege: "AdminUserGlobalSignOut", + Description: "Grants permission to delete a Connection resource", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "Connection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to return a unique generated shared secret key code for the user", - Privilege: "AssociateSoftwareToken", + Description: "Grants permission to delete a host resource", + Privilege: "DeleteHost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Host*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the user pool with an AWS WAF web ACL", - Privilege: "AssociateWebACL", + Description: "Grants permission to delete a repository link", + Privilege: "DeleteRepositoryLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "webacl*", + ResourceType: "RepositoryLink*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the password for a specified user in a user pool", - Privilege: "ChangePassword", + Description: "Grants permission to delete a sync configuration", + Privilege: "DeleteSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53219,99 +55309,96 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to confirm tracking of the device. This API call is the call that begins device tracking", - Privilege: "ConfirmDevice", + AccessLevel: "Read", + Description: "Grants permission to get details about a Connection resource", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Connection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to allow a user to enter a confirmation code to reset a forgotten password", - Privilege: "ConfirmForgotPassword", + AccessLevel: "Read", + Description: "Grants permission to get a Connection token to call provider actions", + Privilege: "GetConnectionToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Connection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to confirm registration of a user and handles the existing alias from a previous user", - Privilege: "ConfirmSignUp", + AccessLevel: "Read", + Description: "Grants permission to get details about a host resource", + Privilege: "GetHost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Host*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create new user pool groups", - Privilege: "CreateGroup", + AccessLevel: "Read", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "GetIndividualAccessToken", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "userpool*", + ConditionKeys: []string{ + "codeconnections:ProviderType", + }, + DependentActions: []string{ + "codeconnections:StartOAuthHandshake", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add identity providers to user pools", - Privilege: "CreateIdentityProvider", + AccessLevel: "Read", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "GetInstallationUrl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codeconnections:ProviderType", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create and configure scopes for OAuth 2.0 resource servers", - Privilege: "CreateResourceServer", + AccessLevel: "Read", + Description: "Grants permission to describe a repository link", + Privilege: "GetRepositoryLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "RepositoryLink*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create user CSV import jobs", - Privilege: "CreateUserImportJob", + AccessLevel: "Read", + Description: "Grants permission to get the latest sync status for a repository", + Privilege: "GetRepositorySyncStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "RepositoryLink*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create and set password policy for user pools", - Privilege: "CreateUserPool", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "codeconnections:Branch", }, DependentActions: []string{}, ResourceType: "", @@ -53319,81 +55406,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create user pool app clients", - Privilege: "CreateUserPoolClient", + AccessLevel: "Read", + Description: "Grants permission to get the latest sync status for a resource (cfn stack or other resources)", + Privilege: "GetResourceSyncStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add user pool domains", - Privilege: "CreateUserPoolDomain", + AccessLevel: "Read", + Description: "Grants permission to describe service sync blockers on a resource (cfn stack or other resources)", + Privilege: "GetSyncBlockerSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete any empty user pool group", - Privilege: "DeleteGroup", + AccessLevel: "Read", + Description: "Grants permission to describe a sync configuration", + Privilege: "GetSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete any identity provider from user pools", - Privilege: "DeleteIdentityProvider", + AccessLevel: "List", + Description: "Grants permission to list Connection resources", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codeconnections:ProviderTypeFilter", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete any OAuth 2.0 resource server from user pools", - Privilege: "DeleteResourceServer", + AccessLevel: "List", + Description: "Grants permission to list host resources", + Privilege: "ListHosts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codeconnections:ProviderTypeFilter", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to allow a user to delete one's self", - Privilege: "DeleteUser", + AccessLevel: "List", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "ListInstallationTargets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "codeconnections:GetIndividualAccessToken", + "codeconnections:StartOAuthHandshake", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the attributes for a user", - Privilege: "DeleteUserAttributes", + AccessLevel: "List", + Description: "Grants permission to list repository links", + Privilege: "ListRepositoryLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53403,180 +55502,266 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete user pools", - Privilege: "DeleteUserPool", + AccessLevel: "List", + Description: "Grants permission to list repository sync definitions", + Privilege: "ListRepositorySyncDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete any user pool app client", - Privilege: "DeleteUserPoolClient", + AccessLevel: "List", + Description: "Grants permission to list sync configurations for a repository link", + Privilege: "ListSyncConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete any user pool domain", - Privilege: "DeleteUserPoolDomain", + AccessLevel: "List", + Description: "Grants permission to the set of key-value pairs that are used to manage the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "Connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RepositoryLink", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe any user pool identity provider", - Privilege: "DescribeIdentityProvider", + Description: "Grants permission to pass a Connection resource to an AWS service that accepts a Connection ARN as input, such as codepipeline:CreatePipeline", + Privilege: "PassConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codeconnections:PassedToService", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe any OAuth 2.0 resource server", - Privilege: "DescribeResourceServer", + Description: "Grants permission to pass a repository link resource to an AWS service that accepts a RepositoryLinkId as input, such as codeconnections:CreateSyncConfiguration", + Privilege: "PassRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "RepositoryLink*", + }, + { + ConditionKeys: []string{ + "codeconnections:PassedToService", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the risk configuration settings of user pools and app clients", - Privilege: "DescribeRiskConfiguration", + Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", + Privilege: "RegisterAppCode", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codeconnections:HostArn", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe any user import job", - Privilege: "DescribeUserImportJob", + Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", + Privilege: "StartAppRegistrationHandshake", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codeconnections:HostArn", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe user pools", - Privilege: "DescribeUserPool", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "StartOAuthHandshake", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codeconnections:ProviderType", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe any user pool app client", - Privilege: "DescribeUserPoolClient", + AccessLevel: "Tagging", + Description: "Grants permission to add or modify the tags of the given resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "Connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RepositoryLink", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe any user pool domain", - Privilege: "DescribeUserPoolDomain", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an AWS resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RepositoryLink", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the user pool with an AWS WAF web ACL", - Privilege: "DisassociateWebACL", + Description: "Grants permission to update a Connection resource with an installation of the CodeStar Connections App", + Privilege: "UpdateConnectionInstallation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codeconnections:GetIndividualAccessToken", + "codeconnections:GetInstallationUrl", + "codeconnections:ListInstallationTargets", + "codeconnections:StartOAuthHandshake", + }, + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codeconnections:InstallationId", + }, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to forget the specified device", - Privilege: "ForgetDevice", + Description: "Grants permission to update a host resource", + Privilege: "UpdateHost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Host*", + }, + { + ConditionKeys: []string{ + "codeconnections:VpcId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send a message to the end user with a confirmation code that is required to change the user's password", - Privilege: "ForgotPassword", + Description: "Grants permission to update a repository link", + Privilege: "UpdateRepositoryLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RepositoryLink*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate headers for a user import .csv file", - Privilege: "GetCSVHeader", + AccessLevel: "Write", + Description: "Grants permission to update a sync blocker for a resource (cfn stack or other resources)", + Privilege: "UpdateSyncBlocker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the device", - Privilege: "GetDevice", + AccessLevel: "Write", + Description: "Grants permission to update a sync configuration", + Privilege: "UpdateSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codeconnections:Branch", + }, DependentActions: []string{}, ResourceType: "", }, @@ -53584,80 +55769,138 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a user pool group", - Privilege: "GetGroup", + Description: "Grants permission to use a Connection resource to call provider actions", + Privilege: "UseConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codeconnections:BranchName", + "codeconnections:FullRepositoryId", + "codeconnections:OwnerId", + "codeconnections:ProviderAction", + "codeconnections:ProviderPermissionsRequired", + "codeconnections:RepositoryName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to correlate a user pool IdP identifier to the IdP Name", - Privilege: "GetIdentityProviderByIdentifier", + Arn: "arn:${Partition}:codeconnections:${Region}:${Account}:connection/${ConnectionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Connection", + }, + { + Arn: "arn:${Partition}:codeconnections:${Region}:${Account}:host/${HostId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Host", + }, + { + Arn: "arn:${Partition}:codeconnections:${Region}:${Account}:repository-link/${RepositoryLinkId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "RepositoryLink", + }, + }, + ServiceName: "AWS CodeConnections", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "codedeploy", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to one or more on-premises instances", + Privilege: "AddTagsToOnPremisesInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the detailed activity logging configuration for a user pool", - Privilege: "GetLogDeliveryConfiguration", + Description: "Grants permission to get information about one or more application revisions", + Privilege: "BatchGetApplicationRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to look up signing certificates for user pools", - Privilege: "GetSigningCertificate", + Description: "Grants permission to get information about multiple applications associated with the IAM user", + Privilege: "BatchGetApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get UI customization information for the hosted UI of any app client", - Privilege: "GetUICustomization", + Description: "Grants permission to get information about one or more deployment groups", + Privilege: "BatchGetDeploymentGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the user attributes and metadata for a user", - Privilege: "GetUser", + Description: "Grants permission to get information about one or more instance that are part of a deployment group", + Privilege: "BatchGetDeploymentInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentgroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the user attribute verification code for the specified attribute name", - Privilege: "GetUserAttributeVerificationCode", + Description: "Grants permission to return an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated BatchGetDeploymentInstances. The maximum number of targets that can be returned is 25", + Privilege: "BatchGetDeploymentTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53668,32 +55911,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to look up the MFA configuration of user pools", - Privilege: "GetUserPoolMfaConfig", + Description: "Grants permission to get information about multiple deployments associated with the IAM user", + Privilege: "BatchGetDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the AWS WAF web ACL that is associated with an Amazon Cognito user pool", - Privilege: "GetWebACLForResource", + Description: "Grants permission to get information about one or more on-premises instances", + Privilege: "BatchGetOnPremisesInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to sign out users from all devices", - Privilege: "GlobalSignOut", + Description: "Grants permission to start the process of rerouting traffic from instances in the original environment to instances in thereplacement environment without waiting for a specified wait time to elapse", + Privilege: "ContinueDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53704,20 +55947,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to initiate the authentication flow", - Privilege: "InitiateAuth", + Description: "Grants permission to create an application associated with the IAM user", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the devices", - Privilege: "ListDevices", + AccessLevel: "Write", + Description: "Grants permission to create CloudFormation deployment to cooperate ochestration for a CloudFormation stack update", + Privilege: "CreateCloudFormationDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53727,93 +55978,101 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all groups in user pools", - Privilege: "ListGroups", + AccessLevel: "Write", + Description: "Grants permission to create a deployment for an application associated with the IAM user", + Privilege: "CreateDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all identity providers in user pools", - Privilege: "ListIdentityProviders", + AccessLevel: "Write", + Description: "Grants permission to create a custom deployment configuration associated with the IAM user", + Privilege: "CreateDeploymentConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentconfig*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all resource servers in user pools", - Privilege: "ListResourceServers", + AccessLevel: "Write", + Description: "Grants permission to create a deployment group for an application associated with the IAM user", + Privilege: "CreateDeploymentGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the user pools that are associated with an AWS WAF web ACL", - Privilege: "ListResourcesForWebACL", + AccessLevel: "Write", + Description: "Grants permission to delete an application associated with the IAM user", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "webacl*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are assigned to an Amazon Cognito user pool", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a custom deployment configuration associated with the IAM user", + Privilege: "DeleteDeploymentConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool", + ResourceType: "deploymentconfig*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all user import jobs", - Privilege: "ListUserImportJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a deployment group for an application associated with the IAM user", + Privilege: "DeleteDeploymentGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all app clients in user pools", - Privilege: "ListUserPoolClients", + AccessLevel: "Write", + Description: "Grants permission to delete a GitHub account connection", + Privilege: "DeleteGitHubAccountToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all user pools", - Privilege: "ListUserPools", + AccessLevel: "Write", + Description: "Grants permission to delete resources associated with the given external Id", + Privilege: "DeleteResourcesByExternalId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53823,129 +56082,129 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all user pool users", - Privilege: "ListUsers", + AccessLevel: "Write", + Description: "Grants permission to deregister an on-premises instance", + Privilege: "DeregisterOnPremisesInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the users in any group", - Privilege: "ListUsersInGroup", + Description: "Grants permission to get information about a single application associated with the IAM user", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to resend the confirmation (for confirmation of registration) to a specific user in the user pool", - Privilege: "ResendConfirmationCode", + AccessLevel: "List", + Description: "Grants permission to get information about a single application revision for an application associated with the IAM user", + Privilege: "GetApplicationRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to respond to the authentication challenge", - Privilege: "RespondToAuthChallenge", + AccessLevel: "List", + Description: "Grants permission to get information about a single deployment to a deployment group for an application associated with the IAM user", + Privilege: "GetDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke all of the access tokens generated by the specified refresh token", - Privilege: "RevokeToken", + AccessLevel: "List", + Description: "Grants permission to get information about a single deployment configuration associated with the IAM user", + Privilege: "GetDeploymentConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentconfig*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set up or modify the detailed activity logging configuration of a user pool", - Privilege: "SetLogDeliveryConfiguration", + AccessLevel: "List", + Description: "Grants permission to get information about a single deployment group for an application associated with the IAM user", + Privilege: "GetDeploymentGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set risk configuration for user pools and app clients", - Privilege: "SetRiskConfiguration", + AccessLevel: "List", + Description: "Grants permission to get information about a single instance in a deployment associated with the IAM user", + Privilege: "GetDeploymentInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to customize the hosted UI for any app client", - Privilege: "SetUICustomization", + AccessLevel: "Read", + Description: "Grants permission to return information about a deployment target", + Privilege: "GetDeploymentTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set MFA preference for the user in the userpool", - Privilege: "SetUserMFAPreference", + AccessLevel: "List", + Description: "Grants permission to get information about a single on-premises instance", + Privilege: "GetOnPremisesInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set user pool MFA configuration", - Privilege: "SetUserPoolMfaConfig", + AccessLevel: "List", + Description: "Grants permission to get information about all application revisions for an application associated with the IAM user", + Privilege: "ListApplicationRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the user settings like multi-factor authentication (MFA)", - Privilege: "SetUserSettings", + AccessLevel: "List", + Description: "Grants permission to get information about all applications associated with the IAM user", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53955,9 +56214,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to register the user in the specified user pool and creates a user name, password, and user attributes", - Privilege: "SignUp", + AccessLevel: "List", + Description: "Grants permission to get information about all deployment configurations associated with the IAM user", + Privilege: "ListDeploymentConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -53967,84 +56226,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start any user import job", - Privilege: "StartUserImportJob", + AccessLevel: "List", + Description: "Grants permission to get information about all deployment groups for an application associated with the IAM user", + Privilege: "ListDeploymentGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop any user import job", - Privilege: "StopUserImportJob", + AccessLevel: "List", + Description: "Grants permission to get information about all instances in a deployment associated with the IAM user", + Privilege: "ListDeploymentInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a user pool", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to return an array of target IDs that are associated a deployment", + Privilege: "ListDeploymentTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool", + ResourceType: "", }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about all deployments to a deployment group associated with the IAM user, or to get all deployments associated with the IAM user", + Privilege: "ListDeployments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentgroup*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a user pool", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list the names of stored connections to GitHub accounts", + Privilege: "ListGitHubAccountTokenNames", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of one or more on-premises instance names", + Privilege: "ListOnPremisesInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the feedback for the user authentication event", - Privilege: "UpdateAuthEventFeedback", + AccessLevel: "List", + Description: "Grants permission to return a list of tags for the resource identified by a specified ARN. Tags are used to organize and categorize your CodeDeploy resources", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deploymentgroup", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the device status", - Privilege: "UpdateDeviceStatus", + Description: "Grants permission to notify a lifecycle event hook execution status for associated deployment with the IAM user", + Privilege: "PutLifecycleEventHookExecutionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -54055,44 +56328,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of any group", - Privilege: "UpdateGroup", + Description: "Grants permission to register information about an application revision for an application associated with the IAM user", + Privilege: "RegisterApplicationRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of any user pool IdP", - Privilege: "UpdateIdentityProvider", + Description: "Grants permission to register an on-premises instance", + Privilege: "RegisterOnPremisesInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the configuration of any OAuth 2.0 resource server", - Privilege: "UpdateResourceServer", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from one or more on-premises instances", + Privilege: "RemoveTagsFromOnPremisesInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow a user to update a specific attribute (one at a time)", - Privilege: "UpdateUserAttributes", + Description: "Grants permission to override any specified wait time and starts terminating instances immediately after the traffic routing is complete. This action applies to blue-green deployments only", + Privilege: "SkipWaitTimeForInstanceTermination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -54103,13 +56376,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to updates the configuration of user pools", - Privilege: "UpdateUserPool", + Description: "Grants permission to stop a deployment", + Privilege: "StopDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to associate the list of tags in the input Tags parameter with the resource identified by the ResourceArn input parameter", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deploymentgroup", }, { ConditionKeys: []string{ @@ -54122,393 +56412,341 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update any user pool client", - Privilege: "UpdateUserPoolClient", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate a resource from a list of tags. The resource is identified by the ResourceArn input parameter. The tags are identfied by the list of keys in the TagKeys input parameter", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to replace the certificate for any custom domain", - Privilege: "UpdateUserPoolDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userpool*", + ResourceType: "deploymentgroup", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a user's entered TOTP code and mark the user's software token MFA status as verified if successful", - Privilege: "VerifySoftwareToken", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to verify a user attribute using a one time verification code", - Privilege: "VerifyUserAttribute", + Description: "Grants permission to change information about a single deployment group for an application associated with the IAM user", + Privilege: "UpdateDeploymentGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentgroup*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:cognito-idp:${Region}:${Account}:userpool/${UserPoolId}", + Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:application:${ApplicationName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "userpool", + Resource: "application", }, { - Arn: "arn:${Partition}:wafv2:${Region}:${Account}:${Scope}/webacl/${Name}/${Id}", + Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:deploymentconfig:${DeploymentConfigurationName}", ConditionKeys: []string{}, - Resource: "webacl", + Resource: "deploymentconfig", + }, + { + Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:deploymentgroup:${ApplicationName}/${DeploymentGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deploymentgroup", + }, + { + Arn: "arn:${Partition}:codedeploy:${Region}:${Account}:instance:${InstanceName}", + ConditionKeys: []string{}, + Resource: "instance", }, }, - ServiceName: "Amazon Cognito User Pools", + ServiceName: "AWS CodeDeploy", }, ParliamentService{ Conditions: []ParliamentCondition{}, - Prefix: "cognito-sync", + Prefix: "codedeploy-commands-secure", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to initiate a bulk publish of all existing datasets for an Identity Pool to the configured stream", - Privilege: "BulkPublish", + AccessLevel: "Read", + Description: "Grants permission to get deployment specification", + Privilege: "GetDeploymentSpecification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specific dataset", - Privilege: "DeleteDataset", + AccessLevel: "Read", + Description: "Grants permission to request host agent commands", + Privilege: "PollHostCommand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get metadata about a dataset by identity and dataset name", - Privilege: "DescribeDataset", + AccessLevel: "Write", + Description: "Grants permission to mark host agent commands acknowledged", + Privilege: "PutHostCommandAcknowledgement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get usage details (for example, data storage) about a particular identity pool", - Privilege: "DescribeIdentityPoolUsage", + AccessLevel: "Write", + Description: "Grants permission to mark host agent commands completed", + Privilege: "PutHostCommandComplete", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS CodeDeploy secure host commands service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "codeguru", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to get usage information for an identity, including number of datasets and data usage", - Privilege: "DescribeIdentityUsage", + Description: "Grants permission to get free trial summary for the CodeGuru service which includes expiration date", + Privilege: "GetCodeGuruFreeTrialSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon CodeGuru", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Grants permission to get the status of the last BulkPublish operation for an identity pool", - Privilege: "GetBulkPublishDetails", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identitypool*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", }, { - AccessLevel: "Read", - Description: "Grants permission to get the events and the corresponding Lambda functions associated with an identity pool", - Privilege: "GetCognitoEvents", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identitypool*", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", }, { - AccessLevel: "Read", - Description: "Grants permission to get the configuration settings of an identity pool", - Privilege: "GetIdentityPoolConfiguration", + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "codeguru-profiler", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add up to 2 topic ARNs of existing AWS SNS topics to publish notifications", + Privilege: "AddNotificationChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "ProfilingGroup*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list datasets for an identity", - Privilege: "ListDatasets", + Description: "Grants permission to get the frame metric data for a Profiling Group", + Privilege: "BatchGetFrameMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of identity pools registered with Cognito", - Privilege: "ListIdentityPoolUsage", + AccessLevel: "Write", + Description: "Grants permission to register with the orchestration service and retrieve profiling configuration information, used by agents", + Privilege: "ConfigureAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get paginated records, optionally changed after a particular sync count for a dataset and identity", - Privilege: "ListRecords", + AccessLevel: "Write", + Description: "Grants permission to create a profiling group", + Privilege: "CreateProfilingGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to query records", - Privilege: "QueryRecords", + AccessLevel: "Write", + Description: "Grants permission to delete a profiling group", + Privilege: "DeleteProfilingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a device to receive push sync notifications", - Privilege: "RegisterDevice", + AccessLevel: "Read", + Description: "Grants permission to describe a profiling group", + Privilege: "DescribeProfilingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the AWS Lambda function for a given event type for an identity pool", - Privilege: "SetCognitoEvents", + AccessLevel: "Read", + Description: "Grants permission to get a summary of recent recommendations for each profiling group in the account", + Privilege: "GetFindingsReportAccountSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to configure datasets", - Privilege: "SetDatasetConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get the notification configuration", + Privilege: "GetNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the necessary configuration for push sync", - Privilege: "SetIdentityPoolConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get the resource policy associated with the specified Profiling Group", + Privilege: "GetPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identitypool*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to subscribe to receive notifications when a dataset is modified by another device", - Privilege: "SubscribeToDataset", + AccessLevel: "Read", + Description: "Grants permission to get aggregated profiles for a specific profiling group", + Privilege: "GetProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to unsubscribe from receiving notifications when a dataset is modified by another device", - Privilege: "UnsubscribeFromDataset", + AccessLevel: "Read", + Description: "Grants permission to get recommendations", + Privilege: "GetRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to post updates to records and add and delete records for a dataset and user", - Privilege: "UpdateRecords", + AccessLevel: "List", + Description: "Grants permission to list the available recommendations reports for a specific profiling group", + Privilege: "ListFindingsReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "ProfilingGroup*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cognito-sync:${Region}:${Account}:identitypool/${IdentityPoolId}/identity/${IdentityId}/dataset/${DatasetName}", - ConditionKeys: []string{}, - Resource: "dataset", - }, - { - Arn: "arn:${Partition}:cognito-sync:${Region}:${Account}:identitypool/${IdentityPoolId}/identity/${IdentityId}", - ConditionKeys: []string{}, - Resource: "identity", - }, - { - Arn: "arn:${Partition}:cognito-sync:${Region}:${Account}:identitypool/${IdentityPoolId}", - ConditionKeys: []string{}, - Resource: "identitypool", - }, - }, - ServiceName: "Amazon Cognito Sync", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by requiring tag values present in a resource creation request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by requiring tag value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by requiring the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - { - Condition: "comprehend:DataLakeKmsKey", - Description: "Filters access by the DataLake Kms Key associated with the flywheel resource in the request", - Type: "ARN", - }, - { - Condition: "comprehend:FlywheelIterationId", - Description: "Filters access by particular Iteration Id for a flywheel", - Type: "String", - }, - { - Condition: "comprehend:ModelKmsKey", - Description: "Filters access by the model KMS key associated with the resource in the request", - Type: "ARN", - }, - { - Condition: "comprehend:OutputKmsKey", - Description: "Filters access by the output KMS key associated with the resource in the request", - Type: "ARN", - }, - { - Condition: "comprehend:VolumeKmsKey", - Description: "Filters access by the volume KMS key associated with the resource in the request", - Type: "ARN", - }, { - Condition: "comprehend:VpcSecurityGroupIds", - Description: "Filters access by the list of all VPC security group ids associated with the resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "comprehend:VpcSubnets", - Description: "Filters access by the list of all VPC subnets associated with the resource in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "comprehend", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to detect the language or languages present in the list of text documents", - Privilege: "BatchDetectDominantLanguage", + AccessLevel: "List", + Description: "Grants permission to list the start times of the available aggregated profiles for a specific profiling group", + Privilege: "ListProfileTimes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the named entities (\"People\", \"Places\", \"Locations\", etc) within the given list of text documents", - Privilege: "BatchDetectEntities", + AccessLevel: "List", + Description: "Grants permission to list profiling groups in the account", + Privilege: "ListProfilingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -54518,91 +56756,91 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the phrases in the list of text documents that are most indicative of the content", - Privilege: "BatchDetectKeyPhrases", + AccessLevel: "List", + Description: "Grants permission to list tags for a Profiling Group", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the sentiment of a text in the list of documents (Positive, Negative, Neutral, or Mixed)", - Privilege: "BatchDetectSentiment", + AccessLevel: "Write", + Description: "Grants permission to submit a profile collected by an agent belonging to a specific profiling group for aggregation", + Privilege: "PostAgentProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect syntactic information (like Part of Speech, Tokens) in a list of text documents", - Privilege: "BatchDetectSyntax", + AccessLevel: "Permissions management", + Description: "Grants permission to update the list of principals allowed for an action group in the resource policy associated with the specified Profiling Group", + Privilege: "PutPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the sentiments associated with specific entities (such as brands or products) within the given list of text documents", - Privilege: "BatchDetectTargetedSentiment", + AccessLevel: "Write", + Description: "Grants permission to delete an already configured SNStopic arn from the notification configuration", + Privilege: "RemoveNotificationChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to create a new document classification request to analyze a single document in real-time, using a previously created and trained custom model and an endpoint", - Privilege: "ClassifyDocument", + AccessLevel: "Permissions management", + Description: "Grants permission to remove the permission of specified Action Group from the resource policy associated with the specified Profiling Group", + Privilege: "RemovePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier-endpoint*", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to classify the personally identifiable information within given documents in real-time", - Privilege: "ContainsPiiEntities", + AccessLevel: "Write", + Description: "Grants permission to submit user feedback for useful or non useful anomaly", + Privilege: "SubmitFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProfilingGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new dataset within a flywheel", - Privilege: "CreateDataset", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite tags to a Profiling Group", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "ProfilingGroup*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -54610,24 +56848,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new document classifier that you can use to categorize documents", - Privilege: "CreateDocumentClassifier", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a Profiling Group", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "ProfilingGroup*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:ModelKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -54636,60 +56868,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a model-specific endpoint for synchronous inference for a previously trained custom model", - Privilege: "CreateEndpoint", + Description: "Grants permission to update a specific profiling group", + Privilege: "UpdateProfilingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "ProfilingGroup*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:codeguru-profiler:${Region}:${Account}:profilingGroup/${ProfilingGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ProfilingGroup", + }, + }, + ServiceName: "Amazon CodeGuru Profiler", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "codeguru-reviewer", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associates a repository with Amazon CodeGuru Reviewer", + Privilege: "AssociateRepository", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "document-classifier-endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + DependentActions: []string{ + "codecommit:GetRepository", + "codecommit:ListRepositories", + "codecommit:TagResource", + "codestar-connections:PassConnection", + "events:PutRule", + "events:PutTargets", + "iam:CreateServiceLinkedRole", + "s3:CreateBucket", + "s3:ListBucket", + "s3:PutBucketPolicy", + "s3:PutLifecycleConfiguration", }, - DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flywheel", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an entity recognizer using submitted files", - Privilege: "CreateEntityRecognizer", + Description: "Grants permission to create a code review", + Privilege: "CreateCodeReview", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + }, + ResourceType: "association*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:ModelKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -54697,231 +56959,215 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new flywheel that you can use to train model versions", - Privilege: "CreateFlywheel", + AccessLevel: "Read", + Description: "Grants permission to perform webbased oauth handshake for 3rd party providers", + Privilege: "CreateConnectionToken", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:ModelKmsKey", - "comprehend:DataLakeKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "flywheel*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a previously created document classifier", - Privilege: "DeleteDocumentClassifier", + AccessLevel: "Read", + Description: "Grants permission to describe a code review", + Privilege: "DescribeCodeReview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "association*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a model-specific endpoint for a previously-trained custom model. All endpoints must be deleted in order for the model to be deleted", - Privilege: "DeleteEndpoint", + AccessLevel: "Read", + Description: "Grants permission to describe a recommendation feedback on a code review", + Privilege: "DescribeRecommendationFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier-endpoint*", + ResourceType: "association*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a submitted entity recognizer", - Privilege: "DeleteEntityRecognizer", + AccessLevel: "Read", + Description: "Grants permission to describe a repository association", + Privilege: "DescribeRepositoryAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "association*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to Delete a flywheel", - Privilege: "DeleteFlywheel", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove policy on resource", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to disassociate a repository with Amazon CodeGuru Reviewer", + Privilege: "DisassociateRepository", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier*", + ConditionKeys: []string{}, + DependentActions: []string{ + "codecommit:UntagResource", + "events:DeleteRule", + "events:RemoveTargets", + }, + ResourceType: "association*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a dataset", - Privilege: "DescribeDataset", + Description: "Grants permission to view pull request metrics in console", + Privilege: "GetMetricsData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel-dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a document classification job", - Privilege: "DescribeDocumentClassificationJob", + AccessLevel: "List", + Description: "Grants permission to list summary of code reviews", + Privilege: "ListCodeReviews", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classification-job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a document classifier", - Privilege: "DescribeDocumentClassifier", + AccessLevel: "List", + Description: "Grants permission to list summary of recommendation feedback on a code review", + Privilege: "ListRecommendationFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "association*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a dominant language detection job", - Privilege: "DescribeDominantLanguageDetectionJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "dominant-language-detection-job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a specific endpoint. Use this operation to get the status of an endpoint", - Privilege: "DescribeEndpoint", + AccessLevel: "List", + Description: "Grants permission to list summary of recommendations on a code review", + Privilege: "ListRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier-endpoint*", + ResourceType: "association*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with an entities detection job", - Privilege: "DescribeEntitiesDetectionJob", + AccessLevel: "List", + Description: "Grants permission to list summary of repository associations", + Privilege: "ListRepositoryAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entities-detection-job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide details about an entity recognizer including status, S3 buckets containing training data, recognizer metadata, metrics, and so on", - Privilege: "DescribeEntityRecognizer", + AccessLevel: "List", + Description: "Grants permission to list the resource attached to a associated repository ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "association*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with an Events detection job", - Privilege: "DescribeEventsDetectionJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "events-detection-job*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a flywheel", - Privilege: "DescribeFlywheel", + Description: "Grants permission to list 3rd party providers repositories in console", + Privilege: "ListThirdPartyRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a flywheel iteration for a flywheel", - Privilege: "DescribeFlywheelIteration", + AccessLevel: "Write", + Description: "Grants permission to put feedback for a recommendation on a code review", + Privilege: "PutRecommendationFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "association*", }, { ConditionKeys: []string{ - "comprehend:FlywheelIterationId", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -54929,134 +57175,129 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a key phrases detection job", - Privilege: "DescribeKeyPhrasesDetectionJob", + AccessLevel: "Tagging", + Description: "Grants permission to attach resource tags to an associated repository ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-phrases-detection-job*", + ResourceType: "association*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a PII entities detection job", - Privilege: "DescribePiiEntitiesDetectionJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "pii-entities-detection-job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read attached policy on resource", - Privilege: "DescribeResourcePolicy", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate resource tags from an associated repository ARN", + Privilege: "UnTagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "association*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a sentiment detection job", - Privilege: "DescribeSentimentDetectionJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "sentiment-detection-job*", - }, + Arn: "arn:${Partition}:codeguru-reviewer:${Region}:${Account}:association:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "association", }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a targeted sentiment detection job", - Privilege: "DescribeTargetedSentimentDetectionJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "targeted-sentiment-detection-job*", - }, - }, + Arn: "arn:${Partition}:codeguru-reviewer:${Region}:${Account}:association:${ResourceId}:codereview:${CodeReviewId}", + ConditionKeys: []string{}, + Resource: "codereview", }, + }, + ServiceName: "Amazon CodeGuru Reviewer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with a topic detection job", - Privilege: "DescribeTopicsDetectionJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "topics-detection-job*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "codeguru-security", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to detect the language or languages present in the text", - Privilege: "DetectDominantLanguage", + Description: "Grants permission to batch retrieve specific findings generated by CodeGuru Security", + Privilege: "BatchGetFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ScanName*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the named entities (\"People\", \"Places\", \"Locations\", etc) within the given text document", - Privilege: "DetectEntities", + AccessLevel: "Write", + Description: "Grants permission to create a CodeGuru Security scan", + Privilege: "CreateScan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint", + ResourceType: "ScanName*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to detect the phrases in the text that are most indicative of the content", - Privilege: "DetectKeyPhrases", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the personally identifiable information entities (\"Name\", \"SSN\", \"PIN\", etc) within the given text document", - Privilege: "DetectPiiEntities", + AccessLevel: "Write", + Description: "Grants permission to generate a presigned url for uploading code archives", + Privilege: "CreateUploadUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ScanName*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the sentiment of a text in a document (Positive, Negative, Neutral, or Mixed)", - Privilege: "DetectSentiment", + AccessLevel: "Write", + Description: "Grants permission to delete all the scans and related findings from CodeGuru Security by given category", + Privilege: "DeleteScansByCategory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55067,8 +57308,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to detect syntactic information (like Part of Speech, Tokens) in a text document", - Privilege: "DetectSyntax", + Description: "Grants permission to retrieve the account level configurations", + Privilege: "GetAccountConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55078,21 +57319,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the sentiments associated with specific entities (such as brands or products) in a document", - Privilege: "DetectTargetedSentiment", + AccessLevel: "List", + Description: "Grants permission to retrieve findings for a scan generated by CodeGuru Security", + Privilege: "GetFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ScanName*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to detect toxic content within the given list of text segments", - Privilege: "DetectToxicContent", + Description: "Grants permission to retrieve AWS accout level metrics summary generated by CodeGuru Security", + Privilege: "GetMetricsSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55102,25 +57343,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a trained Comprehend model", - Privilege: "ImportModel", + AccessLevel: "Read", + Description: "Grants permission to retrieve CodeGuru Security scan metadata", + Privilege: "GetScan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "ScanName*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:ModelKmsKey", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -55128,21 +57362,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of the Datasets associated with a flywheel", - Privilege: "ListDatasets", + AccessLevel: "List", + Description: "Grants permission to retrieve findings generated by CodeGuru Security", + Privilege: "ListFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of the document classification jobs that you have submitted", - Privilege: "ListDocumentClassificationJobs", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of account level findings metrics within a date range", + Privilege: "ListFindingsMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55152,9 +57386,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of summaries of the document classifiers that you have created", - Privilege: "ListDocumentClassifierSummaries", + AccessLevel: "List", + Description: "Grants permission to retrieve list of CodeGuru Security scan metadata", + Privilege: "ListScans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55165,56 +57399,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a list of the document classifiers that you have created", - Privilege: "ListDocumentClassifiers", + Description: "Grants permission to retrieve a list of tags for a scan name ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ScanName*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a list of the dominant language detection jobs that you have submitted", - Privilege: "ListDominantLanguageDetectionJobs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of all existing endpoints that you've created", - Privilege: "ListEndpoints", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a scan name ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "ScanName*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of the entity detection jobs that you have submitted", - Privilege: "ListEntitiesDetectionJobs", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a scan name ARN", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "ScanName*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of summaries for the entity recognizers that you have created", - Privilege: "ListEntityRecognizerSummaries", + AccessLevel: "Write", + Description: "Grants permission to update the account level configurations", + Privilege: "UpdateAccountConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55223,10 +57467,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - { - AccessLevel: "Read", - Description: "Grants permission to get a list of the properties of all entity recognizers that you created, including recognizers currently in training", - Privilege: "ListEntityRecognizers", + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:codeguru-security:${Region}:${Account}:scans/${ScanName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ScanName", + }, + }, + ServiceName: "Amazon CodeGuru Security", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "codepipeline", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to view information about a specified job and whether that job has been received by the job worker", + Privilege: "AcknowledgeJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55236,9 +57512,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of Events detection jobs that you have submitted", - Privilege: "ListEventsDetectionJobs", + AccessLevel: "Write", + Description: "Grants permission to confirm that a job worker has received the specified job (partner actions only)", + Privilege: "AcknowledgeThirdPartyJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55248,151 +57524,181 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of iterations associated for a flywheel", - Privilege: "ListFlywheelIterationHistory", + AccessLevel: "Write", + Description: "Grants permission to create a custom action that you can use in the pipelines associated with your AWS account", + Privilege: "CreateCustomActionType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "actiontype*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a list of the flywheels that you have created", - Privilege: "ListFlywheels", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of key phrase detection jobs that you have submitted", - Privilege: "ListKeyPhrasesDetectionJobs", + AccessLevel: "Write", + Description: "Grants permission to create a uniquely named pipeline", + Privilege: "CreatePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "pipeline*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of PII entities detection jobs that you have submitted", - Privilege: "ListPiiEntitiesDetectionJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a custom action", + Privilege: "DeleteCustomActionType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "actiontype*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of sentiment detection jobs that you have submitted", - Privilege: "ListSentimentDetectionJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a specified pipeline", + Privilege: "DeletePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a specified webhook", + Privilege: "DeleteWebhook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classification-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier-endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dominant-language-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entities-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint", + ResourceType: "webhook*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the registration of a webhook with the third party specified in its configuration", + Privilege: "DeregisterWebhookWithThirdParty", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "events-detection-job", + ResourceType: "webhook*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to prevent revisions from transitioning to the next stage in a pipeline", + Privilege: "DisableStageTransition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel", + ResourceType: "stage*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to allow revisions to transition to the next stage in a pipeline", + Privilege: "EnableStageTransition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel-dataset", + ResourceType: "stage*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about an action type", + Privilege: "GetActionType", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-phrases-detection-job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about a job (custom actions only)", + Privilege: "GetJobDetails", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pii-entities-detection-job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a pipeline structure", + Privilege: "GetPipeline", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sentiment-detection-job", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about an execution of a pipeline, including details about artifacts, the pipeline execution ID, and the name, version, and status of the pipeline", + Privilege: "GetPipelineExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targeted-sentiment-detection-job", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about the current state of the stages and actions of a pipeline", + Privilege: "GetPipelineState", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topics-detection-job", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a list of targeted sentiment detection jobs that you have submitted", - Privilege: "ListTargetedSentimentDetectionJobs", + Description: "Grants permission to view the details of a job for a third-party action (partner actions only)", + Privilege: "GetThirdPartyJobDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -55403,452 +57709,322 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a list of the topic detection jobs that you have submitted", - Privilege: "ListTopicsDetectionJobs", + Description: "Grants permission to list the action executions that have occurred in a pipeline", + Privilege: "ListActionExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach policy to resource", - Privilege: "PutResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to list a summary of all the action types available for pipelines in your account", + Privilege: "ListActionTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list a summary of the most recent executions for a pipeline", + Privilege: "ListPipelineExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous document classification job", - Privilege: "StartDocumentClassificationJob", + AccessLevel: "List", + Description: "Grants permission to list a summary of all the pipelines associated with your AWS account", + Privilege: "ListPipelines", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "document-classification-job*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the rule executions that have occurred in a pipeline", + Privilege: "ListRuleExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous dominant language detection job for a collection of documents", - Privilege: "StartDominantLanguageDetectionJob", + AccessLevel: "Read", + Description: "Grants permission to list a summary of all the rule types available for pipelines in your account", + Privilege: "ListRuleTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dominant-language-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous entity detection job for a collection of documents", - Privilege: "StartEntitiesDetectionJob", + AccessLevel: "Read", + Description: "Grants permission to list tags for a CodePipeline resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entities-detection-job*", + ResourceType: "actiontype", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer", + ResourceType: "pipeline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel", + ResourceType: "webhook", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous Events detection job for a collection of documents", - Privilege: "StartEventsDetectionJob", + AccessLevel: "List", + Description: "Grants permission to list all of the webhooks associated with your AWS account", + Privilege: "ListWebhooks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "events-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:OutputKmsKey", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "webhook*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a flywheel iteration for a flywheel", - Privilege: "StartFlywheelIteration", + Description: "Grants permission to resume the pipeline execution by overriding a condition in a stage", + Privilege: "OverrideStageCondition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flywheel*", + ResourceType: "stage*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an asynchronous key phrase detection job for a collection of documents", - Privilege: "StartKeyPhrasesDetectionJob", + Description: "Grants permission to view information about any jobs for CodePipeline to act on", + Privilege: "PollForJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-phrases-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "actiontype*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an asynchronous PII entities detection job for a collection of documents", - Privilege: "StartPiiEntitiesDetectionJob", + Description: "Grants permission to determine whether there are any third-party jobs for a job worker to act on (partner actions only)", + Privilege: "PollForThirdPartyJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pii-entities-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:OutputKmsKey", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an asynchronous sentiment detection job for a collection of documents", - Privilege: "StartSentimentDetectionJob", + Description: "Grants permission to edit actions in a pipeline", + Privilege: "PutActionRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sentiment-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "action*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an asynchronous targeted sentiment detection job for a collection of documents", - Privilege: "StartTargetedSentimentDetectionJob", + Description: "Grants permission to provide a response (Approved or Rejected) to a manual approval request in CodePipeline", + Privilege: "PutApprovalResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targeted-sentiment-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "action*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an asynchronous job to detect the most common topics in the collection of documents and the phrases associated with each topic", - Privilege: "StartTopicsDetectionJob", + Description: "Grants permission to represent the failure of a job as returned to the pipeline by a job worker (custom actions only)", + Privilege: "PutJobFailureResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topics-detection-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "comprehend:VolumeKmsKey", - "comprehend:OutputKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a dominant language detection job", - Privilege: "StopDominantLanguageDetectionJob", + Description: "Grants permission to represent the success of a job as returned to the pipeline by a job worker (custom actions only)", + Privilege: "PutJobSuccessResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dominant-language-detection-job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an entity detection job", - Privilege: "StopEntitiesDetectionJob", + Description: "Grants permission to represent the failure of a third-party job as returned to the pipeline by a job worker (partner actions only)", + Privilege: "PutThirdPartyJobFailureResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entities-detection-job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an Events detection job", - Privilege: "StopEventsDetectionJob", + Description: "Grants permission to represent the success of a third-party job as returned to the pipeline by a job worker (partner actions only)", + Privilege: "PutThirdPartyJobSuccessResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "events-detection-job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a key phrase detection job", - Privilege: "StopKeyPhrasesDetectionJob", + Description: "Grants permission to create or update a webhook", + Privilege: "PutWebhook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-phrases-detection-job*", + ResourceType: "pipeline*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webhook*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a PII entities detection job", - Privilege: "StopPiiEntitiesDetectionJob", + Description: "Grants permission to register a webhook with the third party specified in its configuration", + Privilege: "RegisterWebhookWithThirdParty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pii-entities-detection-job*", + ResourceType: "webhook*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a sentiment detection job", - Privilege: "StopSentimentDetectionJob", + Description: "Grants permission to resume the pipeline execution by retrying the last failed actions in a stage", + Privilege: "RetryStageExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sentiment-detection-job*", + ResourceType: "stage*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a targeted sentiment detection job", - Privilege: "StopTargetedSentimentDetectionJob", + Description: "Grants permission to rollback the stage to a previous successful execution", + Privilege: "RollbackStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targeted-sentiment-detection-job*", + ResourceType: "stage*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a previously created document classifier training job", - Privilege: "StopTrainingDocumentClassifier", + Description: "Grants permission to run the most recent revision through the pipeline", + Privilege: "StartPipelineExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier*", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a previously created entity recognizer training job", - Privilege: "StopTrainingEntityRecognizer", + Description: "Grants permission to stop an in-progress pipeline execution", + Privilege: "StopPipelineExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer*", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a resource with given key value pairs", + Description: "Grants permission to tag a CodePipeline resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classification-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier-endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dominant-language-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entities-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "events-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flywheel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flywheel-dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-phrases-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pii-entities-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "sentiment-detection-job", + ResourceType: "actiontype", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targeted-sentiment-detection-job", + ResourceType: "pipeline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topics-detection-job", + ResourceType: "webhook", }, { ConditionKeys: []string{ @@ -55862,83 +58038,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag a resource with given key", + Description: "Grants permission to remove a tag from a CodePipeline resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classification-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier-endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dominant-language-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entities-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "events-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flywheel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flywheel-dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key-phrases-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pii-entities-detection-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "sentiment-detection-job", + ResourceType: "actiontype", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targeted-sentiment-detection-job", + ResourceType: "pipeline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topics-detection-job", + ResourceType: "webhook", }, { ConditionKeys: []string{ @@ -55951,261 +58067,184 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update information about the specified endpoint", - Privilege: "UpdateEndpoint", + Description: "Grants permission to update an action type", + Privilege: "UpdateActionType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document-classifier-endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-recognizer-endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flywheel", + ResourceType: "actiontype*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to Update a flywheel's configuration", - Privilege: "UpdateFlywheel", + Description: "Grants permission to update a pipeline with changes to the structure of the pipeline", + Privilege: "UpdatePipeline", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "comprehend:VolumeKmsKey", - "comprehend:ModelKmsKey", - "comprehend:VpcSecurityGroupIds", - "comprehend:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "flywheel*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document-classifier", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-recognizer", + ResourceType: "pipeline*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:targeted-sentiment-detection-job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "targeted-sentiment-detection-job", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:document-classifier/${DocumentClassifierName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "document-classifier", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:document-classifier-endpoint/${DocumentClassifierEndpointName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "document-classifier-endpoint", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:entity-recognizer/${EntityRecognizerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "entity-recognizer", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:entity-recognizer-endpoint/${EntityRecognizerEndpointName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "entity-recognizer-endpoint", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:dominant-language-detection-job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dominant-language-detection-job", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:entities-detection-job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "entities-detection-job", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:pii-entities-detection-job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "pii-entities-detection-job", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:events-detection-job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "events-detection-job", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:key-phrases-detection-job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "key-phrases-detection-job", - }, - { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:sentiment-detection-job/${JobId}", + Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:${PipelineName}/${StageName}/${ActionName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "sentiment-detection-job", + Resource: "action", }, { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:topics-detection-job/${JobId}", + Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:actiontype:${Owner}/${Category}/${Provider}/${Version}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "topics-detection-job", + Resource: "actiontype", }, { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:document-classification-job/${JobId}", + Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:${PipelineName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "document-classification-job", + Resource: "pipeline", }, { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:flywheel/${FlywheelName}", + Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:${PipelineName}/${StageName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "flywheel", + Resource: "stage", }, { - Arn: "arn:${Partition}:comprehend:${Region}:${Account}:flywheel/${FlywheelName}/dataset/${DatasetName}", + Arn: "arn:${Partition}:codepipeline:${Region}:${Account}:webhook:${WebhookName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "flywheel-dataset", + Resource: "webhook", }, }, - ServiceName: "Amazon Comprehend", + ServiceName: "AWS CodePipeline", }, ParliamentService{ Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by requests based on the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag-value associated with the resource", + Type: "String", + }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Description: "Filters access by requests based on the presence of mandatory tags in the request", Type: "ArrayOfString", }, + { + Condition: "iam:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag-value associated with the resource", + Type: "String", + }, }, - Prefix: "comprehendmedical", + Prefix: "codestar", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to describe the properties of a medical entity detection job that you have submitted", - Privilege: "DescribeEntitiesDetectionV2Job", + AccessLevel: "Permissions management", + Description: "Grants permission to add a user to the team for an AWS CodeStar project", + Privilege: "AssociateTeamMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the properties of an ICD-10-CM linking job that you have submitted", - Privilege: "DescribeICD10CMInferenceJob", + AccessLevel: "Permissions management", + Description: "Grants permission to create a project with minimal structure, customer policies, and no resources", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the properties of a PHI entity detection job that you have submitted", - Privilege: "DescribePHIDetectionJob", + AccessLevel: "Write", + Description: "Grants permission to create a profile for a user that includes user preferences, display name, and email", + Privilege: "CreateUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the properties of an RxNorm linking job that you have submitted", - Privilege: "DescribeRxNormInferenceJob", + AccessLevel: "Write", + Description: "Grants permission to extended delete APIs", + Privilege: "DeleteExtendedAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the properties of a SNOMED-CT linking job that you have submitted", - Privilege: "DescribeSNOMEDCTInferenceJob", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a project, including project resources. Does not delete users associated with the project, but does delete the IAM roles that allowed access to the project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the named medical entities, and their relationships and traits within the given text document", - Privilege: "DetectEntitiesV2", + AccessLevel: "Write", + Description: "Grants permission to delete a user profile in AWS CodeStar, including all personal preference data associated with that profile, such as display name and email address. It does not delete the history of that user, for example the history of commits made by that user", + Privilege: "DeleteUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to detect the protected health information (PHI) entities within the given text document", - Privilege: "DetectPHI", + Description: "Grants permission to describe a project and its resources", + Privilege: "DescribeProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to detect the medical condition entities within the given text document and link them to ICD-10-CM codes", - Privilege: "InferICD10CM", + Description: "Grants permission to describe a user in AWS CodeStar and the user attributes across all projects", + Privilege: "DescribeUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -56215,33 +58254,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect the medication entities within the given text document and link them to RxCUI concept identifiers from the National Library of Medicine RxNorm database", - Privilege: "InferRxNorm", + AccessLevel: "Permissions management", + Description: "Grants permission to remove a user from a project. Removing a user from a project also removes the IAM policies from that user that allowed access to the project and its resources", + Privilege: "DisassociateTeamMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to detect the medical condition, anatomy, and test, treatment, and procedure entities within the given text document and link them to SNOMED-CT codes", - Privilege: "InferSNOMEDCT", + Description: "Grants permission to extended read APIs", + Privilege: "GetExtendedAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the medical entity detection jobs that you have submitted", - Privilege: "ListEntitiesDetectionV2Jobs", + AccessLevel: "List", + Description: "Grants permission to list all projects in CodeStar associated with your AWS account", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -56251,45 +58290,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the ICD-10-CM linking jobs that you have submitted", - Privilege: "ListICD10CMInferenceJobs", + AccessLevel: "List", + Description: "Grants permission to list all resources associated with a project in CodeStar", + Privilege: "ListResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the PHI entity detection jobs that you have submitted", - Privilege: "ListPHIDetectionJobs", + AccessLevel: "List", + Description: "Grants permission to list the tags associated with a project in CodeStar", + Privilege: "ListTagsForProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the RxNorm linking jobs that you have submitted", - Privilege: "ListRxNormInferenceJobs", + AccessLevel: "List", + Description: "Grants permission to list all team members associated with a project", + Privilege: "ListTeamMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the SNOMED-CT linking jobs that you have submitted", - Privilege: "ListSNOMEDCTInferenceJobs", + AccessLevel: "List", + Description: "Grants permission to list user profiles in AWS CodeStar", + Privilege: "ListUserProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -56300,59 +58339,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start an asynchronous medical entity detection job for a collection of documents", - Privilege: "StartEntitiesDetectionV2Job", + Description: "Grants permission to extended write APIs", + Privilege: "PutExtendedAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous ICD-10-CM linking job for a collection of documents", - Privilege: "StartICD10CMInferenceJob", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a project in CodeStar", + Privilege: "TagProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous PHI entity detection job for a collection of documents", - Privilege: "StartPHIDetectionJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous RxNorm linking job for a collection of documents", - Privilege: "StartRxNormInferenceJob", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a project in CodeStar", + Privilege: "UntagProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous SNOMED-CT linking job for a collection of documents", - Privilege: "StartSNOMEDCTInferenceJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -56360,44 +58390,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop a medical entity detection job", - Privilege: "StopEntitiesDetectionV2Job", + Description: "Grants permission to update a project in CodeStar", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an ICD-10-CM linking job", - Privilege: "StopICD10CMInferenceJob", + AccessLevel: "Permissions management", + Description: "Grants permission to update team member attributes within a CodeStar project", + Privilege: "UpdateTeamMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a PHI entity detection job", - Privilege: "StopPHIDetectionJob", + Description: "Grants permission to update a profile for a user that includes user preferences, display name, and email", + Privilege: "UpdateUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an RxNorm linking job", - Privilege: "StopRxNormInferenceJob", + AccessLevel: "List", + Description: "Grants permission to verify whether the AWS CodeStar service role exists in the customer's account", + Privilege: "VerifyServiceRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -56406,365 +58436,382 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to stop a SNOMED-CT linking job", - Privilege: "StopSNOMEDCTInferenceJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:codestar:${Region}:${Account}:project/${ProjectId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "project", + }, + { + Arn: "arn:${Partition}:iam::${Account}:user/${AwsUserName}", + ConditionKeys: []string{ + "iam:ResourceTag/${TagKey}", }, + Resource: "user", }, }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Comprehend Medical", + ServiceName: "AWS CodeStar", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "compute-optimizer:ResourceType", - Description: "Filters access by the resource type", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, - }, - Prefix: "compute-optimizer", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to delete recommendation preferences", - Privilege: "DeleteRecommendationPreferences", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "compute-optimizer:ResourceType", - }, - DependentActions: []string{ - "autoscaling:DescribeAutoScalingGroups", - "ec2:DescribeInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBInstances", - }, - ResourceType: "", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", }, { - AccessLevel: "List", - Description: "Grants permission to view the status of recommendation export jobs", - Privilege: "DescribeRecommendationExportJobs", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, { - AccessLevel: "Write", - Description: "Grants permission to export AutoScaling group recommendations to S3 for the provided accounts", - Privilege: "ExportAutoScalingGroupRecommendations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "autoscaling:DescribeAutoScalingGroups", - "compute-optimizer:GetAutoScalingGroupRecommendations", - }, - ResourceType: "", - }, - }, + Condition: "codestar-connections:Branch", + Description: "Filters access by the branch name that is passed in the request", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to export EBS volume recommendations to S3 for the provided accounts", - Privilege: "ExportEBSVolumeRecommendations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "compute-optimizer:GetEBSVolumeRecommendations", - "ec2:DescribeVolumes", - }, - ResourceType: "", - }, - }, + Condition: "codestar-connections:BranchName", + Description: "Filters access by the branch name that is passed in the request. Applies only to UseConnection requests for access to a specific repository branch", + Type: "String", + }, + { + Condition: "codestar-connections:FullRepositoryId", + Description: "Filters access by the repository that is passed in the request. Applies only to UseConnection requests for access to a specific repository", + Type: "String", + }, + { + Condition: "codestar-connections:HostArn", + Description: "Filters access by the host resource associated with the connection used in the request", + Type: "ARN", + }, + { + Condition: "codestar-connections:InstallationId", + Description: "Filters access by the third-party ID (such as the Bitbucket App installation ID for CodeStar Connections) that is used to update a Connection. Allows you to restrict which third-party App installations can be used to make a Connection", + Type: "String", + }, + { + Condition: "codestar-connections:OwnerId", + Description: "Filters access by the owner of the third-party repository. Applies only to UseConnection requests for access to repositories owned by a specific user", + Type: "String", + }, + { + Condition: "codestar-connections:PassedToService", + Description: "Filters access by the service to which the principal is allowed to pass a Connection or RepositoryLink", + Type: "String", + }, + { + Condition: "codestar-connections:ProviderAction", + Description: "Filters access by the provider action in a UseConnection request such as ListRepositories. See documentation for all valid values", + Type: "String", + }, + { + Condition: "codestar-connections:ProviderPermissionsRequired", + Description: "Filters access by the write permissions of a provider action in a UseConnection request. Valid types include read_only and read_write", + Type: "String", + }, + { + Condition: "codestar-connections:ProviderType", + Description: "Filters access by the type of third-party provider passed in the request", + Type: "String", + }, + { + Condition: "codestar-connections:ProviderTypeFilter", + Description: "Filters access by the type of third-party provider used to filter results", + Type: "String", + }, + { + Condition: "codestar-connections:RepositoryName", + Description: "Filters access by the repository name that is passed in the request. Applies only to UseConnection requests for access to repositories owned by a specific user", + Type: "String", }, + { + Condition: "codestar-connections:VpcId", + Description: "Filters access by the VpcId passed in the request", + Type: "String", + }, + }, + Prefix: "codestar-connections", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to export EC2 instance recommendations to S3 for the provided accounts", - Privilege: "ExportEC2InstanceRecommendations", + Description: "Grants permission to create a Connection resource", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "compute-optimizer:GetEC2InstanceRecommendations", - "ec2:DescribeInstances", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-connections:ProviderType", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export ECS service recommendations to S3 for the provided accounts", - Privilege: "ExportECSServiceRecommendations", + Description: "Grants permission to create a host resource", + Privilege: "CreateHost", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "compute-optimizer:GetECSServiceRecommendations", - "ecs:ListClusters", - "ecs:ListServices", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-connections:ProviderType", + "codestar-connections:VpcId", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export Lambda function recommendations to S3 for the provided accounts", - Privilege: "ExportLambdaFunctionRecommendations", + Description: "Grants permission to create a repository link", + Privilege: "CreateRepositoryLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "compute-optimizer:GetLambdaFunctionRecommendations", - "lambda:ListFunctions", - "lambda:ListProvisionedConcurrencyConfigs", + "codestar-connections:PassConnection", + "codestar-connections:UseConnection", }, - ResourceType: "", + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export license recommendations to S3 for the provided account(s)", - Privilege: "ExportLicenseRecommendations", + Description: "Grants permission to create a template sync config", + Privilege: "CreateSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "compute-optimizer:GetLicenseRecommendations", - "ec2:DescribeInstances", + "codestar-connections:PassRepository", + "iam:PassRole", }, - ResourceType: "", + ResourceType: "RepositoryLink*", + }, + { + ConditionKeys: []string{ + "codestar-connections:Branch", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export rds recommendations to S3 for the provided accounts", - Privilege: "ExportRDSDatabaseRecommendations", + Description: "Grants permission to delete a Connection resource", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "compute-optimizer:GetRDSDatabaseRecommendations", - "rds:DescribeDBClusters", - "rds:DescribeDBInstances", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connection*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get recommendations for the provided AutoScaling groups", - Privilege: "GetAutoScalingGroupRecommendations", + AccessLevel: "Write", + Description: "Grants permission to delete a host resource", + Privilege: "DeleteHost", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "autoscaling:DescribeAutoScalingGroups", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get recommendations for the provided EBS volumes", - Privilege: "GetEBSVolumeRecommendations", + AccessLevel: "Write", + Description: "Grants permission to delete a repository link", + Privilege: "DeleteRepositoryLink", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVolumes", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RepositoryLink*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get recommendations for the provided EC2 instances", - Privilege: "GetEC2InstanceRecommendations", + AccessLevel: "Write", + Description: "Grants permission to delete a sync configuration", + Privilege: "DeleteSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeInstances", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the recommendation projected metrics of the specified instance", - Privilege: "GetEC2RecommendationProjectedMetrics", + AccessLevel: "Read", + Description: "Grants permission to get details about a Connection resource", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeInstances", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connection*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the recommendation projected metrics of the specified ECS service", - Privilege: "GetECSServiceRecommendationProjectedMetrics", + AccessLevel: "Read", + Description: "Grants permission to get a Connection token to call provider actions", + Privilege: "GetConnectionToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Connection*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get recommendations for the provided ECS services", - Privilege: "GetECSServiceRecommendations", + AccessLevel: "Read", + Description: "Grants permission to get details about a host resource", + Privilege: "GetHost", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ecs:ListClusters", - "ecs:ListServices", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get recommendation preferences that are in effect", - Privilege: "GetEffectiveRecommendationPreferences", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "GetIndividualAccessToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "compute-optimizer:ResourceType", + "codestar-connections:ProviderType", }, DependentActions: []string{ - "autoscaling:DescribeAutoScalingGroups", - "autoscaling:DescribeAutoScalingInstances", - "ec2:DescribeInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBInstances", + "codestar-connections:StartOAuthHandshake", }, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the enrollment status for the specified account", - Privilege: "GetEnrollmentStatus", + AccessLevel: "Read", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "GetInstallationUrl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codestar-connections:ProviderType", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the enrollment statuses for member accounts of the organization", - Privilege: "GetEnrollmentStatusesForOrganization", + AccessLevel: "Read", + Description: "Grants permission to describe a repository link", + Privilege: "GetRepositoryLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RepositoryLink*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get recommendations for the provided Lambda functions", - Privilege: "GetLambdaFunctionRecommendations", + AccessLevel: "Read", + Description: "Grants permission to get the latest sync status for a repository", + Privilege: "GetRepositorySyncStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lambda:ListFunctions", - "lambda:ListProvisionedConcurrencyConfigs", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RepositoryLink*", + }, + { + ConditionKeys: []string{ + "codestar-connections:Branch", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get license recommendations for the specified account(s)", - Privilege: "GetLicenseRecommendations", + AccessLevel: "Read", + Description: "Grants permission to get the latest sync status for a resource (cfn stack or other resources)", + Privilege: "GetResourceSyncStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeInstances", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the recommendation projected metrics of the specified instance", - Privilege: "GetRDSDatabaseRecommendationProjectedMetrics", + AccessLevel: "Read", + Description: "Grants permission to describe service sync blockers on a resource (cfn stack or other resources)", + Privilege: "GetSyncBlockerSummary", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:DescribeDBClusters", - "rds:DescribeDBInstances", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get rds recommendations for the specified account(s)", - Privilege: "GetRDSDatabaseRecommendations", + AccessLevel: "Read", + Description: "Grants permission to describe a sync configuration", + Privilege: "GetSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:DescribeDBClusters", - "rds:DescribeDBInstances", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get recommendation preferences", - Privilege: "GetRecommendationPreferences", + AccessLevel: "List", + Description: "Grants permission to list Connection resources", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connection*", + }, { ConditionKeys: []string{ - "compute-optimizer:ResourceType", + "codestar-connections:ProviderTypeFilter", }, DependentActions: []string{}, ResourceType: "", @@ -56773,40 +58820,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get the recommendation summaries for the specified account(s)", - Privilege: "GetRecommendationSummaries", + Description: "Grants permission to list host resources", + Privilege: "ListHosts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codestar-connections:ProviderTypeFilter", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put recommendation preferences", - Privilege: "PutRecommendationPreferences", + AccessLevel: "List", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "ListInstallationTargets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "compute-optimizer:ResourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "autoscaling:DescribeAutoScalingGroups", - "autoscaling:DescribeAutoScalingInstances", - "ec2:DescribeInstances", - "rds:DescribeDBClusters", - "rds:DescribeDBInstances", + "codestar-connections:GetIndividualAccessToken", + "codestar-connections:StartOAuthHandshake", }, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the enrollment status", - Privilege: "UpdateEnrollmentStatus", + AccessLevel: "List", + Description: "Grants permission to list repository links", + Privilege: "ListRepositoryLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -56815,46 +58859,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Compute Optimizer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the allowed set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "config", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to return the current configuration items for resources that are present in your AWS Config aggregator", - Privilege: "BatchGetAggregateResourceConfig", + AccessLevel: "List", + Description: "Grants permission to list repository sync definitions", + Privilege: "ListRepositorySyncDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the current configuration for one or more requested resources", - Privilege: "BatchGetResourceConfig", + AccessLevel: "List", + Description: "Grants permission to list sync configurations for a repository link", + Privilege: "ListSyncConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -56864,156 +58884,185 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the authorization granted to the specified configuration aggregator account in a specified region", - Privilege: "DeleteAggregationAuthorization", + AccessLevel: "List", + Description: "Grants permission to the set of key-value pairs that are used to manage the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AggregationAuthorization*", + ResourceType: "Connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified AWS Config rule and all of its evaluation results", - Privilege: "DeleteConfigRule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "Host", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified configuration aggregator and the aggregated data associated with the aggregator", - Privilege: "DeleteConfigurationAggregator", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "RepositoryLink", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the configuration recorder", - Privilege: "DeleteConfigurationRecorder", + AccessLevel: "Read", + Description: "Grants permission to pass a Connection resource to an AWS service that accepts a Connection ARN as input, such as codepipeline:CreatePipeline", + Privilege: "PassConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codestar-connections:PassedToService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified conformance pack and all the AWS Config rules and all evaluation results within that conformance pack", - Privilege: "DeleteConformancePack", + AccessLevel: "Read", + Description: "Grants permission to pass a repository link resource to an AWS service that accepts a RepositoryLinkId as input, such as codestar-connections:CreateSyncConfiguration", + Privilege: "PassRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack*", + ResourceType: "RepositoryLink*", + }, + { + ConditionKeys: []string{ + "codestar-connections:PassedToService", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the delivery channel", - Privilege: "DeleteDeliveryChannel", + AccessLevel: "Read", + Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", + Privilege: "RegisterAppCode", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codestar-connections:HostArn", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the evaluation results for the specified Config rule", - Privilege: "DeleteEvaluationResults", + AccessLevel: "Read", + Description: "Grants permission to associate a third party server, such as a GitHub Enterprise Server instance, with a Host", + Privilege: "StartAppRegistrationHandshake", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codestar-connections:HostArn", + }, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified organization config rule and all of its evaluation results from all member accounts in that organization", - Privilege: "DeleteOrganizationConfigRule", + AccessLevel: "Read", + Description: "Grants permission to associate a third party, such as a Bitbucket App installation, with a Connection", + Privilege: "StartOAuthHandshake", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codestar-connections:ProviderType", + }, DependentActions: []string{}, - ResourceType: "OrganizationConfigRule*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified organization conformance pack and all of its evaluation results from all member accounts in that organization", - Privilege: "DeleteOrganizationConformancePack", + AccessLevel: "Tagging", + Description: "Grants permission to add or modify the tags of the given resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConformancePack*", + ResourceType: "Connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete pending authorization requests for a specified aggregator account in a specified region", - Privilege: "DeletePendingAggregationRequest", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "RepositoryLink", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the remediation configuration", - Privilege: "DeleteRemediationConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an AWS resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RemediationConfiguration*", + ResourceType: "Connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Host", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete one or more remediation exceptions for specific resource keys for a specific AWS Config Rule", - Privilege: "DeleteRemediationExceptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "RepositoryLink", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to record the configuration state for a custom resource that has been deleted", - Privilege: "DeleteResourceConfig", + Description: "Grants permission to update a Connection resource with an installation of the CodeStar Connections App", + Privilege: "UpdateConnectionInstallation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "codestar-connections:GetIndividualAccessToken", + "codestar-connections:GetInstallationUrl", + "codestar-connections:ListInstallationTargets", + "codestar-connections:StartOAuthHandshake", + }, + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codestar-connections:InstallationId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -57021,32 +59070,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the retention configuration", - Privilege: "DeleteRetentionConfiguration", + Description: "Grants permission to update a host resource", + Privilege: "UpdateHost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Host*", + }, + { + ConditionKeys: []string{ + "codestar-connections:VpcId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the stored query for an AWS account in an AWS Region", - Privilege: "DeleteStoredQuery", + Description: "Grants permission to update a repository link", + Privilege: "UpdateRepositoryLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StoredQuery*", + ResourceType: "RepositoryLink*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to schedule delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel", - Privilege: "DeliverConfigSnapshot", + AccessLevel: "Write", + Description: "Grants permission to update a sync blocker for a resource (cfn stack or other resources)", + Privilege: "UpdateSyncBlocker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -57056,60 +59112,148 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a list of compliant and noncompliant rules with the number of resources for compliant and noncompliant rules", - Privilege: "DescribeAggregateComplianceByConfigRules", + AccessLevel: "Write", + Description: "Grants permission to update a sync configuration", + Privilege: "UpdateSyncConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "codestar-connections:Branch", + }, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a list of compliant and noncompliant conformance packs along with count of compliant, non-compliant and total rules within each conformance pack", - Privilege: "DescribeAggregateComplianceByConformancePacks", + Description: "Grants permission to use a Connection resource to call provider actions", + Privilege: "UseConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "Connection*", + }, + { + ConditionKeys: []string{ + "codestar-connections:BranchName", + "codestar-connections:FullRepositoryId", + "codestar-connections:OwnerId", + "codestar-connections:ProviderAction", + "codestar-connections:ProviderPermissionsRequired", + "codestar-connections:RepositoryName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to return a list of authorizations granted to various aggregator accounts and regions", - Privilege: "DescribeAggregationAuthorizations", + Arn: "arn:${Partition}:codestar-connections:${Region}:${Account}:connection/${ConnectionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Connection", + }, + { + Arn: "arn:${Partition}:codestar-connections:${Region}:${Account}:host/${HostId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Host", + }, + { + Arn: "arn:${Partition}:codestar-connections:${Region}:${Account}:repository-link/${RepositoryLinkId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "RepositoryLink", + }, + }, + ServiceName: "AWS CodeStar Connections", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "codestar-notifications:NotificationsForResource", + Description: "Filters access based on the ARN of the resource for which notifications are configured", + Type: "ARN", + }, + }, + Prefix: "codestar-notifications", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a notification rule for a resource", + Privilege: "CreateNotificationRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "codestar-notifications:NotificationsForResource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to indicate whether the specified AWS Config rules are compliant", - Privilege: "DescribeComplianceByConfigRule", + AccessLevel: "Write", + Description: "Grants permission to delete a notification rule for a resource", + Privilege: "DeleteNotificationRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-notifications:NotificationsForResource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to indicate whether the specified AWS resources are compliant", - Privilege: "DescribeComplianceByResource", + AccessLevel: "Write", + Description: "Grants permission to delete a target for a notification rule", + Privilege: "DeleteTarget", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -57117,20 +59261,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return status information for each of your AWS managed Config rules", - Privilege: "DescribeConfigRuleEvaluationStatus", + Description: "Grants permission to get information about a notification rule", + Privilege: "DescribeNotificationRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-notifications:NotificationsForResource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return details about your AWS Config rules", - Privilege: "DescribeConfigRules", + Description: "Grants permission to list notifications event types", + Privilege: "ListEventTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -57140,189 +59294,330 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return status information for sources within an aggregator", - Privilege: "DescribeConfigurationAggregatorSourcesStatus", + AccessLevel: "List", + Description: "Grants permission to list notification rules in an AWS account", + Privilege: "ListNotificationRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return the details of one or more configuration aggregators", - Privilege: "DescribeConfigurationAggregators", + Description: "Grants permission to list the tags attached to a notification rule resource ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the current status of the specified configuration recorder", - Privilege: "DescribeConfigurationRecorderStatus", + AccessLevel: "List", + Description: "Grants permission to list the notification rule targets for an AWS account", + Privilege: "ListTargets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the names of one or more specified configuration recorders", - Privilege: "DescribeConfigurationRecorders", + AccessLevel: "Write", + Description: "Grants permission to create an association between a notification rule and an Amazon SNS topic", + Privilege: "Subscribe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-notifications:NotificationsForResource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return compliance information for each rule in that conformance pack", - Privilege: "DescribeConformancePackCompliance", + AccessLevel: "Tagging", + Description: "Grants permission to attach resource tags to a notification rule resource ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack*", + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide one or more conformance packs deployment status", - Privilege: "DescribeConformancePackStatus", + AccessLevel: "Write", + Description: "Grants permission to remove an association between a notification rule and an Amazon SNS topic", + Privilege: "Unsubscribe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-notifications:NotificationsForResource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of one or more conformance packs", - Privilege: "DescribeConformancePacks", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate resource tags from a notification rule resource ARN", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the current status of the specified delivery channel", - Privilege: "DescribeDeliveryChannelStatus", + AccessLevel: "Write", + Description: "Grants permission to change a notification rule for a resource", + Privilege: "UpdateNotificationRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notificationrule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "codestar-notifications:NotificationsForResource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:codestar-notifications:${Region}:${Account}:notificationrule/${NotificationRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "notificationrule", + }, + }, + ServiceName: "AWS CodeStar Notifications", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "List", - Description: "Grants permission to return details about the specified delivery channel", - Privilege: "DescribeDeliveryChannels", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with CodeWhisperer resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "codewhisperer", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for CodeWhisperer customization resource", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide organization config rule deployment status for an organization", - Privilege: "DescribeOrganizationConfigRuleStatuses", + AccessLevel: "Write", + Description: "Grants permission to invoke AssociateCustomizationPermission on CodeWhisperer", + Privilege: "AssociateCustomizationPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of organization config rules", - Privilege: "DescribeOrganizationConfigRules", + AccessLevel: "Write", + Description: "Grants permission to invoke CreateCustomization on CodeWhisperer", + Privilege: "CreateCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide organization conformance pack deployment status for an organization", - Privilege: "DescribeOrganizationConformancePackStatuses", + AccessLevel: "Write", + Description: "Grants permission to invoke CreateProfile on CodeWhisperer", + Privilege: "CreateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of organization conformance packs", - Privilege: "DescribeOrganizationConformancePacks", + AccessLevel: "Write", + Description: "Grants permission to invoke DeleteCustomization on CodeWhisperer", + Privilege: "DeleteCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of all pending aggregation requests", - Privilege: "DescribePendingAggregationRequests", + AccessLevel: "Write", + Description: "Grants permission to invoke DeleteProfile on CodeWhisperer", + Privilege: "DeleteProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the details of one or more remediation configurations", - Privilege: "DescribeRemediationConfigurations", + AccessLevel: "Write", + Description: "Grants permission to invoke DisassociateCustomizationPermission on CodeWhisperer", + Privilege: "DisassociateCustomizationPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RemediationConfiguration*", + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the details of one or more remediation exceptions", - Privilege: "DescribeRemediationExceptions", + AccessLevel: "Read", + Description: "Grants permission to invoke GenerateRecommendations on CodeWhisperer", + Privilege: "GenerateRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -57333,308 +59628,424 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to provide a detailed view of a Remediation Execution for a set of resources including state, timestamps and any error messages for steps that have failed", - Privilege: "DescribeRemediationExecutionStatus", + Description: "Grants permission to invoke GetCustomization on CodeWhisperer", + Privilege: "GetCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RemediationConfiguration*", + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return the details of one or more retention configurations", - Privilege: "DescribeRetentionConfigurations", + Description: "Grants permission to invoke ListCustomizationPermissions on CodeWhisperer", + Privilege: "ListCustomizationPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the evaluation results for the specified AWS Config rule for a specific resource in a rule", - Privilege: "GetAggregateComplianceDetailsByConfigRule", + AccessLevel: "List", + Description: "Grants permission to invoke ListCustomizationVersions on CodeWhisperer", + Privilege: "ListCustomizationVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the number of compliant and noncompliant rules for one or more accounts and regions in an aggregator", - Privilege: "GetAggregateConfigRuleComplianceSummary", + AccessLevel: "List", + Description: "Grants permission to invoke ListCustomizations on CodeWhisperer", + Privilege: "ListCustomizations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "customization*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the number of compliant and noncompliant conformance packs for one or more accounts and regions in an aggregator", - Privilege: "GetAggregateConformancePackComplianceSummary", + AccessLevel: "List", + Description: "Grants permission to invoke ListProfiles on CodeWhisperer", + Privilege: "ListProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the resource counts across accounts and regions that are present in your AWS Config aggregator", - Privilege: "GetAggregateDiscoveredResourceCounts", + AccessLevel: "List", + Description: "Grants permission to invoke ListTagsForResource on CodeWhisperer", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "customization", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return configuration item that is aggregated for your specific resource in a specific source account and region", - Privilege: "GetAggregateResourceConfig", + AccessLevel: "Tagging", + Description: "Grants permission to invoke TagResource on CodeWhisperer", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "customization", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the evaluation results for the specified AWS Config rule", - Privilege: "GetComplianceDetailsByConfigRule", + AccessLevel: "Tagging", + Description: "Grants permission to invoke UntagResource on CodeWhisperer", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "customization", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the evaluation results for the specified AWS resource", - Privilege: "GetComplianceDetailsByResource", + AccessLevel: "Write", + Description: "Grants permission to invoke UpdateCustomization on CodeWhisperer", + Privilege: "UpdateCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customization*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the number of AWS Config rules that are compliant and noncompliant, up to a maximum of 25 for each", - Privilege: "GetComplianceSummaryByConfigRule", + AccessLevel: "Write", + Description: "Grants permission to invoke UpdateProfile on CodeWhisperer", + Privilege: "UpdateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to return the number of resources that are compliant and the number that are noncompliant", - Privilege: "GetComplianceSummaryByResourceType", + Arn: "arn:${Partition}:codewhisperer:${Region}:${Account}:profile/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "profile", + }, + { + Arn: "arn:${Partition}:codewhisperer:${Region}:${Account}:customization/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "customization", + }, + }, + ServiceName: "Amazon CodeWhisperer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a key that is present in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "cognito-identity", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a new identity pool", + Privilege: "CreateIdentityPool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return compliance details of a conformance pack for all AWS resources that are monitered by conformance pack", - Privilege: "GetConformancePackComplianceDetails", + AccessLevel: "Write", + Description: "Grants permission to delete identities from an identity pool. You can specify a list of 1-60 identities that you want to delete", + Privilege: "DeleteIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide compliance summary for one or more conformance packs", - Privilege: "GetConformancePackComplianceSummary", + AccessLevel: "Write", + Description: "Grants permission to delete a user pool. Once a pool is deleted, users will not be able to authenticate with the pool", + Privilege: "DeleteIdentityPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack*", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the policy definition containing the logic for your AWS Config Custom Policy rule", - Privilege: "GetCustomRulePolicy", + Description: "Grants permission to return metadata related to the given identity, including when the identity was created and any associated linked logins", + Privilege: "DescribeIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account", - Privilege: "GetDiscoveredResourceCounts", + Description: "Grants permission to get details about a particular identity pool, including the pool name, ID description, creation date, and current number of users", + Privilege: "DescribeIdentityPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return detailed status for each member account within an organization for a given organization config rule", - Privilege: "GetOrganizationConfigRuleDetailedStatus", + Description: "Grants permission to return credentials for the provided identity ID", + Privilege: "GetCredentialsForIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConfigRule*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return detailed status for each member account within an organization for a given organization conformance pack", - Privilege: "GetOrganizationConformancePackDetailedStatus", + AccessLevel: "Write", + Description: "Grants permission to generate (or retrieve) a Cognito ID. Supplying multiple logins will create an implicit linked account", + Privilege: "GetId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConformancePack*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the policy definition containing the logic for your organization AWS Config Custom Policy rule", - Privilege: "GetOrganizationCustomRulePolicy", + Description: "Grants permission to get analytics data about the total current identity count for all identity pool identity provider (IdPs)", + Privilege: "GetIdentityPoolAnalytics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConfigRule*", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a list of configuration items for the specified resource", - Privilege: "GetResourceConfigHistory", + Description: "Grants permission to get analytics data about the number of new identities and total identities for all identity pool identity providers (IdPs)", + Privilege: "GetIdentityPoolDailyAnalytics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the summary of resource evaluations for a specific resource evaluation ID", - Privilege: "GetResourceEvaluationSummary", + Description: "Grants permission to get the roles for an identity pool", + Privilege: "GetIdentityPoolRoles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the details of a specific stored query", - Privilege: "GetStoredQuery", + Description: "Grants permission to get analytics data about the number of new identities and total identities for one identity pool identity provider (IdPs)", + Privilege: "GetIdentityProviderDailyAnalytics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StoredQuery*", + ResourceType: "identitypool*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to accept a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions", - Privilege: "ListAggregateDiscoveredResources", + AccessLevel: "Read", + Description: "Grants permission to get an OpenID token, using a known Cognito ID", + Privilege: "GetOpenIdToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the percentage of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations", - Privilege: "ListConformancePackComplianceScores", + AccessLevel: "Read", + Description: "Grants permission to register (or retrieve) a Cognito IdentityId and an OpenID Connect token for a user authenticated by your backend authentication process", + Privilege: "GetOpenIdTokenForDeveloperIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to accept a resource type and returns a list of resource identifiers for the resources of that type", - Privilege: "ListDiscoveredResources", + AccessLevel: "Read", + Description: "Grants permission to get the principal tags for an identity pool and provider", + Privilege: "GetPrincipalTagAttributeMap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the resource evaluation summaries for an AWS account in an AWS Region", - Privilege: "ListResourceEvaluations", + Description: "Grants permission to list the identities in an identity pool", + Privilege: "ListIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the stored queries for an AWS account in an AWS Region", - Privilege: "ListStoredQueries", + Description: "Grants permission to list all of the Cognito identity pools registered for your account", + Privilege: "ListIdentityPools", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -57645,55 +60056,73 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for AWS Config resource", + Description: "Grants permission to list the tags that are assigned to an Amazon Cognito identity pool", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AggregationAuthorization", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ConfigRule", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ConfigurationAggregator", + ResourceType: "identitypool", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the IdentityId associated with a DeveloperUserIdentifier or the list of DeveloperUserIdentifiers associated with an IdentityId for an existing identity", + Privilege: "LookupDeveloperIdentity", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack", + ResourceType: "identitypool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to merge two users having different IdentityIds, existing in the same identity pool, and identified by the same developer provider", + Privilege: "MergeDeveloperIdentities", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConfigRule", + ResourceType: "identitypool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the roles for an identity pool. These roles are used when making calls to GetCredentialsForIdentity action", + Privilege: "SetIdentityPoolRoles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConformancePack", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the principal tags for an identity pool and provider. These tags are used when making calls to GetOpenIdToken action", + Privilege: "SetPrincipalTagAttributeMap", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StoredQuery", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to authorize the aggregator account and region to collect data from the source account and region", - Privilege: "PutAggregationAuthorization", + AccessLevel: "Tagging", + Description: "Grants permission to assign a set of tags to an Amazon Cognito identity pool", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AggregationAuthorization*", + ResourceType: "identitypool", }, { ConditionKeys: []string{ @@ -57707,41 +60136,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add or update an AWS Config rule for evaluating whether your AWS resources comply with your desired configurations", - Privilege: "PutConfigRule", + Description: "Grants permission to unlink a DeveloperUserIdentifier from an existing identity", + Privilege: "UnlinkDeveloperIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "identitypool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unlink a federated identity from an existing account", + Privilege: "UnlinkIdentity", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create and update the configuration aggregator with the selected source accounts and regions", - Privilege: "PutConfigurationAggregator", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from an Amazon Cognito identity pool", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "organizations:EnableAWSServiceAccess", - "organizations:ListDelegatedAdministrators", - }, - ResourceType: "ConfigurationAggregator*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identitypool", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -57751,612 +60179,519 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new configuration recorder to record the selected resource configurations", - Privilege: "PutConfigurationRecorder", + Description: "Grants permission to update an identity pool", + Privilege: "UpdateIdentityPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to create or update a conformance pack", - Privilege: "PutConformancePack", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "s3:GetObject", - "s3:ListBucket", - "ssm:GetDocument", - }, - ResourceType: "ConformancePack*", - }, + Arn: "arn:${Partition}:cognito-identity:${Region}:${Account}:identitypool/${IdentityPoolId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "identitypool", + }, + }, + ServiceName: "Amazon Cognito Identity", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a key that is present in the request", + Type: "ArrayOfString", }, + }, + Prefix: "cognito-idp", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic", - Privilege: "PutDeliveryChannel", + Description: "Grants permission to add user attributes to the user pool schema", + Privilege: "AddCustomAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to be used by an AWS Lambda function to deliver evaluation results to AWS Config", - Privilege: "PutEvaluations", + Description: "Grants permission to add any user to any group", + Privilege: "AdminAddUserToGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deliver evaluation result to AWS Config", - Privilege: "PutExternalEvaluation", + Description: "Grants permission to confirm any user's registration without a confirmation code", + Privilege: "AdminConfirmSignUp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or update organization config rule for your entire organization evaluating whether your AWS resources comply with your desired configurations", - Privilege: "PutOrganizationConfigRule", + Description: "Grants permission to create new users and send welcome messages via email or SMS", + Privilege: "AdminCreateUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "organizations:EnableAWSServiceAccess", - "organizations:ListDelegatedAdministrators", - }, - ResourceType: "OrganizationConfigRule*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or update organization conformance pack for your entire organization evaluating whether your AWS resources comply with your desired configurations", - Privilege: "PutOrganizationConformancePack", + Description: "Grants permission to delete any user", + Privilege: "AdminDeleteUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "organizations:EnableAWSServiceAccess", - "organizations:ListDelegatedAdministrators", - "s3:GetObject", - }, - ResourceType: "OrganizationConformancePack*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or update the remediation configuration with a specific AWS Config rule with the selected target or action", - Privilege: "PutRemediationConfigurations", + Description: "Grants permission to delete attributes from any user", + Privilege: "AdminDeleteUserAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "RemediationConfiguration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or update remediation exceptions for specific resources for a specific AWS Config rule", - Privilege: "PutRemediationExceptions", + Description: "Grants permission to unlink any user pool user from a third-party identity provider (IdP) user", + Privilege: "AdminDisableProviderForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to record the configuration state for the resource provided in the request", - Privilege: "PutResourceConfig", + Description: "Grants permission to deactivate any user", + Privilege: "AdminDisableUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and update the retention configuration with details about retention period (number of days) that AWS Config stores your historical information", - Privilege: "PutRetentionConfiguration", + Description: "Grants permission to activate any user", + Privilege: "AdminEnableUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to save a new query or updates an existing saved query", - Privilege: "PutStoredQuery", + Description: "Grants permission to deregister any user's devices", + Privilege: "AdminForgetDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StoredQuery*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to accept a structured query language (SQL) SELECT command and an aggregator to query configuration state of AWS resources across multiple accounts and regions, performs the corresponding search, and returns resource configurations matching the properties", - Privilege: "SelectAggregateResourceConfig", + Description: "Grants permission to get information about any user's devices", + Privilege: "AdminGetDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator*", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to accept a structured query language (SQL) SELECT command, performs the corresponding search, and returns resource configurations matching the properties", - Privilege: "SelectResourceConfig", + Description: "Grants permission to look up any user by user name", + Privilege: "AdminGetUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to evaluate your resources against the specified Config rules", - Privilege: "StartConfigRulesEvaluation", + Description: "Grants permission to authenticate any user", + Privilege: "AdminInitiateAuth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule*", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start recording configurations of the AWS resources you have selected to record in your AWS account", - Privilege: "StartConfigurationRecorder", + Description: "Grants permission to link any user pool user to a third-party IdP user", + Privilege: "AdminLinkProviderForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to run an on-demand remediation for the specified AWS Config rules against the last known remediation configuration", - Privilege: "StartRemediationExecution", + AccessLevel: "List", + Description: "Grants permission to list any user's remembered devices", + Privilege: "AdminListDevices", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to evaluate your resource details against the AWS Config rules in your account", - Privilege: "StartResourceEvaluation", + AccessLevel: "List", + Description: "Grants permission to list the groups that any user belongs to", + Privilege: "AdminListGroupsForUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeType", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop recording configurations of the AWS resources you have selected to record in your AWS account", - Privilege: "StopConfigurationRecorder", + AccessLevel: "Read", + Description: "Grants permission to lists sign-in events for any user", + Privilege: "AdminListUserAuthEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate the specified tags to a resource with the specified resourceArn", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to remove any user from any group", + Privilege: "AdminRemoveUserFromGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AggregationAuthorization", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset any user's password", + Privilege: "AdminResetUserPassword", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to respond to an authentication challenge during the authentication of any user", + Privilege: "AdminRespondToAuthChallenge", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set any user's preferred MFA method", + Privilege: "AdminSetUserMFAPreference", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set any user's password", + Privilege: "AdminSetUserPassword", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConfigRule", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set user settings for any user", + Privilege: "AdminSetUserSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConformancePack", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update advanced security feedback for any user's authentication event", + Privilege: "AdminUpdateAuthEventFeedback", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StoredQuery", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete specified tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update the status of any user's remembered devices", + Privilege: "AdminUpdateDeviceStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AggregationAuthorization", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to updates any user's standard or custom attributes", + Privilege: "AdminUpdateUserAttributes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigRule", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to sign out any user from all sessions", + Privilege: "AdminUserGlobalSignOut", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationAggregator", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to return a unique generated shared secret key code for the user", + Privilege: "AssociateSoftwareToken", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConformancePack", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate the user pool with an AWS WAF web ACL", + Privilege: "AssociateWebACL", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConfigRule", + ResourceType: "userpool*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OrganizationConformancePack", + ResourceType: "webacl*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the password for a specified user in a user pool", + Privilege: "ChangePassword", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StoredQuery", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:config:${Region}:${Account}:aggregation-authorization/${AggregatorAccount}/${AggregatorRegion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "AggregationAuthorization", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:config-aggregator/${AggregatorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ConfigurationAggregator", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:config-rule/${ConfigRuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ConfigRule", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:conformance-pack/${ConformancePackName}/${ConformancePackId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ConformancePack", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:organization-config-rule/${OrganizationConfigRuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "OrganizationConfigRule", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:organization-conformance-pack/${OrganizationConformancePackId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "OrganizationConformancePack", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:remediation-configuration/${RemediationConfigurationId}", - ConditionKeys: []string{}, - Resource: "RemediationConfiguration", - }, - { - Arn: "arn:${Partition}:config:${Region}:${Account}:stored-query/${StoredQueryName}/${StoredQueryId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "StoredQuery", - }, - }, - ServiceName: "AWS Config", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by using tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by using tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by using tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "connect:AttributeType", - Description: "Filters access by the attribute type of the Amazon Connect instance", - Type: "String", - }, - { - Condition: "connect:InstanceId", - Description: "Filters access by restricting federation into specified Amazon Connect instances", - Type: "String", - }, - { - Condition: "connect:MonitorCapabilities", - Description: "Filters access by restricting the monitor capabilities of the user in the request", - Type: "ArrayOfString", - }, - { - Condition: "connect:SearchContactsByContactAnalysis", - Description: "Filters access by restricting searches using analysis outputs from Amazon Connect Contact Lens", - Type: "ArrayOfString", - }, - { - Condition: "connect:SearchTag/${TagKey}", - Description: "Filters access by TagFilter condition passed in the search request", - Type: "String", - }, - { - Condition: "connect:StorageResourceType", - Description: "Filters access by restricting the storage resource type of the Amazon Connect instance storage configuration", - Type: "String", - }, - { - Condition: "connect:UserArn", - Description: "Filters access by UserArn", - Type: "ARN", - }, - }, - Prefix: "connect", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to activate an evaluation form in the specified Amazon Connect instance. After the evaluation form is activated, it is available to start new evaluations based on the form", - Privilege: "ActivateEvaluationForm", + Description: "Grants permission to confirm tracking of the device. This API call is the call that begins device tracking", + Privilege: "ConfirmDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to federate into an Amazon Connect instance (Log in for emergency access functionality in the Amazon Connect console)", - Privilege: "AdminGetEmergencyAccessToken", + Description: "Grants permission to allow a user to enter a confirmation code to reset a forgotten password", + Privilege: "ConfirmForgotPassword", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "connect:DescribeInstance", - "connect:ListInstances", - "ds:DescribeDirectories", - }, - ResourceType: "instance*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate approved origin for an existing Amazon Connect instance", - Privilege: "AssociateApprovedOrigin", + Description: "Grants permission to confirm registration of a user and handles the existing alias from a previous user", + Privilege: "ConfirmSignUp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a Lex bot for an existing Amazon Connect instance", - Privilege: "AssociateBot", + Description: "Grants permission to create new user pool groups", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "lex:CreateResourcePolicy", - "lex:DescribeBotAlias", - "lex:GetBot", - "lex:UpdateResourcePolicy", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a Customer Profiles domain for an existing Amazon Connect instance", - Privilege: "AssociateCustomerProfilesDomain", + Description: "Grants permission to add identity providers to user pools", + Privilege: "CreateIdentityProvider", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "profile:GetDomain", - }, - ResourceType: "instance*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to default vocabulary for an existing Amazon Connect instance", - Privilege: "AssociateDefaultVocabulary", + Description: "Grants permission to create a branding settings for managed login and associate it with an app client", + Privilege: "CreateManagedLoginBranding", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a resource with a flow in an Amazon Connect instance", - Privilege: "AssociateFlow", + Description: "Grants permission to create and configure scopes for OAuth 2.0 resource servers", + Privilege: "CreateResourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create user CSV import jobs", + Privilege: "CreateUserImportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create and set password policy for user pools", + Privilege: "CreateUserPool", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "aws:ResourceTag/${TagKey}", - "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -58365,306 +60700,263 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate instance storage for an existing Amazon Connect instance", - Privilege: "AssociateInstanceStorageConfig", + Description: "Grants permission to create user pool app clients", + Privilege: "CreateUserPoolClient", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DescribeDirectories", - "firehose:DescribeDeliveryStream", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "kinesis:DescribeStream", - "kms:CreateGrant", - "kms:DescribeKey", - "s3:GetBucketAcl", - "s3:GetBucketLocation", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:StorageResourceType", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a Lambda function for an existing Amazon Connect instance", - Privilege: "AssociateLambdaFunction", + Description: "Grants permission to add user pool domains", + Privilege: "CreateUserPoolDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lambda:AddPermission", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a Lex bot for an existing Amazon Connect instance", - Privilege: "AssociateLexBot", + Description: "Grants permission to delete any empty user pool group", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "lex:GetBot", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate contact flow resources to phone number resources in an Amazon Connect instance", - Privilege: "AssociatePhoneNumberContactFlow", + Description: "Grants permission to delete any identity provider from user pools", + Privilege: "DeleteIdentityProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the managed login branding style for any app client", + Privilege: "DeleteManagedLoginBranding", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate quick connects with a queue in an Amazon Connect instance", - Privilege: "AssociateQueueQuickConnects", + Description: "Grants permission to delete any OAuth 2.0 resource server from user pools", + Privilege: "DeleteResourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to allow a user to delete one's self", + Privilege: "DeleteUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate queues with a routing profile in an Amazon Connect instance", - Privilege: "AssociateRoutingProfileQueues", + Description: "Grants permission to delete the attributes for a user", + Privilege: "DeleteUserAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "routing-profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a security key for an existing Amazon Connect instance", - Privilege: "AssociateSecurityKey", + Description: "Grants permission to delete user pools", + Privilege: "DeleteUserPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete any user pool app client", + Privilege: "DeleteUserPoolClient", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a user to a traffic distribution group in the specified Amazon Connect instance", - Privilege: "AssociateTrafficDistributionGroupUser", + Description: "Grants permission to delete any user pool domain", + Privilege: "DeleteUserPoolDomain", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "connect:DescribeUser", - "connect:SearchUsers", - }, - ResourceType: "instance*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe any user pool identity provider", + Privilege: "DescribeIdentityProvider", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - "aws:ResourceTag/${TagKey}", - "connect:SearchTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate user proficiencies to a user in an Amazon Connect instance", - Privilege: "AssociateUserProficiencies", + AccessLevel: "Read", + Description: "Grants permission to get the detailed information about the branding style of managed login", + Privilege: "DescribeManagedLoginBranding", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the detailed information about the branding style of managed login associated with an appclient", + Privilege: "DescribeManagedLoginBrandingByClient", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to grant access and to associate the datasets with the specified AWS account", - Privilege: "BatchAssociateAnalyticsDataSet", + AccessLevel: "Read", + Description: "Grants permission to describe any OAuth 2.0 resource server", + Privilege: "DescribeResourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the risk configuration settings of user pools and app clients", + Privilege: "DescribeRiskConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke access and to disassociate the datasets with the specified AWS account", - Privilege: "BatchDisassociateAnalyticsDataSet", + AccessLevel: "Read", + Description: "Grants permission to describe any user import job", + Privilege: "DescribeUserImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe user pools", + Privilege: "DescribeUserPool", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get metadata for multiple attached files from an Amazon Connect instance", - Privilege: "BatchGetAttachedFileMetadata", + Description: "Grants permission to describe any user pool app client", + Privilege: "DescribeUserPoolClient", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attached-file*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe any user pool domain", + Privilege: "DescribeUserPoolDomain", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about the flow associations for the specified Amazon Connect instance", - Privilege: "BatchGetFlowAssociation", + AccessLevel: "Write", + Description: "Grants permission to disassociate the user pool with an AWS WAF web ACL", + Privilege: "DisassociateWebACL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to forget the specified device", + Privilege: "ForgetDevice", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -58672,359 +60964,323 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to put contacts in an Amazon Connect instance", - Privilege: "BatchPutContact", + Description: "Grants permission to send a message to the end user with a confirmation code that is required to change the user's password", + Privilege: "ForgotPassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to generate headers for a user import .csv file", + Privilege: "GetCSVHeader", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the device", + Privilege: "GetDevice", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to claim phone number resources in an Amazon Connect instance or traffic distribution group", - Privilege: "ClaimPhoneNumber", + AccessLevel: "Read", + Description: "Grants permission to describe a user pool group", + Privilege: "GetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to correlate a user pool IdP identifier to the IdP Name", + Privilege: "GetIdentityProviderByIdentifier", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the detailed activity logging configuration for a user pool", + Privilege: "GetLogDeliveryConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-phone-number*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to look up signing certificates for user pools", + Privilege: "GetSigningCertificate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to complete an attached file upload in an Amazon Connect instance", - Privilege: "CompleteAttachedFileUpload", + AccessLevel: "Read", + Description: "Grants permission to get UI customization information for the hosted UI of any app client", + Privilege: "GetUICustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attached-file*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the user attributes and metadata for a user", + Privilege: "GetUser", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create agent status in an Amazon Connect instance", - Privilege: "CreateAgentStatus", + AccessLevel: "Read", + Description: "Grants permission to get the user attribute verification code for the specified attribute name", + Privilege: "GetUserAttributeVerificationCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create authentication profile resources in an Amazon Connect instance", - Privilege: "CreateAuthenticationProfile", + AccessLevel: "Read", + Description: "Grants permission to look up the MFA configuration of user pools", + Privilege: "GetUserPoolMfaConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authentication-profile*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the AWS WAF web ACL that is associated with an Amazon Cognito user pool", + Privilege: "GetWebACLForResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a contact flow in an Amazon Connect instance", - Privilege: "CreateContactFlow", + Description: "Grants permission to sign out users from all devices", + Privilege: "GlobalSignOut", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a contact flow module in an Amazon Connect instance", - Privilege: "CreateContactFlowModule", + Description: "Grants permission to initiate the authentication flow", + Privilege: "InitiateAuth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an evaluation form in the specified Amazon Connect instance. The form can be used to define questions related to agent performance, and create sections to organize such questions. Question and section identifiers cannot be duplicated within the same evaluation form", - Privilege: "CreateEvaluationForm", + AccessLevel: "List", + Description: "Grants permission to list the devices", + Privilege: "ListDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create hours of operation in an Amazon Connect instance", - Privilege: "CreateHoursOfOperation", + AccessLevel: "List", + Description: "Grants permission to list all groups in user pools", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all identity providers in user pools", + Privilege: "ListIdentityProviders", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon Connect instance", - Privilege: "CreateInstance", + AccessLevel: "List", + Description: "Grants permission to list all resource servers in user pools", + Privilege: "ListResourceServers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ds:AuthorizeApplication", - "ds:CheckAlias", - "ds:CreateAlias", - "ds:CreateDirectory", - "ds:CreateIdentityPoolDirectory", - "ds:DeleteDirectory", - "ds:DescribeDirectories", - "ds:UnauthorizeApplication", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userpool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an integration association with an Amazon Connect instance", - Privilege: "CreateIntegrationAssociation", + AccessLevel: "List", + Description: "Grants permission to list the user pools that are associated with an AWS WAF web ACL", + Privilege: "ListResourcesForWebACL", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "app-integrations:CreateApplicationAssociation", - "app-integrations:CreateEventIntegrationAssociation", - "app-integrations:GetApplication", - "cases:GetDomain", - "connect:DescribeInstance", - "ds:DescribeDirectories", - "events:PutRule", - "events:PutTargets", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "mobiletargeting:GetApp", - "voiceid:DescribeDomain", - "wisdom:GetAssistant", - "wisdom:GetKnowledgeBase", - "wisdom:TagResource", - }, - ResourceType: "instance*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration-association*", + ResourceType: "webacl*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the tags that are assigned to an Amazon Cognito user pool", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a participant to an ongoing contact", - Privilege: "CreateParticipant", + AccessLevel: "List", + Description: "Grants permission to list all user import jobs", + Privilege: "ListUserImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all app clients in user pools", + Privilege: "ListUserPoolClients", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all user pools", + Privilege: "ListUserPools", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create persistent contact associations for a contact", - Privilege: "CreatePersistentContactAssociation", + AccessLevel: "List", + Description: "Grants permission to list all user pool users", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the users in any group", + Privilege: "ListUsersInGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a predefined attribute in an Amazon Connect instance", - Privilege: "CreatePredefinedAttribute", + Description: "Grants permission to resend the confirmation (for confirmation of registration) to a specific user in the user pool", + Privilege: "ResendConfirmationCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a prompt in an Amazon Connect instance", - Privilege: "CreatePrompt", + Description: "Grants permission to respond to the authentication challenge", + Privilege: "RespondToAuthChallenge", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:Decrypt", - "s3:GetObject", - "s3:GetObjectAcl", - }, - ResourceType: "prompt*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -59032,179 +61288,138 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a queue in an Amazon Connect instance", - Privilege: "CreateQueue", + Description: "Grants permission to revoke all of the access tokens generated by the specified refresh token", + Privilege: "RevokeToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-flow", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "phone-number", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "quick-connect", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a quick connect in an Amazon Connect instance", - Privilege: "CreateQuickConnect", + Description: "Grants permission to set up or modify the detailed activity logging configuration of a user pool", + Privilege: "SetLogDeliveryConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set risk configuration for user pools and app clients", + Privilege: "SetRiskConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to customize the hosted UI for any app client", + Privilege: "SetUICustomization", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set MFA preference for the user in the userpool", + Privilege: "SetUserMFAPreference", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a routing profile in an Amazon Connect instance", - Privilege: "CreateRoutingProfile", + Description: "Grants permission to set user pool MFA configuration", + Privilege: "SetUserPoolMfaConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "routing-profile*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a rule in an Amazon Connect instance", - Privilege: "CreateRule", + Description: "Grants permission to set the user settings like multi-factor authentication (MFA)", + Privilege: "SetUserSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a security profile for the specified Amazon Connect instance", - Privilege: "CreateSecurityProfile", + Description: "Grants permission to register the user in the specified user pool and creates a user name, password, and user attributes", + Privilege: "SignUp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a task template in an Amazon Connect instance", - Privilege: "CreateTaskTemplate", + Description: "Grants permission to start any user import job", + Privilege: "StartUserImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template*", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic distribution group", - Privilege: "CreateTrafficDistributionGroup", + Description: "Grants permission to stop any user import job", + Privilege: "StopUserImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a user pool", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "userpool", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -59212,32 +61427,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a use case for an integration association", - Privilege: "CreateUseCase", + AccessLevel: "Tagging", + Description: "Grants permission to untag a user pool", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "connect:DescribeInstance", - "ds:DescribeDirectories", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integration-association*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "use-case*", + ResourceType: "userpool", }, { ConditionKeys: []string{ - "connect:InstanceId", - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -59247,117 +61447,102 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a user for the specified Amazon Connect instance", - Privilege: "CreateUser", + Description: "Grants permission to update the feedback for the user authentication event", + Privilege: "UpdateAuthEventFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the device status", + Privilege: "UpdateDeviceStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of any group", + Privilege: "UpdateGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "userpool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of any user pool IdP", + Privilege: "UpdateIdentityProvider", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a user hierarchy group in an Amazon Connect instance", - Privilege: "CreateUserHierarchyGroup", + Description: "Grants permission to update the branding settings of a managed login", + Privilege: "UpdateManagedLoginBranding", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a view in an Amazon Connect instance", - Privilege: "CreateView", + Description: "Grants permission to update the configuration of any OAuth 2.0 resource server", + Privilege: "UpdateResourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a view version in an Amazon Connect instance", - Privilege: "CreateViewVersion", + Description: "Grants permission to allow a user to update a specific attribute (one at a time)", + Privilege: "UpdateUserAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a vocabulary in an Amazon Connect instance", - Privilege: "CreateVocabulary", + Description: "Grants permission to updates the configuration of user pools", + Privilege: "UpdateUserPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vocabulary*", + ResourceType: "userpool*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -59366,236 +61551,212 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deactivate an evaluation form in the specified Amazon Connect instance. After a form is deactivated, it is no longer available for users to start new evaluations based on the form", - Privilege: "DeactivateEvaluationForm", + Description: "Grants permission to update any user pool client", + Privilege: "UpdateUserPoolClient", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an attached file from an Amazon Connect instance", - Privilege: "DeleteAttachedFile", + Description: "Grants permission to replace the certificate for any custom domain", + Privilege: "UpdateUserPoolDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cases:DeleteRelatedItem", - }, - ResourceType: "attached-file*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "userpool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a contact evaluation in the specified Amazon Connect instance", - Privilege: "DeleteContactEvaluation", + Description: "Grants permission to register a user's entered TOTP code and mark the user's software token MFA status as verified if successful", + Privilege: "VerifySoftwareToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a contact flow in an Amazon Connect instance", - Privilege: "DeleteContactFlow", + Description: "Grants permission to verify a user attribute using a one time verification code", + Privilege: "VerifyUserAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:cognito-idp:${Region}:${Account}:userpool/${UserPoolId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "userpool", + }, + { + Arn: "arn:${Partition}:wafv2:${Region}:${Account}:${Scope}/webacl/${Name}/${Id}", + ConditionKeys: []string{}, + Resource: "webacl", + }, + }, + ServiceName: "Amazon Cognito User Pools", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "cognito-sync", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a contact flow module in an Amazon Connect instance", - Privilege: "DeleteContactFlowModule", + Description: "Grants permission to initiate a bulk publish of all existing datasets for an Identity Pool to the configured stream", + Privilege: "BulkPublish", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an evaluation form in the specified Amazon Connect instance. If the version property is provided, only the specified version of the evaluation form is deleted", - Privilege: "DeleteEvaluationForm", + Description: "Grants permission to delete a specific dataset", + Privilege: "DeleteDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get metadata about a dataset by identity and dataset name", + Privilege: "DescribeDataset", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete hours of operation in an Amazon Connect instance", - Privilege: "DeleteHoursOfOperation", + AccessLevel: "Read", + Description: "Grants permission to get usage details (for example, data storage) about a particular identity pool", + Privilege: "DescribeIdentityPoolUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation*", + ResourceType: "identitypool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get usage information for an identity, including number of datasets and data usage", + Privilege: "DescribeIdentityUsage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Connect instance. When you remove an instance, the link to an existing AWS directory is also removed", - Privilege: "DeleteInstance", + AccessLevel: "Read", + Description: "Grants permission to get the status of the last BulkPublish operation for an identity pool", + Privilege: "GetBulkPublishDetails", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DeleteDirectory", - "ds:DescribeDirectories", - "ds:UnauthorizeApplication", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an integration association from an Amazon Connect instance. The association must not have any use cases associated with it", - Privilege: "DeleteIntegrationAssociation", + AccessLevel: "Read", + Description: "Grants permission to get the events and the corresponding Lambda functions associated with an identity pool", + Privilege: "GetCognitoEvents", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "app-integrations:DeleteApplicationAssociation", - "app-integrations:DeleteEventIntegrationAssociation", - "connect:DescribeInstance", - "ds:DescribeDirectories", - "events:DeleteRule", - "events:ListTargetsByRule", - "events:RemoveTargets", - }, - ResourceType: "instance*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration-association*", + ResourceType: "identitypool*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the configuration settings of an identity pool", + Privilege: "GetIdentityPoolConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a predefined attribute in an Amazon Connect instance", - Privilege: "DeletePredefinedAttribute", + AccessLevel: "List", + Description: "Grants permission to list datasets for an identity", + Privilege: "ListDatasets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of identity pools registered with Cognito", + Privilege: "ListIdentityPoolUsage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a prompt in an Amazon Connect instance", - Privilege: "DeletePrompt", + AccessLevel: "Read", + Description: "Grants permission to get paginated records, optionally changed after a particular sync count for a dataset and identity", + Privilege: "ListRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prompt*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to query records", + Privilege: "QueryRecords", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -59603,224 +61764,254 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a queue in an Amazon Connect instance", - Privilege: "DeleteQueue", + Description: "Grants permission to register a device to receive push sync notifications", + Privilege: "RegisterDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a quick connect in an Amazon Connect instance", - Privilege: "DeleteQuickConnect", + Description: "Grants permission to set the AWS Lambda function for a given event type for an identity pool", + Privilege: "SetCognitoEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete routing profiles in an Amazon Connect instance", - Privilege: "DeleteRoutingProfile", + Description: "Grants permission to configure datasets", + Privilege: "SetDatasetConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a rule in an Amazon Connect instance", - Privilege: "DeleteRule", + Description: "Grants permission to set the necessary configuration for push sync", + Privilege: "SetIdentityPoolConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "identitypool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a security profile in an Amazon Connect instance", - Privilege: "DeleteSecurityProfile", + Description: "Grants permission to subscribe to receive notifications when a dataset is modified by another device", + Privilege: "SubscribeToDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a task template in an Amazon Connect instance", - Privilege: "DeleteTaskTemplate", + Description: "Grants permission to unsubscribe from receiving notifications when a dataset is modified by another device", + Privilege: "UnsubscribeFromDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic distribution group", - Privilege: "DeleteTrafficDistributionGroup", + Description: "Grants permission to post updates to records and add and delete records for a dataset and user", + Privilege: "UpdateRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "dataset*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:cognito-sync:${Region}:${Account}:identitypool/${IdentityPoolId}/identity/${IdentityId}/dataset/${DatasetName}", + ConditionKeys: []string{}, + Resource: "dataset", + }, + { + Arn: "arn:${Partition}:cognito-sync:${Region}:${Account}:identitypool/${IdentityPoolId}/identity/${IdentityId}", + ConditionKeys: []string{}, + Resource: "identity", + }, + { + Arn: "arn:${Partition}:cognito-sync:${Region}:${Account}:identitypool/${IdentityPoolId}", + ConditionKeys: []string{}, + Resource: "identitypool", + }, + }, + ServiceName: "Amazon Cognito Sync", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by requiring tag values present in a resource creation request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by requiring tag value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by requiring the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "comprehend:DataLakeKmsKey", + Description: "Filters access by the DataLake Kms Key associated with the flywheel resource in the request", + Type: "ARN", + }, + { + Condition: "comprehend:FlywheelIterationId", + Description: "Filters access by particular Iteration Id for a flywheel", + Type: "String", + }, + { + Condition: "comprehend:ModelKmsKey", + Description: "Filters access by the model KMS key associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "comprehend:OutputKmsKey", + Description: "Filters access by the output KMS key associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "comprehend:VolumeKmsKey", + Description: "Filters access by the volume KMS key associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "comprehend:VpcSecurityGroupIds", + Description: "Filters access by the list of all VPC security group ids associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "comprehend:VpcSubnets", + Description: "Filters access by the list of all VPC subnets associated with the resource in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "comprehend", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to detect the language or languages present in the list of text documents", + Privilege: "BatchDetectDominantLanguage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a use case from an integration association", - Privilege: "DeleteUseCase", + AccessLevel: "Read", + Description: "Grants permission to detect the named entities (\"People\", \"Places\", \"Locations\", etc) within the given list of text documents", + Privilege: "BatchDetectEntities", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "connect:DescribeInstance", - "ds:DescribeDirectories", - }, - ResourceType: "instance*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "use-case*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a user in an Amazon Connect instance", - Privilege: "DeleteUser", + AccessLevel: "Read", + Description: "Grants permission to detect the phrases in the list of text documents that are most indicative of the content", + Privilege: "BatchDetectKeyPhrases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect the sentiment of a text in the list of documents (Positive, Negative, Neutral, or Mixed)", + Privilege: "BatchDetectSentiment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a user hierarchy group in an Amazon Connect instance", - Privilege: "DeleteUserHierarchyGroup", + AccessLevel: "Read", + Description: "Grants permission to detect syntactic information (like Part of Speech, Tokens) in a list of text documents", + Privilege: "BatchDetectSyntax", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect the sentiments associated with specific entities (such as brands or products) within the given list of text documents", + Privilege: "BatchDetectTargetedSentiment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a view in an Amazon Connect instance", - Privilege: "DeleteView", + AccessLevel: "Read", + Description: "Grants permission to create a new document classification request to analyze a single document in real-time, using a previously created and trained custom model and an endpoint", + Privilege: "ClassifyDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view*", + ResourceType: "document-classifier-endpoint*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to classify the personally identifiable information within given documents in real-time", + Privilege: "ContainsPiiEntities", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -59828,18 +62019,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a view version in an Amazon Connect instance", - Privilege: "DeleteViewVersion", + Description: "Grants permission to create a new dataset within a flywheel", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view-version*", + ResourceType: "flywheel*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -59848,18 +62039,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a vocabulary in an Amazon Connect instance", - Privilege: "DeleteVocabulary", + Description: "Grants permission to create a new document classifier that you can use to categorize documents", + Privilege: "CreateDocumentClassifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vocabulary*", + ResourceType: "document-classifier*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:ModelKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -59867,57 +62063,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe agent status in an Amazon Connect instance", - Privilege: "DescribeAgentStatus", + AccessLevel: "Write", + Description: "Grants permission to create a model-specific endpoint for synchronous inference for a previously trained custom model", + Privilege: "CreateEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status*", + ResourceType: "document-classifier*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classifier-endpoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe authentication profile resources in an Amazon Connect instance", - Privilege: "DescribeAuthenticationProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authentication-profile*", + ResourceType: "entity-recognizer*", }, { ConditionKeys: []string{ - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer-endpoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "flywheel", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a contact in an Amazon Connect instance", - Privilege: "DescribeContact", + AccessLevel: "Write", + Description: "Grants permission to create an entity recognizer using submitted files", + Privilege: "CreateEntityRecognizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "entity-recognizer*", }, { ConditionKeys: []string{ - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:ModelKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -59925,258 +62125,231 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a contact evaluation in the specified Amazon Connect instance", - Privilege: "DescribeContactEvaluation", + AccessLevel: "Write", + Description: "Grants permission to create a new flywheel that you can use to train model versions", + Privilege: "CreateFlywheel", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:ModelKmsKey", + "comprehend:DataLakeKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", + }, + DependentActions: []string{}, + ResourceType: "flywheel*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation*", + ResourceType: "document-classifier", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a contact flow in an Amazon Connect instance", - Privilege: "DescribeContactFlow", + AccessLevel: "Write", + Description: "Grants permission to delete a previously created document classifier", + Privilege: "DeleteDocumentClassifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classifier*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a contact flow module in an Amazon Connect instance", - Privilege: "DescribeContactFlowModule", + AccessLevel: "Write", + Description: "Grants permission to delete a model-specific endpoint for a previously-trained custom model. All endpoints must be deleted in order for the model to be deleted", + Privilege: "DeleteEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module*", + ResourceType: "document-classifier-endpoint*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer-endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an evaluation form in the specified Amazon Connect instance. If the version property is not provided, the latest version of the evaluation form is described", - Privilege: "DescribeEvaluationForm", + AccessLevel: "Write", + Description: "Grants permission to delete a submitted entity recognizer", + Privilege: "DeleteEntityRecognizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", + ResourceType: "entity-recognizer*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to Delete a flywheel", + Privilege: "DeleteFlywheel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flywheel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the status of forecasting, planning, and scheduling integration on an Amazon Connect instance", - Privilege: "DescribeForecastingPlanningSchedulingIntegration", + AccessLevel: "Write", + Description: "Grants permission to remove policy on resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "document-classifier*", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe hours of operation in an Amazon Connect instance", - Privilege: "DescribeHoursOfOperation", + Description: "Grants permission to get the properties associated with a dataset", + Privilege: "DescribeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "flywheel-dataset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details of an Amazon Connect instance and is also required to create an instance", - Privilege: "DescribeInstance", + Description: "Grants permission to get the properties associated with a document classification job", + Privilege: "DescribeDocumentClassificationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DescribeDirectories", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classification-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the attribute details of an existing Amazon Connect instance", - Privilege: "DescribeInstanceAttribute", + Description: "Grants permission to get the properties associated with a document classifier", + Privilege: "DescribeDocumentClassifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:AttributeType", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classifier*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the instance storage configuration for an existing Amazon Connect instance", - Privilege: "DescribeInstanceStorageConfig", + Description: "Grants permission to get the properties associated with a dominant language detection job", + Privilege: "DescribeDominantLanguageDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:StorageResourceType", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dominant-language-detection-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe phone number resources in an Amazon Connect instance or traffic distribution group", - Privilege: "DescribePhoneNumber", + Description: "Grants permission to get the properties associated with a specific endpoint. Use this operation to get the status of an endpoint", + Privilege: "DescribeEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number*", + ResourceType: "document-classifier-endpoint*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer-endpoint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a predefined attribute in an Amazon Connect instance", - Privilege: "DescribePredefinedAttribute", + Description: "Grants permission to get the properties associated with an entities detection job", + Privilege: "DescribeEntitiesDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "entities-detection-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide details about an entity recognizer including status, S3 buckets containing training data, recognizer metadata, metrics, and so on", + Privilege: "DescribeEntityRecognizer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a prompt in an Amazon Connect instance", - Privilege: "DescribePrompt", + Description: "Grants permission to get the properties associated with an Events detection job", + Privilege: "DescribeEventsDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prompt*", + ResourceType: "events-detection-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a flywheel", + Privilege: "DescribeFlywheel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flywheel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a queue in an Amazon Connect instance", - Privilege: "DescribeQueue", + Description: "Grants permission to get the properties associated with a flywheel iteration for a flywheel", + Privilege: "DescribeFlywheelIteration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "flywheel*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "comprehend:FlywheelIterationId", }, DependentActions: []string{}, ResourceType: "", @@ -60185,79 +62358,88 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a quick connect in an Amazon Connect instance", - Privilege: "DescribeQuickConnect", + Description: "Grants permission to get the properties associated with a key phrases detection job", + Privilege: "DescribeKeyPhrasesDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect*", + ResourceType: "key-phrases-detection-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a PII entities detection job", + Privilege: "DescribePiiEntitiesDetectionJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pii-entities-detection-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a routing profile in an Amazon Connect instance", - Privilege: "DescribeRoutingProfile", + Description: "Grants permission to read attached policy on resource", + Privilege: "DescribeResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "document-classifier*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a rule in an Amazon Connect instance", - Privilege: "DescribeRule", + Description: "Grants permission to get the properties associated with a sentiment detection job", + Privilege: "DescribeSentimentDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "sentiment-detection-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with a targeted sentiment detection job", + Privilege: "DescribeTargetedSentimentDetectionJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "targeted-sentiment-detection-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a security profile in an Amazon Connect instance", - Privilege: "DescribeSecurityProfile", + Description: "Grants permission to get the properties associated with a topic detection job", + Privilege: "DescribeTopicsDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", + ResourceType: "topics-detection-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect the language or languages present in the text", + Privilege: "DetectDominantLanguage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -60265,18 +62447,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a traffic distribution group", - Privilege: "DescribeTrafficDistributionGroup", + Description: "Grants permission to detect the named entities (\"People\", \"Places\", \"Locations\", etc) within the given text document", + Privilege: "DetectEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "entity-recognizer-endpoint", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect the phrases in the text that are most indicative of the content", + Privilege: "DetectKeyPhrases", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -60284,91 +62471,84 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a user in an Amazon Connect instance", - Privilege: "DescribeUser", + Description: "Grants permission to detect the personally identifiable information entities (\"Name\", \"SSN\", \"PIN\", etc) within the given text document", + Privilege: "DetectPiiEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a hierarchy group for an Amazon Connect instance", - Privilege: "DescribeUserHierarchyGroup", + Description: "Grants permission to detect the sentiment of a text in a document (Positive, Negative, Neutral, or Mixed)", + Privilege: "DetectSentiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the hierarchy structure for an Amazon Connect instance", - Privilege: "DescribeUserHierarchyStructure", + Description: "Grants permission to detect syntactic information (like Part of Speech, Tokens) in a text document", + Privilege: "DetectSyntax", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a view in an Amazon Connect instance", - Privilege: "DescribeView", + Description: "Grants permission to detect the sentiments associated with specific entities (such as brands or products) in a document", + Privilege: "DetectTargetedSentiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "aws-managed-view*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect toxic content within the given list of text segments", + Privilege: "DetectToxicContent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a trained Comprehend model", + Privilege: "ImportModel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qualified-aws-managed-view*", + ResourceType: "document-classifier*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qualified-customer-managed-view*", + ResourceType: "entity-recognizer*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:ModelKmsKey", }, DependentActions: []string{}, ResourceType: "", @@ -60377,423 +62557,354 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a vocabulary in an Amazon Connect instance", - Privilege: "DescribeVocabulary", + Description: "Grants permission to get a list of the Datasets associated with a flywheel", + Privilege: "ListDatasets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vocabulary*", + ResourceType: "flywheel*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of the document classification jobs that you have submitted", + Privilege: "ListDocumentClassificationJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate approved origin for an existing Amazon Connect instance", - Privilege: "DisassociateApprovedOrigin", + AccessLevel: "Read", + Description: "Grants permission to get a list of summaries of the document classifiers that you have created", + Privilege: "ListDocumentClassifierSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a Lex bot for an existing Amazon Connect instance", - Privilege: "DisassociateBot", + AccessLevel: "Read", + Description: "Grants permission to get a list of the document classifiers that you have created", + Privilege: "ListDocumentClassifiers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "lex:DeleteResourcePolicy", - "lex:UpdateResourcePolicy", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a Customer Profiles domain for an existing Amazon Connect instance", - Privilege: "DisassociateCustomerProfilesDomain", + AccessLevel: "Read", + Description: "Grants permission to get a list of the dominant language detection jobs that you have submitted", + Privilege: "ListDominantLanguageDetectionJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:DeleteRolePolicy", - "iam:DetachRolePolicy", - "iam:GetPolicy", - "iam:GetPolicyVersion", - "iam:GetRolePolicy", - }, - ResourceType: "instance*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a resource from a flow in an Amazon Connect instance", - Privilege: "DisassociateFlow", + AccessLevel: "Read", + Description: "Grants permission to get a list of all existing endpoints that you've created", + Privilege: "ListEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate instance storage for an existing Amazon Connect instance", - Privilege: "DisassociateInstanceStorageConfig", + AccessLevel: "Read", + Description: "Grants permission to get a list of the entity detection jobs that you have submitted", + Privilege: "ListEntitiesDetectionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of summaries for the entity recognizers that you have created", + Privilege: "ListEntityRecognizerSummaries", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:StorageResourceType", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a Lambda function for an existing Amazon Connect instance", - Privilege: "DisassociateLambdaFunction", + AccessLevel: "Read", + Description: "Grants permission to get a list of the properties of all entity recognizers that you created, including recognizers currently in training", + Privilege: "ListEntityRecognizers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lambda:RemovePermission", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a Lex bot for an existing Amazon Connect instance", - Privilege: "DisassociateLexBot", + AccessLevel: "Read", + Description: "Grants permission to get a list of Events detection jobs that you have submitted", + Privilege: "ListEventsDetectionJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate contact flow resources from phone number resources in an Amazon Connect instance", - Privilege: "DisassociatePhoneNumberContactFlow", + AccessLevel: "Read", + Description: "Grants permission to get a list of iterations associated for a flywheel", + Privilege: "ListFlywheelIterationHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number*", + ResourceType: "flywheel*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of the flywheels that you have created", + Privilege: "ListFlywheels", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate quick connects from a queue in an Amazon Connect instance", - Privilege: "DisassociateQueueQuickConnects", + AccessLevel: "Read", + Description: "Grants permission to get a list of key phrase detection jobs that you have submitted", + Privilege: "ListKeyPhrasesDetectionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of PII entities detection jobs that you have submitted", + Privilege: "ListPiiEntitiesDetectionJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of sentiment detection jobs that you have submitted", + Privilege: "ListSentimentDetectionJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate queues from a routing profile in an Amazon Connect instance", - Privilege: "DisassociateRoutingProfileQueues", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "document-classification-job", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classifier", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate the security key for an existing Amazon Connect instance", - Privilege: "DisassociateSecurityKey", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "document-classifier-endpoint", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dominant-language-detection-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a user from a traffic distribution group in the specified Amazon Connect instance", - Privilege: "DisassociateTrafficDistributionGroupUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "entities-detection-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "entity-recognizer", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "entity-recognizer-endpoint", }, { - ConditionKeys: []string{ - "connect:InstanceId", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "events-detection-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate user proficiencies from a user in an Amazon Connect instance", - Privilege: "DisassociateUserProficiencies", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "flywheel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "flywheel-dataset", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "key-phrases-detection-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to dismiss terminated Contact from Agent CCP", - Privilege: "DismissUserContact", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "pii-entities-detection-job", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sentiment-detection-job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an attached file from an Amazon Connect instance", - Privilege: "GetAttachedFile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attached-file*", + ResourceType: "targeted-sentiment-detection-job", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topics-detection-job", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the contact attributes for the specified contact", - Privilege: "GetContactAttributes", + Description: "Grants permission to get a list of targeted sentiment detection jobs that you have submitted", + Privilege: "ListTargetedSentimentDetectionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve current metric data for queues and routing profiles in an Amazon Connect instance", - Privilege: "GetCurrentMetricData", + Description: "Grants permission to get a list of the topic detection jobs that you have submitted", + Privilege: "ListTopicsDetectionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach policy to resource", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "document-classifier*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve current user data in an Amazon Connect instance", - Privilege: "GetCurrentUserData", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous document classification job", + Privilege: "StartDocumentClassificationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", + }, DependentActions: []string{}, - ResourceType: "hierarchy-group*", + ResourceType: "document-classification-job*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "document-classifier", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "flywheel", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous dominant language detection job for a collection of documents", + Privilege: "StartDominantLanguageDetectionJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "dominant-language-detection-job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -60801,38 +62912,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to federate into an Amazon Connect instance when using SAML-based authentication for identity management", - Privilege: "GetFederationToken", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous entity detection job for a collection of documents", + Privilege: "StartEntitiesDetectionJob", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", + }, + DependentActions: []string{}, + ResourceType: "entities-detection-job*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "entity-recognizer", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flywheel", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the flow associations for the specified Amazon Connect instance", - Privilege: "GetFlowAssociation", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous Events detection job for a collection of documents", + Privilege: "StartEventsDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "events-detection-job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:OutputKmsKey", }, DependentActions: []string{}, ResourceType: "", @@ -60840,54 +62962,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve historical metric data for queues in an Amazon Connect instance", - Privilege: "GetMetricData", + AccessLevel: "Write", + Description: "Grants permission to start a flywheel iteration for a flywheel", + Privilege: "StartFlywheelIteration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "flywheel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metric data in an Amazon Connect instance", - Privilege: "GetMetricDataV2", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous key phrase detection job for a collection of documents", + Privilege: "StartKeyPhrasesDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "routing-profile*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "key-phrases-detection-job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -60895,19 +62998,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a prompt's presigned Amazon S3 URL in an Amazon Connect instance", - Privilege: "GetPromptFile", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous PII entities detection job for a collection of documents", + Privilege: "StartPiiEntitiesDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prompt*", + ResourceType: "pii-entities-detection-job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:OutputKmsKey", }, DependentActions: []string{}, ResourceType: "", @@ -60915,19 +63019,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about specified task template in an Amazon Connect instance", - Privilege: "GetTaskTemplate", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous sentiment detection job for a collection of documents", + Privilege: "StartSentimentDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template*", + ResourceType: "sentiment-detection-job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -60935,18 +63043,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to read traffic distribution for a traffic distribution group", - Privilege: "GetTrafficDistribution", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous targeted sentiment detection job for a collection of documents", + Privilege: "StartTargetedSentimentDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "targeted-sentiment-detection-job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -60955,25 +63068,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import phone number resources to an Amazon Connect instance", - Privilege: "ImportPhoneNumber", + Description: "Grants permission to start an asynchronous job to detect the most common topics in the collection of documents and the phrases associated with each topic", + Privilege: "StartTopicsDetectionJob", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sms-voice:DescribePhoneNumbers", - }, - ResourceType: "instance*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-phone-number*", + ResourceType: "topics-detection-job*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "comprehend:VolumeKmsKey", + "comprehend:OutputKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -60981,263 +63091,197 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list agent statuses in an Amazon Connect instance", - Privilege: "ListAgentStatuses", + AccessLevel: "Write", + Description: "Grants permission to stop a dominant language detection job", + Privilege: "StopDominantLanguageDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-agent-status*", + ResourceType: "dominant-language-detection-job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view approved origins of an existing Amazon Connect instance", - Privilege: "ListApprovedOrigins", + AccessLevel: "Write", + Description: "Grants permission to stop an entity detection job", + Privilege: "StopEntitiesDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "entities-detection-job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list authentication profile resources in an Amazon Connect instance", - Privilege: "ListAuthenticationProfiles", + AccessLevel: "Write", + Description: "Grants permission to stop an Events detection job", + Privilege: "StopEventsDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "events-detection-job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the Lex bots of an existing Amazon Connect instance", - Privilege: "ListBots", + AccessLevel: "Write", + Description: "Grants permission to stop a key phrase detection job", + Privilege: "StopKeyPhrasesDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "key-phrases-detection-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a PII entities detection job", + Privilege: "StopPiiEntitiesDetectionJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pii-entities-detection-job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list contact evaluations in the specified Amazon Connect instance", - Privilege: "ListContactEvaluations", + AccessLevel: "Write", + Description: "Grants permission to stop a sentiment detection job", + Privilege: "StopSentimentDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "sentiment-detection-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a targeted sentiment detection job", + Privilege: "StopTargetedSentimentDetectionJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "targeted-sentiment-detection-job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list contact flow module resources in an Amazon Connect instance", - Privilege: "ListContactFlowModules", + AccessLevel: "Write", + Description: "Grants permission to stop a previously created document classifier training job", + Privilege: "StopTrainingDocumentClassifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "document-classifier*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list contact flow resources in an Amazon Connect instance", - Privilege: "ListContactFlows", + AccessLevel: "Write", + Description: "Grants permission to stop a previously created entity recognizer training job", + Privilege: "StopTrainingEntityRecognizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-contact-flow*", + ResourceType: "entity-recognizer*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list references associated with a contact in an Amazon Connect instance", - Privilege: "ListContactReferences", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource with given key value pairs", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "document-classification-job", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classifier", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list default vocabularies associated with a Amazon Connect instance", - Privilege: "ListDefaultVocabularies", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "document-classifier-endpoint", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dominant-language-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list versions of an evaluation form in the specified Amazon Connect instance", - Privilege: "ListEvaluationFormVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", + ResourceType: "entities-detection-job", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list evaluation forms in the specified Amazon Connect instance", - Privilege: "ListEvaluationForms", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "entity-recognizer-endpoint", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "events-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list summary information about the flow associations for the specified Amazon Connect instance", - Privilege: "ListFlowAssociations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "flywheel", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "flywheel-dataset", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list hours of operation resources in an Amazon Connect instance", - Privilege: "ListHoursOfOperations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "key-phrases-detection-job", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pii-entities-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view the attributes of an existing Amazon Connect instance", - Privilege: "ListInstanceAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "sentiment-detection-job", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "targeted-sentiment-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view storage configurations of an existing Amazon Connect instance", - Privilege: "ListInstanceStorageConfigs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "topics-detection-job", }, { ConditionKeys: []string{ - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -61245,155 +63289,88 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view the Amazon Connect instances associated with an AWS account", - Privilege: "ListInstances", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource with given key", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DescribeDirectories", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document-classification-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list summary information about the integration associations for the specified Amazon Connect instance", - Privilege: "ListIntegrationAssociations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "connect:DescribeInstance", - "ds:DescribeDirectories", - }, - ResourceType: "instance*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document-classifier", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document-classifier-endpoint", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view the Lambda functions of an existing Amazon Connect instance", - Privilege: "ListLambdaFunctions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "dominant-language-detection-job", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entities-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view the Lex bots of an existing Amazon Connect instance", - Privilege: "ListLexBots", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "entity-recognizer", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer-endpoint", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list phone number resources in an Amazon Connect instance", - Privilege: "ListPhoneNumbers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-legacy-phone-number*", + ResourceType: "events-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list phone number resources in an Amazon Connect instance", - Privilege: "ListPhoneNumbersV2", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-phone-number*", + ResourceType: "flywheel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list predefined attributes in an Amazon Connect instance", - Privilege: "ListPredefinedAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "flywheel-dataset", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "key-phrases-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list prompt resources in an Amazon Connect instance", - Privilege: "ListPrompts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "pii-entities-detection-job", }, { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sentiment-detection-job", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list quick connect resources in a queue in an Amazon Connect instance", - Privilege: "ListQueueQuickConnects", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "targeted-sentiment-detection-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topics-detection-job", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -61401,836 +63378,751 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list queue resources in an Amazon Connect instance", - Privilege: "ListQueues", + AccessLevel: "Write", + Description: "Grants permission to update information about the specified endpoint", + Privilege: "UpdateEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-queue*", + ResourceType: "document-classifier-endpoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list quick connect resources in an Amazon Connect instance", - Privilege: "ListQuickConnects", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-quick-connect*", + ResourceType: "entity-recognizer-endpoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list the analysis segments for a real-time analysis session", - Privilege: "ListRealtimeContactAnalysisSegments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "flywheel", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the analysis segments for a real-time chat analytics session", - Privilege: "ListRealtimeContactAnalysisSegmentsV2", + AccessLevel: "Write", + Description: "Grants permission to Update a flywheel's configuration", + Privilege: "UpdateFlywheel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "comprehend:VolumeKmsKey", + "comprehend:ModelKmsKey", + "comprehend:VpcSecurityGroupIds", + "comprehend:VpcSubnets", + }, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "flywheel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list queue resources in a routing profile in an Amazon Connect instance", - Privilege: "ListRoutingProfileQueues", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "document-classifier", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity-recognizer", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list routing profile resources in an Amazon Connect instance", - Privilege: "ListRoutingProfiles", + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:targeted-sentiment-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "targeted-sentiment-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:document-classifier/${DocumentClassifierName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "document-classifier", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:document-classifier-endpoint/${DocumentClassifierEndpointName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "document-classifier-endpoint", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:entity-recognizer/${EntityRecognizerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "entity-recognizer", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:entity-recognizer-endpoint/${EntityRecognizerEndpointName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "entity-recognizer-endpoint", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:dominant-language-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dominant-language-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:entities-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "entities-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:pii-entities-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "pii-entities-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:events-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "events-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:key-phrases-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "key-phrases-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:sentiment-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "sentiment-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:topics-detection-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "topics-detection-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:document-classification-job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "document-classification-job", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:flywheel/${FlywheelName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "flywheel", + }, + { + Arn: "arn:${Partition}:comprehend:${Region}:${Account}:flywheel/${FlywheelName}/dataset/${DatasetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "flywheel-dataset", + }, + }, + ServiceName: "Amazon Comprehend", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "comprehendmedical", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to describe the properties of a medical entity detection job that you have submitted", + Privilege: "DescribeEntitiesDetectionV2Job", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list rules associated with a Amazon Connect instance", - Privilege: "ListRules", + AccessLevel: "Read", + Description: "Grants permission to describe the properties of an ICD-10-CM linking job that you have submitted", + Privilege: "DescribeICD10CMInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the security keys of an existing Amazon Connect instance", - Privilege: "ListSecurityKeys", + AccessLevel: "Read", + Description: "Grants permission to describe the properties of a PHI entity detection job that you have submitted", + Privilege: "DescribePHIDetectionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list applications associated with a specific security profile in an Amazon Connect instance", - Privilege: "ListSecurityProfileApplications", + AccessLevel: "Read", + Description: "Grants permission to describe the properties of an RxNorm linking job that you have submitted", + Privilege: "DescribeRxNormInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list permissions associated with security profile in an Amazon Connect instance", - Privilege: "ListSecurityProfilePermissions", + AccessLevel: "Read", + Description: "Grants permission to describe the properties of a SNOMED-CT linking job that you have submitted", + Privilege: "DescribeSNOMEDCTInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list security profile resources in an Amazon Connect instance", - Privilege: "ListSecurityProfiles", + AccessLevel: "Read", + Description: "Grants permission to detect the named medical entities, and their relationships and traits within the given text document", + Privilege: "DetectEntitiesV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for an Amazon Connect resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to detect the protected health information (PHI) entities within the given text document", + Privilege: "DetectPHI", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-evaluation", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-flow", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-flow-module", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "evaluation-form", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hierarchy-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hours-of-operation", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integration-association", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "phone-number", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "prompt", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "queue", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "quick-connect", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "routing-profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "security-profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "traffic-distribution-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "use-case", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "wildcard-phone-number", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list task template resources in an Amazon Connect instance", - Privilege: "ListTaskTemplates", + AccessLevel: "Read", + Description: "Grants permission to detect the medical condition entities within the given text document and link them to ICD-10-CM codes", + Privilege: "InferICD10CM", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the active user associations for a traffic distribution group", - Privilege: "ListTrafficDistributionGroupUsers", + AccessLevel: "Read", + Description: "Grants permission to detect the medication entities within the given text document and link them to RxCUI concept identifiers from the National Library of Medicine RxNorm database", + Privilege: "InferRxNorm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list traffic distribution groups", - Privilege: "ListTrafficDistributionGroups", + AccessLevel: "Read", + Description: "Grants permission to detect the medical condition, anatomy, and test, treatment, and procedure entities within the given text document and link them to SNOMED-CT codes", + Privilege: "InferSNOMEDCT", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the use cases of an integration association", - Privilege: "ListUseCases", + AccessLevel: "Read", + Description: "Grants permission to list the medical entity detection jobs that you have submitted", + Privilege: "ListEntitiesDetectionV2Jobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "connect:DescribeInstance", - "ds:DescribeDirectories", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the hierarchy group resources in an Amazon Connect instance", - Privilege: "ListUserHierarchyGroups", + AccessLevel: "Read", + Description: "Grants permission to list the ICD-10-CM linking jobs that you have submitted", + Privilege: "ListICD10CMInferenceJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list user proficiencies from a user in an Amazon Connect instance", - Privilege: "ListUserProficiencies", + AccessLevel: "Read", + Description: "Grants permission to list the PHI entity detection jobs that you have submitted", + Privilege: "ListPHIDetectionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list user resources in an Amazon Connect instance", - Privilege: "ListUsers", + AccessLevel: "Read", + Description: "Grants permission to list the RxNorm linking jobs that you have submitted", + Privilege: "ListRxNormInferenceJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the view versions in an Amazon Connect instance", - Privilege: "ListViewVersions", + AccessLevel: "Read", + Description: "Grants permission to list the SNOMED-CT linking jobs that you have submitted", + Privilege: "ListSNOMEDCTInferenceJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "aws-managed-view*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "customer-managed-view*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the views in an Amazon Connect instance", - Privilege: "ListViews", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous medical entity detection job for a collection of documents", + Privilege: "StartEntitiesDetectionV2Job", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to monitor an ongoing contact", - Privilege: "MonitorContact", + Description: "Grants permission to start an asynchronous ICD-10-CM linking job for a collection of documents", + Privilege: "StartICD10CMInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous PHI entity detection job for a collection of documents", + Privilege: "StartPHIDetectionJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "connect:MonitorCapabilities", - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to pause an ongoing contact", - Privilege: "PauseContact", + Description: "Grants permission to start an asynchronous RxNorm linking job for a collection of documents", + Privilege: "StartRxNormInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous SNOMED-CT linking job for a collection of documents", + Privilege: "StartSNOMEDCTInferenceJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a medical entity detection job", + Privilege: "StopEntitiesDetectionV2Job", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to switch User Status in an Amazon Connect instance", - Privilege: "PutUserStatus", + Description: "Grants permission to stop an ICD-10-CM linking job", + Privilege: "StopICD10CMInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a PHI entity detection job", + Privilege: "StopPHIDetectionJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an RxNorm linking job", + Privilege: "StopRxNormInferenceJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to release phone number resources in an Amazon Connect instance", - Privilege: "ReleasePhoneNumber", + Description: "Grants permission to stop a SNOMED-CT linking job", + Privilege: "StopSNOMEDCTInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Comprehend Medical", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "compute-optimizer:ResourceType", + Description: "Filters access by the resource type", + Type: "String", + }, + }, + Prefix: "compute-optimizer", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a replica of an Amazon Connect instance", - Privilege: "ReplicateInstance", + Description: "Grants permission to delete recommendation preferences", + Privilege: "DeleteRecommendationPreferences", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:AuthorizeApplication", - "ds:CheckAlias", - "ds:CreateAlias", - "ds:CreateDirectory", - "ds:CreateIdentityPoolDirectory", - "ds:DeleteDirectory", - "ds:DescribeDirectories", - "ds:UnauthorizeApplication", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - }, - ResourceType: "instance*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", + "compute-optimizer:ResourceType", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "autoscaling:DescribeAutoScalingGroups", + "ec2:DescribeInstances", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to resume a paused contact", - Privilege: "ResumeContact", + AccessLevel: "List", + Description: "Grants permission to view the status of recommendation export jobs", + Privilege: "DescribeRecommendationExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-flow", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to resume recording for the specified contact", - Privilege: "ResumeContactRecording", + Description: "Grants permission to export AutoScaling group recommendations to S3 for the provided accounts", + Privilege: "ExportAutoScalingGroupRecommendations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact*", + ConditionKeys: []string{}, + DependentActions: []string{ + "autoscaling:DescribeAutoScalingGroups", + "compute-optimizer:GetAutoScalingGroupRecommendations", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search phone number resources in an Amazon Connect instance or traffic distribution group", - Privilege: "SearchAvailablePhoneNumbers", + AccessLevel: "Write", + Description: "Grants permission to export EBS volume recommendations to S3 for the provided accounts", + Privilege: "ExportEBSVolumeRecommendations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "wildcard-phone-number*", + ConditionKeys: []string{}, + DependentActions: []string{ + "compute-optimizer:GetEBSVolumeRecommendations", + "ec2:DescribeVolumes", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search contact flow module resources in an Amazon Connect instance", - Privilege: "SearchContactFlowModules", + AccessLevel: "Write", + Description: "Grants permission to export EC2 instance recommendations to S3 for the provided accounts", + Privilege: "ExportEC2InstanceRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeContactFlowModule", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + "compute-optimizer:GetEC2InstanceRecommendations", + "ec2:DescribeInstances", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search contact flow resources in an Amazon Connect instance", - Privilege: "SearchContactFlows", + AccessLevel: "Write", + Description: "Grants permission to export ECS service recommendations to S3 for the provided accounts", + Privilege: "ExportECSServiceRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeContactFlow", + "compute-optimizer:GetECSServiceRecommendations", + "ecs:ListClusters", + "ecs:ListServices", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export idle recommendations to S3 for the provided accounts", + Privilege: "ExportIdleRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "compute-optimizer:GetIdleRecommendations", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search contacts in an Amazon Connect instance", - Privilege: "SearchContacts", + AccessLevel: "Write", + Description: "Grants permission to export Lambda function recommendations to S3 for the provided accounts", + Privilege: "ExportLambdaFunctionRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeContact", + "compute-optimizer:GetLambdaFunctionRecommendations", + "lambda:ListFunctions", + "lambda:ListProvisionedConcurrencyConfigs", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export license recommendations to S3 for the provided account(s)", + Privilege: "ExportLicenseRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchContactsByContactAnalysis", + ConditionKeys: []string{}, + DependentActions: []string{ + "compute-optimizer:GetLicenseRecommendations", + "ec2:DescribeInstances", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search hours of operation resources in an Amazon Connect instance", - Privilege: "SearchHoursOfOperations", + AccessLevel: "Write", + Description: "Grants permission to export rds recommendations to S3 for the provided accounts", + Privilege: "ExportRDSDatabaseRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeHoursOfOperation", + "compute-optimizer:GetRDSDatabaseRecommendations", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get recommendations for the provided AutoScaling groups", + Privilege: "GetAutoScalingGroupRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "autoscaling:DescribeAutoScalingGroups", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search predefined attributes in an Amazon Connect instance", - Privilege: "SearchPredefinedAttributes", + AccessLevel: "List", + Description: "Grants permission to get recommendations for the provided EBS volumes", + Privilege: "GetEBSVolumeRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribePredefinedAttribute", + "ec2:DescribeVolumes", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get recommendations for the provided EC2 instances", + Privilege: "GetEC2InstanceRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeInstances", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search prompt resources in an Amazon Connect instance", - Privilege: "SearchPrompts", + AccessLevel: "List", + Description: "Grants permission to get the recommendation projected metrics of the specified instance", + Privilege: "GetEC2RecommendationProjectedMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribePrompt", + "ec2:DescribeInstances", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get the recommendation projected metrics of the specified ECS service", + Privilege: "GetECSServiceRecommendationProjectedMetrics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search queue resources in an Amazon Connect instance", - Privilege: "SearchQueues", + AccessLevel: "List", + Description: "Grants permission to get recommendations for the provided ECS services", + Privilege: "GetECSServiceRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeQueue", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + "ecs:ListClusters", + "ecs:ListServices", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to search quick connect resources in an Amazon Connect instance", - Privilege: "SearchQuickConnects", + Description: "Grants permission to get recommendation preferences that are in effect", + Privilege: "GetEffectiveRecommendationPreferences", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "compute-optimizer:ResourceType", + }, DependentActions: []string{ - "connect:DescribeQuickConnect", + "autoscaling:DescribeAutoScalingGroups", + "autoscaling:DescribeAutoScalingInstances", + "ec2:DescribeInstances", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get the enrollment status for the specified account", + Privilege: "GetEnrollmentStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -62238,84 +64130,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to search tags that are used in an Amazon Connect instance", - Privilege: "SearchResourceTags", + Description: "Grants permission to get the enrollment statuses for member accounts of the organization", + Privilege: "GetEnrollmentStatusesForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get idle recommendations for the specified account(s)", + Privilege: "GetIdleRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search routing profile resources in an Amazon Connect instance", - Privilege: "SearchRoutingProfiles", + AccessLevel: "List", + Description: "Grants permission to get recommendations for the provided Lambda functions", + Privilege: "GetLambdaFunctionRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeRoutingProfile", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + "lambda:ListFunctions", + "lambda:ListProvisionedConcurrencyConfigs", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search security profile resources in an Amazon Connect instance", - Privilege: "SearchSecurityProfiles", + AccessLevel: "List", + Description: "Grants permission to get license recommendations for the specified account(s)", + Privilege: "GetLicenseRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeSecurityProfile", + "ec2:DescribeInstances", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get the recommendation projected metrics of the specified instance", + Privilege: "GetRDSDatabaseRecommendationProjectedMetrics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search user resources in an Amazon Connect instance", - Privilege: "SearchUsers", + AccessLevel: "List", + Description: "Grants permission to get rds recommendations for the specified account(s)", + Privilege: "GetRDSDatabaseRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "connect:DescribeUser", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", }, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get recommendation preferences", + Privilege: "GetRecommendationPreferences", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "connect:InstanceId", - "connect:SearchTag/${TagKey}", + "compute-optimizer:ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -62324,27 +64227,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to search vocabularies in a Amazon Connect instance", - Privilege: "SearchVocabularies", + Description: "Grants permission to get the recommendation summaries for the specified account(s)", + Privilege: "GetRecommendationSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vocabulary*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put recommendation preferences", + Privilege: "PutRecommendationPreferences", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "connect:InstanceId", + "compute-optimizer:ResourceType", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "autoscaling:DescribeAutoScalingGroups", + "autoscaling:DescribeAutoScalingInstances", + "ec2:DescribeInstances", + "rds:DescribeDBClusters", + "rds:DescribeDBInstances", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send chat integration events using the Amazon Connect API", - Privilege: "SendChatIntegrationEvent", + Description: "Grants permission to update the enrollment status", + Privilege: "UpdateEnrollmentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -62353,248 +64269,252 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Compute Optimizer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "config:ConfigurationRecorderServicePrincipal", + Description: "Filters access by service principal of the configuration recorder", + Type: "String", + }, + }, + Prefix: "config", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to start an attached file upload in an Amazon Connect instance", - Privilege: "StartAttachedFileUpload", + Description: "Grants permission to add all specified resource types to the RecordingGroup of configuration recorder and includes those resource types when recording", + Privilege: "AssociateResourceTypes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cases:CreateRelatedItem", - }, - ResourceType: "attached-file*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "connect:InstanceId", - "connect:UserArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationRecorder*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate a chat using the Amazon Connect API", - Privilege: "StartChatContact", + AccessLevel: "Read", + Description: "Grants permission to return the current configuration items for resources that are present in your AWS Config aggregator", + Privilege: "BatchGetAggregateResourceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the current configuration for one or more requested resources", + Privilege: "BatchGetResourceConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an empty evaluation in the specified Amazon Connect instance, using the given evaluation form for the particular contact. The evaluation form version used for the contact evaluation corresponds to the currently activated version. If no version is activated for the evaluation form, the contact evaluation cannot be started", - Privilege: "StartContactEvaluation", + Description: "Grants permission to delete the authorization granted to the specified configuration aggregator account in a specified region", + Privilege: "DeleteAggregationAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "AggregationAuthorization*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified AWS Config rule and all of its evaluation results", + Privilege: "DeleteConfigRule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation*", + ResourceType: "ConfigRule*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified configuration aggregator and the aggregated data associated with the aggregator", + Privilege: "DeleteConfigurationAggregator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationAggregator*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start recording for the specified contact", - Privilege: "StartContactRecording", + Description: "Grants permission to delete the customer managed configuration recorder", + Privilege: "DeleteConfigurationRecorder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "ConfigurationRecorder*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start chat streaming using the Amazon Connect API", - Privilege: "StartContactStreaming", + Description: "Grants permission to delete the specified conformance pack and all the AWS Config rules and all evaluation results within that conformance pack", + Privilege: "DeleteConformancePack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "ConformancePack*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable forecasting, planning, and scheduling integration on an Amazon Connect instance", - Privilege: "StartForecastingPlanningSchedulingIntegration", + Description: "Grants permission to delete the delivery channel", + Privilege: "DeleteDeliveryChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate outbound calls using the Amazon Connect API", - Privilege: "StartOutboundVoiceContact", + Description: "Grants permission to delete the evaluation results for the specified Config rule", + Privilege: "DeleteEvaluationResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "ConfigRule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate a task using the Amazon Connect API", - Privilege: "StartTaskContact", + Description: "Grants permission to delete the specified organization config rule and all of its evaluation results from all member accounts in that organization", + Privilege: "DeleteOrganizationConfigRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact", + ResourceType: "OrganizationConfigRule*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified organization conformance pack and all of its evaluation results from all member accounts in that organization", + Privilege: "DeleteOrganizationConformancePack", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect", + ResourceType: "OrganizationConformancePack*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete pending authorization requests for a specified aggregator account in a specified region", + Privilege: "DeletePendingAggregationRequest", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate a WebRTC contact using the Amazon Connect API", - Privilege: "StartWebRTCContact", + Description: "Grants permission to delete the remediation configuration", + Privilege: "DeleteRemediationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "RemediationConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop contacts that were initiated using the Amazon Connect API. If you use this operation on an active contact the contact ends, even if the agent is active on a call with a customer", - Privilege: "StopContact", + Description: "Grants permission to delete one or more remediation exceptions for specific resource keys for a specific AWS Config Rule", + Privilege: "DeleteRemediationExceptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop recording for the specified contact", - Privilege: "StopContactRecording", + Description: "Grants permission to record the configuration state for a custom resource that has been deleted", + Privilege: "DeleteResourceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop chat streaming using the Amazon Connect API", - Privilege: "StopContactStreaming", + Description: "Grants permission to delete the retention configuration", + Privilege: "DeleteRetentionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable forecasting, planning, and scheduling integration on an Amazon Connect instance", - Privilege: "StopForecastingPlanningSchedulingIntegration", + Description: "Grants permission to delete the service-linked configuration recorder", + Privilege: "DeleteServiceLinkedConfigurationRecorder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "ConfigurationRecorder*", }, { ConditionKeys: []string{ - "connect:InstanceId", + "config:ConfigurationRecorderServicePrincipal", }, DependentActions: []string{}, ResourceType: "", @@ -62603,179 +64523,337 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to submit a contact evaluation in the specified Amazon Connect instance. Answers included in the request are merged with existing answers for the given evaluation. If no answers or notes are passed, the evaluation is submitted with the existing answers and notes. You can delete an answer or note by passing an empty object ( { }) to the question identifier", - Privilege: "SubmitContactEvaluation", + Description: "Grants permission to delete the stored query for an AWS account in an AWS Region", + Privilege: "DeleteStoredQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation*", + ResourceType: "StoredQuery*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to schedule delivery of a configuration snapshot to the Amazon S3 bucket in the specified delivery channel", + Privilege: "DeliverConfigSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to suspend recording for the specified contact", - Privilege: "SuspendContactRecording", + AccessLevel: "Read", + Description: "Grants permission to return a list of compliant and noncompliant rules with the number of resources for compliant and noncompliant rules", + Privilege: "DescribeAggregateComplianceByConfigRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "ConfigurationAggregator*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to tag a contact in an Amazon Connect instance", - Privilege: "TagContact", + AccessLevel: "Read", + Description: "Grants permission to return a list of compliant and noncompliant conformance packs along with count of compliant, non-compliant and total rules within each conformance pack", + Privilege: "DescribeAggregateComplianceByConformancePacks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of authorizations granted to various aggregator accounts and regions", + Privilege: "DescribeAggregationAuthorizations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Amazon Connect resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to indicate whether the specified AWS Config rules are compliant", + Privilege: "DescribeComplianceByConfigRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to indicate whether the specified AWS resources are compliant", + Privilege: "DescribeComplianceByResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return status information for each of your AWS managed Config rules", + Privilege: "DescribeConfigRuleEvaluationStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return details about your AWS Config rules", + Privilege: "DescribeConfigRules", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return status information for sources within an aggregator", + Privilege: "DescribeConfigurationAggregatorSourcesStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return the details of one or more configuration aggregators", + Privilege: "DescribeConfigurationAggregators", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the current status of the specified configuration recorder", + Privilege: "DescribeConfigurationRecorderStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group", + ResourceType: "ConfigurationRecorder*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "config:ConfigurationRecorderServicePrincipal", + }, DependentActions: []string{}, - ResourceType: "hours-of-operation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the names of one or more specified configuration recorders", + Privilege: "DescribeConfigurationRecorders", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "ConfigurationRecorder*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "config:ConfigurationRecorderServicePrincipal", + }, DependentActions: []string{}, - ResourceType: "integration-association", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return compliance information for each rule in that conformance pack", + Privilege: "DescribeConformancePackCompliance", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number", + ResourceType: "ConformancePack*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide one or more conformance packs deployment status", + Privilege: "DescribeConformancePackStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prompt", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of one or more conformance packs", + Privilege: "DescribeConformancePacks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the current status of the specified delivery channel", + Privilege: "DescribeDeliveryChannelStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return details about the specified delivery channel", + Privilege: "DescribeDeliveryChannels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide organization config rule deployment status for an organization", + Privilege: "DescribeOrganizationConfigRuleStatuses", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of organization config rules", + Privilege: "DescribeOrganizationConfigRules", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide organization conformance pack deployment status for an organization", + Privilege: "DescribeOrganizationConformancePackStatuses", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of organization conformance packs", + Privilege: "DescribeOrganizationConformancePacks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of all pending aggregation requests", + Privilege: "DescribePendingAggregationRequests", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "use-case", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return the details of one or more remediation configurations", + Privilege: "DescribeRemediationConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "RemediationConfiguration*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return the details of one or more remediation exceptions", + Privilege: "DescribeRemediationExceptions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vocabulary", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide a detailed view of a Remediation Execution for a set of resources including state, timestamps and any error messages for steps that have failed", + Privilege: "DescribeRemediationExecutionStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-phone-number", + ResourceType: "RemediationConfiguration*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return the details of one or more retention configurations", + Privilege: "DescribeRetentionConfigurations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -62783,174 +64861,376 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to transfer the contact to another queue or agent", - Privilege: "TransferContact", + Description: "Grants permission to remove all specified resource types from the RecordingGroup of configuration recorder and excludes these resource types when recording", + Privilege: "DisassociateResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "ConfigurationRecorder*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the evaluation results for the specified AWS Config rule for a specific resource in a rule", + Privilege: "GetAggregateComplianceDetailsByConfigRule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the number of compliant and noncompliant rules for one or more accounts and regions in an aggregator", + Privilege: "GetAggregateConfigRuleComplianceSummary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationAggregator*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to untag a contact in an Amazon Connect instance", - Privilege: "UntagContact", + AccessLevel: "Read", + Description: "Grants permission to return the number of compliant and noncompliant conformance packs for one or more accounts and regions in an aggregator", + Privilege: "GetAggregateConformancePackComplianceSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", - }, - { - ConditionKeys: []string{ - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationAggregator*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag an Amazon Connect resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to return the resource counts across accounts and regions that are present in your AWS Config aggregator", + Privilege: "GetAggregateDiscoveredResourceCounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return configuration item that is aggregated for your specific resource in a specific source account and region", + Privilege: "GetAggregateResourceConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the evaluation results for the specified AWS Config rule", + Privilege: "GetComplianceDetailsByConfigRule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow", + ResourceType: "ConfigRule*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the evaluation results for the specified AWS resource", + Privilege: "GetComplianceDetailsByResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the number of AWS Config rules that are compliant and noncompliant, up to a maximum of 25 for each", + Privilege: "GetComplianceSummaryByConfigRule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the number of resources that are compliant and the number that are noncompliant", + Privilege: "GetComplianceSummaryByResourceType", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return compliance details of a conformance pack for all AWS resources that are monitered by conformance pack", + Privilege: "GetConformancePackComplianceDetails", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group", + ResourceType: "ConformancePack*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide compliance summary for one or more conformance packs", + Privilege: "GetConformancePackComplianceSummary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation", + ResourceType: "ConformancePack*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the policy definition containing the logic for your AWS Config Custom Policy rule", + Privilege: "GetCustomRulePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "ConfigRule*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account", + Privilege: "GetDiscoveredResourceCounts", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration-association", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return detailed status for each member account within an organization for a given organization config rule", + Privilege: "GetOrganizationConfigRuleDetailedStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number", + ResourceType: "OrganizationConfigRule*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return detailed status for each member account within an organization for a given organization conformance pack", + Privilege: "GetOrganizationConformancePackDetailedStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prompt", + ResourceType: "OrganizationConformancePack*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the policy definition containing the logic for your organization AWS Config Custom Policy rule", + Privilege: "GetOrganizationCustomRulePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "OrganizationConfigRule*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a list of configuration items for the specified resource", + Privilege: "GetResourceConfigHistory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the summary of resource evaluations for a specific resource evaluation ID", + Privilege: "GetResourceEvaluationSummary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the details of a specific stored query", + Privilege: "GetStoredQuery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "StoredQuery*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to accept a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions", + Privilege: "ListAggregateDiscoveredResources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the configuration recorder summaries for an AWS account in an AWS Region", + Privilege: "ListConfigurationRecorders", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return the percentage of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations", + Privilege: "ListConformancePackComplianceScores", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to accept a resource type and returns a list of resource identifiers for the resources of that type", + Privilege: "ListDiscoveredResources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "use-case", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the resource evaluation summaries for an AWS account in an AWS Region", + Privilege: "ListResourceEvaluations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the stored queries for an AWS account in an AWS Region", + Privilege: "ListStoredQueries", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for AWS Config resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vocabulary", + ResourceType: "AggregationAuthorization", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "wildcard-phone-number", + ResourceType: "ConfigRule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationAggregator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationRecorder", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConformancePack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OrganizationConfigRule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OrganizationConformancePack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StoredQuery", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to authorize the aggregator account and region to collect data from the source account and region", + Privilege: "PutAggregationAuthorization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AggregationAuthorization*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -62960,18 +65240,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update agent status in an Amazon Connect instance", - Privilege: "UpdateAgentStatus", + Description: "Grants permission to add or update an AWS Config rule for evaluating whether your AWS resources comply with your desired configurations", + Privilege: "PutConfigRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent-status*", + ResourceType: "ConfigRule*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -62980,17 +65260,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update authentication profile resources in an Amazon Connect instance", - Privilege: "UpdateAuthenticationProfile", + Description: "Grants permission to create and update the configuration aggregator with the selected source accounts and regions", + Privilege: "PutConfigurationAggregator", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "authentication-profile*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "organizations:EnableAWSServiceAccess", + "organizations:ListDelegatedAdministrators", + }, + ResourceType: "ConfigurationAggregator*", }, { ConditionKeys: []string{ - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -62999,17 +65284,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a contact in an Amazon Connect instance", - Privilege: "UpdateContact", + Description: "Grants permission to create or update a customer managed configuration recorder to record the selected resource configurations", + Privilege: "PutConfigurationRecorder", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "ConfigurationRecorder*", }, { ConditionKeys: []string{ - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -63018,18 +65306,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update the contact attributes associated with the specified contact", - Privilege: "UpdateContactAttributes", + Description: "Grants permission to create or update a conformance pack", + Privilege: "PutConformancePack", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "s3:GetObject", + "s3:ListBucket", + "ssm:GetDocument", + }, + ResourceType: "ConformancePack*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic", + Privilege: "PutDeliveryChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to be used by an AWS Lambda function to deliver evaluation results to AWS Config", + Privilege: "PutEvaluations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -63037,18 +65348,72 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update details about a contact evaluation in the specified Amazon Connect instance. A contact evaluation must be in the draft state. Answers included in the request are merged with existing answers for the given evaluation. An answer or note can be deleted by passing an empty object ( { }) to the question identifier", - Privilege: "UpdateContactEvaluation", + Description: "Grants permission to deliver evaluation result to AWS Config", + Privilege: "PutExternalEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-evaluation*", + ResourceType: "ConfigRule*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or update organization config rule for your entire organization evaluating whether your AWS resources comply with your desired configurations", + Privilege: "PutOrganizationConfigRule", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "connect:InstanceId", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "organizations:EnableAWSServiceAccess", + "organizations:ListDelegatedAdministrators", + }, + ResourceType: "OrganizationConfigRule*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or update organization conformance pack for your entire organization evaluating whether your AWS resources comply with your desired configurations", + Privilege: "PutOrganizationConformancePack", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "organizations:EnableAWSServiceAccess", + "organizations:ListDelegatedAdministrators", + "s3:GetObject", + }, + ResourceType: "OrganizationConformancePack*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or update the remediation configuration with a specific AWS Config rule with the selected target or action", + Privilege: "PutRemediationConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, + ResourceType: "RemediationConfiguration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or update remediation exceptions for specific resources for a specific AWS Config rule", + Privilege: "PutRemediationExceptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -63056,19 +65421,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update contact flow content in an Amazon Connect instance", - Privilege: "UpdateContactFlowContent", + Description: "Grants permission to record the configuration state for the resource provided in the request", + Privilege: "PutResourceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create and update the retention configuration with details about retention period (number of days) that AWS Config stores your historical information", + Privilege: "PutRetentionConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -63076,18 +65445,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata of a contact flow in an Amazon Connect instance", - Privilege: "UpdateContactFlowMetadata", + Description: "Grants permission to create a new service-linked configuration recorder to record the resource configurations in scope for the linked service", + Privilege: "PutServiceLinkedConfigurationRecorder", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "config:ConfigurationRecorderServicePrincipal", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to save a new query or updates an existing saved query", + Privilege: "PutStoredQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "StoredQuery*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -63095,20 +65483,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update contact flow module content in an Amazon Connect instance", - Privilege: "UpdateContactFlowModuleContent", + AccessLevel: "Read", + Description: "Grants permission to accept a structured query language (SQL) SELECT command and an aggregator to query configuration state of AWS resources across multiple accounts and regions, performs the corresponding search, and returns resource configurations matching the properties", + Privilege: "SelectAggregateResourceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module*", + ResourceType: "ConfigurationAggregator*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to accept a structured query language (SQL) SELECT command, performs the corresponding search, and returns resource configurations matching the properties", + Privilege: "SelectResourceConfig", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -63116,38 +65508,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata of a contact flow module in an Amazon Connect instance", - Privilege: "UpdateContactFlowModuleMetadata", + Description: "Grants permission to evaluate your resources against the specified Config rules", + Privilege: "StartConfigRulesEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow-module*", + ResourceType: "ConfigRule*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the customer managed configuration recorder to start recording configurations of the AWS resources you have selected to record in your AWS account", + Privilege: "StartConfigurationRecorder", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationRecorder*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the name and description of a contact flow in an Amazon Connect instance", - Privilege: "UpdateContactFlowName", + Description: "Grants permission to run an on-demand remediation for the specified AWS Config rules against the last known remediation configuration", + Privilege: "StartRemediationExecution", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to evaluate your resource details against the AWS Config rules in your account", + Privilege: "StartResourceEvaluation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeType", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the customer managed configuration recorder to stop recording configurations of the AWS resources you have selected to record in your AWS account", + Privilege: "StopConfigurationRecorder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow*", + ResourceType: "ConfigurationRecorder*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to associate the specified tags to a resource with the specified resourceArn", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AggregationAuthorization", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigRule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationAggregator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationRecorder", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConformancePack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OrganizationConfigRule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OrganizationConformancePack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StoredQuery", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -63155,33 +65626,219 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update routing properties on a contact in an Amazon Connect instance", - Privilege: "UpdateContactRoutingData", + AccessLevel: "Tagging", + Description: "Grants permission to delete specified tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "AggregationAuthorization", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigRule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationAggregator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationRecorder", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConformancePack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OrganizationConfigRule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OrganizationConformancePack", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StoredQuery", }, { ConditionKeys: []string{ - "connect:InstanceId", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:config:${Region}:${Account}:aggregation-authorization/${AggregatorAccount}/${AggregatorRegion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AggregationAuthorization", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:config-aggregator/${AggregatorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ConfigurationAggregator", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:config-rule/${ConfigRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ConfigRule", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:conformance-pack/${ConformancePackName}/${ConformancePackId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ConformancePack", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:organization-config-rule/${OrganizationConfigRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "OrganizationConfigRule", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:organization-conformance-pack/${OrganizationConformancePackId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "OrganizationConformancePack", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:remediation-configuration/${RemediationConfigurationId}", + ConditionKeys: []string{}, + Resource: "RemediationConfiguration", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:stored-query/${StoredQueryName}/${StoredQueryId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "StoredQuery", + }, + { + Arn: "arn:${Partition}:config:${Region}:${Account}:configuration-recorder/${RecorderName}/${RecorderId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ConfigurationRecorder", + }, + }, + ServiceName: "AWS Config", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by using tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by using tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by using tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "connect:AssignmentType", + Description: "Filters access by restricting access to create contacts based on Assignment Type", + Type: "String", + }, + { + Condition: "connect:AttributeType", + Description: "Filters access by the attribute type of the Amazon Connect instance", + Type: "String", + }, + { + Condition: "connect:Channel", + Description: "Filters access by Channel", + Type: "String", + }, + { + Condition: "connect:ContactAssociationId", + Description: "Filters access by ContactAssociationId", + Type: "String", + }, + { + Condition: "connect:ContactInitiationMethod", + Description: "Filters access by restricting access to create contacts based on the initiation method of the contact", + Type: "String", + }, + { + Condition: "connect:FlowType", + Description: "Filters access by Flow type", + Type: "ArrayOfString", + }, + { + Condition: "connect:InstanceId", + Description: "Filters access by restricting federation into specified Amazon Connect instances", + Type: "String", + }, + { + Condition: "connect:MonitorCapabilities", + Description: "Filters access by restricting the monitor capabilities of the user in the request", + Type: "ArrayOfString", + }, + { + Condition: "connect:SearchContactsByContactAnalysis", + Description: "Filters access by restricting searches using analysis outputs from Amazon Connect Contact Lens", + Type: "ArrayOfString", + }, + { + Condition: "connect:SearchTag/${TagKey}", + Description: "Filters access by TagFilter condition passed in the search request", + Type: "String", + }, + { + Condition: "connect:StorageResourceType", + Description: "Filters access by restricting the storage resource type of the Amazon Connect instance storage configuration", + Type: "String", + }, + { + Condition: "connect:Subtype", + Description: "Filters access by restricting creation of a contact for specific subtypes", + Type: "String", + }, + { + Condition: "connect:UserArn", + Description: "Filters access by UserArn", + Type: "ARN", + }, + }, + Prefix: "connect", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update the schedule of a contact that is already scheduled in an Amazon Connect instance", - Privilege: "UpdateContactSchedule", + Description: "Grants permission to activate an evaluation form in the specified Amazon Connect instance. After the evaluation form is activated, it is available to start new evaluations based on the form", + Privilege: "ActivateEvaluationForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "evaluation-form*", }, { ConditionKeys: []string{ @@ -63194,13 +65851,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update details about a specific evaluation form version in the specified Amazon Connect instance. Question and section identifiers cannot be duplicated within the same evaluation form", - Privilege: "UpdateEvaluationForm", + Description: "Grants permission to federate into an Amazon Connect instance (Log in for emergency access functionality in the Amazon Connect console)", + Privilege: "AdminGetEmergencyAccessToken", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeInstance", + "connect:ListInstances", + "ds:DescribeDirectories", + }, + ResourceType: "instance*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to grant access and to associate a dataset with the specified AWS account", + Privilege: "AssociateAnalyticsDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation-form*", + ResourceType: "instance*", }, { ConditionKeys: []string{ @@ -63213,17 +65886,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update hours of operation in an Amazon Connect instance", - Privilege: "UpdateHoursOfOperation", + Description: "Grants permission to associate approved origin for an existing Amazon Connect instance", + Privilege: "AssociateApprovedOrigin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63233,23 +65905,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the attribute for an existing Amazon Connect instance", - Privilege: "UpdateInstanceAttribute", + Description: "Grants permission to associate a Lex bot for an existing Amazon Connect instance", + Privilege: "AssociateBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ds:DescribeDirectories", "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", "iam:PutRolePolicy", - "logs:CreateLogGroup", + "lex:CreateResourcePolicy", + "lex:DescribeBotAlias", + "lex:GetBot", + "lex:UpdateResourcePolicy", }, ResourceType: "instance*", }, { ConditionKeys: []string{ - "connect:AttributeType", "connect:InstanceId", }, DependentActions: []string{}, @@ -63259,45 +65932,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the storage configuration for an existing Amazon Connect instance", - Privilege: "UpdateInstanceStorageConfig", + Description: "Grants permission to associate a Customer Profiles domain for an existing Amazon Connect instance", + Privilege: "AssociateCustomerProfilesDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ds:DescribeDirectories", - "firehose:DescribeDeliveryStream", "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", "iam:PutRolePolicy", - "kinesis:DescribeStream", - "kms:CreateGrant", - "kms:DescribeKey", - "s3:GetBucketAcl", - "s3:GetBucketLocation", + "profile:GetDomain", }, ResourceType: "instance*", }, - { - ConditionKeys: []string{ - "connect:StorageResourceType", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", - }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update participant role configurations associated with a contact", - Privilege: "UpdateParticipantRoleConfig", + Description: "Grants permission to default vocabulary for an existing Amazon Connect instance", + Privilege: "AssociateDefaultVocabulary", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -63314,23 +65968,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update phone number resources in an Amazon Connect instance or traffic distribution group", - Privilege: "UpdatePhoneNumber", + Description: "Grants permission to associate a resource with a flow in an Amazon Connect instance", + Privilege: "AssociateFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "phone-number*", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "wildcard-phone-number*", }, { ConditionKeys: []string{ @@ -63344,17 +65993,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata of a phone number resource in an Amazon Connect instance or traffic distribution group", - Privilege: "UpdatePhoneNumberMetadata", + Description: "Grants permission to associate instance storage for an existing Amazon Connect instance", + Privilege: "AssociateInstanceStorageConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "phone-number*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + "firehose:DescribeDeliveryStream", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "kinesis:DescribeStream", + "kms:CreateGrant", + "kms:DescribeKey", + "s3:GetBucketAcl", + "s3:GetBucketLocation", + }, + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "connect:StorageResourceType", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -63363,13 +66024,15 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a predefined attribute in an Amazon Connect instance", - Privilege: "UpdatePredefinedAttribute", + Description: "Grants permission to associate a Lambda function for an existing Amazon Connect instance", + Privilege: "AssociateLambdaFunction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "lambda:AddPermission", + }, + ResourceType: "instance*", }, { ConditionKeys: []string{ @@ -63382,21 +66045,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a prompt's name, description, and Amazon S3 URI in an Amazon Connect instance", - Privilege: "UpdatePrompt", + Description: "Grants permission to associate a Lex bot for an existing Amazon Connect instance", + Privilege: "AssociateLexBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "kms:Decrypt", - "s3:GetObject", - "s3:GetObjectAcl", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "lex:GetBot", }, - ResourceType: "prompt*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63406,18 +66069,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update queue hours of operation in an Amazon Connect instance", - Privilege: "UpdateQueueHoursOfOperation", + Description: "Grants permission to associate contact flow resources to phone number resources in an Amazon Connect instance", + Privilege: "AssociatePhoneNumberContactFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hours-of-operation*", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "phone-number*", }, { ConditionKeys: []string{ @@ -63431,33 +66094,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update queue capacity in an Amazon Connect instance", - Privilege: "UpdateQueueMaxContacts", + Description: "Grants permission to associate quick connects with a queue in an Amazon Connect instance", + Privilege: "AssociateQueueQuickConnects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "queue*", }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", - }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a queue name and description in an Amazon Connect instance", - Privilege: "UpdateQueueName", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "quick-connect*", }, { ConditionKeys: []string{ @@ -63471,8 +66119,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update queue outbound caller config in an Amazon Connect instance", - Privilege: "UpdateQueueOutboundCallerConfig", + Description: "Grants permission to associate queues with a routing profile in an Amazon Connect instance", + Privilege: "AssociateRoutingProfileQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -63482,12 +66130,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-flow", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "phone-number", + ResourceType: "routing-profile*", }, { ConditionKeys: []string{ @@ -63501,17 +66144,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update queue status in an Amazon Connect instance", - Privilege: "UpdateQueueStatus", + Description: "Grants permission to associate a security key for an existing Amazon Connect instance", + Privilege: "AssociateSecurityKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63521,33 +66163,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of a quick connect in an Amazon Connect instance", - Privilege: "UpdateQuickConnectConfig", + Description: "Grants permission to associate a user to a traffic distribution group in the specified Amazon Connect instance", + Privilege: "AssociateTrafficDistributionGroupUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "quick-connect*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-flow", + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeUser", + "connect:SearchUsers", + }, + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "traffic-distribution-group*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "user*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", + "aws:ResourceTag/${TagKey}", + "connect:SearchTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -63556,17 +66197,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a quick connect name and description in an Amazon Connect instance", - Privilege: "UpdateQuickConnectName", + Description: "Grants permission to associate user proficiencies to a user in an Amazon Connect instance", + Privilege: "AssociateUserProficiencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quick-connect*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63576,17 +66221,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a routing profile agent availability timer in an Amazon Connect instance", - Privilege: "UpdateRoutingProfileAgentAvailabilityTimer", + Description: "Grants permission to grant access and to associate the datasets with the specified AWS account", + Privilege: "BatchAssociateAnalyticsDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63596,17 +66240,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the concurrency in a routing profile in an Amazon Connect instance", - Privilege: "UpdateRoutingProfileConcurrency", + Description: "Grants permission to revoke access and to disassociate the datasets with the specified AWS account", + Privilege: "BatchDisassociateAnalyticsDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63615,23 +66258,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the outbound queue in a routing profile in an Amazon Connect instance", - Privilege: "UpdateRoutingProfileDefaultOutboundQueue", + AccessLevel: "Read", + Description: "Grants permission to get metadata for multiple attached files from an Amazon Connect instance", + Privilege: "BatchGetAttachedFileMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "attached-file*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63640,14 +66279,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a routing profile name and description in an Amazon Connect instance", - Privilege: "UpdateRoutingProfileName", + AccessLevel: "List", + Description: "Grants permission to get summary information about the flow associations for the specified Amazon Connect instance", + Privilege: "BatchGetFlowAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "wildcard-phone-number*", }, { ConditionKeys: []string{ @@ -63661,17 +66300,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the queues in routing profile in an Amazon Connect instance", - Privilege: "UpdateRoutingProfileQueues", + Description: "Grants permission to put contacts in an Amazon Connect instance", + Privilege: "BatchPutContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63681,16 +66324,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a rule for an existing Amazon Connect instance", - Privilege: "UpdateRule", + Description: "Grants permission to claim phone number resources in an Amazon Connect instance or traffic distribution group", + Privilege: "ClaimPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "traffic-distribution-group*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "wildcard-phone-number*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63700,17 +66355,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a security profile group for a user in an Amazon Connect instance", - Privilege: "UpdateSecurityProfile", + Description: "Grants permission to complete an attached file upload in an Amazon Connect instance", + Privilege: "CompleteAttachedFileUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", + ResourceType: "attached-file*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63720,17 +66376,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update task template belonging to a Amazon Connect instance", - Privilege: "UpdateTaskTemplate", + Description: "Grants permission to create agent status in an Amazon Connect instance", + Privilege: "CreateAgentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-template*", + ResourceType: "agent-status*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63740,17 +66397,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update traffic distribution for a traffic distribution group", - Privilege: "UpdateTrafficDistribution", + Description: "Grants permission to create authentication profile resources in an Amazon Connect instance", + Privilege: "CreateAuthenticationProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-distribution-group*", + ResourceType: "authentication-profile*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -63759,23 +66416,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a hierarchy group for a user in an Amazon Connect instance", - Privilege: "UpdateUserHierarchy", + Description: "Grants permission to create a new contact using the Amazon Connect API", + Privilege: "CreateContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group", + ResourceType: "contact", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "connect:InstanceId", + "connect:ContactInitiationMethod", }, DependentActions: []string{}, ResourceType: "", @@ -63784,17 +66447,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a user hierarchy group name in an Amazon Connect instance", - Privilege: "UpdateUserHierarchyGroupName", + Description: "Grants permission to create a contact flow in an Amazon Connect instance", + Privilege: "CreateContactFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hierarchy-group*", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", + "connect:FlowType", }, DependentActions: []string{}, ResourceType: "", @@ -63803,16 +66469,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update user hierarchy structure in an Amazon Connect instance", - Privilege: "UpdateUserHierarchyStructure", + Description: "Grants permission to create a contact flow module in an Amazon Connect instance", + Privilege: "CreateContactFlowModule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "contact-flow-module*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63822,18 +66490,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update identity information for a user in an Amazon Connect instance", - Privilege: "UpdateUserIdentityInfo", + Description: "Grants permission to create a version a flow in an Amazon Connect instance", + Privilege: "CreateContactFlowVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "connect:InstanceId", + "connect:FlowType", }, DependentActions: []string{}, ResourceType: "", @@ -63842,17 +66511,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update phone configuration settings for a user in an Amazon Connect instance", - Privilege: "UpdateUserPhoneConfig", + Description: "Grants permission to create an email address resource in an Amazon Connect instance", + Privilege: "CreateEmailAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63862,18 +66532,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update user proficiencies from a user in an Amazon Connect instance", - Privilege: "UpdateUserProficiencies", + Description: "Grants permission to create an evaluation form in the specified Amazon Connect instance. The form can be used to define questions related to agent performance, and create sections to organize such questions. Question and section identifiers cannot be duplicated within the same evaluation form", + Privilege: "CreateEvaluationForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "evaluation-form*", }, { ConditionKeys: []string{ @@ -63886,22 +66551,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a routing profile for a user in an Amazon Connect instance", - Privilege: "UpdateUserRoutingProfile", + Description: "Grants permission to create hours of operation in an Amazon Connect instance", + Privilege: "CreateHoursOfOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routing-profile*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "hours-of-operation*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "connect:InstanceId", }, DependentActions: []string{}, @@ -63911,22 +66572,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update security profiles for a user in an Amazon Connect instance", - Privilege: "UpdateUserSecurityProfiles", + Description: "Grants permission to create an hours of operation override in an Amazon Connect instance", + Privilege: "CreateHoursOfOperationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-profile*", + ResourceType: "hours-of-operation*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", }, DependentActions: []string{}, @@ -63936,315 +66596,96 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a view's content in an Amazon Connect instance", - Privilege: "UpdateViewContent", + Description: "Grants permission to create a new Amazon Connect instance", + Privilege: "CreateInstance", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "customer-managed-view*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a view's metadata in an Amazon Connect instance", - Privilege: "UpdateViewMetadata", + DependentActions: []string{ + "ds:AuthorizeApplication", + "ds:CheckAlias", + "ds:CreateAlias", + "ds:CreateDirectory", + "ds:CreateIdentityPoolDirectory", + "ds:DeleteDirectory", + "ds:DescribeDirectories", + "ds:UnauthorizeApplication", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an integration association with an Amazon Connect instance", + Privilege: "CreateIntegrationAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "app-integrations:CreateApplicationAssociation", + "app-integrations:CreateEventIntegrationAssociation", + "app-integrations:GetApplication", + "cases:GetDomain", + "chime:AssociateVoiceConnectorConnect", + "chime:DisassociateVoiceConnectorConnect", + "chime:TagResource", + "chime:UntagResource", + "connect:DescribeInstance", + "ds:DescribeDirectories", + "events:PutRule", + "events:PutTargets", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "mobiletargeting:GetApp", + "voiceid:DescribeDomain", + "wisdom:GetAssistant", + "wisdom:GetKnowledgeBase", + "wisdom:TagResource", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-view*", + ResourceType: "integration-association*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "connect:InstanceId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "instance", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact/${ContactId}", - ConditionKeys: []string{}, - Resource: "contact", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent/${UserId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "user", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/routing-profile/${RoutingProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "routing-profile", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/security-profile/${SecurityProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "security-profile", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/authentication-profile/${AuthenticationProfileId}", - ConditionKeys: []string{}, - Resource: "authentication-profile", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent-group/${HierarchyGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "hierarchy-group", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/queue/${QueueId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "queue", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/queue/*", - ConditionKeys: []string{}, - Resource: "wildcard-queue", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/transfer-destination/${QuickConnectId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "quick-connect", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/transfer-destination/*", - ConditionKeys: []string{}, - Resource: "wildcard-quick-connect", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact-flow/${ContactFlowId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "contact-flow", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/task-template/${TaskTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "task-template", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/flow-module/${ContactFlowModuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "contact-flow-module", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact-flow/*", - ConditionKeys: []string{}, - Resource: "wildcard-contact-flow", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/operating-hours/${HoursOfOperationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "hours-of-operation", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent-state/${AgentStatusId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "agent-status", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent-state/*", - ConditionKeys: []string{}, - Resource: "wildcard-agent-status", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/phone-number/${PhoneNumberId}", - ConditionKeys: []string{}, - Resource: "legacy-phone-number", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/phone-number/*", - ConditionKeys: []string{}, - Resource: "wildcard-legacy-phone-number", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:phone-number/${PhoneNumberId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "phone-number", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:phone-number/*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "wildcard-phone-number", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/integration-association/${IntegrationAssociationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "integration-association", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/use-case/${UseCaseId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "use-case", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/vocabulary/${VocabularyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "vocabulary", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:traffic-distribution-group/${TrafficDistributionGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "traffic-distribution-group", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/rule/${RuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rule", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/evaluation-form/${FormId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "evaluation-form", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact-evaluation/${EvaluationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "contact-evaluation", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/prompt/${PromptId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "prompt", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/view/${ViewId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "customer-managed-view", - }, - { - Arn: "arn:${Partition}:connect:${Region}:aws:view/${ViewId}", - ConditionKeys: []string{}, - Resource: "aws-managed-view", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/view/${ViewId}:${ViewQualifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "qualified-customer-managed-view", - }, - { - Arn: "arn:${Partition}:connect:${Region}:aws:view/${ViewId}:${ViewQualifier}", - ConditionKeys: []string{}, - Resource: "qualified-aws-managed-view", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/view/${ViewId}:${ViewVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "customer-managed-view-version", - }, - { - Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/file/${FileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "attached-file", - }, - }, - ServiceName: "Amazon Connect", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "connect-campaigns", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a campaign", - Privilege: "CreateCampaign", + Description: "Grants permission to add a participant to an ongoing contact", + Privilege: "CreateParticipant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "contact*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64253,53 +66694,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a campaign", - Privilege: "DeleteCampaign", + Description: "Grants permission to create persistent contact associations for a contact", + Privilege: "CreatePersistentContactAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "contact*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove configuration information for an Amazon Connect instance", - Privilege: "DeleteConnectInstanceConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove onboarding job for an Amazon Connect instance", - Privilege: "DeleteInstanceOnboardingJob", + Description: "Grants permission to create a predefined attribute in an Amazon Connect instance", + Privilege: "CreatePredefinedAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a specific campaign", - Privilege: "DescribeCampaign", + AccessLevel: "Write", + Description: "Grants permission to create a prompt in an Amazon Connect instance", + Privilege: "CreatePrompt", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "campaign*", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "s3:GetObject", + "s3:GetObjectAcl", + }, + ResourceType: "prompt*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64307,18 +66761,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get state of a campaign", - Privilege: "GetCampaignState", + AccessLevel: "Write", + Description: "Grants permission to create a push notification registration for an Amazon Connect instance", + Privilege: "CreatePushNotificationRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64326,18 +66780,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get state of campaigns", - Privilege: "GetCampaignStateBatch", + AccessLevel: "Write", + Description: "Grants permission to create a queue in an Amazon Connect instance", + Privilege: "CreateQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "hours-of-operation*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "phone-number", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quick-connect", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64345,37 +66821,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get configuration information for an Amazon Connect instance", - Privilege: "GetConnectInstanceConfig", + AccessLevel: "Write", + Description: "Grants permission to create a quick connect in an Amazon Connect instance", + Privilege: "CreateQuickConnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "quick-connect*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get onboarding job status for an Amazon Connect instance", - Privilege: "GetInstanceOnboardingJobStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-flow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to provide summary of all campaigns", - Privilege: "ListCampaigns", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64383,18 +66857,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a routing profile in an Amazon Connect instance", + Privilege: "CreateRoutingProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign", + ResourceType: "queue*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routing-profile*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64403,90 +66884,76 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to pause a campaign", - Privilege: "PauseCampaign", + Description: "Grants permission to create a rule in an Amazon Connect instance", + Privilege: "CreateRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "rule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create dial requests for the specified campaign", - Privilege: "PutDialRequestBatch", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to resume a campaign", - Privilege: "ResumeCampaign", + Description: "Grants permission to create a security profile for the specified Amazon Connect instance", + Privilege: "CreateSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "security-profile*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a campaign", - Privilege: "StartCampaign", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start onboarding job for an Amazon Connect instance", - Privilege: "StartInstanceOnboardingJob", + Description: "Grants permission to create a task template in an Amazon Connect instance", + Privilege: "CreateTaskTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "task-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a campaign", - Privilege: "StopCampaign", + Description: "Grants permission to create a traffic distribution group", + Privilege: "CreateTrafficDistributionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign", + ResourceType: "traffic-distribution-group*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64494,19 +66961,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a use case for an integration association", + Privilege: "CreateUseCase", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeInstance", + "ds:DescribeDirectories", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign", + ResourceType: "integration-association*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "use-case*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "connect:InstanceId", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -64515,250 +66996,201 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the dialer configuration of a campaign", - Privilege: "UpdateCampaignDialerConfig", + Description: "Grants permission to create a user for the specified Amazon Connect instance", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "routing-profile*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the name of a campaign", - Privilege: "UpdateCampaignName", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "security-profile*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the outbound call configuration of a campaign", - Privilege: "UpdateCampaignOutboundCallConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "user*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:connect-campaigns:${Region}:${Account}:campaign/${CampaignId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "campaign", - }, - }, - ServiceName: "High-volume outbound communications", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "consoleapp", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the device identity for a Console Mobile App device", - Privilege: "GetDeviceIdentity", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DeviceIdentity*", + ResourceType: "hierarchy-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of device identities", - Privilege: "ListDeviceIdentities", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:consoleapp::${Account}:device/${DeviceId}/identity/${IdentityId}", - ConditionKeys: []string{}, - Resource: "DeviceIdentity", - }, - }, - ServiceName: "AWS Management Console Mobile App", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "consolidatedbilling", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to get account role (Payer, Linked, Regular)", - Privilege: "GetAccountBillingRole", + AccessLevel: "Write", + Description: "Grants permission to create a user hierarchy group in an Amazon Connect instance", + Privilege: "CreateUserHierarchyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hierarchy-group", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get list of member/linked accounts", - Privilege: "ListLinkedAccounts", + AccessLevel: "Write", + Description: "Grants permission to create a view in an Amazon Connect instance", + Privilege: "CreateView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customer-managed-view*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Consolidated Billing", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "controlcatalog", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "List", - Description: "Grants permission to return a paginated list of common controls from the AWS Control Catalog", - Privilege: "ListCommonControls", + AccessLevel: "Write", + Description: "Grants permission to create a view version in an Amazon Connect instance", + Privilege: "CreateViewVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "customer-managed-view*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a paginated list of domains from the AWS Control Catalog", - Privilege: "ListDomains", + AccessLevel: "Write", + Description: "Grants permission to create a vocabulary in an Amazon Connect instance", + Privilege: "CreateVocabulary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "vocabulary*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a paginated list of objectives from the AWS Control Catalog", - Privilege: "ListObjectives", + AccessLevel: "Write", + Description: "Grants permission to deactivate an evaluation form in the specified Amazon Connect instance. After a form is deactivated, it is no longer available for users to start new evaluations based on the form", + Privilege: "DeactivateEvaluationForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "evaluation-form*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:controlcatalog:::common-control/${CommonControlId}", - ConditionKeys: []string{}, - Resource: "common-control", - }, - { - Arn: "arn:${Partition}:controlcatalog:::domain/${DomainId}", - ConditionKeys: []string{}, - Resource: "domain", - }, - { - Arn: "arn:${Partition}:controlcatalog:::objective/${ObjectiveId}", - ConditionKeys: []string{}, - Resource: "objective", - }, - }, - ServiceName: "AWS Control Catalog", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "controltower", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a landing zone", - Privilege: "CreateLandingZone", + Description: "Grants permission to delete an attached file from an Amazon Connect instance", + Privilege: "DeleteAttachedFile", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cases:DeleteRelatedItem", + }, + ResourceType: "attached-file*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "connect:InstanceId", }, - DependentActions: []string{ - "controltower:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an account managed by AWS Control Tower", - Privilege: "CreateManagedAccount", + Description: "Grants permission to delete a contact evaluation in the specified Amazon Connect instance", + Privilege: "DeleteContactEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-evaluation*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete AWS Control Tower landing zone", - Privilege: "DeleteLandingZone", + Description: "Grants permission to delete a contact flow in an Amazon Connect instance", + Privilege: "DeleteContactFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LandingZone*", + ResourceType: "contact-flow*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deregister an account created through the account factory from AWS Control Tower", - Privilege: "DeregisterManagedAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", + }, DependentActions: []string{}, ResourceType: "", }, @@ -64766,119 +67198,100 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister an organizational unit from AWS Control Tower management", - Privilege: "DeregisterOrganizationalUnit", + Description: "Grants permission to delete a contact flow module in an Amazon Connect instance", + Privilege: "DeleteContactFlowModule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-flow-module*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the current account factory configuration", - Privilege: "DescribeAccountFactoryConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe resources managed by core accounts in AWS Control Tower", - Privilege: "DescribeCoreService", + AccessLevel: "Write", + Description: "Grants permission to delete a version of a flow in an Amazon Connect instance", + Privilege: "DeleteContactFlowVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-flow*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a guardrail", - Privilege: "DescribeGuardrail", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a guardrail for a organizational unit", - Privilege: "DescribeGuardrailForTarget", + AccessLevel: "Write", + Description: "Grants permission to delete an email address resource in an Amazon Connect instance", + Privilege: "DeleteEmailAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "email-address*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the current Landing Zone configuration", - Privilege: "DescribeLandingZoneConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an account created through account factory", - Privilege: "DescribeManagedAccount", + AccessLevel: "Write", + Description: "Grants permission to delete an evaluation form in the specified Amazon Connect instance. If the version property is provided, only the specified version of the evaluation form is deleted", + Privilege: "DeleteEvaluationForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "evaluation-form*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an AWS Organizations organizational unit managed by AWS Control Tower", - Privilege: "DescribeManagedOrganizationalUnit", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a Register Organizational Unit Operation", - Privilege: "DescribeRegisterOrganizationalUnitOperation", + AccessLevel: "Write", + Description: "Grants permission to delete hours of operation in an Amazon Connect instance", + Privilege: "DeleteHoursOfOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hours-of-operation*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the current AWS Control Tower IAM Identity Center configuration", - Privilege: "DescribeSingleSignOn", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -64886,35 +67299,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable a Baseline on a target", - Privilege: "DisableBaseline", + Description: "Grants permission to delete an hours of operation override in an Amazon Connect instance", + Privilege: "DeleteHoursOfOperationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline*", + ResourceType: "hours-of-operation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove a control from an organizational unit", - Privilege: "DisableControl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledControl*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable a guardrail from an organizational unit", - Privilege: "DisableGuardrail", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -64922,37 +67323,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable a Baseline on a target", - Privilege: "EnableBaseline", + Description: "Grants permission to delete an Amazon Connect instance. When you remove an instance, the link to an existing AWS directory is also removed", + Privilege: "DeleteInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "controltower:TagResource", + "ds:DeleteDirectory", + "ds:DescribeDirectories", + "ds:UnauthorizeApplication", }, - ResourceType: "", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate a control for an organizational unit", - Privilege: "EnableControl", + Description: "Grants permission to delete an integration association from an Amazon Connect instance. The association must not have any use cases associated with it", + Privilege: "DeleteIntegrationAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "controltower:TagResource", + "app-integrations:DeleteApplicationAssociation", + "app-integrations:DeleteEventIntegrationAssociation", + "connect:DescribeInstance", + "ds:DescribeDirectories", + "events:DeleteRule", + "events:ListTargetsByRule", + "events:RemoveTargets", }, - ResourceType: "EnabledControl", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration-association*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -64961,506 +67379,522 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable a guardrail to an organizational unit", - Privilege: "EnableGuardrail", + Description: "Grants permission to delete a predefined attribute in an Amazon Connect instance", + Privilege: "DeletePredefinedAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an account email and validate that it exists", - Privilege: "GetAccountInfo", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list available updates for the current AWS Control Tower deployment", - Privilege: "GetAvailableUpdates", + AccessLevel: "Write", + Description: "Grants permission to delete a prompt in an Amazon Connect instance", + Privilege: "DeletePrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "prompt*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Baseline details", - Privilege: "GetBaseline", + AccessLevel: "Write", + Description: "Grants permission to delete a push notification registration for an Amazon Connect instance", + Privilege: "DeletePushNotificationRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Baseline*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the current status of a particular Baseline operation", - Privilege: "GetBaselineOperation", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the current status of a particular EnabledControl or DisableControl operation", - Privilege: "GetControlOperation", + AccessLevel: "Write", + Description: "Grants permission to delete a queue in an Amazon Connect instance", + Privilege: "DeleteQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an enabled Baseline", - Privilege: "GetEnabledBaseline", + AccessLevel: "Write", + Description: "Grants permission to delete a quick connect in an Amazon Connect instance", + Privilege: "DeleteQuickConnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline*", + ResourceType: "quick-connect*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an enabled control from an organizational unit", - Privilege: "GetEnabledControl", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "EnabledControl*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the current compliance status of a guardrail", - Privilege: "GetGuardrailComplianceStatus", + AccessLevel: "Write", + Description: "Grants permission to delete routing profiles in an Amazon Connect instance", + Privilege: "DeleteRoutingProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "routing-profile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the home region of the AWS Control Tower setup", - Privilege: "GetHomeRegion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the current status of the landing zone setup", - Privilege: "GetLandingZone", + AccessLevel: "Write", + Description: "Grants permission to delete a rule in an Amazon Connect instance", + Privilege: "DeleteRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LandingZone*", + ResourceType: "rule*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the current landing zone drift status", - Privilege: "GetLandingZoneDriftStatus", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the current status of a particular landing zone operation", - Privilege: "GetLandingZoneOperation", + AccessLevel: "Write", + Description: "Grants permission to delete a security profile in an Amazon Connect instance", + Privilege: "DeleteSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-profile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the current status of the landing zone setup", - Privilege: "GetLandingZoneStatus", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Baselines", - Privilege: "ListBaselines", + AccessLevel: "Write", + Description: "Grants permission to delete a task template in an Amazon Connect instance", + Privilege: "DeleteTaskTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "task-template*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all control operations", - Privilege: "ListControlOperations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the current directory groups available through IAM Identity Center", - Privilege: "ListDirectoryGroups", + AccessLevel: "Write", + Description: "Grants permission to delete a traffic distribution group", + Privilege: "DeleteTrafficDistributionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-distribution-group*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list occurrences of drift in AWS Control Tower", - Privilege: "ListDriftDetails", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list enabled Baselines", - Privilege: "ListEnabledBaselines", + AccessLevel: "Write", + Description: "Grants permission to delete a use case from an integration association", + Privilege: "DeleteUseCase", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeInstance", + "ds:DescribeDirectories", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "use-case*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all enabled controls in a specified organizational unit", - Privilege: "ListEnabledControls", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list currently enabled guardrails", - Privilege: "ListEnabledGuardrails", + AccessLevel: "Write", + Description: "Grants permission to delete a user in an Amazon Connect instance", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Precheck details for an Organizational Unit", - Privilege: "ListExtendGovernancePrecheckDetails", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the compliance of external AWS Config rules", - Privilege: "ListExternalConfigRuleCompliance", + AccessLevel: "Write", + Description: "Grants permission to delete a user hierarchy group in an Amazon Connect instance", + Privilege: "DeleteUserHierarchyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hierarchy-group*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing guardrail violations", - Privilege: "ListGuardrailViolations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available guardrails", - Privilege: "ListGuardrails", + AccessLevel: "Write", + Description: "Grants permission to delete a view in an Amazon Connect instance", + Privilege: "DeleteView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customer-managed-view*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list guardrails and their current state for a organizational unit", - Privilege: "ListGuardrailsForTarget", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all landing zone operations", - Privilege: "ListLandingZoneOperations", + AccessLevel: "Write", + Description: "Grants permission to delete a view version in an Amazon Connect instance", + Privilege: "DeleteViewVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customer-managed-view-version*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all landing zones", - Privilege: "ListLandingZones", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list accounts managed through AWS Control Tower", - Privilege: "ListManagedAccounts", + AccessLevel: "Write", + Description: "Grants permission to delete a vocabulary in an Amazon Connect instance", + Privilege: "DeleteVocabulary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vocabulary*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list managed accounts with a specified guardrail applied", - Privilege: "ListManagedAccountsForGuardrail", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list managed accounts under an organizational unit", - Privilege: "ListManagedAccountsForParent", + AccessLevel: "Read", + Description: "Grants permission to describe agent status in an Amazon Connect instance", + Privilege: "DescribeAgentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "agent-status*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list organizational units managed by AWS Control Tower", - Privilege: "ListManagedOrganizationalUnits", + AccessLevel: "Read", + Description: "Grants permission to describe authentication profile resources in an Amazon Connect instance", + Privilege: "DescribeAuthenticationProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "authentication-profile*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list managed organizational units that have a specified guardrail applied", - Privilege: "ListManagedOrganizationalUnitsForGuardrail", + AccessLevel: "Read", + Description: "Grants permission to describe a contact in an Amazon Connect instance", + Privilege: "DescribeContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe a contact evaluation in the specified Amazon Connect instance", + Privilege: "DescribeContactEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "EnabledControl", + ResourceType: "contact-evaluation*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "LandingZone", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set up an organizational unit to be managed by AWS Control Tower", - Privilege: "ManageOrganizationalUnit", + AccessLevel: "Read", + Description: "Grants permission to describe a contact flow in an Amazon Connect instance", + Privilege: "DescribeContactFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-flow*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to perform validations in an account", - Privilege: "PerformPreLaunchChecks", + Description: "Grants permission to describe a contact flow module in an Amazon Connect instance", + Privilege: "DescribeContactFlowModule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-flow-module*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reset an enabled Baseline", - Privilege: "ResetEnabledBaseline", + AccessLevel: "Read", + Description: "Grants permission to describe an email address resource in an Amazon Connect instance", + Privilege: "DescribeEmailAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline*", + ResourceType: "email-address*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reset a landing zone", - Privilege: "ResetLandingZone", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "LandingZone*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set up or update AWS Control Tower landing zone", - Privilege: "SetupLandingZone", + AccessLevel: "Read", + Description: "Grants permission to describe an evaluation form in the specified Amazon Connect instance. If the version property is not provided, the latest version of the evaluation form is described", + Privilege: "DescribeEvaluationForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "evaluation-form*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to describe the status of forecasting, planning, and scheduling integration on an Amazon Connect instance", + Privilege: "DescribeForecastingPlanningSchedulingIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline", + ResourceType: "instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "EnabledControl", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe hours of operation in an Amazon Connect instance", + Privilege: "DescribeHoursOfOperation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LandingZone", + ResourceType: "hours-of-operation*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65468,28 +67902,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe an hours of operation override in an Amazon Connect instance", + Privilege: "DescribeHoursOfOperationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "EnabledControl", + ResourceType: "hours-of-operation*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LandingZone", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65497,273 +67926,296 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the account factory configuration", - Privilege: "UpdateAccountFactoryConfig", + AccessLevel: "Read", + Description: "Grants permission to view details of an Amazon Connect instance and is also required to create an instance", + Privilege: "DescribeInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an enabled Baseline", - Privilege: "UpdateEnabledBaseline", + AccessLevel: "Read", + Description: "Grants permission to view the attribute details of an existing Amazon Connect instance", + Privilege: "DescribeInstanceAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EnabledBaseline*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an enabled control for an organizational unit", - Privilege: "UpdateEnabledControl", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:AttributeType", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "EnabledControl*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a landing zone", - Privilege: "UpdateLandingZone", + AccessLevel: "Read", + Description: "Grants permission to view the instance storage configuration for an existing Amazon Connect instance", + Privilege: "DescribeInstanceStorageConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LandingZone*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:StorageResourceType", + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:controltower:${Region}:${Account}:enabledcontrol/${EnabledControlId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "EnabledControl", - }, - { - Arn: "arn:${Partition}:controltower:${Region}::baseline/${BaselineId}", - ConditionKeys: []string{}, - Resource: "Baseline", - }, - { - Arn: "arn:${Partition}:controltower:${Region}:${Account}:enabledbaseline/${EnabledBaselineId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "EnabledBaseline", - }, - { - Arn: "arn:${Partition}:controltower:${Region}:${Account}:landingzone/${LandingZoneId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "LandingZone", - }, - }, - ServiceName: "AWS Control Tower", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "cost-optimization-hub", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to get preferences", - Privilege: "GetPreferences", + Description: "Grants permission to describe phone number resources in an Amazon Connect instance or traffic distribution group", + Privilege: "DescribePhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "phone-number*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get resource configuration and estimated cost impact for a recommendation", - Privilege: "GetRecommendation", + Description: "Grants permission to describe a predefined attribute in an Amazon Connect instance", + Privilege: "DescribePredefinedAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list enrollment statuses for the specified account or all members under a management account", - Privilege: "ListEnrollmentStatuses", + AccessLevel: "Read", + Description: "Grants permission to describe a prompt in an Amazon Connect instance", + Privilege: "DescribePrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list recommendation summaries by group", - Privilege: "ListRecommendationSummaries", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cost-optimization-hub:GetRecommendation", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list summary view of recommendations", - Privilege: "ListRecommendations", + AccessLevel: "Read", + Description: "Grants permission to describe a queue in an Amazon Connect instance", + Privilege: "DescribeQueue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cost-optimization-hub:GetRecommendation", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the enrollment status", - Privilege: "UpdateEnrollmentStatus", + AccessLevel: "Read", + Description: "Grants permission to describe a quick connect in an Amazon Connect instance", + Privilege: "DescribeQuickConnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "quick-connect*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update preferences", - Privilege: "UpdatePreferences", + AccessLevel: "Read", + Description: "Grants permission to describe a routing profile in an Amazon Connect instance", + Privilege: "DescribeRoutingProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "routing-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Cost Optimization Hub", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "cur", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to delete Cost and Usage Report Definition", - Privilege: "DeleteReportDefinition", + AccessLevel: "Read", + Description: "Grants permission to describe a rule in an Amazon Connect instance", + Privilege: "DescribeRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cur*", + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get Cost and Usage Report Definitions", - Privilege: "DescribeReportDefinitions", + Description: "Grants permission to describe a security profile in an Amazon Connect instance", + Privilege: "DescribeSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "security-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get Bills CSV report", - Privilege: "GetClassicReport", + Description: "Grants permission to describe a traffic distribution group", + Privilege: "DescribeTrafficDistributionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "traffic-distribution-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the classic report enablement status for Usage Reports", - Privilege: "GetClassicReportPreferences", + Description: "Grants permission to describe a user in an Amazon Connect instance", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get list of AWS services, usage type and operation for the Usage Report workflow. Allows or denies download of usage reports too", - Privilege: "GetUsageReport", + Description: "Grants permission to describe a hierarchy group for an Amazon Connect instance", + Privilege: "DescribeUserHierarchyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hierarchy-group*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe the hierarchy structure for an Amazon Connect instance", + Privilege: "DescribeUserHierarchyStructure", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cur*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65771,56 +68223,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify Cost and Usage Report Definition", - Privilege: "ModifyReportDefinition", + AccessLevel: "Read", + Description: "Grants permission to describe a view in an Amazon Connect instance", + Privilege: "DescribeView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cur*", + ResourceType: "aws-managed-view*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable classic reports", - Privilege: "PutClassicReportPreferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customer-managed-view*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to write Cost and Usage Report Definition", - Privilege: "PutReportDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cur*", + ResourceType: "qualified-aws-managed-view*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cur*", + ResourceType: "qualified-customer-managed-view*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65828,19 +68258,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe a vocabulary in an Amazon Connect instance", + Privilege: "DescribeVocabulary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cur*", + ResourceType: "vocabulary*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65848,124 +68278,121 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to validates if the s3 bucket exists with appropriate permissions for CUR delivery", - Privilege: "ValidateReportDestination", + AccessLevel: "Write", + Description: "Grants permission to revoke access and to disassociate a dataset with the specified AWS account", + Privilege: "DisassociateAnalyticsDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:cur:${Region}:${Account}:definition/${ReportName}", - ConditionKeys: []string{}, - Resource: "cur", - }, - }, - ServiceName: "AWS Cost and Usage Report", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "customer-verification", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create customer verification data", - Privilege: "CreateCustomerVerificationDetails", + Description: "Grants permission to disassociate approved origin for an existing Amazon Connect instance", + Privilege: "DisassociateApprovedOrigin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get customer verification data", - Privilege: "GetCustomerVerificationDetails", + AccessLevel: "Write", + Description: "Grants permission to disassociate a Lex bot for an existing Amazon Connect instance", + Privilege: "DisassociateBot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "lex:DeleteResourcePolicy", + "lex:UpdateResourcePolicy", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get customer verification eligibility", - Privilege: "GetCustomerVerificationEligibility", + AccessLevel: "Write", + Description: "Grants permission to disassociate a Customer Profiles domain for an existing Amazon Connect instance", + Privilege: "DisassociateCustomerProfilesDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AttachRolePolicy", + "iam:DeleteRolePolicy", + "iam:DetachRolePolicy", + "iam:GetPolicy", + "iam:GetPolicyVersion", + "iam:GetRolePolicy", + }, + ResourceType: "instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update customer verification data", - Privilege: "UpdateCustomerVerificationDetails", + Description: "Grants permission to disassociate a resource from a flow in an Amazon Connect instance", + Privilege: "DisassociateFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "wildcard-phone-number*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Customer Verification Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "databrew", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete one or more recipe versions", - Privilege: "BatchDeleteRecipeVersion", + Description: "Grants permission to disassociate instance storage for an existing Amazon Connect instance", + Privilege: "DisassociateInstanceStorageConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recipe*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a dataset", - Privilege: "CreateDataset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:StorageResourceType", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65974,13 +68401,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a profile job", - Privilege: "CreateProfileJob", + Description: "Grants permission to disassociate a Lambda function for an existing Amazon Connect instance", + Privilege: "DisassociateLambdaFunction", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "lambda:RemovePermission", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -65989,13 +68422,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a project", - Privilege: "CreateProject", + Description: "Grants permission to disassociate a Lex bot for an existing Amazon Connect instance", + Privilege: "DisassociateLexBot", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66004,13 +68445,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a recipe", - Privilege: "CreateRecipe", + Description: "Grants permission to disassociate contact flow resources from phone number resources in an Amazon Connect instance", + Privilege: "DisassociatePhoneNumberContactFlow", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "phone-number*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66019,13 +68465,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a recipe job", - Privilege: "CreateRecipeJob", + Description: "Grants permission to disassociate quick connects from a queue in an Amazon Connect instance", + Privilege: "DisassociateQueueQuickConnects", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quick-connect*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66034,13 +68490,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a ruleset", - Privilege: "CreateRuleset", + Description: "Grants permission to disassociate queues from a routing profile in an Amazon Connect instance", + Privilege: "DisassociateRoutingProfileQueues", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routing-profile*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66049,13 +68510,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a schedule", - Privilege: "CreateSchedule", + Description: "Grants permission to disassociate the security key for an existing Amazon Connect instance", + Privilege: "DisassociateSecurityKey", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66064,167 +68529,141 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a dataset", - Privilege: "DeleteDataset", + Description: "Grants permission to disassociate a user from a traffic distribution group in the specified Amazon Connect instance", + Privilege: "DisassociateTrafficDistributionGroupUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Dataset*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a job", - Privilege: "DeleteJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "traffic-distribution-group*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a recipe version", - Privilege: "DeleteRecipeVersion", + Description: "Grants permission to disassociate user proficiencies from a user in an Amazon Connect instance", + Privilege: "DisassociateUserProficiencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recipe*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a ruleset", - Privilege: "DeleteRuleset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Ruleset*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a schedule", - Privilege: "DeleteSchedule", + Description: "Grants permission to dismiss terminated Contact from Agent CCP", + Privilege: "DismissUserContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Schedule*", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about a dataset", - Privilege: "DescribeDataset", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Dataset*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a job", - Privilege: "DescribeJob", + Description: "Grants permission to get an attached file from an Amazon Connect instance", + Privilege: "GetAttachedFile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "attached-file*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about job run for a given job", - Privilege: "DescribeJobRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a project", - Privilege: "DescribeProject", + Description: "Grants permission to retrieve the contact attributes for the specified contact", + Privilege: "GetContactAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "contact*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about a recipe", - Privilege: "DescribeRecipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, DependentActions: []string{}, - ResourceType: "Recipe*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a ruleset", - Privilege: "DescribeRuleset", + Description: "Grants permission to retrieve current metric data for queues and routing profiles in an Amazon Connect instance", + Privilege: "GetCurrentMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Ruleset*", + ResourceType: "queue*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about a schedule", - Privilege: "DescribeSchedule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Schedule*", + ResourceType: "routing-profile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list datasets in your account", - Privilege: "ListDatasets", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -66232,219 +68671,234 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list job runs for a given job", - Privilege: "ListJobRuns", + Description: "Grants permission to retrieve current user data in an Amazon Connect instance", + Privilege: "GetCurrentUserData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "hierarchy-group*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list jobs in your account", - Privilege: "ListJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routing-profile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list projects in your account", - Privilege: "ListProjects", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list versions in your recipe", - Privilege: "ListRecipeVersions", + Description: "Grants permission to get effective hours of operation resources in an Amazon Connect instance", + Privilege: "GetEffectiveHoursOfOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recipe*", + ResourceType: "hours-of-operation*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list recipes in your account", - Privilege: "ListRecipes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list rulesets in your account", - Privilege: "ListRulesets", + Description: "Grants permission to federate into an Amazon Connect instance when using SAML-based authentication for identity management", + Privilege: "GetFederationToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list schedules in your account", - Privilege: "ListSchedules", + Description: "Grants permission to get information about the flow associations for the specified Amazon Connect instance", + Privilege: "GetFlowAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "wildcard-phone-number*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve tags associated with a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve historical metric data for queues in an Amazon Connect instance", + Privilege: "GetMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Dataset", + ResourceType: "queue*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve metric data in an Amazon Connect instance", + Privilege: "GetMetricDataV2", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project", + ResourceType: "hierarchy-group*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recipe", + ResourceType: "queue*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Ruleset", + ResourceType: "routing-profile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Schedule", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to publish a major verison of a recipe", - Privilege: "PublishRecipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Recipe*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit an action to the interactive session for a project", - Privilege: "SendProjectSessionAction", + AccessLevel: "Read", + Description: "Grants permission to get details about a prompt's presigned Amazon S3 URL in an Amazon Connect instance", + Privilege: "GetPromptFile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "prompt*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start running a job", - Privilege: "StartJobRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an interactive session for a project", - Privilege: "StartProjectSession", + AccessLevel: "Read", + Description: "Grants permission to get details about specified task template in an Amazon Connect instance", + Privilege: "GetTaskTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "task-template*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop a job run for a job", - Privilege: "StopJobRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to read traffic distribution for a traffic distribution group", + Privilege: "GetTrafficDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Project", + ResourceType: "traffic-distribution-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Recipe", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import phone number resources to an Amazon Connect instance", + Privilege: "ImportPhoneNumber", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Ruleset", + ConditionKeys: []string{}, + DependentActions: []string{ + "sms-voice:DescribePhoneNumbers", + "social-messaging:GetLinkedWhatsAppBusinessAccountPhoneNumber", + "social-messaging:TagResource", + }, + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Schedule", + ResourceType: "wildcard-phone-number*", }, { ConditionKeys: []string{ @@ -66457,43 +68911,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list agent statuses in an Amazon Connect instance", + Privilege: "ListAgentStatuses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Recipe", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Ruleset", + ResourceType: "wildcard-agent-status*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the association status of a dataset for a given Amazon Connect instance", + Privilege: "ListAnalyticsDataAssociations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Schedule", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66501,194 +68942,94 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a dataset", - Privilege: "UpdateDataset", + AccessLevel: "List", + Description: "Grants permission to list data lake datasets available to associate with for a given Amazon Connect instance", + Privilege: "ListAnalyticsDataLakeDataSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Dataset*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify a profile job", - Privilege: "UpdateProfileJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a project", - Privilege: "UpdateProject", + AccessLevel: "List", + Description: "Grants permission to view approved origins of an existing Amazon Connect instance", + Privilege: "ListApprovedOrigins", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify a recipe", - Privilege: "UpdateRecipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Recipe*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a recipe job", - Privilege: "UpdateRecipeJob", + AccessLevel: "List", + Description: "Grants permission to list the contacts associated with an email address in an Amazon Connect instance", + Privilege: "ListAssociatedContacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "contact*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify a ruleset", - Privilege: "UpdateRuleset", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "Ruleset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a schedule", - Privilege: "UpdateSchedule", + AccessLevel: "List", + Description: "Grants permission to list authentication profile resources in an Amazon Connect instance", + Privilege: "ListAuthenticationProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Schedule*", + ResourceType: "instance*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:databrew:${Region}:${Account}:project/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Project", - }, - { - Arn: "arn:${Partition}:databrew:${Region}:${Account}:dataset/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Dataset", - }, - { - Arn: "arn:${Partition}:databrew:${Region}:${Account}:ruleset/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Ruleset", - }, - { - Arn: "arn:${Partition}:databrew:${Region}:${Account}:recipe/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Recipe", - }, - { - Arn: "arn:${Partition}:databrew:${Region}:${Account}:job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Job", - }, - { - Arn: "arn:${Partition}:databrew:${Region}:${Account}:schedule/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Schedule", - }, - }, - ServiceName: "AWS Glue DataBrew", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the allowed set of values for each of the mandatory tags in the create request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the create request", - Type: "ArrayOfString", - }, - { - Condition: "dataexchange:JobType", - Description: "Filters access by the specified job type", - Type: "String", - }, - }, - Prefix: "dataexchange", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to cancel a job", - Privilege: "CancelJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "jobs*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an asset (for example, in a Job)", - Privilege: "CreateAsset", + AccessLevel: "List", + Description: "Grants permission to view the Lex bots of an existing Amazon Connect instance", + Privilege: "ListBots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "revisions*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a data set", - Privilege: "CreateDataSet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -66696,43 +69037,51 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an event action", - Privilege: "CreateEventAction", + AccessLevel: "List", + Description: "Grants permission to list contact evaluations in the specified Amazon Connect instance", + Privilege: "ListContactEvaluations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a job to import or export assets", - Privilege: "CreateJob", + AccessLevel: "List", + Description: "Grants permission to list contact flow module resources in an Amazon Connect instance", + Privilege: "ListContactFlowModules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a revision", - Privilege: "CreateRevision", + AccessLevel: "List", + Description: "Grants permission to list all the versions a flow in an Amazon Connect instance", + Privilege: "ListContactFlowVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", }, DependentActions: []string{}, ResourceType: "", @@ -66740,312 +69089,333 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an asset", - Privilege: "DeleteAsset", + AccessLevel: "List", + Description: "Grants permission to list contact flow resources in an Amazon Connect instance", + Privilege: "ListContactFlows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets*", + ResourceType: "wildcard-contact-flow*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a data set", - Privilege: "DeleteDataSet", + AccessLevel: "List", + Description: "Grants permission to list references associated with a contact in an Amazon Connect instance", + Privilege: "ListContactReferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "contact*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, DependentActions: []string{}, - ResourceType: "entitled-data-sets*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an event action", - Privilege: "DeleteEventAction", + AccessLevel: "List", + Description: "Grants permission to list default vocabularies associated with a Amazon Connect instance", + Privilege: "ListDefaultVocabularies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-actions*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a revision", - Privilege: "DeleteRevision", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "revisions*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an asset and to export it (for example, in a Job)", - Privilege: "GetAsset", + AccessLevel: "List", + Description: "Grants permission to list versions of an evaluation form in the specified Amazon Connect instance", + Privilege: "ListEvaluationFormVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets*", + ResourceType: "evaluation-form*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "entitled-assets*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a data set", - Privilege: "GetDataSet", + AccessLevel: "List", + Description: "Grants permission to list evaluation forms in the specified Amazon Connect instance", + Privilege: "ListEvaluationForms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "entitled-data-sets*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an event action", - Privilege: "GetEventAction", + AccessLevel: "List", + Description: "Grants permission to list summary information about the flow associations for the specified Amazon Connect instance", + Privilege: "ListFlowAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-actions*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a job", - Privilege: "GetJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "jobs*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a revision", - Privilege: "GetRevision", + AccessLevel: "List", + Description: "Grants permission to list hours of operation override resources in an Amazon Connect instance", + Privilege: "ListHoursOfOperationOverrides", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entitled-revisions*", + ResourceType: "hours-of-operation*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "revisions*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the revisions of a data set", - Privilege: "ListDataSetRevisions", + Description: "Grants permission to list hours of operation resources in an Amazon Connect instance", + Privilege: "ListHoursOfOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "entitled-data-sets*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list data sets for the account", - Privilege: "ListDataSets", + Description: "Grants permission to view the attributes of an existing Amazon Connect instance", + Privilege: "ListInstanceAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list event actions for the account", - Privilege: "ListEventActions", + Description: "Grants permission to view storage configurations of an existing Amazon Connect instance", + Privilege: "ListInstanceStorageConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list jobs for the account", - Privilege: "ListJobs", + Description: "Grants permission to view the Amazon Connect instances associated with an AWS account", + Privilege: "ListInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + }, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get list the assets of a revision", - Privilege: "ListRevisionAssets", + Description: "Grants permission to list summary information about the integration associations for the specified Amazon Connect instance", + Privilege: "ListIntegrationAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entitled-revisions*", + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeInstance", + "ds:DescribeDirectories", + }, + ResourceType: "instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "revisions*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the tags that you associated with the specified resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to view the Lambda functions of an existing Amazon Connect instance", + Privilege: "ListLambdaFunctions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets", + ResourceType: "instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "revisions", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to publish a data set", - Privilege: "PublishDataSet", + AccessLevel: "List", + Description: "Grants permission to view the Lex bots of an existing Amazon Connect instance", + Privilege: "ListLexBots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke subscriber access to a revision", - Privilege: "RevokeRevision", + AccessLevel: "List", + Description: "Grants permission to list phone number resources in an Amazon Connect instance", + Privilege: "ListPhoneNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "revisions*", + ResourceType: "wildcard-legacy-phone-number*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a request to an API asset", - Privilege: "SendApiAsset", + AccessLevel: "List", + Description: "Grants permission to list phone number resources in an Amazon Connect instance", + Privilege: "ListPhoneNumbersV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entitled-assets*", + ResourceType: "wildcard-phone-number*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a notification to subscribers of a data set", - Privilege: "SendDataSetNotification", + AccessLevel: "List", + Description: "Grants permission to list predefined attributes in an Amazon Connect instance", + Privilege: "ListPredefinedAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a job", - Privilege: "StartJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dataexchange:CreateAsset", - "dataexchange:DeleteDataSet", - "dataexchange:GetAsset", - "dataexchange:GetDataSet", - "dataexchange:GetRevision", - "dataexchange:PublishDataSet", - "redshift:AuthorizeDataShare", + ConditionKeys: []string{ + "connect:InstanceId", }, - ResourceType: "jobs*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a specified resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list prompt resources in an Amazon Connect instance", + Privilege: "ListPrompts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "revisions", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67053,23 +69423,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from a specified resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list quick connect resources in a queue in an Amazon Connect instance", + Privilege: "ListQueueQuickConnects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "revisions", + ResourceType: "queue*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67077,156 +69443,67 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to get update information about an asset", - Privilege: "UpdateAsset", + AccessLevel: "List", + Description: "Grants permission to list queue resources in an Amazon Connect instance", + Privilege: "ListQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets*", + ResourceType: "wildcard-queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information about a data set", - Privilege: "UpdateDataSet", + AccessLevel: "List", + Description: "Grants permission to list quick connect resources in an Amazon Connect instance", + Privilege: "ListQuickConnects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-sets*", + ResourceType: "wildcard-quick-connect*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information for an event action", - Privilege: "UpdateEventAction", + AccessLevel: "Read", + Description: "Grants permission to list the analysis segments for a real-time analysis session", + Privilege: "ListRealtimeContactAnalysisSegments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-actions*", + ResourceType: "contact*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information about a revision", - Privilege: "UpdateRevision", + AccessLevel: "List", + Description: "Grants permission to list the analysis segments for a real-time chat analytics session", + Privilege: "ListRealtimeContactAnalysisSegmentsV2", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dataexchange:PublishDataSet", - }, - ResourceType: "revisions*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:jobs/${JobId}", - ConditionKeys: []string{ - "dataexchange:JobType", - }, - Resource: "jobs", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-sets/${DataSetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "data-sets", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}::data-sets/${DataSetId}", - ConditionKeys: []string{}, - Resource: "entitled-data-sets", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-sets/${DataSetId}/revisions/${RevisionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "revisions", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}::data-sets/${DataSetId}/revisions/${RevisionId}", - ConditionKeys: []string{}, - Resource: "entitled-revisions", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-sets/${DataSetId}/revisions/${RevisionId}/assets/${AssetId}", - ConditionKeys: []string{}, - Resource: "assets", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}::data-sets/${DataSetId}/revisions/${RevisionId}/assets/${AssetId}", - ConditionKeys: []string{}, - Resource: "entitled-assets", - }, - { - Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:event-actions/${EventActionId}", - ConditionKeys: []string{}, - Resource: "event-actions", - }, - }, - ServiceName: "AWS Data Exchange", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, { - Condition: "datapipeline:PipelineCreator", - Description: "Filters access by the IAM user that created the pipeline", - Type: "ArrayOfString", - }, - { - Condition: "datapipeline:Tag", - Description: "Filters access by customer-specified key/value pair that can be attached to a resource", - Type: "ArrayOfString", - }, - { - Condition: "datapipeline:workerGroup", - Description: "Filters access by the name of a worker group for which a Task Runner retrieves work", - Type: "ArrayOfString", - }, - }, - Prefix: "datapipeline", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to validate the specified pipeline and starts processing pipeline tasks. If the pipeline does not pass validation, activation fails", - Privilege: "ActivatePipeline", + AccessLevel: "List", + Description: "Grants permission to list queue resources in a routing profile in an Amazon Connect instance", + Privilege: "ListRoutingProfileQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "routing-profile*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "datapipeline:workerGroup", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67234,21 +69511,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or modify tags for the specified pipeline", - Privilege: "AddTags", + AccessLevel: "List", + Description: "Grants permission to list routing profile resources in an Amazon Connect instance", + Privilege: "ListRoutingProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67256,38 +69530,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new, empty pipeline", - Privilege: "CreatePipeline", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "datapipeline:Tag", - }, - DependentActions: []string{ - "datapipeline:AddTags", - }, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to Deactivate the specified running pipeline", - Privilege: "DeactivatePipeline", + AccessLevel: "List", + Description: "Grants permission to list rules associated with a Amazon Connect instance", + Privilege: "ListRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "datapipeline:workerGroup", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67295,19 +69549,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a pipeline, its pipeline definition, and its run history", - Privilege: "DeletePipeline", + AccessLevel: "List", + Description: "Grants permission to view the security keys of an existing Amazon Connect instance", + Privilege: "ListSecurityKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67315,19 +69568,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the object definitions for a set of objects associated with the pipeline", - Privilege: "DescribeObjects", + AccessLevel: "List", + Description: "Grants permission to list applications associated with a specific security profile in an Amazon Connect instance", + Privilege: "ListSecurityProfileApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "security-profile*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67335,19 +69588,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieves metadata about one or more pipelines", - Privilege: "DescribePipelines", + AccessLevel: "List", + Description: "Grants permission to list permissions associated with security profile in an Amazon Connect instance", + Privilege: "ListSecurityProfilePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "security-profile*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67355,19 +69608,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to task runners to call EvaluateExpression, to evaluate a string in the context of the specified object", - Privilege: "EvaluateExpression", + AccessLevel: "List", + Description: "Grants permission to list security profile resources in an Amazon Connect instance", + Privilege: "ListSecurityProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "instance*", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67375,278 +69627,135 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to call GetAccountLimits", - Privilege: "GetAccountLimits", + AccessLevel: "Read", + Description: "Grants permission to list tags for an Amazon Connect resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent-status", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to gets the definition of the specified pipeline", - Privilege: "GetPipelineDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "contact-evaluation", }, { - ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "datapipeline:workerGroup", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-flow", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the pipeline identifiers for all active pipelines that you have permission to access", - Privilege: "ListPipelines", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-flow-module", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to task runners to call PollForTask, to receive a task to perform from AWS Data Pipeline", - Privilege: "PollForTask", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "datapipeline:workerGroup", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "evaluation-form", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to call PutAccountLimits", - Privilege: "PutAccountLimits", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hierarchy-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add tasks, schedules, and preconditions to the specified pipeline", - Privilege: "PutPipelineDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "hours-of-operation", }, { - ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "datapipeline:workerGroup", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "integration-association", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to query the specified pipeline for the names of objects that match the specified set of conditions", - Privilege: "QueryObjects", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "phone-number", }, { - ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prompt", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove existing tags from the specified pipeline", - Privilege: "RemoveTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "queue", }, { - ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "quick-connect", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to task runners to call ReportTaskProgress, when they are assigned a task to acknowledge that it has the task", - Privilege: "ReportTaskProgress", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "routing-profile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to task runners to call ReportTaskRunnerHeartbeat every 15 minutes to indicate that they are operational", - Privilege: "ReportTaskRunnerHeartbeat", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rule", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to requests that the status of the specified physical or logical pipeline objects be updated in the specified pipeline", - Privilege: "SetStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "security-profile", }, { - ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-distribution-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to task runners to call SetTaskStatus to notify AWS Data Pipeline that a task is completed and provide information about the final status", - Privilege: "SetTaskStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "use-case", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to validate the specified pipeline definition to ensure that it is well formed and can be run without error", - Privilege: "ValidatePipelineDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "user", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "wildcard-phone-number", }, { ConditionKeys: []string{ - "datapipeline:PipelineCreator", - "datapipeline:Tag", - "datapipeline:workerGroup", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:datapipeline:${Region}:${Account}:pipeline/${PipelineId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "pipeline", - }, - }, - ServiceName: "AWS Data Pipeline", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "datasync", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a storage system", - Privilege: "AddStorageSystem", + AccessLevel: "List", + Description: "Grants permission to list task template resources in an Amazon Connect instance", + Privilege: "ListTaskTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel execution of a sync task", - Privilege: "CancelTaskExecution", + AccessLevel: "List", + Description: "Grants permission to list the active user associations for a traffic distribution group", + Privilege: "ListTrafficDistributionGroupUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "taskexecution*", + ResourceType: "traffic-distribution-group*", }, { ConditionKeys: []string{ @@ -67658,29 +69767,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to activate an agent that you have deployed on your host", - Privilege: "CreateAgent", + AccessLevel: "List", + Description: "Grants permission to list traffic distribution groups", + Privilege: "ListTrafficDistributionGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-distribution-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for a Microsoft Azure Blob Storage container", - Privilege: "CreateLocationAzureBlob", + AccessLevel: "List", + Description: "Grants permission to list the use cases of an integration association", + Privilege: "ListUseCases", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeInstance", + "ds:DescribeDirectories", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67688,14 +69801,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for an Amazon EFS file system", - Privilege: "CreateLocationEfs", + AccessLevel: "List", + Description: "Grants permission to list the hierarchy group resources in an Amazon Connect instance", + Privilege: "ListUserHierarchyGroups", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67703,14 +69820,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for an Amazon Fsx Lustre", - Privilege: "CreateLocationFsxLustre", + AccessLevel: "List", + Description: "Grants permission to list user proficiencies from a user in an Amazon Connect instance", + Privilege: "ListUserProficiencies", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67718,14 +69844,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for Amazon FSx for ONTAP", - Privilege: "CreateLocationFsxOntap", + AccessLevel: "List", + Description: "Grants permission to list user resources in an Amazon Connect instance", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67733,14 +69863,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for Amazon FSx for OpenZFS", - Privilege: "CreateLocationFsxOpenZfs", + AccessLevel: "List", + Description: "Grants permission to list the view versions in an Amazon Connect instance", + Privilege: "ListViewVersions", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "aws-managed-view*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "customer-managed-view*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67748,14 +69888,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for an Amazon FSx Windows File Server file system", - Privilege: "CreateLocationFsxWindows", + AccessLevel: "List", + Description: "Grants permission to list the views in an Amazon Connect instance", + Privilege: "ListViews", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67764,13 +69908,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint for an Amazon Hdfs", - Privilege: "CreateLocationHdfs", + Description: "Grants permission to monitor an ongoing contact", + Privilege: "MonitorContact", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "connect:MonitorCapabilities", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67779,13 +69939,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint for a NFS file system", - Privilege: "CreateLocationNfs", + Description: "Grants permission to pause an ongoing contact", + Privilege: "PauseContact", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67794,13 +69969,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint for a self-managed object storage bucket", - Privilege: "CreateLocationObjectStorage", + Description: "Grants permission to switch User Status in an Amazon Connect instance", + Privilege: "PutUserStatus", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "agent-status*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67809,13 +69999,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint for an Amazon S3 bucket", - Privilege: "CreateLocationS3", + Description: "Grants permission to release phone number resources in an Amazon Connect instance", + Privilege: "ReleasePhoneNumber", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "phone-number*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -67824,13 +70018,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint for an SMB file system", - Privilege: "CreateLocationSmb", + Description: "Grants permission to create a replica of an Amazon Connect instance", + Privilege: "ReplicateInstance", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AuthorizeApplication", + "ds:CheckAlias", + "ds:CreateAlias", + "ds:CreateDirectory", + "ds:CreateIdentityPoolDirectory", + "ds:DeleteDirectory", + "ds:DescribeDirectories", + "ds:UnauthorizeApplication", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + }, + ResourceType: "instance*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67839,23 +70051,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a sync task", - Privilege: "CreateTask", + Description: "Grants permission to resume a paused contact", + Privilege: "ResumeContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "contact*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -67864,257 +70081,407 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an agent", - Privilege: "DeleteAgent", + Description: "Grants permission to resume recording for the specified contact", + Privilege: "ResumeContactRecording", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "contact*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a location used by AWS DataSync", - Privilege: "DeleteLocation", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a sync task", - Privilege: "DeleteTask", + AccessLevel: "Read", + Description: "Grants permission to search agent status resources in an Amazon Connect instance", + Privilege: "SearchAgentStatuses", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeAgentStatus", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view metadata such as name, network interfaces, and the status (that is, whether the agent is running or not) about a sync agent", - Privilege: "DescribeAgent", + AccessLevel: "List", + Description: "Grants permission to search phone number resources in an Amazon Connect instance or traffic distribution group", + Privilege: "SearchAvailablePhoneNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "wildcard-phone-number*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe metadata about a discovery job", - Privilege: "DescribeDiscoveryJob", + Description: "Grants permission to search contact flow module resources in an Amazon Connect instance", + Privilege: "SearchContactFlowModules", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeContactFlowModule", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "discoveryjob*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Azure Blob Storage sync location", - Privilege: "DescribeLocationAzureBlob", + Description: "Grants permission to search contact flow resources in an Amazon Connect instance", + Privilege: "SearchContactFlows", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeContactFlow", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + "connect:FlowType", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Amazon EFS sync location", - Privilege: "DescribeLocationEfs", + Description: "Grants permission to search contacts in an Amazon Connect instance", + Privilege: "SearchContacts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeContact", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchContactsByContactAnalysis", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Amazon FSx Lustre sync location", - Privilege: "DescribeLocationFsxLustre", + Description: "Grants permission to search email address resources in an Amazon Connect instance", + Privilege: "SearchEmailAddresses", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeEmailAddress", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Amazon FSx for ONTAP sync location", - Privilege: "DescribeLocationFsxOntap", + Description: "Grants permission to search hours of operation override resources in an Amazon Connect instance", + Privilege: "SearchHoursOfOperationOverrides", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeHoursOfOperation", + "connect:ListHoursOfOperationOverrides", + }, + ResourceType: "hours-of-operation*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Amazon FSx OpenZFS sync location", - Privilege: "DescribeLocationFsxOpenZfs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Amazon FSx Windows sync location", - Privilege: "DescribeLocationFsxWindows", + Description: "Grants permission to search hours of operation resources in an Amazon Connect instance", + Privilege: "SearchHoursOfOperations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeHoursOfOperation", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information about an Amazon HDFS sync location", - Privilege: "DescribeLocationHdfs", + Description: "Grants permission to search predefined attributes in an Amazon Connect instance", + Privilege: "SearchPredefinedAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribePredefinedAttribute", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information, about a NFS sync location", - Privilege: "DescribeLocationNfs", + Description: "Grants permission to search prompt resources in an Amazon Connect instance", + Privilege: "SearchPrompts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribePrompt", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata about a self-managed object storage server location", - Privilege: "DescribeLocationObjectStorage", + Description: "Grants permission to search queue resources in an Amazon Connect instance", + Privilege: "SearchQueues", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeQueue", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata, such as bucket name, about an Amazon S3 bucket sync location", - Privilege: "DescribeLocationS3", + Description: "Grants permission to search quick connect resources in an Amazon Connect instance", + Privilege: "SearchQuickConnects", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeQuickConnect", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view metadata, such as the path information, about an SMB sync location", - Privilege: "DescribeLocationSmb", + AccessLevel: "List", + Description: "Grants permission to search tags that are used in an Amazon Connect instance", + Privilege: "SearchResourceTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata about a storage system", - Privilege: "DescribeStorageSystem", + Description: "Grants permission to search routing profile resources in an Amazon Connect instance", + Privilege: "SearchRoutingProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeRoutingProfile", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "storagesystem*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe resource metrics collected by a discovery job", - Privilege: "DescribeStorageSystemResourceMetrics", + AccessLevel: "Read", + Description: "Grants permission to search security profile resources in an Amazon Connect instance", + Privilege: "SearchSecurityProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeSecurityProfile", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "discoveryjob*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe resources identified by a discovery job", - Privilege: "DescribeStorageSystemResources", + AccessLevel: "Read", + Description: "Grants permission to search user hierarchy group resources in an Amazon Connect instance", + Privilege: "SearchUserHierarchyGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeUserHierarchyGroup", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "discoveryjob*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view metadata about a sync task", - Privilege: "DescribeTask", + Description: "Grants permission to search user resources in an Amazon Connect instance", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "connect:DescribeUser", + "connect:ListUserProficiencies", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:SearchTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view metadata about a sync task that is being executed", - Privilege: "DescribeTaskExecution", + AccessLevel: "List", + Description: "Grants permission to search vocabularies in a Amazon Connect instance", + Privilege: "SearchVocabularies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "taskexecution*", + ResourceType: "vocabulary*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -68123,20 +70490,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to generate recommendations for a resource identified by a discovery job", - Privilege: "GenerateRecommendations", + Description: "Grants permission to send chat integration events using the Amazon Connect API", + Privilege: "SendChatIntegrationEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoveryjob*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list agents owned by an AWS account in a region specified in the request", - Privilege: "ListAgents", + AccessLevel: "Write", + Description: "Grants permission to send integration events using the Amazon Connect API", + Privilege: "SendIntegrationEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -68146,86 +70513,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list discovery jobs", - Privilege: "ListDiscoveryJobs", + AccessLevel: "Write", + Description: "Grants permission to send outbound email using the Amazon Connect API", + Privilege: "SendOutboundEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list source and destination sync locations", - Privilege: "ListLocations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list storage systems", - Privilege: "ListStorageSystems", + AccessLevel: "Write", + Description: "Grants permission to start an attached file upload in an Amazon Connect instance", + Privilege: "StartAttachedFileUpload", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "cases:CreateRelatedItem", + }, + ResourceType: "attached-file*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "connect:InstanceId", + "connect:UserArn", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags that have been added to the specified resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to initiate a chat using the Amazon Connect API", + Privilege: "StartChatContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoveryjob", + ResourceType: "contact", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "location", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an empty evaluation in the specified Amazon Connect instance, using the given evaluation form for the particular contact. The evaluation form version used for the contact evaluation corresponds to the currently activated version. If no version is activated for the evaluation form, the contact evaluation cannot be started", + Privilege: "StartContactEvaluation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagesystem", + ResourceType: "contact*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "contact-evaluation*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "taskexecution", + ResourceType: "evaluation-form*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list executed sync tasks", - Privilege: "ListTaskExecutions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -68233,56 +70609,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list of all the sync tasks", - Privilege: "ListTasks", + AccessLevel: "Write", + Description: "Grants permission to start recording for the specified contact", + Privilege: "StartContactRecording", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a storage system", - Privilege: "RemoveStorageSystem", + Description: "Grants permission to start chat streaming using the Amazon Connect API", + Privilege: "StartContactStreaming", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagesystem*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a discovery job for a storage system", - Privilege: "StartDiscoveryJob", + Description: "Grants permission to initiate an inbound email using the Amazon Connect API", + Privilege: "StartEmailContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagesystem*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a specific invocation of a sync task", - Privilege: "StartTaskExecution", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "contact-flow", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -68291,55 +70668,77 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop a discovery job", - Privilege: "StopDiscoveryJob", + Description: "Grants permission to enable forecasting, planning, and scheduling integration on an Amazon Connect instance", + Privilege: "StartForecastingPlanningSchedulingIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoveryjob*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to apply a key-value pair to an AWS resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to initiate an outbound chat using the Amazon Connect API", + Privilege: "StartOutboundChatContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoveryjob", + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location", + ResourceType: "contact", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagesystem", + ResourceType: "phone-number", }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:Subtype", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate an outbound email using the Amazon Connect API", + Privilege: "StartOutboundEmailContact", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "taskexecution", + ResourceType: "contact-flow", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -68347,43 +70746,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to initiate outbound calls using the Amazon Connect API", + Privilege: "StartOutboundVoiceContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent", + ResourceType: "contact*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start screen sharing for contact", + Privilege: "StartScreenSharing", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoveryjob", + ResourceType: "contact*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate a task using the Amazon Connect API", + Privilege: "StartTaskContact", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagesystem", + ResourceType: "contact-flow*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "contact", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "taskexecution", + ResourceType: "quick-connect", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-template", }, { ConditionKeys: []string{ - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:AssignmentType", }, DependentActions: []string{}, ResourceType: "", @@ -68392,339 +70822,630 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the name of an agent", - Privilege: "UpdateAgent", + Description: "Grants permission to initiate a WebRTC contact using the Amazon Connect API", + Privilege: "StartWebRTCContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agent*", + ResourceType: "contact-flow*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a discovery job", - Privilege: "UpdateDiscoveryJob", + Description: "Grants permission to stop contacts that were initiated using the Amazon Connect API. If you use this operation on an active contact the contact ends, even if the agent is active on a call with a customer", + Privilege: "StopContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoveryjob*", + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Azure Blob Storage sync location", - Privilege: "UpdateLocationAzureBlob", + Description: "Grants permission to stop recording for the specified contact", + Privilege: "StopContactRecording", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an HDFS sync Location", - Privilege: "UpdateLocationHdfs", + Description: "Grants permission to stop chat streaming using the Amazon Connect API", + Privilege: "StopContactStreaming", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an NFS sync Location", - Privilege: "UpdateLocationNfs", + Description: "Grants permission to disable forecasting, planning, and scheduling integration on an Amazon Connect instance", + Privilege: "StopForecastingPlanningSchedulingIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a self-managed object storage server location", - Privilege: "UpdateLocationObjectStorage", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a SMB sync location", - Privilege: "UpdateLocationSmb", + Description: "Grants permission to submit a contact evaluation in the specified Amazon Connect instance. Answers included in the request are merged with existing answers for the given evaluation. If no answers or notes are passed, the evaluation is submitted with the existing answers and notes. You can delete an answer or note by passing an empty object ( { }) to the question identifier", + Privilege: "SubmitContactEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "contact-evaluation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a storage system", - Privilege: "UpdateStorageSystem", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, - ResourceType: "storagesystem*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update metadata associated with a sync task", - Privilege: "UpdateTask", + Description: "Grants permission to suspend recording for the specified contact", + Privilege: "SuspendContactRecording", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update execution of a sync task", - Privilege: "UpdateTaskExecution", + Description: "Grants permission to tag a contact in an Amazon Connect instance", + Privilege: "TagContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "taskexecution*", + ResourceType: "contact*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:agent/${AgentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "agent", - }, - { - Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:location/${LocationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "location", - }, - { - Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:task/${TaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "task", - }, - { - Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:task/${TaskId}/execution/${ExecutionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "taskexecution", - }, - { - Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:system/${StorageSystemId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "storagesystem", - }, - { - Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:system/${StorageSystemId}/job/${DiscoveryJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "discoveryjob", - }, - }, - ServiceName: "AWS DataSync", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "datazone", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept prediction", - Privilege: "AcceptPredictions", + AccessLevel: "Tagging", + Description: "Grants permission to tag an Amazon Connect resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "agent-status", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-evaluation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow-module", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "customer-managed-view", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "evaluation-form", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hierarchy-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hours-of-operation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration-association", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "phone-number", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quick-connect", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routing-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "security-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "traffic-distribution-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "use-case", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vocabulary", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "wildcard-phone-number", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to approve a subscription request for a Data Asset", - Privilege: "AcceptSubscriptionRequest", + Description: "Grants permission to transfer the contact to another queue or agent", + Privilege: "TransferContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a policy grant", - Privilege: "AddPolicyGrant", + Description: "Grants permission to untag a contact in an Amazon Connect instance", + Privilege: "UntagContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a role in a default service blueprint environment", - Privilege: "AssociateEnvironmentRole", + AccessLevel: "Tagging", + Description: "Grants permission to untag an Amazon Connect resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "agent-status", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-evaluation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow-module", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "customer-managed-view", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "evaluation-form", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hierarchy-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hours-of-operation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration-association", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "phone-number", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "prompt", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quick-connect", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routing-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "security-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "traffic-distribution-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "use-case", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vocabulary", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "wildcard-phone-number", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel metadata generation run", - Privilege: "CancelMetadataGenerationRun", + Description: "Grants permission to update agent status in an Amazon Connect instance", + Privilege: "UpdateAgentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "agent-status*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to revoke or unsubscribe an approved subscription to Data Asset", - Privilege: "CancelSubscription", + Description: "Grants permission to update authentication profile resources in an Amazon Connect instance", + Privilege: "UpdateAuthenticationProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "authentication-profile*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create asset", - Privilege: "CreateAsset", + Description: "Grants permission to update a contact in an Amazon Connect instance", + Privilege: "UpdateContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create asset filter", - Privilege: "CreateAssetFilter", + Description: "Grants permission to create or update the contact attributes associated with the specified contact", + Privilege: "UpdateContactAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create new revision of an asset", - Privilege: "CreateAssetRevision", + Description: "Grants permission to update details about a contact evaluation in the specified Amazon Connect instance. A contact evaluation must be in the draft state. Answers included in the request are merged with existing answers for the given evaluation. An answer or note can be deleted by passing an empty object ( { }) to the question identifier", + Privilege: "UpdateContactEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-evaluation*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an asset type", - Privilege: "CreateAssetType", + Description: "Grants permission to update contact flow content in an Amazon Connect instance", + Privilege: "UpdateContactFlowContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-flow*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new DataSource", - Privilege: "CreateDataSource", + Description: "Grants permission to update the metadata of a contact flow in an Amazon Connect instance", + Privilege: "UpdateContactFlowMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-flow*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to provision a domain which is a top level entity that contains other Amazon DataZone resources", - Privilege: "CreateDomain", + Description: "Grants permission to update contact flow module content in an Amazon Connect instance", + Privilege: "UpdateContactFlowModuleContent", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow-module*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", }, DependentActions: []string{}, ResourceType: "", @@ -68733,107 +71454,193 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a collection of configurated resources used to publish and subscribe to data", - Privilege: "CreateEnvironment", + Description: "Grants permission to update the metadata of a contact flow module in an Amazon Connect instance", + Privilege: "UpdateContactFlowModuleMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-flow-module*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an environment action in a default service blueprint environment", - Privilege: "CreateEnvironmentAction", + Description: "Grants permission to update the name and description of a contact flow in an Amazon Connect instance", + Privilege: "UpdateContactFlowName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-flow*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + "connect:FlowType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a custom Environment Blueprint that allow user to add Environments to their Project", - Privilege: "CreateEnvironmentBlueprint", + Description: "Grants permission to update routing properties on a contact in an Amazon Connect instance", + Privilege: "UpdateContactRoutingData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a template from a Blueprint that can be used to create a Environment", - Privilege: "CreateEnvironmentProfile", + Description: "Grants permission to update the schedule of a contact that is already scheduled in an Amazon Connect instance", + Privilege: "UpdateContactSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + "connect:ContactAssociationId", + "connect:Channel", + "connect:UserArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a form type or a new revision of it", - Privilege: "CreateFormType", + Description: "Grants permission to update the metadata of an email address resource in an Amazon Connect instance", + Privilege: "UpdateEmailAddressMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "email-address*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a business glossary", - Privilege: "CreateGlossary", + Description: "Grants permission to update details about a specific evaluation form version in the specified Amazon Connect instance. Question and section identifiers cannot be duplicated within the same evaluation form", + Privilege: "UpdateEvaluationForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "evaluation-form*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a glossary term", - Privilege: "CreateGlossaryTerm", + Description: "Grants permission to update hours of operation in an Amazon Connect instance", + Privilege: "UpdateHoursOfOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hours-of-operation*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a DataZone group profile for an IAM Identity Center group", - Privilege: "CreateGroupProfile", + Description: "Grants permission to update an hours of operation override in an Amazon Connect instance", + Privilege: "UpdateHoursOfOperationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hours-of-operation*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create listing change set", - Privilege: "CreateListingChangeSet", + Description: "Grants permission to update the attribute for an existing Amazon Connect instance", + Privilege: "UpdateInstanceAttribute", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "logs:CreateLogGroup", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:AttributeType", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -68841,11 +71648,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Project to enable your team to publish and subscribe to data", - Privilege: "CreateProject", + Description: "Grants permission to update the storage configuration for an existing Amazon Connect instance", + Privilege: "UpdateInstanceStorageConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + "firehose:DescribeDeliveryStream", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "kinesis:DescribeStream", + "kms:CreateGrant", + "kms:DescribeKey", + "s3:GetBucketAcl", + "s3:GetBucketLocation", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:StorageResourceType", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -68853,71 +71679,134 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a user to a Project", - Privilege: "CreateProjectMembership", + Description: "Grants permission to update and continue authentication for a specific contact", + Privilege: "UpdateParticipantAuthentication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a grant for an approved subscription on a subscription target", - Privilege: "CreateSubscriptionGrant", + Description: "Grants permission to update participant role configurations associated with a contact", + Privilege: "UpdateParticipantRoleConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a subscription request for a Data Asset", - Privilege: "CreateSubscriptionRequest", + Description: "Grants permission to update phone number resources in an Amazon Connect instance or traffic distribution group", + Privilege: "UpdatePhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "phone-number*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "traffic-distribution-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a subscription target for a Environment in the project", - Privilege: "CreateSubscriptionTarget", + Description: "Grants permission to update the metadata of a phone number resource in an Amazon Connect instance or traffic distribution group", + Privilege: "UpdatePhoneNumberMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "phone-number*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a user profile for an existing user in the customers IAM Identity Center", - Privilege: "CreateUserProfile", + Description: "Grants permission to update a predefined attribute in an Amazon Connect instance", + Privilege: "UpdatePredefinedAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an asset", - Privilege: "DeleteAsset", + Description: "Grants permission to update a prompt's name, description, and Amazon S3 URI in an Amazon Connect instance", + Privilege: "UpdatePrompt", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "s3:GetObject", + "s3:GetObjectAcl", + }, + ResourceType: "prompt*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, @@ -68925,572 +71814,894 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete asset filter", - Privilege: "DeleteAssetFilter", + Description: "Grants permission to update queue hours of operation in an Amazon Connect instance", + Privilege: "UpdateQueueHoursOfOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hours-of-operation*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an asset type", - Privilege: "DeleteAssetType", + Description: "Grants permission to update queue capacity in an Amazon Connect instance", + Privilege: "UpdateQueueMaxContacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update existing DataSource", - Privilege: "DeleteDataSource", + Description: "Grants permission to update a queue name and description in an Amazon Connect instance", + Privilege: "UpdateQueueName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a provisioned domain", - Privilege: "DeleteDomain", + Description: "Grants permission to update queue outbound caller config in an Amazon Connect instance", + Privilege: "UpdateQueueOutboundCallerConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "queue*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a resource policy for a DataZone Domain", - Privilege: "DeleteDomainSharingPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-flow", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to Delete Environment", - Privilege: "DeleteEnvironment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "phone-number", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an environment action in a default service blueprint environment", - Privilege: "DeleteEnvironmentAction", + Description: "Grants permission to update the outbound email configuration for a queue in an Amazon Connect instance", + Privilege: "UpdateQueueOutboundEmailConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete Environment Blueprint", - Privilege: "DeleteEnvironmentBlueprint", + Description: "Grants permission to update queue status in an Amazon Connect instance", + Privilege: "UpdateQueueStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete environment blueprint configuration", - Privilege: "DeleteEnvironmentBlueprintConfiguration", + Description: "Grants permission to update the configuration of a quick connect in an Amazon Connect instance", + Privilege: "UpdateQuickConnectConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "quick-connect*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-flow", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete Environment Profile", - Privilege: "DeleteEnvironmentProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a form type", - Privilege: "DeleteFormType", + Description: "Grants permission to update a quick connect name and description in an Amazon Connect instance", + Privilege: "UpdateQuickConnectName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "quick-connect*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a business glossary", - Privilege: "DeleteGlossary", + Description: "Grants permission to update a routing profile agent availability timer in an Amazon Connect instance", + Privilege: "UpdateRoutingProfileAgentAvailabilityTimer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "routing-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a glossary term", - Privilege: "DeleteGlossaryTerm", + Description: "Grants permission to update the concurrency in a routing profile in an Amazon Connect instance", + Privilege: "UpdateRoutingProfileConcurrency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "routing-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete listing", - Privilege: "DeleteListing", + Description: "Grants permission to update the outbound queue in a routing profile in an Amazon Connect instance", + Privilege: "UpdateRoutingProfileDefaultOutboundQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routing-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Project that enables your team to publish and subscribe to data", - Privilege: "DeleteProject", + Description: "Grants permission to update a routing profile name and description in an Amazon Connect instance", + Privilege: "UpdateRoutingProfileName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "routing-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a user from a project", - Privilege: "DeleteProjectMembership", + Description: "Grants permission to update the queues in routing profile in an Amazon Connect instance", + Privilege: "UpdateRoutingProfileQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "routing-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a subscription grant from a subscription target", - Privilege: "DeleteSubscriptionGrant", + Description: "Grants permission to update a rule for an existing Amazon Connect instance", + Privilege: "UpdateRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a pending subscription request for a Data Asset", - Privilege: "DeleteSubscriptionRequest", + Description: "Grants permission to update a security profile group for a user in an Amazon Connect instance", + Privilege: "UpdateSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "security-profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a subscription target from a Environment in the project", - Privilege: "DeleteSubscriptionTarget", + Description: "Grants permission to update task template belonging to a Amazon Connect instance", + Privilege: "UpdateTaskTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "task-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete existing TimeSeriesDataPoints", - Privilege: "DeleteTimeSeriesDataPoints", + Description: "Grants permission to update traffic distribution for a traffic distribution group", + Privilege: "UpdateTrafficDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "traffic-distribution-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a role in a default service blueprint environment", - Privilege: "DisassociateEnvironmentRole", + Description: "Grants permission to update a hierarchy group for a user in an Amazon Connect instance", + Privilege: "UpdateUserHierarchy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an asset", - Privilege: "GetAsset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hierarchy-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get asset filter", - Privilege: "GetAssetFilter", + AccessLevel: "Write", + Description: "Grants permission to update a user hierarchy group name in an Amazon Connect instance", + Privilege: "UpdateUserHierarchyGroupName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hierarchy-group*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an asset type", - Privilege: "GetAssetType", + AccessLevel: "Write", + Description: "Grants permission to update user hierarchy structure in an Amazon Connect instance", + Privilege: "UpdateUserHierarchyStructure", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "connect:InstanceId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to Get a existing DataSource in Amazon DataZone using its identifier", - Privilege: "GetDataSource", + AccessLevel: "Write", + Description: "Grants permission to update identity information for a user in an Amazon Connect instance", + Privilege: "UpdateUserIdentityInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get DataSource run job in Amazon DataZone using it's identifier", - Privilege: "GetDataSourceRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a domain", - Privilege: "GetDomain", + AccessLevel: "Write", + Description: "Grants permission to update phone configuration settings for a user in an Amazon Connect instance", + Privilege: "UpdateUserPhoneConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a resource policy for a DataZone Domain", - Privilege: "GetDomainSharingPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Environment details", - Privilege: "GetEnvironment", + AccessLevel: "Write", + Description: "Grants permission to update user proficiencies from a user in an Amazon Connect instance", + Privilege: "UpdateUserProficiencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an environment action in a default service blueprint environment", - Privilege: "GetEnvironmentAction", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get environment action link", - Privilege: "GetEnvironmentActionLink", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Environment Blueprint details", - Privilege: "GetEnvironmentBlueprint", + AccessLevel: "Write", + Description: "Grants permission to update a routing profile for a user in an Amazon Connect instance", + Privilege: "UpdateUserRoutingProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "routing-profile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get environment blueprint configuration", - Privilege: "GetEnvironmentBlueprintConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get short term credentials that assume the Environment user role", - Privilege: "GetEnvironmentCredentials", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Environment Profile details", - Privilege: "GetEnvironmentProfile", + AccessLevel: "Write", + Description: "Grants permission to update security profiles for a user in an Amazon Connect instance", + Privilege: "UpdateUserSecurityProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-profile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a form type", - Privilege: "GetFormType", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a business glossary", - Privilege: "GetGlossary", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a glossary term", - Privilege: "GetGlossaryTerm", + AccessLevel: "Write", + Description: "Grants permission to update a view's content in an Amazon Connect instance", + Privilege: "UpdateViewContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customer-managed-view*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing DataZone group profile", - Privilege: "GetGroupProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to an IAM principal to log into the DataZone Portal", - Privilege: "GetIamPortalLoginUrl", + AccessLevel: "Write", + Description: "Grants permission to update a view's metadata in an Amazon Connect instance", + Privilege: "UpdateViewMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customer-managed-view*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the lineage node", - Privilege: "GetLineageNode", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "connect:InstanceId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get listing", - Privilege: "GetListing", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "instance", }, { - AccessLevel: "Read", - Description: "Grants permission to get metadata generation run", - Privilege: "GetMetadataGenerationRun", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact/${ContactId}", + ConditionKeys: []string{}, + Resource: "contact", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent/${UserId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "user", }, { - AccessLevel: "Read", - Description: "Grants permission to get Project details", - Privilege: "GetProject", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/routing-profile/${RoutingProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "routing-profile", }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a subscription", - Privilege: "GetSubscription", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/security-profile/${SecurityProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "security-profile", }, { - AccessLevel: "Read", - Description: "Grants permission to get subscription eligibilty", - Privilege: "GetSubscriptionEligibility", + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/authentication-profile/${AuthenticationProfileId}", + ConditionKeys: []string{}, + Resource: "authentication-profile", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent-group/${HierarchyGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "hierarchy-group", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/queue/${QueueId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "queue", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/queue/*", + ConditionKeys: []string{}, + Resource: "wildcard-queue", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/transfer-destination/${QuickConnectId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "quick-connect", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/transfer-destination/*", + ConditionKeys: []string{}, + Resource: "wildcard-quick-connect", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact-flow/${ContactFlowId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "contact-flow", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/task-template/${TaskTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "task-template", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/flow-module/${ContactFlowModuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "contact-flow-module", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact-flow/*", + ConditionKeys: []string{}, + Resource: "wildcard-contact-flow", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/operating-hours/${HoursOfOperationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "hours-of-operation", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent-state/${AgentStatusId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "agent-status", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/agent-state/*", + ConditionKeys: []string{}, + Resource: "wildcard-agent-status", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/phone-number/${PhoneNumberId}", + ConditionKeys: []string{}, + Resource: "legacy-phone-number", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/phone-number/*", + ConditionKeys: []string{}, + Resource: "wildcard-legacy-phone-number", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:phone-number/${PhoneNumberId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "phone-number", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:phone-number/*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "wildcard-phone-number", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/integration-association/${IntegrationAssociationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "integration-association", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/use-case/${UseCaseId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "use-case", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/vocabulary/${VocabularyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "vocabulary", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:traffic-distribution-group/${TrafficDistributionGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "traffic-distribution-group", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/rule/${RuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rule", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/evaluation-form/${FormId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "evaluation-form", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/contact-evaluation/${EvaluationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "contact-evaluation", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/prompt/${PromptId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "prompt", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/view/${ViewId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "customer-managed-view", + }, + { + Arn: "arn:${Partition}:connect:${Region}:aws:view/${ViewId}", + ConditionKeys: []string{}, + Resource: "aws-managed-view", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/view/${ViewId}:${ViewQualifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "qualified-customer-managed-view", + }, + { + Arn: "arn:${Partition}:connect:${Region}:aws:view/${ViewId}:${ViewQualifier}", + ConditionKeys: []string{}, + Resource: "qualified-aws-managed-view", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/view/${ViewId}:${ViewVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "customer-managed-view-version", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/file/${FileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "attached-file", + }, + { + Arn: "arn:${Partition}:connect:${Region}:${Account}:instance/${InstanceId}/email-address/${EmailAddressId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "email-address", + }, + }, + ServiceName: "Amazon Connect", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "connect-campaigns", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a campaign", + Privilege: "CreateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve a subscription grant", - Privilege: "GetSubscriptionGrant", + AccessLevel: "Write", + Description: "Grants permission to delete a campaign", + Privilege: "DeleteCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to reject a subscription request for a Data Asset", - Privilege: "GetSubscriptionRequestDetails", + AccessLevel: "Write", + Description: "Grants permission to remove configuration information for an Amazon Connect instance", + Privilege: "DeleteConnectInstanceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69500,9 +72711,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve details of subscription target", - Privilege: "GetSubscriptionTarget", + AccessLevel: "Write", + Description: "Grants permission to remove onboarding job for an Amazon Connect instance", + Privilege: "DeleteInstanceOnboardingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69513,68 +72724,65 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an existing TimeSeriesDataPoints in Amazon DataZone using its identifier", - Privilege: "GetTimeSeriesDataPoint", + Description: "Grants permission to describe a specific campaign", + Privilege: "DescribeCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a user profile for an existing user in the DataZone Domain", - Privilege: "GetUserProfile", + Description: "Grants permission to get state of a campaign", + Privilege: "GetCampaignState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Environments across all domains in an AWS Account", - Privilege: "ListAccountEnvironments", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list asset filters", - Privilege: "ListAssetFilters", + AccessLevel: "Read", + Description: "Grants permission to get state of campaigns", + Privilege: "GetCampaignStateBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list revisions of an asset", - Privilege: "ListAssetRevisions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list DataSource runs job's activities on Asset", - Privilege: "ListDataSourceRunActivities", + AccessLevel: "Read", + Description: "Grants permission to get configuration information for an Amazon Connect instance", + Privilege: "GetConnectInstanceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69584,9 +72792,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list DataSource runs job", - Privilege: "ListDataSourceRuns", + AccessLevel: "Read", + Description: "Grants permission to get onboarding job status for an Amazon Connect instance", + Privilege: "GetInstanceOnboardingJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69597,92 +72805,89 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list existing DataSources", - Privilege: "ListDataSources", + Description: "Grants permission to provide summary of all campaigns", + Privilege: "ListCampaigns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all domains", - Privilege: "ListDomains", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list environment actions in a default service blueprint environment", - Privilege: "ListEnvironmentActions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list environment blueprint configuration summaries", - Privilege: "ListEnvironmentBlueprintConfigurationSummaries", + AccessLevel: "Write", + Description: "Grants permission to pause a campaign", + Privilege: "PauseCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list environment blueprint configurations", - Privilege: "ListEnvironmentBlueprintConfigurations", + AccessLevel: "Write", + Description: "Grants permission to create dial requests for the specified campaign", + Privilege: "PutDialRequestBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Domain for Environment Blueprints", - Privilege: "ListEnvironmentBlueprints", + AccessLevel: "Write", + Description: "Grants permission to resume a campaign", + Privilege: "ResumeCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Domain for Environment Profiles", - Privilege: "ListEnvironmentProfiles", + AccessLevel: "Write", + Description: "Grants permission to start a campaign", + Privilege: "StartCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to show Environments in the Domain", - Privilege: "ListEnvironments", + AccessLevel: "Write", + Description: "Grants permission to start onboarding job for an Amazon Connect instance", + Privilege: "StartInstanceOnboardingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69692,177 +72897,197 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the DataZone group profiles that the DataZone user profile is a member of", - Privilege: "ListGroupsForUser", + AccessLevel: "Write", + Description: "Grants permission to stop a campaign", + Privilege: "StopCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list historical versions of lineage node", - Privilege: "ListLineageNodeHistory", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list metadata generation runs", - Privilege: "ListMetadataGenerationRuns", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list notifications and events for a datazone user", - Privilege: "ListNotifications", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list policy grants", - Privilege: "ListPolicyGrants", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Project Members", - Privilege: "ListProjectMemberships", + AccessLevel: "Write", + Description: "Grants permission to update the dialer configuration of a campaign", + Privilege: "UpdateCampaignDialerConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Projects", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to update the name of a campaign", + Privilege: "UpdateCampaignName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to List subscription grants for a subscribed principal", - Privilege: "ListSubscriptionGrants", + AccessLevel: "Write", + Description: "Grants permission to update the outbound call configuration of a campaign", + Privilege: "UpdateCampaignOutboundCallConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list subscription requests", - Privilege: "ListSubscriptionRequests", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:connect-campaigns:${Region}:${Account}:campaign/${CampaignId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "campaign", }, + }, + ServiceName: "High-volume outbound communications", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "List", - Description: "Grants permission to list subscription targets", - Privilege: "ListSubscriptionTargets", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "connect-campaigns", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a campaign", + Privilege: "CreateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list subscriptions", - Privilege: "ListSubscriptions", + AccessLevel: "Write", + Description: "Grants permission to delete a campaign", + Privilege: "DeleteCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all tags associated with a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete the channel subtype configuration of a campaign", + Privilege: "DeleteCampaignChannelSubtypeConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list existing TimeSeriesDataPoints", - Privilege: "ListTimeSeriesDataPoints", + AccessLevel: "Write", + Description: "Grants permission to delete the communication limits configuration of a campaign", + Privilege: "DeleteCampaignCommunicationLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available Manager Secrets", - Privilege: "ListWarehouseMetadata", + AccessLevel: "Write", + Description: "Grants permission to delete the communication time configuration of a campaign", + Privilege: "DeleteCampaignCommunicationTime", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to post lineage events", - Privilege: "PostLineageEvent", + Description: "Grants permission to remove configuration information for an Amazon Connect instance", + Privilege: "DeleteConnectInstanceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69873,8 +73098,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to post a new TimeSeriesDataPoints", - Privilege: "PostTimeSeriesDataPoints", + Description: "Grants permission to remove integration information for an Amazon Connect instance", + Privilege: "DeleteConnectInstanceIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69885,8 +73110,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to provision domain with default project setup", - Privilege: "ProvisionDomain", + Description: "Grants permission to remove onboarding job for an Amazon Connect instance", + Privilege: "DeleteInstanceOnboardingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69896,45 +73121,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add a resource policy for a DataZone Domain", - Privilege: "PutDomainSharingPolicy", + AccessLevel: "Read", + Description: "Grants permission to describe a specific campaign", + Privilege: "DescribeCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put environment blueprint configuration", - Privilege: "PutEnvironmentBlueprintConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get state of a campaign", + Privilege: "GetCampaignState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to refresh token", - Privilege: "RefreshToken", + AccessLevel: "Read", + Description: "Grants permission to get state of campaigns", + Privilege: "GetCampaignStateBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject prediction", - Privilege: "RejectPredictions", + AccessLevel: "Read", + Description: "Grants permission to get configuration information for an Amazon Connect instance", + Privilege: "GetConnectInstanceConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69944,9 +73190,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject a subscription request for a Data Asset", - Privilege: "RejectSubscriptionRequest", + AccessLevel: "Read", + Description: "Grants permission to get onboarding job status for an Amazon Connect instance", + Privilege: "GetInstanceOnboardingJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69956,21 +73202,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a policy grant", - Privilege: "RemovePolicyGrant", + AccessLevel: "List", + Description: "Grants permission to provide summary of all campaigns", + Privilege: "ListCampaigns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke a subscription", - Privilege: "RevokeSubscription", + AccessLevel: "List", + Description: "Grants permission to provide summary of all integrations with an Amazon Connect instance", + Privilege: "ListConnectInstanceIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -69980,33 +73228,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to search datazone entities", - Privilege: "Search", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search DataZone group profiles and IAM Identity Center groups", - Privilege: "SearchGroupProfiles", + AccessLevel: "Write", + Description: "Grants permission to pause a campaign", + Privilege: "PauseCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search listings", - Privilege: "SearchListings", + AccessLevel: "Write", + Description: "Grants permission to put an integration configuration with an Amazon Connect instance", + Privilege: "PutConnectInstanceIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70016,69 +73271,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to search types such asset types and form types in a domain", - Privilege: "SearchTypes", + AccessLevel: "Write", + Description: "Grants permission to create dial requests for the specified campaign", + Privilege: "PutDialRequestBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search DataZone user profiles, IAM Identity Center users, and DataZone IAM principal profiles", - Privilege: "SearchUserProfiles", + AccessLevel: "Write", + Description: "Grants permission to create dial requests for the specified campaign", + Privilege: "PutOutboundRequestBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to login using SSO", - Privilege: "SsoLogin", + Description: "Grants permission to create profile outbound requests for the specified campaign", + Privilege: "PutProfileOutboundRequestBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to logout as SSO user", - Privilege: "SsoLogout", + Description: "Grants permission to resume a campaign", + Privilege: "ResumeCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a DataSource run job", - Privilege: "StartDataSourceRun", + Description: "Grants permission to start a campaign", + Privilege: "StartCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start metadata generation run", - Privilege: "StartMetadataGenerationRun", + Description: "Grants permission to start onboarding job for an Amazon Connect instance", + Privilege: "StartInstanceOnboardingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70089,30 +73344,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop metadata generation run", - Privilege: "StopMetadataGenerationRun", + Description: "Grants permission to stop a campaign", + Privilege: "StopCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add or update tags to a resource", + Description: "Grants permission to tag a resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "campaign*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -70121,13 +73376,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a resource", + Description: "Grants permission to untag a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "campaign*", }, { ConditionKeys: []string{ @@ -70140,128 +73395,144 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update asset filter", - Privilege: "UpdateAssetFilter", + Description: "Grants permission to update the channel subtype configuration of a campaign", + Privilege: "UpdateCampaignChannelSubtypeConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update existing DataSource", - Privilege: "UpdateDataSource", + Description: "Grants permission to update the communication limits configuration of a campaign", + Privilege: "UpdateCampaignCommunicationLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update data source run activities", - Privilege: "UpdateDataSourceRunActivities", + Description: "Grants permission to update the communication time configuration of a campaign", + Privilege: "UpdateCampaignCommunicationTime", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update information for a domain", - Privilege: "UpdateDomain", + Description: "Grants permission to update the dialer configuration of a campaign", + Privilege: "UpdateCampaignDialerConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Environment settings", - Privilege: "UpdateEnvironment", + Description: "Grants permission to update the flow association of a campaign", + Privilege: "UpdateCampaignFlowAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment action in a default service blueprint environment", - Privilege: "UpdateEnvironmentAction", + Description: "Grants permission to update the name of a campaign", + Privilege: "UpdateCampaignName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Environment Blueprint settings", - Privilege: "UpdateEnvironmentBlueprint", + Description: "Grants permission to update the outbound call configuration of a campaign", + Privilege: "UpdateCampaignOutboundCallConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update environment configuration", - Privilege: "UpdateEnvironmentConfiguration", + Description: "Grants permission to update the schedule of a campaign", + Privilege: "UpdateCampaignSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update status of the Environment deployment", - Privilege: "UpdateEnvironmentDeploymentStatus", + Description: "Grants permission to update the source of a campaign", + Privilege: "UpdateCampaignSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update EnvironmentProfile configuration", - Privilege: "UpdateEnvironmentProfile", + Arn: "arn:${Partition}:connect-campaigns:${Region}:${Account}:campaign/${CampaignId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "campaign", + }, + }, + ServiceName: "Amazon Connect Outbound Campaigns", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "consoleapp", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the device identity for a Console Mobile App device", + Privilege: "GetDeviceIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceIdentity*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a business glossary", - Privilege: "UpdateGlossary", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of device identities", + Privilege: "ListDeviceIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70270,10 +73541,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update a glossary term", - Privilege: "UpdateGlossaryTerm", + Arn: "arn:${Partition}:consoleapp::${Account}:device/${DeviceId}/identity/${IdentityId}", + ConditionKeys: []string{}, + Resource: "DeviceIdentity", + }, + }, + ServiceName: "AWS Management Console Mobile App", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "consolidatedbilling", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to get account role (Payer, Linked, Regular)", + Privilege: "GetAccountBillingRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70283,9 +73568,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a DataZone group profile", - Privilege: "UpdateGroupProfile", + AccessLevel: "List", + Description: "Grants permission to get list of member/linked accounts", + Privilege: "ListLinkedAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70294,22 +73579,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Consolidated Billing", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "controlcatalog", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to update a Project that enables your team to publish and subscribe to data", - Privilege: "UpdateProject", + AccessLevel: "Read", + Description: "Grants permission to return details about a specific control", + Privilege: "GetControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "control*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a subscription grant status for custom grants", - Privilege: "UpdateSubscriptionGrantStatus", + AccessLevel: "List", + Description: "Grants permission to return a paginated list of common controls from the AWS Control Catalog", + Privilege: "ListCommonControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70319,33 +73612,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update business reason for subscription request for a Data Asset", - Privilege: "UpdateSubscriptionRequest", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a subscription target", - Privilege: "UpdateSubscriptionTarget", + AccessLevel: "List", + Description: "Grants permission to return a paginated list of all available controls in the AWS Control Catalog library", + Privilege: "ListControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "control*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a DataZone user profile", - Privilege: "UpdateUserProfile", + AccessLevel: "List", + Description: "Grants permission to return a paginated list of domains from the AWS Control Catalog", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70355,9 +73636,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to validate pass role", - Privilege: "ValidatePassRole", + AccessLevel: "List", + Description: "Grants permission to return a paginated list of objectives from the AWS Control Catalog", + Privilege: "ListObjectives", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70369,88 +73650,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:datazone:${Region}:${Account}:domain/${DomainId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "domain", + Arn: "arn:${Partition}:controlcatalog:::common-control/${CommonControlId}", + ConditionKeys: []string{}, + Resource: "common-control", + }, + { + Arn: "arn:${Partition}:controlcatalog:::control/${ControlId}", + ConditionKeys: []string{}, + Resource: "control", + }, + { + Arn: "arn:${Partition}:controlcatalog:::domain/${DomainId}", + ConditionKeys: []string{}, + Resource: "domain", + }, + { + Arn: "arn:${Partition}:controlcatalog:::objective/${ObjectiveId}", + ConditionKeys: []string{}, + Resource: "objective", }, }, - ServiceName: "Amazon DataZone", + ServiceName: "AWS Control Catalog", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "dax:EnclosingOperation", - Description: "Used to block Transactions APIs calls and allow the non-Transaction APIs calls and vice-versa", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", Type: "String", }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, }, - Prefix: "dax", + Prefix: "controltower", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to return the attributes of one or more items from one or more tables", - Privilege: "BatchGetItem", + AccessLevel: "Write", + Description: "Grants permission to create a landing zone", + Privilege: "CreateLandingZone", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "controltower:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put or delete multiple items in one or more tables", - Privilege: "BatchWriteItem", + Description: "Grants permission to create an account managed by AWS Control Tower", + Privilege: "CreateManagedAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to the ConditionCheckItem operation that checks the existence of a set of attributes for the item with the given primary key", - Privilege: "ConditionCheckItem", + AccessLevel: "Write", + Description: "Grants permission to delete AWS Control Tower landing zone", + Privilege: "DeleteLandingZone", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "LandingZone*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a DAX cluster", - Privilege: "CreateCluster", + Description: "Grants permission to deregister an account created through the account factory from AWS Control Tower", + Privilege: "DeregisterManagedAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dax:CreateParameterGroup", - "dax:CreateSubnetGroup", - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:GetRole", - "iam:PassRole", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a parameter group", - Privilege: "CreateParameterGroup", + Description: "Grants permission to deregister an organizational unit from AWS Control Tower management", + Privilege: "DeregisterOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70460,9 +73758,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a subnet group", - Privilege: "CreateSubnetGroup", + AccessLevel: "Read", + Description: "Grants permission to describe the current account factory configuration", + Privilege: "DescribeAccountFactoryConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70472,52 +73770,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove one or more nodes from a DAX cluster", - Privilege: "DecreaseReplicationFactor", + AccessLevel: "Read", + Description: "Grants permission to describe resources managed by core accounts in AWS Control Tower", + Privilege: "DescribeCoreService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a previously provisioned DAX cluster", - Privilege: "DeleteCluster", + AccessLevel: "Read", + Description: "Grants permission to describe a guardrail", + Privilege: "DescribeGuardrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a single item in a table by primary key", - Privilege: "DeleteItem", + AccessLevel: "Read", + Description: "Grants permission to describe a guardrail for a organizational unit", + Privilege: "DescribeGuardrailForTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "dax:EnclosingOperation", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified parameter group", - Privilege: "DeleteParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to describe the current Landing Zone configuration", + Privilege: "DescribeLandingZoneConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70527,9 +73818,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a subnet group", - Privilege: "DeleteSubnetGroup", + AccessLevel: "Read", + Description: "Grants permission to describe an account created through account factory", + Privilege: "DescribeManagedAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70539,21 +73830,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about all provisioned DAX clusters", - Privilege: "DescribeClusters", + AccessLevel: "Read", + Description: "Grants permission to describe an AWS Organizations organizational unit managed by AWS Control Tower", + Privilege: "DescribeManagedOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the default system parameter information for DAX", - Privilege: "DescribeDefaultParameters", + AccessLevel: "Read", + Description: "Grants permission to describe a Register Organizational Unit Operation", + Privilege: "DescribeRegisterOrganizationalUnitOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70563,9 +73854,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to return events related to DAX clusters and parameter groups", - Privilege: "DescribeEvents", + AccessLevel: "Read", + Description: "Grants permission to describe the current AWS Control Tower IAM Identity Center configuration", + Privilege: "DescribeSingleSignOn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70575,33 +73866,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of parameter group descriptions", - Privilege: "DescribeParameterGroups", + AccessLevel: "Write", + Description: "Grants permission to disable a Baseline on a target", + Privilege: "DisableBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "EnabledBaseline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the detailed parameter list for a particular parameter group", - Privilege: "DescribeParameters", + AccessLevel: "Write", + Description: "Grants permission to remove a control from an organizational unit", + Privilege: "DisableControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "EnabledControl*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of subnet group descriptions", - Privilege: "DescribeSubnetGroups", + AccessLevel: "Write", + Description: "Grants permission to disable a guardrail from an organizational unit", + Privilege: "DisableGuardrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70611,18 +73902,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to the GetItem operation that returns a set of attributes for the item with the given primary key", - Privilege: "GetItem", + AccessLevel: "Write", + Description: "Grants permission to enable a Baseline on a target", + Privilege: "EnableBaseline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "controltower:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to activate a control for an organizational unit", + Privilege: "EnableControl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "controltower:TagResource", + }, + ResourceType: "EnabledControl", }, { ConditionKeys: []string{ - "dax:EnclosingOperation", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -70631,154 +73942,140 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add one or more nodes to a DAX cluster", - Privilege: "IncreaseReplicationFactor", + Description: "Grants permission to enable a guardrail to an organizational unit", + Privilege: "EnableGuardrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a list all of the tags for a DAX cluster", - Privilege: "ListTags", + Description: "Grants permission to describe an account email and validate that it exists", + Privilege: "GetAccountInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new item, or replace an old item with a new item", - Privilege: "PutItem", + AccessLevel: "Read", + Description: "Grants permission to list available updates for the current AWS Control Tower deployment", + Privilege: "GetAvailableUpdates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "dax:EnclosingOperation", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to use the primary key of a table or a secondary index to directly access items from that table or index", - Privilege: "Query", + Description: "Grants permission to get Baseline details", + Privilege: "GetBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "Baseline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reboot a single node of a DAX cluster", - Privilege: "RebootNode", + AccessLevel: "Read", + Description: "Grants permission to get the current status of a particular Baseline operation", + Privilege: "GetBaselineOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return one or more items and item attributes by accessing every item in a table or a secondary index", - Privilege: "Scan", + Description: "Grants permission to get the current status of a particular EnabledControl or DisableControl operation", + Privilege: "GetControlOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate a set of tags with a DAX resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get an enabled Baseline", + Privilege: "GetEnabledBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "EnabledBaseline*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the association of tags from a DAX resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get an enabled control from an organizational unit", + Privilege: "GetEnabledControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "EnabledControl*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the settings for a DAX cluster", - Privilege: "UpdateCluster", + AccessLevel: "Read", + Description: "Grants permission to get the current compliance status of a guardrail", + Privilege: "GetGuardrailComplianceStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to edit an existing item's attributes, or adds a new item to the table if it does not already exist", - Privilege: "UpdateItem", + AccessLevel: "Read", + Description: "Grants permission to get the home region of the AWS Control Tower setup", + Privilege: "GetHomeRegion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "dax:EnclosingOperation", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a parameter group", - Privilege: "UpdateParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to get the current status of the landing zone setup", + Privilege: "GetLandingZone", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LandingZone*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing subnet group", - Privilege: "UpdateSubnetGroup", + AccessLevel: "Read", + Description: "Grants permission to get the current landing zone drift status", + Privilege: "GetLandingZoneDriftStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70787,24 +74084,10 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:dax:${Region}:${Account}:cache/${ClusterName}", - ConditionKeys: []string{}, - Resource: "application", - }, - }, - ServiceName: "Amazon DynamoDB Accelerator (DAX)", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "dbqms", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a new favorite query", - Privilege: "CreateFavoriteQuery", + AccessLevel: "Read", + Description: "Grants permission to get the current status of a particular landing zone operation", + Privilege: "GetLandingZoneOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70814,9 +74097,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a query to the history", - Privilege: "CreateQueryHistory", + AccessLevel: "Read", + Description: "Grants permission to get the current status of the landing zone setup", + Privilege: "GetLandingZoneStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70826,9 +74109,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new query tab", - Privilege: "CreateTab", + AccessLevel: "List", + Description: "Grants permission to list Baselines", + Privilege: "ListBaselines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70838,9 +74121,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete saved queries", - Privilege: "DeleteFavoriteQueries", + AccessLevel: "List", + Description: "Grants permission to list all control operations", + Privilege: "ListControlOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70850,9 +74133,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a historical query", - Privilege: "DeleteQueryHistory", + AccessLevel: "List", + Description: "Grants permission to list the current directory groups available through IAM Identity Center", + Privilege: "ListDirectoryGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70862,9 +74145,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete query tab", - Privilege: "DeleteTab", + AccessLevel: "Read", + Description: "Grants permission to list occurrences of drift in AWS Control Tower", + Privilege: "ListDriftDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70875,8 +74158,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list saved queries and associated metadata", - Privilege: "DescribeFavoriteQueries", + Description: "Grants permission to list enabled Baselines", + Privilege: "ListEnabledBaselines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70887,8 +74170,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list history of queries that were run", - Privilege: "DescribeQueryHistory", + Description: "Grants permission to list all enabled controls in a specified organizational unit", + Privilege: "ListEnabledControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70899,8 +74182,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list query tabs and associated metadata", - Privilege: "DescribeTabs", + Description: "Grants permission to list currently enabled guardrails", + Privilege: "ListEnabledGuardrails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70910,9 +74193,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve favorite or history query string by id", - Privilege: "GetQueryString", + AccessLevel: "List", + Description: "Grants permission to list Precheck details for an Organizational Unit", + Privilege: "ListExtendGovernancePrecheckDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70922,9 +74205,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update saved query and description", - Privilege: "UpdateFavoriteQuery", + AccessLevel: "Read", + Description: "Grants permission to list the compliance of external AWS Config rules", + Privilege: "ListExternalConfigRuleCompliance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70934,9 +74217,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the query history", - Privilege: "UpdateQueryHistory", + AccessLevel: "List", + Description: "Grants permission to list existing guardrail violations", + Privilege: "ListGuardrailViolations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70946,9 +74229,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update query tab", - Privilege: "UpdateTab", + AccessLevel: "List", + Description: "Grants permission to list all available guardrails", + Privilege: "ListGuardrails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -70957,353 +74240,215 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Database Query Metadata Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, { - Condition: "deadline:AssociatedMembershipLevel", - Description: "Filters access by the associated membership level of the principal provided in the request", - Type: "String", - }, - { - Condition: "deadline:FarmMembershipLevels", - Description: "Filters access by membership levels on the farm", - Type: "ArrayOfString", - }, - { - Condition: "deadline:FleetMembershipLevels", - Description: "Filters access by membership levels on the fleet", - Type: "ArrayOfString", - }, - { - Condition: "deadline:JobMembershipLevels", - Description: "Filters access by membership levels on the job", - Type: "ArrayOfString", - }, - { - Condition: "deadline:MembershipLevel", - Description: "Filters access by the membership level passed in the request", - Type: "String", - }, - { - Condition: "deadline:PrincipalId", - Description: "Filters access by the principle ID provided in the request", - Type: "String", - }, - { - Condition: "deadline:QueueMembershipLevels", - Description: "Filters access by membership levels on the queue", - Type: "ArrayOfString", - }, - { - Condition: "deadline:RequesterPrincipalId", - Description: "Filters access by the user calling the Deadline Cloud API", - Type: "String", - }, - }, - Prefix: "deadline", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a member to a farm", - Privilege: "AssociateMemberToFarm", + AccessLevel: "List", + Description: "Grants permission to list guardrails and their current state for a organizational unit", + Privilege: "ListGuardrailsForTarget", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", - }, - { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - "deadline:MembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a member to a fleet", - Privilege: "AssociateMemberToFleet", + AccessLevel: "List", + Description: "Grants permission to list all landing zone operations", + Privilege: "ListLandingZoneOperations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - "deadline:MembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a member to a job", - Privilege: "AssociateMemberToJob", + AccessLevel: "List", + Description: "Grants permission to list all landing zones", + Privilege: "ListLandingZones", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", - }, - { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - "deadline:MembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a member to a queue", - Privilege: "AssociateMemberToQueue", + AccessLevel: "List", + Description: "Grants permission to list accounts managed through AWS Control Tower", + Privilege: "ListManagedAccounts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - "deadline:MembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assume a fleet role for read-only access", - Privilege: "AssumeFleetRoleForRead", + AccessLevel: "List", + Description: "Grants permission to list managed accounts with a specified guardrail applied", + Privilege: "ListManagedAccountsForGuardrail", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assume a fleet role for a worker", - Privilege: "AssumeFleetRoleForWorker", + AccessLevel: "List", + Description: "Grants permission to list managed accounts under an organizational unit", + Privilege: "ListManagedAccountsForParent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assume a queue role for read-only access", - Privilege: "AssumeQueueRoleForRead", + AccessLevel: "List", + Description: "Grants permission to list organizational units managed by AWS Control Tower", + Privilege: "ListManagedOrganizationalUnits", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assume a queue role for a user", - Privilege: "AssumeQueueRoleForUser", + AccessLevel: "List", + Description: "Grants permission to list managed organizational units that have a specified guardrail applied", + Privilege: "ListManagedOrganizationalUnitsForGuardrail", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assume a queue role for a worker", - Privilege: "AssumeQueueRoleForWorker", + AccessLevel: "Read", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "EnabledBaseline", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker*", + ResourceType: "EnabledControl", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "LandingZone", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a job entity for a worker", - Privilege: "BatchGetJobEntity", + AccessLevel: "Write", + Description: "Grants permission to set up an organizational unit to be managed by AWS Control Tower", + Privilege: "ManageOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to copy a job template to an Amazon S3 bucket", - Privilege: "CopyJobTemplate", + AccessLevel: "Read", + Description: "Grants permission to perform validations in an account", + Privilege: "PerformPreLaunchChecks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - "s3:PutObject", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a budget", - Privilege: "CreateBudget", + Description: "Grants permission to reset an enabled Baseline", + Privilege: "ResetEnabledBaseline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "budget*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EnabledBaseline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a farm", - Privilege: "CreateFarm", + Description: "Grants permission to reset an enabled control for an organizational unit", + Privilege: "ResetEnabledControl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "deadline:TagResource", - }, - ResourceType: "farm*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "EnabledControl*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a fleet", - Privilege: "CreateFleet", + Description: "Grants permission to reset a landing zone", + Privilege: "ResetLandingZone", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "deadline:TagResource", - "iam:PassRole", - "identitystore:ListGroupMembershipsForMember", - "logs:CreateLogGroup", - }, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LandingZone*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a job", - Privilege: "CreateJob", + Description: "Grants permission to set up or update AWS Control Tower landing zone", + Privilege: "SetupLandingZone", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a license endpoint for licensed software or products", - Privilege: "CreateLicenseEndpoint", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "deadline:TagResource", - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "ec2:DescribeVpcEndpoints", - }, - ResourceType: "license-endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EnabledBaseline", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EnabledControl", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "LandingZone", }, { ConditionKeys: []string{ @@ -71316,43 +74461,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a monitor", - Privilege: "CreateMonitor", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sso:CreateApplication", - "sso:DeleteApplication", - "sso:PutApplicationAssignmentConfiguration", - "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant", - }, - ResourceType: "monitor*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EnabledBaseline", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a queue", - Privilege: "CreateQueue", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "deadline:TagResource", - "iam:PassRole", - "identitystore:ListGroupMembershipsForMember", - "logs:CreateLogGroup", - "s3:ListBucket", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EnabledControl", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "LandingZone", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -71362,297 +74491,272 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a queue environment", - Privilege: "CreateQueueEnvironment", + Description: "Grants permission to update the account factory configuration", + Privilege: "UpdateAccountFactoryConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a queue-fleet association", - Privilege: "CreateQueueFleetAssociation", + Description: "Grants permission to update an enabled Baseline", + Privilege: "UpdateEnabledBaseline", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "EnabledBaseline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a storage profile for a farm", - Privilege: "CreateStorageProfile", + Description: "Grants permission to update an enabled control for an organizational unit", + Privilege: "UpdateEnabledControl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EnabledControl*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a worker", - Privilege: "CreateWorker", + Description: "Grants permission to update a landing zone", + Privilege: "UpdateLandingZone", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker*", + ResourceType: "LandingZone*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete a budget", - Privilege: "DeleteBudget", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "budget*", - }, + Arn: "arn:${Partition}:controltower:${Region}:${Account}:enabledcontrol/${EnabledControlId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "EnabledControl", }, { - AccessLevel: "Write", - Description: "Grants permission to delete a farm", - Privilege: "DeleteFarm", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", - }, + Arn: "arn:${Partition}:controltower:${Region}::baseline/${BaselineId}", + ConditionKeys: []string{}, + Resource: "Baseline", + }, + { + Arn: "arn:${Partition}:controltower:${Region}:${Account}:enabledbaseline/${EnabledBaselineId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "EnabledBaseline", }, { - AccessLevel: "Write", - Description: "Grants permission to delete a fleet", - Privilege: "DeleteFleet", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, + Arn: "arn:${Partition}:controltower:${Region}:${Account}:landingzone/${LandingZoneId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "LandingZone", }, + }, + ServiceName: "AWS Control Tower", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "cost-optimization-hub", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to delete a license endpoint", - Privilege: "DeleteLicenseEndpoint", + AccessLevel: "Read", + Description: "Grants permission to get preferences", + Privilege: "GetPreferences", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeVpcEndpoints", - }, - ResourceType: "license-endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a metered product", - Privilege: "DeleteMeteredProduct", + AccessLevel: "Read", + Description: "Grants permission to get resource configuration and estimated cost impact for a recommendation", + Privilege: "GetRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metered-product*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a monitor", - Privilege: "DeleteMonitor", + AccessLevel: "List", + Description: "Grants permission to list enrollment statuses for the specified account or all members under a management account", + Privilege: "ListEnrollmentStatuses", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteApplication", - }, - ResourceType: "monitor*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a queue", - Privilege: "DeleteQueue", + AccessLevel: "List", + Description: "Grants permission to list recommendation summaries by group", + Privilege: "ListRecommendationSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + "cost-optimization-hub:GetRecommendation", }, - ResourceType: "queue*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a queue environment", - Privilege: "DeleteQueueEnvironment", + AccessLevel: "List", + Description: "Grants permission to list summary view of recommendations", + Privilege: "ListRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + "cost-optimization-hub:GetRecommendation", }, - ResourceType: "queue*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a queue-fleet association", - Privilege: "DeleteQueueFleetAssociation", + Description: "Grants permission to update the enrollment status", + Privilege: "UpdateEnrollmentStatus", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a storage profile", - Privilege: "DeleteStorageProfile", + Description: "Grants permission to update preferences", + Privilege: "UpdatePreferences", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Cost Optimization Hub", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "cur", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a worker", - Privilege: "DeleteWorker", + Description: "Grants permission to delete Cost and Usage Report Definition", + Privilege: "DeleteReportDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker*", + ResourceType: "cur*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate a member from a farm", - Privilege: "DisassociateMemberFromFarm", + AccessLevel: "Read", + Description: "Grants permission to get Cost and Usage Report Definitions", + Privilege: "DescribeReportDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", - }, - { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate a member from a fleet", - Privilege: "DisassociateMemberFromFleet", + AccessLevel: "Read", + Description: "Grants permission to get Bills CSV report", + Privilege: "GetClassicReport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate a member from a job", - Privilege: "DisassociateMemberFromJob", + AccessLevel: "Read", + Description: "Grants permission to get the classic report enablement status for Usage Reports", + Privilege: "GetClassicReportPreferences", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get list of AWS services, usage type and operation for the Usage Report workflow. Allows or denies download of usage reports too", + Privilege: "GetUsageReport", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate a member from a queue", - Privilege: "DisassociateMemberFromQueue", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cur*", }, { ConditionKeys: []string{ - "deadline:AssociatedMembershipLevel", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -71660,806 +74764,692 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the latest version of an application", - Privilege: "GetApplicationVersion", + AccessLevel: "Write", + Description: "Grants permission to modify Cost and Usage Report Definition", + Privilege: "ModifyReportDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "cur*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a budget", - Privilege: "GetBudget", + AccessLevel: "Write", + Description: "Grants permission to enable classic reports", + Privilege: "PutClassicReportPreferences", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "budget*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a farm", - Privilege: "GetFarm", + AccessLevel: "Write", + Description: "Grants permission to write Cost and Usage Report Definition", + Privilege: "PutReportDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cur*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a fleet", - Privilege: "GetFleet", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cur*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, - ResourceType: "fleet*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a job", - Privilege: "GetJob", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cur*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, - ResourceType: "job*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a license endpoint", - Privilege: "GetLicenseEndpoint", + Description: "Grants permission to validates if the s3 bucket exists with appropriate permissions for CUR delivery", + Privilege: "ValidateReportDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-endpoint*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get a monitor", - Privilege: "GetMonitor", + Arn: "arn:${Partition}:cur:${Region}:${Account}:definition/${ReportName}", + ConditionKeys: []string{}, + Resource: "cur", + }, + }, + ServiceName: "AWS Cost and Usage Report", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "customer-verification", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create customer verification data", + Privilege: "CreateCustomerVerificationDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a queue", - Privilege: "GetQueue", + AccessLevel: "Write", + Description: "Grants permission to create upload URLs", + Privilege: "CreateUploadUrls", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a queue environment", - Privilege: "GetQueueEnvironment", + Description: "Grants permission to get customer verification data", + Privilege: "GetCustomerVerificationDetails", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a queue-fleet association", - Privilege: "GetQueueFleetAssociation", + Description: "Grants permission to get customer verification eligibility", + Privilege: "GetCustomerVerificationEligibility", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a session for a job", - Privilege: "GetSession", + AccessLevel: "Write", + Description: "Grants permission to update customer verification data", + Privilege: "UpdateCustomerVerificationDetails", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Customer Verification Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Grants permission to get a session action for a job", - Privilege: "GetSessionAction", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", }, { - AccessLevel: "Read", - Description: "Grants permission to get all collected statistics for sessions", - Privilege: "GetSessionsStatisticsAggregation", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "databrew", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to delete one or more recipe versions", + Privilege: "BatchDeleteRecipeVersion", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Recipe*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a step in a job", - Privilege: "GetStep", + AccessLevel: "Write", + Description: "Grants permission to create a dataset", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "job*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a storage profile", - Privilege: "GetStorageProfile", + AccessLevel: "Write", + Description: "Grants permission to create a profile job", + Privilege: "CreateProfileJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "farm*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a storage profile for a queue", - Privilege: "GetStorageProfileForQueue", + AccessLevel: "Write", + Description: "Grants permission to create a project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "queue*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a job task", - Privilege: "GetTask", + AccessLevel: "Write", + Description: "Grants permission to create a recipe", + Privilege: "CreateRecipe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "job*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a worker", - Privilege: "GetWorker", + AccessLevel: "Write", + Description: "Grants permission to create a recipe job", + Privilege: "CreateRecipeJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "worker*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available metered products within a license endpoint", - Privilege: "ListAvailableMeteredProducts", + AccessLevel: "Write", + Description: "Grants permission to create a ruleset", + Privilege: "CreateRuleset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all budgets for a farm", - Privilege: "ListBudgets", + AccessLevel: "Write", + Description: "Grants permission to create a schedule", + Privilege: "CreateSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "budget*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all members of a farm", - Privilege: "ListFarmMembers", + AccessLevel: "Write", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Dataset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all farms", - Privilege: "ListFarms", + AccessLevel: "Write", + Description: "Grants permission to delete a job", + Privilege: "DeleteJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", - }, - { - ConditionKeys: []string{ - "deadline:PrincipalId", - "deadline:RequesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all members of a fleet", - Privilege: "ListFleetMembers", + AccessLevel: "Write", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all fleets", - Privilege: "ListFleets", + AccessLevel: "Write", + Description: "Grants permission to delete a recipe version", + Privilege: "DeleteRecipeVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{ - "deadline:PrincipalId", - "deadline:RequesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Recipe*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all members of a job", - Privilege: "ListJobMembers", + AccessLevel: "Write", + Description: "Grants permission to delete a ruleset", + Privilege: "DeleteRuleset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Ruleset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all jobs in a queue", - Privilege: "ListJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a schedule", + Privilege: "DeleteSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", - }, - { - ConditionKeys: []string{ - "deadline:PrincipalId", - "deadline:RequesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Schedule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all license endpoints", - Privilege: "ListLicenseEndpoints", + AccessLevel: "Read", + Description: "Grants permission to view details about a dataset", + Privilege: "DescribeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-endpoint*", + ResourceType: "Dataset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all metered products in a license endpoint", - Privilege: "ListMeteredProducts", + AccessLevel: "Read", + Description: "Grants permission to view details about a job", + Privilege: "DescribeJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metered-product*", + ResourceType: "Job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all monitors", - Privilege: "ListMonitors", + AccessLevel: "Read", + Description: "Grants permission to view details about job run for a given job", + Privilege: "DescribeJobRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "Job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all queue environments to which a queue is associated", - Privilege: "ListQueueEnvironments", + AccessLevel: "Read", + Description: "Grants permission to view details about a project", + Privilege: "DescribeProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all queue-fleet associations", - Privilege: "ListQueueFleetAssociations", + AccessLevel: "Read", + Description: "Grants permission to view details about a recipe", + Privilege: "DescribeRecipe", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Recipe*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all members in a queue", - Privilege: "ListQueueMembers", + AccessLevel: "Read", + Description: "Grants permission to view details about a ruleset", + Privilege: "DescribeRuleset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Ruleset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all queues on a farm", - Privilege: "ListQueues", + AccessLevel: "Read", + Description: "Grants permission to view details about a schedule", + Privilege: "DescribeSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:DescribeGroup", - "identitystore:DescribeUser", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{ - "deadline:PrincipalId", - "deadline:RequesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Schedule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all session actions for a job", - Privilege: "ListSessionActions", + AccessLevel: "Read", + Description: "Grants permission to list datasets in your account", + Privilege: "ListDatasets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all sessions for a job", - Privilege: "ListSessions", + AccessLevel: "Read", + Description: "Grants permission to list job runs for a given job", + Privilege: "ListJobRuns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all sessions for a worker", - Privilege: "ListSessionsForWorker", + AccessLevel: "Read", + Description: "Grants permission to list jobs in your account", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "worker*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the step consumers for a job step", - Privilege: "ListStepConsumers", + AccessLevel: "Read", + Description: "Grants permission to list projects in your account", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list dependencies for a job step", - Privilege: "ListStepDependencies", + AccessLevel: "Read", + Description: "Grants permission to list versions in your recipe", + Privilege: "ListRecipeVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Recipe*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all steps for a job", - Privilege: "ListSteps", + AccessLevel: "Read", + Description: "Grants permission to list recipes in your account", + Privilege: "ListRecipes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all storage profiles in a farm", - Privilege: "ListStorageProfiles", + AccessLevel: "Read", + Description: "Grants permission to list rulesets in your account", + Privilege: "ListRulesets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all storage profiles in a queue", - Privilege: "ListStorageProfilesForQueue", + AccessLevel: "Read", + Description: "Grants permission to list schedules in your account", + Privilege: "ListSchedules", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all tags on specified Deadline Cloud resources", + AccessLevel: "Read", + Description: "Grants permission to retrieve tags associated with a resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "farm", + ResourceType: "Dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "Job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-endpoint", + ResourceType: "Project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Recipe", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all tasks for a job", - Privilege: "ListTasks", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Ruleset", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all workers in a fleet", - Privilege: "ListWorkers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "worker*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Schedule", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a metered product to a license endpoint", - Privilege: "PutMeteredProduct", + Description: "Grants permission to publish a major verison of a recipe", + Privilege: "PublishRecipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metered-product*", + ResourceType: "Recipe*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search for jobs in multiple queues", - Privilege: "SearchJobs", + AccessLevel: "Write", + Description: "Grants permission to submit an action to the interactive session for a project", + Privilege: "SendProjectSessionAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search the steps within a single job or to search the steps for multiple queues", - Privilege: "SearchSteps", + AccessLevel: "Write", + Description: "Grants permission to start running a job", + Privilege: "StartJobRun", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search the tasks within a single job or to search the tasks for multiple queues", - Privilege: "SearchTasks", + AccessLevel: "Write", + Description: "Grants permission to start an interactive session for a project", + Privilege: "StartProjectSession", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search for workers in multiple fleets", - Privilege: "SearchWorkers", + AccessLevel: "Write", + Description: "Grants permission to stop a job run for a job", + Privilege: "StopJobRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all collected statistics for sessions", - Privilege: "StartSessionsStatisticsAggregation", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Job", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for the specified Deadline Cloud resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "farm", + ResourceType: "Project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "Recipe", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-endpoint", + ResourceType: "Ruleset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Schedule", }, { ConditionKeys: []string{ @@ -72473,28 +75463,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to disassociate one or more tags from the specified Deadline Cloud resource", + Description: "Grants permission to remove tags associated with a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "farm", + ResourceType: "Dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "Job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-endpoint", + ResourceType: "Project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue", + ResourceType: "Recipe", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Ruleset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Schedule", }, { ConditionKeys: []string{ @@ -72507,618 +75507,507 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a budget", - Privilege: "UpdateBudget", + Description: "Grants permission to modify a dataset", + Privilege: "UpdateDataset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "budget*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a farm", - Privilege: "UpdateFarm", + Description: "Grants permission to modify a profile job", + Privilege: "UpdateProfileJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "farm*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a fleet", - Privilege: "UpdateFleet", + Description: "Grants permission to modify a project", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a job", - Privilege: "UpdateJob", + Description: "Grants permission to modify a recipe", + Privilege: "UpdateRecipe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Recipe*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a monitor", - Privilege: "UpdateMonitor", + Description: "Grants permission to modify a recipe job", + Privilege: "UpdateRecipeJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sso:PutApplicationGrant", - "sso:UpdateApplication", - }, - ResourceType: "monitor*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a queue", - Privilege: "UpdateQueue", + Description: "Grants permission to modify a ruleset", + Privilege: "UpdateRuleset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Ruleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a queue environment", - Privilege: "UpdateQueueEnvironment", + Description: "Grants permission to modify a schedule", + Privilege: "UpdateSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "queue*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Schedule*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:databrew:${Region}:${Account}:project/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Project", + }, + { + Arn: "arn:${Partition}:databrew:${Region}:${Account}:dataset/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Dataset", + }, + { + Arn: "arn:${Partition}:databrew:${Region}:${Account}:ruleset/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Ruleset", + }, + { + Arn: "arn:${Partition}:databrew:${Region}:${Account}:recipe/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Recipe", + }, + { + Arn: "arn:${Partition}:databrew:${Region}:${Account}:job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Job", + }, + { + Arn: "arn:${Partition}:databrew:${Region}:${Account}:schedule/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Schedule", + }, + }, + ServiceName: "AWS Glue DataBrew", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the mandatory tags in the create request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the create request", + Type: "ArrayOfString", + }, + { + Condition: "dataexchange:JobType", + Description: "Filters access by the specified job type", + Type: "String", + }, + }, + Prefix: "dataexchange", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update a queue-fleet association", - Privilege: "UpdateQueueFleetAssociation", + Description: "Grants permission to accept a data grant", + Privilege: "AcceptDataGrant", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "fleet*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "data-grants*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a session for a job", - Privilege: "UpdateSession", + Description: "Grants permission to cancel a job", + Privilege: "CancelJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobs*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a step for a job", - Privilege: "UpdateStep", + Description: "Grants permission to create an asset (for example, in a Job)", + Privilege: "CreateAsset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", - }, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "revisions*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a storage profile for a farm", - Privilege: "UpdateStorageProfile", + Description: "Grants permission to create a data grant", + Privilege: "CreateDataGrant", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + "dataexchange:PublishToDataGrant", }, - ResourceType: "farm*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a task", - Privilege: "UpdateTask", + Description: "Grants permission to create a data set", + Privilege: "CreateDataSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "identitystore:ListGroupMembershipsForMember", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "job*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a worker", - Privilege: "UpdateWorker", + Description: "Grants permission to create an event action", + Privilege: "CreateEventAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "logs:CreateLogStream", - }, - ResourceType: "worker*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the schedule for a worker", - Privilege: "UpdateWorkerSchedule", + Description: "Grants permission to create a job to import or export assets", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "logs:CreateLogStream", + ConditionKeys: []string{ + "dataexchange:JobType", }, - ResourceType: "worker*", + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/budget/${BudgetId}", - ConditionKeys: []string{ - "deadline:FarmMembershipLevels", - }, - Resource: "budget", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "deadline:FarmMembershipLevels", - }, - Resource: "farm", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/fleet/${FleetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "deadline:FarmMembershipLevels", - "deadline:FleetMembershipLevels", - }, - Resource: "fleet", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/queue/${QueueId}/job/${JobId}", - ConditionKeys: []string{ - "deadline:FarmMembershipLevels", - "deadline:JobMembershipLevels", - "deadline:QueueMembershipLevels", - }, - Resource: "job", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:license-endpoint/${LicenseEndpointId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "license-endpoint", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:license-endpoint/${LicenseEndpointId}/metered-product/${ProductId}", - ConditionKeys: []string{}, - Resource: "metered-product", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:monitor/${MonitorId}", - ConditionKeys: []string{}, - Resource: "monitor", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/queue/${QueueId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "deadline:FarmMembershipLevels", - "deadline:QueueMembershipLevels", - }, - Resource: "queue", - }, - { - Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/fleet/${FleetId}/worker/${WorkerId}", - ConditionKeys: []string{ - "deadline:FarmMembershipLevels", - "deadline:FleetMembershipLevels", - }, - Resource: "worker", - }, - }, - ServiceName: "AWS Deadline Cloud", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by actions based on the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "deepcomposer", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate a DeepComposer coupon (or DSN) with the account associated with the sender of the request", - Privilege: "AssociateCoupon", + Description: "Grants permission to create a revision", + Privilege: "CreateRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "data-sets*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an audio file by converting the midi composition into a wav or mp3 file", - Privilege: "CreateAudio", + Description: "Grants permission to delete an asset", + Privilege: "DeleteAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "audio*", + ResourceType: "assets*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a multi-track midi composition", - Privilege: "CreateComposition", + Description: "Grants permission to delete a data grant", + Privilege: "DeleteDataGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-grants*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start creating/training a generative-model that is able to perform inference against the user-provided piano-melody to create a multi-track midi composition", - Privilege: "CreateModel", + Description: "Grants permission to delete a data set", + Privilege: "DeleteDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "data-sets*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entitled-data-sets*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the composition", - Privilege: "DeleteComposition", + Description: "Grants permission to delete an event action", + Privilege: "DeleteEventAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition*", + ResourceType: "event-actions*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the model", - Privilege: "DeleteModel", + Description: "Grants permission to delete a revision", + Privilege: "DeleteRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "revisions*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the composition", - Privilege: "GetComposition", + Description: "Grants permission to get information about an asset and to export it (for example, in a Job)", + Privilege: "GetAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition*", + ResourceType: "assets*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entitled-assets*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the model", - Privilege: "GetModel", + Description: "Grants permission to get a data grant", + Privilege: "GetDataGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-grants*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the sample/pre-trained DeepComposer model", - Privilege: "GetSampleModel", + Description: "Grants permission to get information about a data set", + Privilege: "GetDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "data-sets*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entitled-data-sets*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the compositions owned by the sender of the request", - Privilege: "ListCompositions", + AccessLevel: "Read", + Description: "Grants permission to get an event action", + Privilege: "GetEventAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition*", + ResourceType: "event-actions*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the models owned by the sender of the request", - Privilege: "ListModels", + AccessLevel: "Read", + Description: "Grants permission to get information about a job", + Privilege: "GetJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "jobs*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the sample/pre-trained models provided by the DeepComposer service", - Privilege: "ListSampleModels", + AccessLevel: "Read", + Description: "Grants permission to get a received data grant", + Privilege: "GetReceivedDataGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "data-grants*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to get information about a revision", + Privilege: "GetRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition", + ResourceType: "entitled-revisions*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "revisions*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the training options or topic for creating/training a model", - Privilege: "ListTrainingTopics", + Description: "Grants permission to list data grants for the account", + Privilege: "ListDataGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list the revisions of a data set", + Privilege: "ListDataSetRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition", + ResourceType: "data-sets*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "entitled-data-sets*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list data sets for the account", + Privilege: "ListDataSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the mutable properties associated with a composition", - Privilege: "UpdateComposition", + AccessLevel: "List", + Description: "Grants permission to list event actions for the account", + Privilege: "ListEventActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "composition*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to to modify the mutable properties associated with a model", - Privilege: "UpdateModel", + AccessLevel: "List", + Description: "Grants permission to list jobs for the account", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:deepcomposer:${Region}:${Account}:model/${ModelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model", - }, - { - Arn: "arn:${Partition}:deepcomposer:${Region}:${Account}:composition/${CompositionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "composition", - }, - { - Arn: "arn:${Partition}:deepcomposer:${Region}:${Account}:audio/${AudioId}", - ConditionKeys: []string{}, - Resource: "audio", - }, - }, - ServiceName: "AWS DeepComposer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "deeplens", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Associates the user's account with IAM roles controlling various permissions needed by AWS DeepLens for proper functionality.", - Privilege: "AssociateServiceRoleToAccount", + AccessLevel: "List", + Description: "Grants permission to list received data grants for the account", + Privilege: "ListReceivedDataGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -73128,350 +76017,347 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Retrieves a list of AWS DeepLens devices.", - Privilege: "BatchGetDevice", + AccessLevel: "List", + Description: "Grants permission to get list the assets of a revision", + Privilege: "ListRevisionAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "entitled-revisions*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Retrieves a list of AWS DeepLens Models.", - Privilege: "BatchGetModel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "revisions*", }, }, }, { - AccessLevel: "Read", - Description: "Retrieves a list of AWS DeepLens Projects.", - Privilege: "BatchGetProject", + AccessLevel: "List", + Description: "Grants permission to list the tags that you associated with the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "data-grants", }, - }, - }, - { - AccessLevel: "Write", - Description: "Creates a certificate package that is used to successfully authenticate and Register an AWS DeepLens device.", - Privilege: "CreateDeviceCertificates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-sets", }, - }, - }, - { - AccessLevel: "Write", - Description: "Creates a new AWS DeepLens Model.", - Privilege: "CreateModel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "revisions", }, }, }, { AccessLevel: "Write", - Description: "Creates a new AWS DeepLens Project.", - Privilege: "CreateProject", + Description: "Grants permission to publish a data set to a product", + Privilege: "PublishDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-sets*", }, }, }, { AccessLevel: "Write", - Description: "Deletes an AWS DeepLens Model.", - Privilege: "DeleteModel", + Description: "Grants permission to publish a data set to a data grant", + Privilege: "PublishToDataGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "data-sets*", }, }, }, { AccessLevel: "Write", - Description: "Deletes an AWS DeepLens Project.", - Privilege: "DeleteProject", + Description: "Grants permission to revoke subscriber access to a revision", + Privilege: "RevokeRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "revisions*", }, }, }, { AccessLevel: "Write", - Description: "Deploys an AWS DeepLens project to a registered AWS DeepLens device.", - Privilege: "DeployProject", + Description: "Grants permission to send a request to an API asset", + Privilege: "SendApiAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "assets*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "entitled-assets*", }, }, }, { AccessLevel: "Write", - Description: "Begins a device de-registration workflow for a registered AWS DeepLens device.", - Privilege: "DeregisterDevice", + Description: "Grants permission to send a notification to subscribers of a data set", + Privilege: "SendDataSetNotification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "data-sets*", }, }, }, { - AccessLevel: "Read", - Description: "Retrieves the account level resources associated with the user's account.", - Privilege: "GetAssociatedResources", + AccessLevel: "Write", + Description: "Grants permission to start a job", + Privilege: "StartJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "dataexchange:CreateAsset", + "dataexchange:DeleteDataSet", + "dataexchange:GetAsset", + "dataexchange:GetDataSet", + "dataexchange:GetRevision", + "dataexchange:PublishDataSet", + "redshift:AuthorizeDataShare", + }, + ResourceType: "jobs*", }, }, }, { - AccessLevel: "Read", - Description: "Retrieves the the deployment status of a particular AWS DeepLens device, along with any associated metadata.", - Privilege: "GetDeploymentStatus", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-grants", }, - }, - }, - { - AccessLevel: "Read", - Description: "Retrieves information about an AWS DeepLens device.", - Privilege: "GetDevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "data-sets", }, - }, - }, - { - AccessLevel: "Read", - Description: "Retrieves an AWS DeepLens Model.", - Privilege: "GetModel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "revisions", }, - }, - }, - { - AccessLevel: "Read", - Description: "Retrieves an AWS DeepLens Project.", - Privilege: "GetProject", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Creates a new AWS DeepLens project from a sample project template.", - Privilege: "ImportProjectFromTemplate", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-grants", }, - }, - }, - { - AccessLevel: "List", - Description: "Retrieves a list of AWS DeepLens Deployment identifiers.", - Privilege: "ListDeployments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-sets", }, - }, - }, - { - AccessLevel: "List", - Description: "Retrieves a list of AWS DeepLens device identifiers.", - Privilege: "ListDevices", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "revisions", }, - }, - }, - { - AccessLevel: "List", - Description: "Retrieves a list of AWS DeepLens Model identifiers.", - Privilege: "ListModels", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Retrieves a list of AWS DeepLens Project identifiers.", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to get update information about an asset", + Privilege: "UpdateAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assets*", }, }, }, { AccessLevel: "Write", - Description: "Begins a device registration workflow for an AWS DeepLens device.", - Privilege: "RegisterDevice", + Description: "Grants permission to update information about a data set", + Privilege: "UpdateDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-sets*", }, }, }, { AccessLevel: "Write", - Description: "Removes a deployed AWS DeepLens project from an AWS DeepLens device.", - Privilege: "RemoveProject", + Description: "Grants permission to update information for an event action", + Privilege: "UpdateEventAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "event-actions*", }, }, }, { AccessLevel: "Write", - Description: "Updates an existing AWS DeepLens Project.", - Privilege: "UpdateProject", + Description: "Grants permission to update information about a revision", + Privilege: "UpdateRevision", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project*", + ConditionKeys: []string{}, + DependentActions: []string{ + "dataexchange:PublishDataSet", + "dataexchange:PublishToDataGrant", + }, + ResourceType: "revisions*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:deeplens:${Region}:${Account}:device/${DeviceName}", + Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:jobs/${JobId}", + ConditionKeys: []string{ + "dataexchange:JobType", + }, + Resource: "jobs", + }, + { + Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-sets/${DataSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "data-sets", + }, + { + Arn: "arn:${Partition}:dataexchange:${Region}::data-sets/${DataSetId}", ConditionKeys: []string{}, - Resource: "device", + Resource: "entitled-data-sets", }, { - Arn: "arn:${Partition}:deeplens:${Region}:${Account}:project/${ProjectName}", + Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-sets/${DataSetId}/revisions/${RevisionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "revisions", + }, + { + Arn: "arn:${Partition}:dataexchange:${Region}::data-sets/${DataSetId}/revisions/${RevisionId}", ConditionKeys: []string{}, - Resource: "project", + Resource: "entitled-revisions", }, { - Arn: "arn:${Partition}:deeplens:${Region}:${Account}:model/${ModelName}", + Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-sets/${DataSetId}/revisions/${RevisionId}/assets/${AssetId}", ConditionKeys: []string{}, - Resource: "model", + Resource: "assets", + }, + { + Arn: "arn:${Partition}:dataexchange:${Region}::data-sets/${DataSetId}/revisions/${RevisionId}/assets/${AssetId}", + ConditionKeys: []string{}, + Resource: "entitled-assets", + }, + { + Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:event-actions/${EventActionId}", + ConditionKeys: []string{}, + Resource: "event-actions", + }, + { + Arn: "arn:${Partition}:dataexchange:${Region}:${Account}:data-grants/${DataGrantId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "data-grants", }, }, - ServiceName: "AWS DeepLens", + ServiceName: "AWS Data Exchange", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions by tag key-value pairs in the request", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions by tag key-value pairs attached to the resource", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions by tag keys in the request", + Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, { - Condition: "deepracer:MultiUser", - Description: "Filters access by multiuser flag", - Type: "Bool", + Condition: "datapipeline:PipelineCreator", + Description: "Filters access by the IAM user that created the pipeline", + Type: "ArrayOfString", }, { - Condition: "deepracer:UserToken", - Description: "Filters access by user token in the request", + Condition: "datapipeline:Tag/${TagKey}", + Description: "Filters access by customer-specified key/value pair that can be attached to a resource", Type: "String", }, + { + Condition: "datapipeline:workerGroup", + Description: "Filters access by the name of a worker group for which a Task Runner retrieves work", + Type: "ArrayOfString", + }, }, - Prefix: "deepracer", + Prefix: "datapipeline", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add access for a private leaderboard", - Privilege: "AddLeaderboardAccessPermission", + Description: "Grants permission to validate the specified pipeline and starts processing pipeline tasks. If the pipeline does not pass validation, activation fails", + Privilege: "ActivatePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "datapipeline:workerGroup", }, DependentActions: []string{}, ResourceType: "", @@ -73479,60 +76365,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get current admin multiuser configuration for this account", - Privilege: "AdminGetAccountConfig", + AccessLevel: "Tagging", + Description: "Grants permission to add or modify tags for the specified pipeline", + Privilege: "AddTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all deepracer users with their associated resources created under this account", - Privilege: "AdminListAssociatedResources", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list user data for all users associated with this account", - Privilege: "AdminListAssociatedUsers", + AccessLevel: "Write", + Description: "Grants permission to create a new, empty pipeline", + Privilege: "CreatePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "datapipeline:Tag/${TagKey}", + }, + DependentActions: []string{ + "datapipeline:AddTags", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to manage a user associated with this account", - Privilege: "AdminManageUser", + Description: "Grants permission to Deactivate the specified running pipeline", + Privilege: "DeactivatePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set configuration options for this account", - Privilege: "AdminSetAccountConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "datapipeline:workerGroup", + }, DependentActions: []string{}, ResourceType: "", }, @@ -73540,25 +76427,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to clone an existing DeepRacer model", - Privilege: "CloneReinforcementLearningModel", + Description: "Grants permission to delete a pipeline, its pipeline definition, and its run history", + Privilege: "DeletePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "track*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73566,33 +76446,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a DeepRacer car in your garage", - Privilege: "CreateCar", + AccessLevel: "Read", + Description: "Grants permission to get the object definitions for a set of objects associated with the pipeline", + Privilege: "DescribeObjects", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a leaderboard", - Privilege: "CreateLeaderboard", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73600,19 +76466,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an access token for a private leaderboard", - Privilege: "CreateLeaderboardAccessToken", + AccessLevel: "Read", + Description: "Grants permission to retrieves metadata about one or more pipelines", + Privilege: "DescribePipelines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73620,26 +76486,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit a DeepRacer model to be evaluated for leaderboards", - Privilege: "CreateLeaderboardSubmission", + AccessLevel: "Read", + Description: "Grants permission to task runners to call EvaluateExpression, to evaluate a string in the context of the specified object", + Privilege: "EvaluateExpression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73647,41 +76506,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create ra einforcement learning model for DeepRacer", - Privilege: "CreateReinforcementLearningModel", + AccessLevel: "List", + Description: "Grants permission to call GetAccountLimits", + Privilege: "GetAccountLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "track*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a leaderboard", - Privilege: "DeleteLeaderboard", + AccessLevel: "Read", + Description: "Grants permission to gets the definition of the specified pipeline", + Privilege: "GetPipelineDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "datapipeline:workerGroup", }, DependentActions: []string{}, ResourceType: "", @@ -73689,39 +76539,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a DeepRacer model", - Privilege: "DeleteModel", + AccessLevel: "List", + Description: "Grants permission to list the pipeline identifiers for all active pipelines that you have permission to access", + Privilege: "ListPipelines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", - }, - { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to edit a leaderboard", - Privilege: "EditLeaderboard", + Description: "Grants permission to task runners to call PollForTask, to receive a task to perform from AWS Data Pipeline", + Privilege: "PollForTask", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "leaderboard*", - }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:workerGroup", }, DependentActions: []string{}, ResourceType: "", @@ -73729,29 +76565,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get current multiuser configuration for this account", - Privilege: "GetAccountConfig", + AccessLevel: "Write", + Description: "Grants permission to call PutAccountLimits", + Privilege: "PutAccountLimits", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the user's alias for submitting a DeepRacer model to leaderboards", - Privilege: "GetAlias", + AccessLevel: "Write", + Description: "Grants permission to add tasks, schedules, and preconditions to the specified pipeline", + Privilege: "PutPipelineDefinition", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "datapipeline:workerGroup", }, DependentActions: []string{}, ResourceType: "", @@ -73760,18 +76599,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to download artifacts for an existing DeepRacer model", - Privilege: "GetAssetUrl", + Description: "Grants permission to query the specified pipeline for the names of objects that match the specified set of conditions", + Privilege: "QueryObjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73779,19 +76618,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a specific DeepRacer car from your garage", - Privilege: "GetCar", + AccessLevel: "Tagging", + Description: "Grants permission to remove existing tags from the specified pipeline", + Privilege: "RemoveTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "car*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73799,54 +76640,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view all the DeepRacer cars in your garage", - Privilege: "GetCars", + AccessLevel: "Write", + Description: "Grants permission to task runners to call ReportTaskProgress, when they are assigned a task to acknowledge that it has the task", + Privilege: "ReportTaskProgress", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about an existing DeepRacer model's evaluation jobs", - Privilege: "GetEvaluation", + AccessLevel: "Write", + Description: "Grants permission to task runners to call ReportTaskRunnerHeartbeat every 15 minutes to indicate that they are operational", + Privilege: "ReportTaskRunnerHeartbeat", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation_job*", - }, - { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about how the latest submitted DeepRacer model for a user performed on a leaderboard", - Privilege: "GetLatestUserSubmission", + AccessLevel: "Write", + Description: "Grants permission to requests that the status of the specified physical or logical pipeline objects be updated in the specified pipeline", + Privilege: "SetStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73854,59 +76684,85 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about leaderboards", - Privilege: "GetLeaderboard", + AccessLevel: "Write", + Description: "Grants permission to task runners to call SetTaskStatus to notify AWS Data Pipeline that a task is completed and provide information about the final status", + Privilege: "SetTaskStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", - }, - { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an existing DeepRacer model", - Privilege: "GetModel", + Description: "Grants permission to validate the specified pipeline definition to ensure that it is well formed and can be run without error", + Privilege: "ValidatePipelineDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "datapipeline:PipelineCreator", + "datapipeline:Tag/${TagKey}", + "datapipeline:workerGroup", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about private leaderboards", - Privilege: "GetPrivateLeaderboard", + Arn: "arn:${Partition}:datapipeline:${Region}:${Account}:pipeline/${PipelineId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "pipeline", + }, + }, + ServiceName: "AWS Data Pipeline", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "datasync", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a storage system", + Privilege: "AddStorageSystem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "agent*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -73914,19 +76770,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the performance of a user's DeepRacer model that got placed on a leaderboard", - Privilege: "GetRankedUserSubmission", + AccessLevel: "Write", + Description: "Grants permission to cancel execution of a sync task", + Privilege: "CancelTaskExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "taskexecution*", }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -73934,31 +76789,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about DeepRacer tracks", - Privilege: "GetTrack", + AccessLevel: "Write", + Description: "Grants permission to activate an agent that you have deployed on your host", + Privilege: "CreateAgent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "track*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about an existing DeepRacer model's training job", - Privilege: "GetTrainingJob", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for a Microsoft Azure Blob Storage container", + Privilege: "CreateLocationAzureBlob", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "training_job*", - }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -73967,13 +76820,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import a reinforcement learning model for DeepRacer", - Privilege: "ImportModel", + Description: "Grants permission to create an endpoint for an Amazon EFS file system", + Privilege: "CreateLocationEfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -73981,19 +76834,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list a DeepRacer model's evaluation jobs", - Privilege: "ListEvaluations", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for an Amazon Fsx Lustre", + Privilege: "CreateLocationFsxLustre", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", - }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74001,19 +76849,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the user's leaderboard evaluation jobs for a leaderboard", - Privilege: "ListLeaderboardEvaluations", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for Amazon FSx for ONTAP", + Privilege: "CreateLocationFsxOntap", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "leaderboard*", - }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74021,19 +76864,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the DeepRacer model submissions of a user on a leaderboard", - Privilege: "ListLeaderboardSubmissions", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for Amazon FSx for OpenZFS", + Privilege: "CreateLocationFsxOpenZfs", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "leaderboard*", - }, { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74041,14 +76879,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the available leaderboards", - Privilege: "ListLeaderboards", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for an Amazon FSx Windows File Server file system", + Privilege: "CreateLocationFsxWindows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74056,14 +76894,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all existing DeepRacer models", - Privilege: "ListModels", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for an Amazon Hdfs", + Privilege: "CreateLocationHdfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74071,19 +76909,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve participant information about private leaderboards", - Privilege: "ListPrivateLeaderboardParticipants", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for a NFS file system", + Privilege: "CreateLocationNfs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for a self-managed object storage bucket", + Privilege: "CreateLocationObjectStorage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74091,14 +76939,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the available private leaderboards", - Privilege: "ListPrivateLeaderboards", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for an Amazon S3 bucket", + Privilege: "CreateLocationS3", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74106,14 +76954,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the subscribed private leaderboards", - Privilege: "ListSubscribedPrivateLeaderboards", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint for an SMB file system", + Privilege: "CreateLocationSmb", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -74121,269 +76969,341 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists tag for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a sync task", + Privilege: "CreateTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "car", + ResourceType: "location*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation_job", + ResourceType: "agent", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "leaderboard", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an agent", + Privilege: "DeleteAgent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard_evaluation_job", + ResourceType: "agent*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a location used by AWS DataSync", + Privilege: "DeleteLocation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model", + ResourceType: "location*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a sync task", + Privilege: "DeleteTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training_job", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "deepracer:UserToken", - "deepracer:MultiUser", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "task*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all DeepRacer tracks", - Privilege: "ListTracks", + Description: "Grants permission to view metadata such as name, network interfaces, and the status (that is, whether the agent is running or not) about a sync agent", + Privilege: "DescribeAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agent*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list a DeepRacer model's training jobs", - Privilege: "ListTrainingJobs", + Description: "Grants permission to describe metadata about a discovery job", + Privilege: "DescribeDiscoveryJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", + ResourceType: "discoveryjob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Azure Blob Storage sync location", + Privilege: "DescribeLocationAzureBlob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to migrate previous reinforcement learning models for DeepRacer", - Privilege: "MigrateModels", + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Amazon EFS sync location", + Privilege: "DescribeLocationEfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to performs the leaderboard operation mentioned in the operation attribute", - Privilege: "PerformLeaderboardOperation", + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Amazon FSx Lustre sync location", + Privilege: "DescribeLocationFsxLustre", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard", + ResourceType: "location*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Amazon FSx for ONTAP sync location", + Privilege: "DescribeLocationFsxOntap", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove access for a private leaderboard", - Privilege: "RemoveLeaderboardAccessPermission", + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Amazon FSx OpenZFS sync location", + Privilege: "DescribeLocationFsxOpenZfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard*", + ResourceType: "location*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Amazon FSx Windows sync location", + Privilege: "DescribeLocationFsxWindows", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the user's alias for submitting a DeepRacer model to leaderboards", - Privilege: "SetAlias", + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information about an Amazon HDFS sync location", + Privilege: "DescribeLocationHdfs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to evaluate a DeepRacer model in a simulated environment", - Privilege: "StartEvaluation", + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information, about a NFS sync location", + Privilege: "DescribeLocationNfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", + ResourceType: "location*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata about a self-managed object storage server location", + Privilege: "DescribeLocationObjectStorage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "track*", + ResourceType: "location*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as bucket name, about an Amazon S3 bucket sync location", + Privilege: "DescribeLocationS3", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop DeepRacer model evaluations", - Privilege: "StopEvaluation", + AccessLevel: "Read", + Description: "Grants permission to view metadata, such as the path information, about an SMB sync location", + Privilege: "DescribeLocationSmb", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation_job*", + ResourceType: "location*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata about a storage system", + Privilege: "DescribeStorageSystem", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "storagesystem*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop training a DeepRacer model", - Privilege: "StopTrainingReinforcementLearningModel", + AccessLevel: "List", + Description: "Grants permission to describe resource metrics collected by a discovery job", + Privilege: "DescribeStorageSystemResourceMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model*", + ResourceType: "discoveryjob*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe resources identified by a discovery job", + Privilege: "DescribeStorageSystemResources", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "discoveryjob*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to view metadata about a sync task", + Privilege: "DescribeTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "car", + ResourceType: "task*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view metadata about a sync task that is being executed", + Privilege: "DescribeTaskExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation_job", + ResourceType: "taskexecution*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "leaderboard", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate recommendations for a resource identified by a discovery job", + Privilege: "GenerateRecommendations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard_evaluation_job", + ResourceType: "discoveryjob*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list agents owned by an AWS account in a region specified in the request", + Privilege: "ListAgents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list discovery jobs", + Privilege: "ListDiscoveryJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training_job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list source and destination sync locations", + Privilege: "ListLocations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "deepracer:UserToken", - "deepracer:MultiUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to test reward functions for correctness", - Privilege: "TestRewardFunction", + AccessLevel: "List", + Description: "Grants permission to list storage systems", + Privilege: "ListStorageSystems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -74393,45 +77313,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to list tags that have been added to the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "car", + ResourceType: "agent", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation_job", + ResourceType: "discoveryjob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard", + ResourceType: "location", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "leaderboard_evaluation_job", + ResourceType: "storagesystem", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reinforcement_learning_model", + ResourceType: "task", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training_job", + ResourceType: "taskexecution", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list executed sync tasks", + Privilege: "ListTaskExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "deepracer:UserToken", - "deepracer:MultiUser", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -74439,507 +77364,355 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a DeepRacer car in your garage", - Privilege: "UpdateCar", + AccessLevel: "List", + Description: "Grants permission to list of all the sync tasks", + Privilege: "ListTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "car*", - }, - { - ConditionKeys: []string{ - "deepracer:UserToken", - "deepracer:MultiUser", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:deepracer:${Region}:${Account}:car/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "car", - }, - { - Arn: "arn:${Partition}:deepracer:${Region}:${Account}:evaluation_job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "evaluation_job", - }, - { - Arn: "arn:${Partition}:deepracer:${Region}::leaderboard/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "leaderboard", - }, - { - Arn: "arn:${Partition}:deepracer:${Region}:${Account}:leaderboard_evaluation_job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "leaderboard_evaluation_job", - }, - { - Arn: "arn:${Partition}:deepracer:${Region}:${Account}:model/reinforcement_learning/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "reinforcement_learning_model", - }, - { - Arn: "arn:${Partition}:deepracer:${Region}::track/${ResourceId}", - ConditionKeys: []string{}, - Resource: "track", - }, - { - Arn: "arn:${Partition}:deepracer:${Region}:${Account}:training_job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "training_job", - }, - }, - ServiceName: "AWS DeepRacer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by specifying the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by specifying the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by specifying the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "detective", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept an invitation to become a member of a behavior graph", - Privilege: "AcceptInvitation", + Description: "Grants permission to delete a storage system", + Privilege: "RemoveStorageSystem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "storagesystem*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the datasource package history for the specified member accounts in a behavior graph managed by this account", - Privilege: "BatchGetGraphMemberDatasources", + AccessLevel: "Write", + Description: "Grants permission to start a discovery job for a storage system", + Privilege: "StartDiscoveryJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "storagesystem*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the datasource package history of the caller account for the specified graphs", - Privilege: "BatchGetMembershipDatasources", + AccessLevel: "Write", + Description: "Grants permission to start a specific invocation of a sync task", + Privilege: "StartTaskExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "task*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a behavior graph and begin to aggregate security information", - Privilege: "CreateGraph", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{ - "detective:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to request the membership of one or more accounts in a behavior graph managed by this account", - Privilege: "CreateMembers", + Description: "Grants permission to stop a discovery job", + Privilege: "StopDiscoveryJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "discoveryjob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a behavior graph and stop aggregating security information", - Privilege: "DeleteGraph", + AccessLevel: "Tagging", + Description: "Grants permission to apply a key-value pair to an AWS resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "agent", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove member accounts from a behavior graph managed by this account", - Privilege: "DeleteMembers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "discoveryjob", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the current configuration related to the Amazon Detective integration with AWS Organizations", - Privilege: "DescribeOrganizationConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "Graph*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "location", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove the Amazon Detective delegated administrator account for an organization", - Privilege: "DisableOrganizationAdminAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storagesystem", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove the association of this account with a behavior graph", - Privilege: "DisassociateMembership", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to designate the Amazon Detective delegated administrator account for an organization", - Privilege: "EnableOrganizationAdminAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:DescribeOrganization", - "organizations:EnableAWSServiceAccess", - "organizations:RegisterDelegatedAdministrator", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "taskexecution", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a behavior graph's eligibility for a free trial period", - Privilege: "GetFreeTrialEligibility", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "agent", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the data ingestion state of a behavior graph", - Privilege: "GetGraphIngestState", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "discoveryjob", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an investigation's status and metadata", - Privilege: "GetInvestigation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve details on specified members of a behavior graph", - Privilege: "GetMembers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "storagesystem", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about Amazon Detective's pricing", - Privilege: "GetPricingInformation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "taskexecution", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list usage information of a behavior graph", - Privilege: "GetUsageInformation", + AccessLevel: "Write", + Description: "Grants permission to update the name of an agent", + Privilege: "UpdateAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "agent*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to invoke Detective's Assistant", - Privilege: "InvokeAssistant", + AccessLevel: "Write", + Description: "Grants permission to update a discovery job", + Privilege: "UpdateDiscoveryJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "discoveryjob*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list a graph's datasource package ingest states and timestamps for the most recent state changes in a behavior graph managed by this account", - Privilege: "ListDatasourcePackages", + AccessLevel: "Write", + Description: "Grants permission to update an Azure Blob Storage sync location", + Privilege: "UpdateLocationAzureBlob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list behavior graphs managed by this account", - Privilege: "ListGraphs", + AccessLevel: "Write", + Description: "Grants permission to update an EFS sync Location", + Privilege: "UpdateLocationEfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve high volume entities whose relationships cannot be stored by Detective", - Privilege: "ListHighDegreeEntities", + AccessLevel: "Write", + Description: "Grants permission to update an FSx Lustre sync Location", + Privilege: "UpdateLocationFsxLustre", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the indicators of an investigation", - Privilege: "ListIndicators", + AccessLevel: "Write", + Description: "Grants permission to update an FSx ONTAP sync Location", + Privilege: "UpdateLocationFsxOntap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the investigations of a behavior graph", - Privilege: "ListInvestigations", + AccessLevel: "Write", + Description: "Grants permission to update an FSx OpenZFS sync Location", + Privilege: "UpdateLocationFsxOpenZfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve details on the behavior graphs to which this account has been invited to join", - Privilege: "ListInvitations", + AccessLevel: "Write", + Description: "Grants permission to update an FSx Windows sync Location", + Privilege: "UpdateLocationFsxWindows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve details on all members of a behavior graph", - Privilege: "ListMembers", + AccessLevel: "Write", + Description: "Grants permission to update an HDFS sync Location", + Privilege: "UpdateLocationHdfs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the current Amazon Detective delegated administrator account for an organization", - Privilege: "ListOrganizationAdminAccount", + AccessLevel: "Write", + Description: "Grants permission to update an NFS sync Location", + Privilege: "UpdateLocationNfs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "location*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tag values that are assigned to a behavior graph", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a self-managed object storage server location", + Privilege: "UpdateLocationObjectStorage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "location*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject an invitation to become a member of a behavior graph", - Privilege: "RejectInvitation", + Description: "Grants permission to update an S3 sync Location", + Privilege: "UpdateLocationS3", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search the data stored in a behavior graph", - Privilege: "SearchGraph", + AccessLevel: "Write", + Description: "Grants permission to update a SMB sync location", + Privilege: "UpdateLocationSmb", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "location*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start investigations", - Privilege: "StartInvestigation", + Description: "Grants permission to update a storage system", + Privilege: "UpdateStorageSystem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "storagesystem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start data ingest for a member account that has a status of ACCEPTED_BUT_DISABLED", - Privilege: "StartMonitoringMember", + Description: "Grants permission to update metadata associated with a sync task", + Privilege: "UpdateTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "task*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to assign tag values to a behavior graph", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update execution of a sync task", + Privilege: "UpdateTaskExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Graph*", + ResourceType: "taskexecution*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -74947,111 +77720,104 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Tagging", - Description: "Grants permission to remove tag values from a behavior graph", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Graph*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:agent/${AgentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "agent", }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable datasource package(s) in a behavior graph managed by this account", - Privilege: "UpdateDatasourcePackages", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Graph*", - }, + Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:location/${LocationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "location", }, { - AccessLevel: "Write", - Description: "Grants permission to update an investigation's state and metadata", - Privilege: "UpdateInvestigationState", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Graph*", - }, + Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:task/${TaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "task", }, { - AccessLevel: "Write", - Description: "Grants permission to update the current configuration related to the Amazon Detective integration with AWS Organizations", - Privilege: "UpdateOrganizationConfiguration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "Graph*", - }, + Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:task/${TaskId}/execution/${ExecutionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "taskexecution", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:detective:${Region}:${Account}:graph:${ResourceId}", + Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:system/${StorageSystemId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Graph", + Resource: "storagesystem", + }, + { + Arn: "arn:${Partition}:datasync:${Region}:${AccountId}:system/${StorageSystemId}/job/${DiscoveryJobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "discoveryjob", }, }, - ServiceName: "Amazon Detective", + ServiceName: "AWS DataSync", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the allowed set of values for each of the tags", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag-value assoicated with the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of mandatory tags in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, + { + Condition: "datazone:domainId", + Description: "Filters access by the domain ID passed in the request", + Type: "String", + }, + { + Condition: "datazone:projectId", + Description: "Filters access by the project ID passed in the request", + Type: "String", + }, + { + Condition: "datazone:userId", + Description: "Filters access by the user ID passed in the request", + Type: "String", + }, }, - Prefix: "devicefarm", + Prefix: "datazone", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a device pool within a project", - Privilege: "CreateDevicePool", + Description: "Grants permission to accept prediction", + Privilege: "AcceptPredictions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a device instance profile", - Privilege: "CreateInstanceProfile", + Description: "Grants permission to approve a subscription request for a Data Asset", + Privilege: "AcceptSubscriptionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75062,107 +77828,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a network profile within a project", - Privilege: "CreateNetworkProfile", + Description: "Grants permission to add an owner to an entity like domain unit", + Privilege: "AddEntityOwner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a project for mobile testing", - Privilege: "CreateProject", + Description: "Grants permission to add a policy grant", + Privilege: "AddPolicyGrant", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a remote access session to a device instance", - Privilege: "CreateRemoteAccessSession", + Description: "Grants permission to associate a role in a default service blueprint environment", + Privilege: "AssociateEnvironmentRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deviceinstance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "upload", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a project for desktop testing", - Privilege: "CreateTestGridProject", + Description: "Grants permission to remove linked type items from an Amazon DataZone Domain", + Privilege: "BatchDeleteLinkedTypes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate a new pre-signed url used to access our test grid service", - Privilege: "CreateTestGridUrl", + Description: "Grants permission to put linked type items to an Amazon DataZone Domain", + Privilege: "BatchPutLinkedTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload a new file or app within a project", - Privilege: "CreateUpload", + Description: "Grants permission to cancel metadata generation run", + Privilege: "CancelMetadataGenerationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Virtual Private Cloud (VPC) endpoint configuration", - Privilege: "CreateVPCEConfiguration", + Description: "Grants permission to revoke or unsubscribe an approved subscription to Data Asset", + Privilege: "CancelSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75173,116 +77912,119 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a user-generated device pool", - Privilege: "DeleteDevicePool", + Description: "Grants permission to create asset", + Privilege: "CreateAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devicepool*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a user-generated instance profile", - Privilege: "DeleteInstanceProfile", + Description: "Grants permission to create asset filter", + Privilege: "CreateAssetFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instanceprofile*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a user-generated network profile", - Privilege: "DeleteNetworkProfile", + Description: "Grants permission to create new revision of an asset", + Privilege: "CreateAssetRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "networkprofile*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a mobile testing project", - Privilege: "DeleteProject", + Description: "Grants permission to create an asset type", + Privilege: "CreateAssetType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a completed remote access session and its results", - Privilege: "DeleteRemoteAccessSession", + Description: "Grants permission to create connections", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a run", - Privilege: "DeleteRun", + Description: "Grants permission to create data product", + Privilege: "CreateDataProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a desktop testing project", - Privilege: "DeleteTestGridProject", + Description: "Grants permission to create data product revision", + Privilege: "CreateDataProductRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a user-uploaded file", - Privilege: "DeleteUpload", + Description: "Grants permission to create a new DataSource", + Privilege: "CreateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "upload*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Virtual Private Cloud (VPC) endpoint configuration", - Privilege: "DeleteVPCEConfiguration", + Description: "Grants permission to provision a domain which is a top level entity that contains other Amazon DataZone resources", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "vpceconfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the number of unmetered iOS and/or unmetered Android devices purchased by the account", - Privilege: "GetAccountSettings", + AccessLevel: "Write", + Description: "Grants permission to create a domain unit", + Privilege: "CreateDomainUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75292,98 +78034,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the information of a unique device type", - Privilege: "GetDevice", + AccessLevel: "Write", + Description: "Grants permission to create a collection of configurated resources used to publish and subscribe to data", + Privilege: "CreateEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a device instance", - Privilege: "GetDeviceInstance", + AccessLevel: "Write", + Description: "Grants permission to create an environment action in a default service blueprint environment", + Privilege: "CreateEnvironmentAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceinstance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a device pool", - Privilege: "GetDevicePool", + AccessLevel: "Write", + Description: "Grants permission to create a custom Environment Blueprint that allow user to add Environments to their Project", + Privilege: "CreateEnvironmentBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devicepool*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the compatibility of a test and/or app with a device pool", - Privilege: "GetDevicePoolCompatibility", + AccessLevel: "Write", + Description: "Grants permission to create a template from a Blueprint that can be used to create a Environment", + Privilege: "CreateEnvironmentProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devicepool*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "upload", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of an instance profile", - Privilege: "GetInstanceProfile", + AccessLevel: "Write", + Description: "Grants permission to create a form type or a new revision of it", + Privilege: "CreateFormType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instanceprofile*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a job", - Privilege: "GetJob", + AccessLevel: "Write", + Description: "Grants permission to create a business glossary", + Privilege: "CreateGlossary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a network profile", - Privilege: "GetNetworkProfile", + AccessLevel: "Write", + Description: "Grants permission to create a glossary term", + Privilege: "CreateGlossaryTerm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "networkprofile*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current status and future status of all offerings purchased by an AWS account", - Privilege: "GetOfferingStatus", + AccessLevel: "Write", + Description: "Grants permission to create a DataZone group profile for an IAM Identity Center group", + Privilege: "CreateGroupProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75393,166 +78130,141 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a mobile testing project", - Privilege: "GetProject", + AccessLevel: "Write", + Description: "Grants permission to create listing change set", + Privilege: "CreateListingChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the link to a currently running remote access session", - Privilege: "GetRemoteAccessSession", + AccessLevel: "Write", + Description: "Grants permission to create a Project to enable your team to publish and subscribe to data", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a run", - Privilege: "GetRun", + AccessLevel: "Write", + Description: "Grants permission to add a user to a Project", + Privilege: "CreateProjectMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a testing suite", - Privilege: "GetSuite", + AccessLevel: "Write", + Description: "Grants permission to create a project profile", + Privilege: "CreateProjectProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "suite*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a test case", - Privilege: "GetTest", + AccessLevel: "Write", + Description: "Grants permission to create rule", + Privilege: "CreateRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a desktop testing project", - Privilege: "GetTestGridProject", + AccessLevel: "Write", + Description: "Grants permission to create a grant for an approved subscription on a subscription target", + Privilege: "CreateSubscriptionGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of a test grid session", - Privilege: "GetTestGridSession", + AccessLevel: "Write", + Description: "Grants permission to create a subscription request for a Data Asset", + Privilege: "CreateSubscriptionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "testgrid-session", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of an uploaded file", - Privilege: "GetUpload", + AccessLevel: "Write", + Description: "Grants permission to create a subscription target for a Environment in the project", + Privilege: "CreateSubscriptionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "upload*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retireve the information of an Amazon Virtual Private Cloud (VPC) endpoint configuration", - Privilege: "GetVPCEConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a user profile for an existing user in the customers IAM Identity Center", + Privilege: "CreateUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpceconfiguration*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to install an application to a device in a remote access session", - Privilege: "InstallToRemoteAccessSession", + Description: "Grants permission to delete an asset", + Privilege: "DeleteAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "upload*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the artifacts in a project", - Privilege: "ListArtifacts", + AccessLevel: "Write", + Description: "Grants permission to delete asset filter", + Privilege: "DeleteAssetFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "run", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "suite", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "test", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of device instances", - Privilege: "ListDeviceInstances", + AccessLevel: "Write", + Description: "Grants permission to delete an asset type", + Privilege: "DeleteAssetType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75562,21 +78274,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of device pools", - Privilege: "ListDevicePools", + AccessLevel: "Write", + Description: "Grants permission to delete connections", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of unique device types", - Privilege: "ListDevices", + AccessLevel: "Write", + Description: "Grants permission to delete data product", + Privilege: "DeleteDataProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75586,9 +78298,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of device instance profiles", - Privilege: "ListInstanceProfiles", + AccessLevel: "Write", + Description: "Grants permission to update existing DataSource", + Privilege: "DeleteDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75598,33 +78310,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of jobs within a run", - Privilege: "ListJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a provisioned domain", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of network profiles within a project", - Privilege: "ListNetworkProfiles", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a resource policy for a DataZone Domain", + Privilege: "DeleteDomainSharingPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the offering promotions", - Privilege: "ListOfferingPromotions", + AccessLevel: "Write", + Description: "Grants permission to delete an existing domain unit", + Privilege: "DeleteDomainUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75634,9 +78346,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the historical purchases, renewals, and system renewal transactions for an AWS account", - Privilege: "ListOfferingTransactions", + AccessLevel: "Write", + Description: "Grants permission to Delete Environment", + Privilege: "DeleteEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75646,9 +78358,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the products or offerings that the user can manage through the API", - Privilege: "ListOfferings", + AccessLevel: "Write", + Description: "Grants permission to delete an environment action in a default service blueprint environment", + Privilege: "DeleteEnvironmentAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75658,9 +78370,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of mobile testing projects for an AWS account", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to delete Environment Blueprint", + Privilege: "DeleteEnvironmentBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75670,119 +78382,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of currently running remote access sessions", - Privilege: "ListRemoteAccessSessions", + AccessLevel: "Write", + Description: "Grants permission to delete environment blueprint configuration", + Privilege: "DeleteEnvironmentBlueprintConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of runs within a project", - Privilege: "ListRuns", + AccessLevel: "Write", + Description: "Grants permission to delete Environment Profile", + Privilege: "DeleteEnvironmentProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of samples within a project", - Privilege: "ListSamples", + AccessLevel: "Write", + Description: "Grants permission to delete a form type", + Privilege: "DeleteFormType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of testing suites within a job", - Privilege: "ListSuites", + AccessLevel: "Write", + Description: "Grants permission to delete a business glossary", + Privilege: "DeleteGlossary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags of a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a glossary term", + Privilege: "DeleteGlossaryTerm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deviceinstance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "devicepool", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instanceprofile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "networkprofile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "run", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "session", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "testgrid-project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "testgrid-session", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "vpceconfiguration", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of desktop testing projects for an AWS account", - Privilege: "ListTestGridProjects", + AccessLevel: "Write", + Description: "Grants permission to delete listing", + Privilege: "DeleteListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75792,81 +78454,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the session actions performed during a test grid session", - Privilege: "ListTestGridSessionActions", + AccessLevel: "Write", + Description: "Grants permission to delete a Project that enables your team to publish and subscribe to data", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-session*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the artifacts generated by a test grid session", - Privilege: "ListTestGridSessionArtifacts", + AccessLevel: "Write", + Description: "Grants permission to remove a user from a project", + Privilege: "DeleteProjectMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-session*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the sessions within a test grid project", - Privilege: "ListTestGridSessions", + AccessLevel: "Write", + Description: "Grants permission to delete a project profile", + Privilege: "DeleteProjectProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of tests within a testing suite", - Privilege: "ListTests", + AccessLevel: "Write", + Description: "Grants permission to delete rule", + Privilege: "DeleteRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "suite*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of unique problems within a run", - Privilege: "ListUniqueProblems", + AccessLevel: "Write", + Description: "Grants permission to delete a subscription grant from a subscription target", + Privilege: "DeleteSubscriptionGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of uploads within a project", - Privilege: "ListUploads", + AccessLevel: "Write", + Description: "Grants permission to delete a pending subscription request for a Data Asset", + Privilege: "DeleteSubscriptionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the information of Amazon Virtual Private Cloud (VPC) endpoint configurations", - Privilege: "ListVPCEConfigurations", + AccessLevel: "Write", + Description: "Grants permission to delete a subscription target from a Environment in the project", + Privilege: "DeleteSubscriptionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75877,8 +78539,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to purchase offerings for an AWS account", - Privilege: "PurchaseOffering", + Description: "Grants permission to delete existing TimeSeriesDataPoints", + Privilege: "DeleteTimeSeriesDataPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75889,8 +78551,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to set the quantity of devices to renew for an offering", - Privilege: "RenewOffering", + Description: "Grants permission to disassociate a role in a default service blueprint environment", + Privilege: "DisassociateEnvironmentRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -75900,456 +78562,393 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to schedule a run", - Privilege: "ScheduleRun", + AccessLevel: "Read", + Description: "Grants permission to retrieve an asset", + Privilege: "GetAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "devicepool", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "upload", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate a running job", - Privilege: "StopJob", + AccessLevel: "Read", + Description: "Grants permission to get asset filter", + Privilege: "GetAssetFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate a running remote access session", - Privilege: "StopRemoteAccessSession", + AccessLevel: "Read", + Description: "Grants permission to get an asset type", + Privilege: "GetAssetType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate a running test run", - Privilege: "StopRun", + AccessLevel: "Read", + Description: "Grants permission to get connections", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get data product", + Privilege: "GetDataProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deviceinstance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "devicepool", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instanceprofile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "networkprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to Get a existing DataSource in Amazon DataZone using its identifier", + Privilege: "GetDataSource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get DataSource run job in Amazon DataZone using it's identifier", + Privilege: "GetDataSourceRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a domain", + Privilege: "GetDomain", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session", + ResourceType: "domain*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to use features that require access to domain execution role credentials", + Privilege: "GetDomainExecutionRoleCredentials", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a resource policy for a DataZone Domain", + Privilege: "GetDomainSharingPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-session", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an existing domain unit", + Privilege: "GetDomainUnit", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpceconfiguration", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get Environment details", + Privilege: "GetEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an environment action in a default service blueprint environment", + Privilege: "GetEnvironmentAction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceinstance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get environment action link", + Privilege: "GetEnvironmentActionLink", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devicepool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get Environment Blueprint details", + Privilege: "GetEnvironmentBlueprint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instanceprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get environment blueprint configuration", + Privilege: "GetEnvironmentBlueprintConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "networkprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get short term credentials that assume the Environment user role", + Privilege: "GetEnvironmentCredentials", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get Environment Profile details", + Privilege: "GetEnvironmentProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a form type", + Privilege: "GetFormType", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a business glossary", + Privilege: "GetGlossary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a glossary term", + Privilege: "GetGlossaryTerm", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "testgrid-session", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing DataZone group profile", + Privilege: "GetGroupProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpceconfiguration", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing device instance", - Privilege: "UpdateDeviceInstance", + AccessLevel: "Permissions management", + Description: "Grants permission to an IAM principal to log into the DataZone Portal", + Privilege: "GetIamPortalLoginUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceinstance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get job runs", + Privilege: "GetJobRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instanceprofile", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing device pool", - Privilege: "UpdateDevicePool", + AccessLevel: "Read", + Description: "Grants permission to get lineage events", + Privilege: "GetLineageEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devicepool*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing instance profile", - Privilege: "UpdateInstanceProfile", + AccessLevel: "Read", + Description: "Grants permission to get the lineage node", + Privilege: "GetLineageNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instanceprofile*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing network profile", - Privilege: "UpdateNetworkProfile", + AccessLevel: "Read", + Description: "Grants permission to get listing", + Privilege: "GetListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "networkprofile*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing mobile testing project", - Privilege: "UpdateProject", + AccessLevel: "Read", + Description: "Grants permission to get metadata generation run", + Privilege: "GetMetadataGenerationRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "project*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing desktop testing project", - Privilege: "UpdateTestGridProject", + AccessLevel: "Read", + Description: "Grants permission to get Project details", + Privilege: "GetProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "testgrid-project*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing upload", - Privilege: "UpdateUpload", + AccessLevel: "Read", + Description: "Grants permission to get project profile details", + Privilege: "GetProjectProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "upload*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing Amazon Virtual Private Cloud (VPC) endpoint configuration", - Privilege: "UpdateVPCEConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get rule", + Privilege: "GetRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpceconfiguration*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:project:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "project", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:run:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "run", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:job:${ResourceId}", - ConditionKeys: []string{}, - Resource: "job", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:suite:${ResourceId}", - ConditionKeys: []string{}, - Resource: "suite", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:test:${ResourceId}", - ConditionKeys: []string{}, - Resource: "test", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:upload:${ResourceId}", - ConditionKeys: []string{}, - Resource: "upload", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:artifact:${ResourceId}", - ConditionKeys: []string{}, - Resource: "artifact", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:sample:${ResourceId}", - ConditionKeys: []string{}, - Resource: "sample", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:networkprofile:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "networkprofile", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}::deviceinstance:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "deviceinstance", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:session:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "session", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:devicepool:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "devicepool", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}::device:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "device", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:instanceprofile:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "instanceprofile", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:vpceconfiguration:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "vpceconfiguration", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:testgrid-project:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "testgrid-project", - }, - { - Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:testgrid-session:${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "testgrid-session", - }, - }, - ServiceName: "AWS Device Farm", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "devops-guru:ServiceNames", - Description: "Filters access by API to restrict access to given AWS service names", - Type: "ArrayOfString", - }, - }, - Prefix: "devops-guru", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add a notification channel to DevOps Guru", - Privilege: "AddNotificationChannel", + AccessLevel: "Read", + Description: "Grants permission to retrieve a subscription", + Privilege: "GetSubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sns:GetTopicAttributes", - "sns:SetTopicAttributes", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete specified insight in your account", - Privilege: "DeleteInsight", + AccessLevel: "Read", + Description: "Grants permission to get subscription eligibilty", + Privilege: "GetSubscriptionEligibility", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76360,8 +78959,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view the health of operations in your AWS account", - Privilege: "DescribeAccountHealth", + Description: "Grants permission to retireve a subscription grant", + Privilege: "GetSubscriptionGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76372,8 +78971,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view the health of operations within a time range in your AWS account", - Privilege: "DescribeAccountOverview", + Description: "Grants permission to reject a subscription request for a Data Asset", + Privilege: "GetSubscriptionRequestDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76384,8 +78983,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the details of a specified anomaly", - Privilege: "DescribeAnomaly", + Description: "Grants permission to retireve details of subscription target", + Privilege: "GetSubscriptionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76396,8 +78995,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about event sources for DevOps Guru", - Privilege: "DescribeEventSourcesConfig", + Description: "Grants permission to get an existing TimeSeriesDataPoints in Amazon DataZone using its identifier", + Privilege: "GetTimeSeriesDataPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76408,8 +79007,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view the feedback details of a specified insight", - Privilege: "DescribeFeedback", + Description: "Grants permission to get update eligibility status for project constructs", + Privilege: "GetUpdateEligibility", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76420,8 +79019,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the details of a specified insight", - Privilege: "DescribeInsight", + Description: "Grants permission to retrieve a user profile for an existing user in the DataZone Domain", + Privilege: "GetUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76431,9 +79030,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the health of operations in your organization", - Privilege: "DescribeOrganizationHealth", + AccessLevel: "List", + Description: "Grants permission to list Environments across all domains in an AWS Account", + Privilege: "ListAccountEnvironments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76443,9 +79042,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the health of operations within a time range in your organization", - Privilege: "DescribeOrganizationOverview", + AccessLevel: "List", + Description: "Grants permission to list asset filters", + Privilege: "ListAssetFilters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76455,9 +79054,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the health of operations for each AWS CloudFormation stack or AWS Services or accounts specified in DevOps Guru in your organization", - Privilege: "DescribeOrganizationResourceCollectionHealth", + AccessLevel: "List", + Description: "Grants permission to list revisions of an asset", + Privilege: "ListAssetRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76467,9 +79066,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the health of operations for each AWS CloudFormation stack specified in DevOps Guru", - Privilege: "DescribeResourceCollectionHealth", + AccessLevel: "List", + Description: "Grants permission to list connections", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76479,9 +79078,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the integration status of services that can be integrated with DevOps Guru", - Privilege: "DescribeServiceIntegration", + AccessLevel: "List", + Description: "Grants permission to list data product revisions", + Privilege: "ListDataProductRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76491,9 +79090,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list service resource cost estimates", - Privilege: "GetCostEstimation", + AccessLevel: "List", + Description: "Grants permission to list DataSource runs job's activities on Asset", + Privilege: "ListDataSourceRunActivities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76503,9 +79102,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list AWS CloudFormation stacks that DevOps Guru is configured to use", - Privilege: "GetResourceCollection", + AccessLevel: "List", + Description: "Grants permission to list DataSource runs job", + Privilege: "ListDataSourceRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76516,13 +79115,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list anomalies of a given insight in your account", - Privilege: "ListAnomaliesForInsight", + Description: "Grants permission to list existing DataSources", + Privilege: "ListDataSources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "devops-guru:ServiceNames", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -76530,8 +79127,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list log anomalies of a given insight in your account", - Privilege: "ListAnomalousLogGroups", + Description: "Grants permission to list child domain units for a given parent domain unit", + Privilege: "ListDomainUnitsForParent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76542,8 +79139,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list resource events that are evaluated by DevOps Guru", - Privilege: "ListEvents", + Description: "Grants permission to retrieve all domains", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76554,8 +79151,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list insights in your account", - Privilege: "ListInsights", + Description: "Grants permission to list owners of an entity like domain unit", + Privilege: "ListEntityOwners", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76566,8 +79163,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list resource monitored by DevOps Guru in your account", - Privilege: "ListMonitoredResources", + Description: "Grants permission to list environment actions in a default service blueprint environment", + Privilege: "ListEnvironmentActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76578,8 +79175,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list notification channels configured for DevOps Guru in your account", - Privilege: "ListNotificationChannels", + Description: "Grants permission to list environment blueprint configuration summaries", + Privilege: "ListEnvironmentBlueprintConfigurationSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76590,8 +79187,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list insights in your organization", - Privilege: "ListOrganizationInsights", + Description: "Grants permission to list environment blueprint configurations", + Privilege: "ListEnvironmentBlueprintConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76602,8 +79199,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list a specified insight's recommendations", - Privilege: "ListRecommendations", + Description: "Grants permission to list Domain for Environment Blueprints", + Privilege: "ListEnvironmentBlueprints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76613,9 +79210,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit a feedback to DevOps Guru", - Privilege: "PutFeedback", + AccessLevel: "List", + Description: "Grants permission to list Domain for Environment Profiles", + Privilege: "ListEnvironmentProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76625,29 +79222,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a notification channel from DevOps Guru", - Privilege: "RemoveNotificationChannel", + AccessLevel: "List", + Description: "Grants permission to show Environments in the Domain", + Privilege: "ListEnvironments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sns:GetTopicAttributes", - "sns:SetTopicAttributes", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to search insights in your account", - Privilege: "SearchInsights", + Description: "Grants permission to list all the DataZone group profiles that the DataZone user profile is a member of", + Privilege: "ListGroupsForUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "devops-guru:ServiceNames", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -76655,8 +79247,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to search insights in your organization", - Privilege: "SearchOrganizationInsights", + Description: "Grants permission to list job runs", + Privilege: "ListJobRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76666,9 +79258,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to start the creation of an estimate of the monthly cost", - Privilege: "StartCostEstimation", + AccessLevel: "List", + Description: "Grants permission to list lineage events", + Privilege: "ListLineageEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76678,9 +79270,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an event source for DevOps Guru", - Privilege: "UpdateEventSourcesConfig", + AccessLevel: "List", + Description: "Grants permission to list historical versions of lineage node", + Privilege: "ListLineageNodeHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76690,21 +79282,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the list of AWS CloudFormation stacks that are used to specify which AWS resources in your account are analyzed by DevOps Guru", - Privilege: "UpdateResourceCollection", + AccessLevel: "List", + Description: "Grants permission to list linked type items linked to an Amazon DataZone Domain", + Privilege: "ListLinkedTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable a service that integrates with DevOps Guru", - Privilege: "UpdateServiceIntegration", + AccessLevel: "List", + Description: "Grants permission to list metadata generation runs", + Privilege: "ListMetadataGenerationRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76713,254 +79305,250 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:sns:${Region}:${Account}:${TopicName}", - ConditionKeys: []string{}, - Resource: "topic", - }, - }, - ServiceName: "Amazon DevOps Guru", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by actions based on the presence of tag keys in the request", - Type: "String", - }, - }, - Prefix: "directconnect", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to accept a proposal request to attach a virtual private gateway to a Direct Connect gateway", - Privilege: "AcceptDirectConnectGatewayAssociationProposal", + AccessLevel: "List", + Description: "Grants permission to list notifications and events for a datazone user", + Privilege: "ListNotifications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a hosted connection on an interconnect", - Privilege: "AllocateConnectionOnInterconnect", + AccessLevel: "List", + Description: "Grants permission to list policy grants", + Privilege: "ListPolicyGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new hosted connection between a AWS Direct Connect partner's network and a specific AWS Direct Connect location", - Privilege: "AllocateHostedConnection", + AccessLevel: "List", + Description: "Grants permission to list Project Members", + Privilege: "ListProjectMemberships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list project profiles", + Privilege: "ListProjectProfiles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provision a private virtual interface to be owned by a different customer", - Privilege: "AllocatePrivateVirtualInterface", + AccessLevel: "List", + Description: "Grants permission to list Projects", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list rules", + Privilege: "ListRules", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provision a public virtual interface to be owned by a different customer", - Privilege: "AllocatePublicVirtualInterface", + AccessLevel: "List", + Description: "Grants permission to List subscription grants for a subscribed principal", + Privilege: "ListSubscriptionGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list subscription requests", + Privilege: "ListSubscriptionRequests", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provision a transit virtual interface to be owned by a different customer", - Privilege: "AllocateTransitVirtualInterface", + AccessLevel: "List", + Description: "Grants permission to list subscription targets", + Privilege: "ListSubscriptionTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list subscriptions", + Privilege: "ListSubscriptions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a connection with a LAG", - Privilege: "AssociateConnectionWithLag", + AccessLevel: "Read", + Description: "Grants permission to retrieve all tags associated with a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "domain", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list existing TimeSeriesDataPoints", + Privilege: "ListTimeSeriesDataPoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a hosted connection and its virtual interfaces with a link aggregation group (LAG) or interconnect", - Privilege: "AssociateHostedConnection", + AccessLevel: "List", + Description: "Grants permission to list available Manager Secrets", + Privilege: "ListWarehouseMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to post lineage events", + Privilege: "PostLineageEvent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to post a new TimeSeriesDataPoints", + Privilege: "PostTimeSeriesDataPoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a MAC Security (MACsec) Connection Key Name (CKN)/ Connectivity Association Key (CAK) pair with an AWS Direct Connect dedicated connection", - Privilege: "AssociateMacSecKey", + Description: "Grants permission to provision domain with default project setup", + Privilege: "ProvisionDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to add a resource policy for a DataZone Domain", + Privilege: "PutDomainSharingPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a virtual interface with a specified link aggregation group (LAG) or connection", - Privilege: "AssociateVirtualInterface", + Description: "Grants permission to put environment blueprint configuration", + Privilege: "PutEnvironmentBlueprintConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to refresh token", + Privilege: "RefreshToken", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to confirm the creation of a hosted connection on an interconnect", - Privilege: "ConfirmConnection", + Description: "Grants permission to reject prediction", + Privilege: "RejectPredictions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to confirm the the terms of agreement when creating the connection or link aggregation group (LAG)", - Privilege: "ConfirmCustomerAgreement", + Description: "Grants permission to reject a subscription request for a Data Asset", + Privilege: "RejectSubscriptionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -76971,76 +79559,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to accept ownership of a private virtual interface created by another customer", - Privilege: "ConfirmPrivateVirtualInterface", + Description: "Grants permission to remove an existing owner of an entity like domain unit", + Privilege: "RemoveEntityOwner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to accept ownership of a public virtual interface created by another customer", - Privilege: "ConfirmPublicVirtualInterface", + Description: "Grants permission to remove a policy grant", + Privilege: "RemovePolicyGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to accept ownership of a transit virtual interface created by another customer", - Privilege: "ConfirmTransitVirtualInterface", + Description: "Grants permission to revoke a subscription", + Privilege: "RevokeSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a BGP peer on the specified virtual interface", - Privilege: "CreateBGPPeer", + AccessLevel: "List", + Description: "Grants permission to search datazone entities", + Privilege: "Search", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new connection between the customer network and a specific AWS Direct Connect location", - Privilege: "CreateConnection", + AccessLevel: "List", + Description: "Grants permission to search DataZone group profiles and IAM Identity Center groups", + Privilege: "SearchGroupProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search listings", + Privilege: "SearchListings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Direct Connect gateway, which is an intermediate object that enables you to connect a set of virtual interfaces and virtual private gateways", - Privilege: "CreateDirectConnectGateway", + AccessLevel: "List", + Description: "Grants permission to search rules", + Privilege: "SearchRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77050,108 +79642,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an association between a Direct Connect gateway and a virtual private gateway", - Privilege: "CreateDirectConnectGatewayAssociation", + AccessLevel: "List", + Description: "Grants permission to search types such asset types and form types in a domain", + Privilege: "SearchTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a proposal to associate the specified virtual private gateway with the specified Direct Connect gateway", - Privilege: "CreateDirectConnectGatewayAssociationProposal", + AccessLevel: "List", + Description: "Grants permission to search DataZone user profiles, IAM Identity Center users, and DataZone IAM principal profiles", + Privilege: "SearchUserProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new interconnect between a AWS Direct Connect partner's network and a specific AWS Direct Connect location", - Privilege: "CreateInterconnect", + Description: "Grants permission to login using SSO", + Privilege: "SsoLogin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a link aggregation group (LAG) with the specified number of bundled physical connections between the customer network and a specific AWS Direct Connect location", - Privilege: "CreateLag", + Description: "Grants permission to logout as SSO user", + Privilege: "SsoLogout", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new private virtual interface", - Privilege: "CreatePrivateVirtualInterface", + Description: "Grants permission to start a DataSource run job", + Privilege: "StartDataSourceRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start metadata generation run", + Privilege: "StartMetadataGenerationRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new public virtual interface", - Privilege: "CreatePublicVirtualInterface", + Description: "Grants permission to stop metadata generation run", + Privilege: "StopMetadataGenerationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "domain*", }, { ConditionKeys: []string{ @@ -77164,23 +79746,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new transit virtual interface", - Privilege: "CreateTransitVirtualInterface", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "domain*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -77190,140 +79766,140 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified BGP peer on the specified virtual interface with the specified customer address and ASN", - Privilege: "DeleteBGPPeer", + Description: "Grants permission to update asset filter", + Privilege: "UpdateAssetFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the connection", - Privilege: "DeleteConnection", + Description: "Grants permission to update connections", + Privilege: "UpdateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified Direct Connect gateway", - Privilege: "DeleteDirectConnectGateway", + Description: "Grants permission to update existing DataSource", + Privilege: "UpdateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the association between the specified Direct Connect gateway and virtual private gateway", - Privilege: "DeleteDirectConnectGatewayAssociation", + Description: "Grants permission to update data source run activities", + Privilege: "UpdateDataSourceRunActivities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the association proposal request between the specified Direct Connect gateway and virtual private gateway", - Privilege: "DeleteDirectConnectGatewayAssociationProposal", + Description: "Grants permission to update information for a domain", + Privilege: "UpdateDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified interconnect", - Privilege: "DeleteInterconnect", + Description: "Grants permission to update an existing domain unit", + Privilege: "UpdateDomainUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified link aggregation group (LAG)", - Privilege: "DeleteLag", + Description: "Grants permission to update Environment settings", + Privilege: "UpdateEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a virtual interface", - Privilege: "DeleteVirtualInterface", + Description: "Grants permission to update an environment action in a default service blueprint environment", + Privilege: "UpdateEnvironmentAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the LOA-CFA for a Connection", - Privilege: "DescribeConnectionLoa", + AccessLevel: "Write", + Description: "Grants permission to update Environment Blueprint settings", + Privilege: "UpdateEnvironmentBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe all connections in this region", - Privilege: "DescribeConnections", + AccessLevel: "Write", + Description: "Grants permission to update environment configuration", + Privilege: "UpdateEnvironmentConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a list of connections that have been provisioned on the given interconnect", - Privilege: "DescribeConnectionsOnInterconnect", + AccessLevel: "Write", + Description: "Grants permission to update status of the Environment deployment", + Privilege: "UpdateEnvironmentDeploymentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a list of customer agreements, along with their signed status and whether the customer is an NNIPartner, NNIPartnerV2, or a nonPartner", - Privilege: "DescribeCustomerMetadata", + AccessLevel: "Write", + Description: "Grants permission to update EnvironmentProfile configuration", + Privilege: "UpdateEnvironmentProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77333,127 +79909,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe one or more association proposals for connection between a virtual private gateway and a Direct Connect gateway", - Privilege: "DescribeDirectConnectGatewayAssociationProposals", + AccessLevel: "Write", + Description: "Grants permission to update a business glossary", + Privilege: "UpdateGlossary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the associations between your Direct Connect gateways and virtual private gateways", - Privilege: "DescribeDirectConnectGatewayAssociations", + AccessLevel: "Write", + Description: "Grants permission to update a glossary term", + Privilege: "UpdateGlossaryTerm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the attachments between your Direct Connect gateways and virtual interfaces", - Privilege: "DescribeDirectConnectGatewayAttachments", + AccessLevel: "Write", + Description: "Grants permission to update a DataZone group profile", + Privilege: "UpdateGroupProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe all your Direct Connect gateways or only the specified Direct Connect gateway", - Privilege: "DescribeDirectConnectGateways", + AccessLevel: "Write", + Description: "Grants permission to update a Project that enables your team to publish and subscribe to data", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the hosted connections that have been provisioned on the specified interconnect or link aggregation group (LAG)", - Privilege: "DescribeHostedConnections", + AccessLevel: "Write", + Description: "Grants permission to update a project profile", + Privilege: "UpdateProjectProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the LOA-CFA for an Interconnect", - Privilege: "DescribeInterconnectLoa", + AccessLevel: "Write", + Description: "Grants permission to update rule", + Privilege: "UpdateRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a list of interconnects owned by the AWS account", - Privilege: "DescribeInterconnects", + AccessLevel: "Write", + Description: "Grants permission to update a subscription grant status for custom grants", + Privilege: "UpdateSubscriptionGrantStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe all your link aggregation groups (LAG) or the specified LAG", - Privilege: "DescribeLags", + AccessLevel: "Write", + Description: "Grants permission to update business reason for subscription request for a Data Asset", + Privilege: "UpdateSubscriptionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the LOA-CFA for a connection, interconnect, or link aggregation group (LAG)", - Privilege: "DescribeLoa", + AccessLevel: "Write", + Description: "Grants permission to update a subscription target", + Privilege: "UpdateSubscriptionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the list of AWS Direct Connect locations in the current AWS region", - Privilege: "DescribeLocations", + AccessLevel: "Write", + Description: "Grants permission to update a DataZone user profile", + Privilege: "UpdateUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77463,167 +80029,159 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe Details about the router for a virtual interface", - Privilege: "DescribeRouterConfiguration", + AccessLevel: "Write", + Description: "Grants permission to validate pass role", + Privilege: "ValidatePassRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:datazone:${Region}:${Account}:domain/${DomainId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "domain", + }, + }, + ServiceName: "Amazon DataZone", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "dax:EnclosingOperation", + Description: "Used to block Transactions APIs calls and allow the non-Transaction APIs calls and vice-versa", + Type: "String", + }, + }, + Prefix: "dax", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to describe the tags associated with the specified AWS Direct Connect resources", - Privilege: "DescribeTags", + Description: "Grants permission to return the attributes of one or more items from one or more tables", + Privilege: "BatchGetItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxvif", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a list of virtual private gateways owned by the AWS account", - Privilege: "DescribeVirtualGateways", + AccessLevel: "Write", + Description: "Grants permission to put or delete multiple items in one or more tables", + Privilege: "BatchWriteItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe all virtual interfaces for an AWS account", - Privilege: "DescribeVirtualInterfaces", + Description: "Grants permission to the ConditionCheckItem operation that checks the existence of a set of attributes for the item with the given primary key", + Privilege: "ConditionCheckItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxvif", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a connection from a link aggregation group (LAG)", - Privilege: "DisassociateConnectionFromLag", + Description: "Grants permission to create a DAX cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxcon*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag*", + ConditionKeys: []string{}, + DependentActions: []string{ + "dax:CreateParameterGroup", + "dax:CreateSubnetGroup", + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:GetRole", + "iam:PassRole", + }, + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the association between a MAC Security (MACsec) security key and an AWS Direct Connect dedicated connection", - Privilege: "DisassociateMacSecKey", + Description: "Grants permission to create a parameter group", + Privilege: "CreateParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the virtual interface failover test history", - Privilege: "ListVirtualInterfaceTestHistory", + AccessLevel: "Write", + Description: "Grants permission to create a subnet group", + Privilege: "CreateSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the virtual interface failover test that verifies your configuration meets your resiliency requirements by placing the BGP peering session in the DOWN state. You can then send traffic to verify that there are no outages", - Privilege: "StartBgpFailoverTest", + Description: "Grants permission to remove one or more nodes from a DAX cluster", + Privilege: "DecreaseReplicationFactor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop the virtual interface failover test", - Privilege: "StopBgpFailoverTest", + Description: "Grants permission to delete a previously provisioned DAX cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add the specified tags to the specified AWS Direct Connect resource. Each resource can have a maximum of 50 tags", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a single item in a table by primary key", + Privilege: "DeleteItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxvif", + ResourceType: "application*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "dax:EnclosingOperation", }, DependentActions: []string{}, ResourceType: "", @@ -77631,62 +80189,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the specified AWS Direct Connect resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete the specified parameter group", + Privilege: "DeleteParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxlag", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dxvif", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the AWS Direct Connect dedicated connection configuration. You can update the following parameters for a connection: The connection name or The connection's MAC Security (MACsec) encryption mode", - Privilege: "UpdateConnection", + Description: "Grants permission to delete a subnet group", + Privilege: "DeleteSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxcon*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the name of a Direct Connect gateway", - Privilege: "UpdateDirectConnectGateway", + AccessLevel: "List", + Description: "Grants permission to return information about all provisioned DAX clusters", + Privilege: "DescribeClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dx-gateway*", + ResourceType: "application", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified attributes of the Direct Connect gateway association", - Privilege: "UpdateDirectConnectGatewayAssociation", + AccessLevel: "List", + Description: "Grants permission to return the default system parameter information for DAX", + Privilege: "DescribeDefaultParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77696,74 +80237,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the attributes of the specified link aggregation group (LAG)", - Privilege: "UpdateLag", + AccessLevel: "List", + Description: "Grants permission to return events related to DAX clusters and parameter groups", + Privilege: "DescribeEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxlag*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified attributes of the specified virtual private interface", - Privilege: "UpdateVirtualInterfaceAttributes", + AccessLevel: "List", + Description: "Grants permission to return a list of parameter group descriptions", + Privilege: "DescribeParameterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dxvif*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:directconnect:${Region}:${Account}:dxcon/${ConnectionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dxcon", - }, - { - Arn: "arn:${Partition}:directconnect:${Region}:${Account}:dxlag/${LagId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dxlag", - }, - { - Arn: "arn:${Partition}:directconnect:${Region}:${Account}:dxvif/${VirtualInterfaceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dxvif", - }, - { - Arn: "arn:${Partition}:directconnect::${Account}:dx-gateway/${DirectConnectGatewayId}", - ConditionKeys: []string{}, - Resource: "dx-gateway", - }, - }, - ServiceName: "AWS Direct Connect", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "discovery", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to AssociateConfigurationItemsToApplication API. AssociateConfigurationItemsToApplication associates one or more configuration items with an application", - Privilege: "AssociateConfigurationItemsToApplication", + AccessLevel: "Read", + Description: "Grants permission to return the detailed parameter list for a particular parameter group", + Privilege: "DescribeParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77773,9 +80273,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to BatchDeleteAgents API. BatchDeleteAgents deletes one or more agents/data collectors associated with your account, each identified by its agent ID. Deleting a data collector does not delete the previous data collected", - Privilege: "BatchDeleteAgents", + AccessLevel: "List", + Description: "Grants permission to return a list of subnet group descriptions", + Privilege: "DescribeSubnetGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77785,61 +80285,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to BatchDeleteImportData API. BatchDeleteImportData deletes one or more Migration Hub import tasks, each identified by their import ID. Each import task has a number of records, which can identify servers or applications", - Privilege: "BatchDeleteImportData", + AccessLevel: "Read", + Description: "Grants permission to the GetItem operation that returns a set of attributes for the item with the given primary key", + Privilege: "GetItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "dax:EnclosingOperation", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to CreateApplication API. CreateApplication creates an application with the given name and description", - Privilege: "CreateApplication", + Description: "Grants permission to add one or more nodes to a DAX cluster", + Privilege: "IncreaseReplicationFactor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to CreateTags API. CreateTags creates one or more tags for configuration items. Tags are metadata that help you categorize IT assets. This API accepts a list of multiple configuration items", - Privilege: "CreateTags", + AccessLevel: "Read", + Description: "Grants permission to return a list all of the tags for a DAX cluster", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to DeleteApplications API. DeleteApplications deletes a list of applications and their associations with configuration items", - Privilege: "DeleteApplications", + Description: "Grants permission to create a new item, or replace an old item with a new item", + Privilege: "PutItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to DeleteTags API. DeleteTags deletes the association between configuration items and one or more tags. This API accepts a list of multiple configuration items", - Privilege: "DeleteTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", + "dax:EnclosingOperation", }, DependentActions: []string{}, ResourceType: "", @@ -77848,92 +80348,99 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to DescribeAgents API. DescribeAgents lists agents or the Connector by ID or lists all agents/Connectors associated with your user if you did not specify an ID", - Privilege: "DescribeAgents", + Description: "Grants permission to use the primary key of a table or a secondary index to directly access items from that table or index", + Privilege: "Query", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to DescribeBatchDeleteConfigurationTask API. DescribeBatchDeleteConfigurationTask returns attributes about a batched deletion task to delete a set of configuration items. The supplied task ID should be the task ID receieved from the output of StartBatchDeleteConfigurationTask", - Privilege: "DescribeBatchDeleteConfigurationTask", + AccessLevel: "Write", + Description: "Grants permission to reboot a single node of a DAX cluster", + Privilege: "RebootNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to DescribeConfigurations API. DescribeConfigurations retrieves attributes for a list of configuration item IDs. All of the supplied IDs must be for the same asset type (server, application, process, or connection). Output fields are specific to the asset type selected. For example, the output for a server configuration item includes a list of attributes about the server, such as host name, operating system, and number of network cards", - Privilege: "DescribeConfigurations", + Description: "Grants permission to return one or more items and item attributes by accessing every item in a table or a secondary index", + Privilege: "Scan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to DescribeContinuousExports API. DescribeContinuousExports lists exports as specified by ID. All continuous exports associated with your user can be listed if you call DescribeContinuousExports as is without passing any parameters", - Privilege: "DescribeContinuousExports", + AccessLevel: "Tagging", + Description: "Grants permission to associate a set of tags with a DAX resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to DescribeExportConfigurations API. DescribeExportConfigurations retrieves the status of a given export process. You can retrieve status from a maximum of 100 processes", - Privilege: "DescribeExportConfigurations", + AccessLevel: "Tagging", + Description: "Grants permission to remove the association of tags from a DAX resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to DescribeExportTasks API. DescribeExportTasks retrieve status of one or more export tasks. You can retrieve the status of up to 100 export tasks", - Privilege: "DescribeExportTasks", + AccessLevel: "Write", + Description: "Grants permission to modify the settings for a DAX cluster", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to DescribeImportTasks API. DescribeImportTasks returns an array of import tasks for your user, including status information, times, IDs, the Amazon S3 Object URL for the import file, and more", - Privilege: "DescribeImportTasks", + AccessLevel: "Write", + Description: "Grants permission to edit an existing item's attributes, or adds a new item to the table if it does not already exist", + Privilege: "UpdateItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "dax:EnclosingOperation", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to DescribeTags API. DescribeTags retrieves a list of configuration items that are tagged with a specific tag. Or retrieves a list of all tags assigned to a specific configuration item", - Privilege: "DescribeTags", + AccessLevel: "Write", + Description: "Grants permission to modify the parameters of a parameter group", + Privilege: "UpdateParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77944,8 +80451,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to DisassociateConfigurationItemsFromApplication API. DisassociateConfigurationItemsFromApplication disassociates one or more configuration items from an application", - Privilege: "DisassociateConfigurationItemsFromApplication", + Description: "Grants permission to modify an existing subnet group", + Privilege: "UpdateSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77954,10 +80461,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:dax:${Region}:${Account}:cache/${ClusterName}", + ConditionKeys: []string{}, + Resource: "application", + }, + }, + ServiceName: "Amazon DynamoDB Accelerator (DAX)", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "dbqms", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to ExportConfigurations API. ExportConfigurations exports all discovered configuration data to an Amazon S3 bucket or an application that enables you to view and evaluate the data. Data includes tags and tag associations, processes, connections, servers, and system performance", - Privilege: "ExportConfigurations", + Description: "Grants permission to create a new favorite query", + Privilege: "CreateFavoriteQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77967,9 +80488,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to GetDiscoverySummary API. GetDiscoverySummary retrieves a short summary of discovered assets", - Privilege: "GetDiscoverySummary", + AccessLevel: "Write", + Description: "Grants permission to add a query to the history", + Privilege: "CreateQueryHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77979,9 +80500,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to GetNetworkConnectionGraph API. GetNetworkConnectionGraph accepts input list of one of - Ip Addresses, server ids or node ids. Returns a list of nodes and edges which help customer visualize network connection graph. This API is used for visualize network graph functionality in MigrationHub console", - Privilege: "GetNetworkConnectionGraph", + AccessLevel: "Write", + Description: "Grants permission to create a new query tab", + Privilege: "CreateTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -77991,9 +80512,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to ListConfigurations API. ListConfigurations retrieves a list of configuration items according to criteria you specify in a filter. The filter criteria identify relationship requirements", - Privilege: "ListConfigurations", + AccessLevel: "Write", + Description: "Grants permission to delete saved queries", + Privilege: "DeleteFavoriteQueries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78003,9 +80524,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to ListServerNeighbors API. ListServerNeighbors retrieves a list of servers which are one network hop away from a specified server", - Privilege: "ListServerNeighbors", + AccessLevel: "Write", + Description: "Grants permission to delete a historical query", + Privilege: "DeleteQueryHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78016,8 +80537,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to StartBatchDeleteConfigurationTask API. StartBatchDeleteConfigurationTask starts an asynchronous batch deletion of your configuration items. All of the supplied IDs must be for the same asset type (server, application, process, or connection). Output is a unique task ID you can use to check back on the deletions progress", - Privilege: "StartBatchDeleteConfigurationTask", + Description: "Grants permission to delete query tab", + Privilege: "DeleteTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78027,26 +80548,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to StartContinuousExport API. StartContinuousExport start the continuous flow of agent's discovered data into Amazon Athena", - Privilege: "StartContinuousExport", + AccessLevel: "List", + Description: "Grants permission to list saved queries and associated metadata", + Privilege: "DescribeFavoriteQueries", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreatePolicy", - "iam:CreateRole", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to StartDataCollectionByAgentIds API. StartDataCollectionByAgentIds instructs the specified agents or Connectors to start collecting data", - Privilege: "StartDataCollectionByAgentIds", + AccessLevel: "List", + Description: "Grants permission to list history of queries that were run", + Privilege: "DescribeQueryHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78056,9 +80572,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to StartExportTask API. StartExportTask export the configuration data about discovered configuration items and relationships to an S3 bucket in a specified format", - Privilege: "StartExportTask", + AccessLevel: "List", + Description: "Grants permission to list query tabs and associated metadata", + Privilege: "DescribeTabs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78068,28 +80584,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to StartImportTask API. StartImportTask starts an import task. The Migration Hub import feature allows you to import details of your on-premises environment directly into AWS without having to use the Application Discovery Service (ADS) tools such as the Discovery Connector or Discovery Agent. This gives you the option to perform migration assessment and planning directly from your imported data including the ability to group your devices as applications and track their migration status", - Privilege: "StartImportTask", + AccessLevel: "Read", + Description: "Grants permission to retrieve favorite or history query string by id", + Privilege: "GetQueryString", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "discovery:AssociateConfigurationItemsToApplication", - "discovery:CreateApplication", - "discovery:CreateTags", - "discovery:GetDiscoverySummary", - "discovery:ListConfigurations", - "s3:GetObject", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to StopContinuousExport API. StopContinuousExport stops the continuous flow of agent's discovered data into Amazon Athena", - Privilege: "StopContinuousExport", + Description: "Grants permission to update saved query and description", + Privilege: "UpdateFavoriteQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78100,8 +80609,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to StopDataCollectionByAgentIds API. StopDataCollectionByAgentIds instructs the specified agents or Connectors to stop collecting data", - Privilege: "StopDataCollectionByAgentIds", + Description: "Grants permission to update the query history", + Privilege: "UpdateQueryHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78112,8 +80621,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to UpdateApplication API. UpdateApplication updates metadata about an application", - Privilege: "UpdateApplication", + Description: "Grants permission to update query tab", + Privilege: "UpdateTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -78124,7 +80633,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, Resources: []ParliamentResource{}, - ServiceName: "AWS Application Discovery Service", + ServiceName: "Database Query Metadata Service", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -78135,7 +80644,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { @@ -78143,86 +80652,120 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, - }, - Prefix: "dlm", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a data lifecycle policy to manage the scheduled creation and retention of Amazon EBS snapshots. You may have up to 100 policies", - Privilege: "CreateLifecyclePolicy", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, - }, + Condition: "deadline:AssociatedMembershipLevel", + Description: "Filters access by the associated membership level of the principal provided in the request", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing data lifecycle policy. In addition, this action halts the creation and deletion of snapshots that the policy specified. Existing snapshots are not affected", - Privilege: "DeleteLifecyclePolicy", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy*", - }, - }, + Condition: "deadline:CalledAction", + Description: "Filters access by the allowed action in the request", + Type: "String", }, { - AccessLevel: "List", - Description: "Grants permission to returns a list of summary descriptions of data lifecycle policies", - Privilege: "GetLifecyclePolicies", + Condition: "deadline:FarmMembershipLevels", + Description: "Filters access by membership levels on the farm", + Type: "ArrayOfString", + }, + { + Condition: "deadline:FleetMembershipLevels", + Description: "Filters access by membership levels on the fleet", + Type: "ArrayOfString", + }, + { + Condition: "deadline:JobMembershipLevels", + Description: "Filters access by membership levels on the job", + Type: "ArrayOfString", + }, + { + Condition: "deadline:MembershipLevel", + Description: "Filters access by the membership level passed in the request", + Type: "String", + }, + { + Condition: "deadline:PrincipalId", + Description: "Filters access by the principle ID provided in the request", + Type: "String", + }, + { + Condition: "deadline:QueueMembershipLevels", + Description: "Filters access by membership levels on the queue", + Type: "ArrayOfString", + }, + { + Condition: "deadline:RequesterPrincipalId", + Description: "Filters access by the user calling the Deadline Cloud API", + Type: "String", + }, + }, + Prefix: "deadline", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to associate a member to a farm", + Privilege: "AssociateMemberToFarm", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, + { + ConditionKeys: []string{ + "deadline:AssociatedMembershipLevel", + "deadline:MembershipLevel", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a complete description of a single data lifecycle policy", - Privilege: "GetLifecyclePolicy", + AccessLevel: "Permissions management", + Description: "Grants permission to associate a member to a fleet", + Privilege: "AssociateMemberToFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list the tags associated with a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deadline:AssociatedMembershipLevel", + "deadline:MembershipLevel", + }, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update tags of a resource", - Privilege: "TagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to associate a member to a job", + Privilege: "AssociateMemberToJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deadline:AssociatedMembershipLevel", + "deadline:MembershipLevel", }, DependentActions: []string{}, ResourceType: "", @@ -78230,18 +80773,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a resource", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to associate a member to a queue", + Privilege: "AssociateMemberToQueue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "deadline:AssociatedMembershipLevel", + "deadline:MembershipLevel", }, DependentActions: []string{}, ResourceType: "", @@ -78250,284 +80798,132 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an existing data lifecycle policy", - Privilege: "UpdateLifecyclePolicy", + Description: "Grants permission to assume a fleet role for read-only access", + Privilege: "AssumeFleetRoleForRead", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:dlm:${Region}:${Account}:policy/${ResourceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "policy", - }, - }, - ServiceName: "Amazon Data Lifecycle Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "dms:cert-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for Certificate", - Type: "String", - }, - { - Condition: "dms:data-migration-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for DataMigration", - Type: "String", - }, - { - Condition: "dms:data-provider-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for DataProvider", - Type: "String", - }, - { - Condition: "dms:endpoint-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for Endpoint", - Type: "String", - }, - { - Condition: "dms:es-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for EventSubscription", - Type: "String", - }, - { - Condition: "dms:instance-profile-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for InstanceProfile", - Type: "String", - }, - { - Condition: "dms:migration-project-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for MigrationProject", - Type: "String", - }, - { - Condition: "dms:rep-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationInstance", - Type: "String", - }, - { - Condition: "dms:replication-config-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationConfig", - Type: "String", - }, - { - Condition: "dms:req-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the given request", - Type: "String", - }, - { - Condition: "dms:subgrp-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationSubnetGroup", - Type: "String", - }, - { - Condition: "dms:task-tag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationTask", - Type: "String", - }, - }, - Prefix: "dms", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Grants permission to add metadata tags to DMS resources, including replication instances, endpoints, security groups, and migration tasks", - Privilege: "AddTagsToResource", + AccessLevel: "Write", + Description: "Grants permission to assume a fleet role for a worker", + Privilege: "AssumeFleetRoleForWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Certificate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "DataMigration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "DataProvider", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "EventSubscription", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "InstanceProfile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationConfig", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationInstance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationSubnetGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationTask", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "worker*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to apply a pending maintenance action to a resource (for example, to a replication instance)", - Privilege: "ApplyPendingMaintenanceAction", + Description: "Grants permission to assume a queue role for read-only access", + Privilege: "AssumeQueueRoleForRead", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a extension pack", - Privilege: "AssociateExtensionPack", + Description: "Grants permission to assume a queue role for a user", + Privilege: "AssumeQueueRoleForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:StartExtensionPackAssociation", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the analysis of up to 20 source databases to recommend target engines for each source database", - Privilege: "BatchStartRecommendations", + Description: "Grants permission to assume a queue role for a worker", + Privilege: "AssumeQueueRoleForWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel a single metadata model assessment run", - Privilege: "CancelMetadataModelAssessment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "worker*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a single metadata model conversion run", - Privilege: "CancelMetadataModelConversion", + AccessLevel: "Read", + Description: "Grants permission to get a job entity for a worker", + Privilege: "BatchGetJobEntity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "worker*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a single metadata model export run", - Privilege: "CancelMetadataModelExport", + Description: "Grants permission to copy a job template to an Amazon S3 bucket", + Privilege: "CopyJobTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + "s3:PutObject", + }, + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a single premigration assessment run", - Privilege: "CancelReplicationTaskAssessmentRun", + Description: "Grants permission to create a budget", + Privilege: "CreateBudget", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationTaskAssessmentRun*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "budget*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a database migration using the provided settings", - Privilege: "CreateDataMigration", + Description: "Grants permission to create a farm", + Privilege: "CreateFarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "deadline:TagResource", }, - ResourceType: "MigrationProject*", + ResourceType: "farm*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -78536,53 +80932,63 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an data provider using the provided settings", - Privilege: "CreateDataProvider", + Description: "Grants permission to create a fleet", + Privilege: "CreateFleet", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "deadline:TagResource", + "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", + "logs:CreateLogGroup", + }, + ResourceType: "fleet*", + }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, - DependentActions: []string{ - "iam:PassRole", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint using the provided settings", - Privilege: "CreateEndpoint", + Description: "Grants permission to create a job", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "deadline:GetJobTemplate", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS DMS event notification subscription", - Privilege: "CreateEventSubscription", + Description: "Grants permission to create a license endpoint for licensed software or products", + Privilege: "CreateLicenseEndpoint", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "deadline:TagResource", + "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", + }, + ResourceType: "license-endpoint*", + }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -78591,60 +80997,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Fleet Advisor collector using the specified parameters", - Privilege: "CreateFleetAdvisorCollector", + Description: "Grants permission to create a limit for a farm", + Privilege: "CreateLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "", + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an instance profile using the provided settings", - Privilege: "CreateInstanceProfile", + Description: "Grants permission to create a monitor", + Privilege: "CreateMonitor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", + "sso:CreateApplication", + "sso:DeleteApplication", + "sso:PutApplicationAssignmentConfiguration", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", }, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an migration project using the provided settings", - Privilege: "CreateMigrationProject", + Description: "Grants permission to create a queue", + Privilege: "CreateQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ + "deadline:TagResource", "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", + "logs:CreateLogGroup", + "s3:ListBucket", }, - ResourceType: "DataProvider*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "InstanceProfile*", + ResourceType: "queue*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -78653,322 +81056,361 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a replication config using the provided settings", - Privilege: "CreateReplicationConfig", + Description: "Grants permission to create a queue environment", + Privilege: "CreateQueueEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a replication instance using the specified parameters", - Privilege: "CreateReplicationInstance", + Description: "Grants permission to create a queue-fleet association", + Privilege: "CreateQueueFleetAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "", + ResourceType: "fleet*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a replication subnet group given a list of the subnet IDs in a VPC", - Privilege: "CreateReplicationSubnetGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a replication task using the specified parameters", - Privilege: "CreateReplicationTask", + Description: "Grants permission to create a queue-limit association", + Privilege: "CreateQueueLimitAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "dms:req-tag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified certificate", - Privilege: "DeleteCertificate", + Description: "Grants permission to create a storage profile for a farm", + Privilege: "CreateStorageProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Certificate*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified connection between a replication instance and an endpoint", - Privilege: "DeleteConnection", + Description: "Grants permission to create a worker", + Privilege: "CreateWorker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "deadline:ListTagsForResource", + "deadline:TagResource", + }, + ResourceType: "worker*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified database migration", - Privilege: "DeleteDataMigration", + Description: "Grants permission to delete a budget", + Privilege: "DeleteBudget", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "DataMigration*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "budget*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified data provider", - Privilege: "DeleteDataProvider", + Description: "Grants permission to delete a farm", + Privilege: "DeleteFarm", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "DataProvider*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified endpoint", - Privilege: "DeleteEndpoint", + Description: "Grants permission to delete a fleet", + Privilege: "DeleteFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS DMS event subscription", - Privilege: "DeleteEventSubscription", + Description: "Grants permission to delete a license endpoint", + Privilege: "DeleteLicenseEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "EventSubscription*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints", + }, + ResourceType: "license-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified Fleet Advisor collector", - Privilege: "DeleteFleetAdvisorCollector", + Description: "Grants permission to delete a limit", + Privilege: "DeleteLimit", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified Fleet Advisor databases", - Privilege: "DeleteFleetAdvisorDatabases", + Description: "Grants permission to delete a metered product", + Privilege: "DeleteMeteredProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "metered-product*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified instance profile", - Privilege: "DeleteInstanceProfile", + Description: "Grants permission to delete a monitor", + Privilege: "DeleteMonitor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "InstanceProfile*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteApplication", + }, + ResourceType: "monitor*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified migration project", - Privilege: "DeleteMigrationProject", + Description: "Grants permission to delete a queue", + Privilege: "DeleteQueue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified replication config", - Privilege: "DeleteReplicationConfig", + Description: "Grants permission to delete a queue environment", + Privilege: "DeleteQueueEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationConfig*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified replication instance", - Privilege: "DeleteReplicationInstance", + Description: "Grants permission to delete a queue-fleet association", + Privilege: "DeleteQueueFleetAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deletes a subnet group", - Privilege: "DeleteReplicationSubnetGroup", + Description: "Grants permission to delete a queue-limit association", + Privilege: "DeleteQueueLimitAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationSubnetGroup*", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified replication task", - Privilege: "DeleteReplicationTask", + Description: "Grants permission to delete a storage profile", + Privilege: "DeleteStorageProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the record of a single premigration assessment run", - Privilege: "DeleteReplicationTaskAssessmentRun", + Description: "Grants permission to delete a worker", + Privilege: "DeleteWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTaskAssessmentRun*", + ResourceType: "worker*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all of the AWS DMS attributes for a customer account", - Privilege: "DescribeAccountAttributes", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate a member from a farm", + Privilege: "DisassociateMemberFromFarm", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, + { + ConditionKeys: []string{ + "deadline:AssociatedMembershipLevel", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list individual assessments that you can specify for a new premigration assessment run", - Privilege: "DescribeApplicableIndividualAssessments", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate a member from a fleet", + Privilege: "DisassociateMemberFromFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationInstance", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deadline:AssociatedMembershipLevel", + }, DependentActions: []string{}, - ResourceType: "ReplicationTask", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide a description of the certificate", - Privilege: "DescribeCertificates", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate a member from a job", + Privilege: "DisassociateMemberFromJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", + }, + { + ConditionKeys: []string{ + "deadline:AssociatedMembershipLevel", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the status of the connections that have been made between the replication instance and an endpoint", - Privilege: "DescribeConnections", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate a member from a queue", + Privilege: "DisassociateMemberFromQueue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "deadline:AssociatedMembershipLevel", + }, DependentActions: []string{}, ResourceType: "", }, @@ -78976,392 +81418,458 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return information about DMS Schema Conversion project configuration", - Privilege: "DescribeConversionConfiguration", + Description: "Grants permission to get the latest version of an application", + Privilege: "GetApplicationVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "monitor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about database migrations for your account in the specified region", - Privilege: "DescribeDataMigrations", + Description: "Grants permission to get a budget", + Privilege: "GetBudget", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "budget*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a data providers. Note. This action should be added along with ListDataProviders, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeDataProviders", + Description: "Grants permission to get a farm", + Privilege: "GetFarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListDataProviders", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "DataProvider", + ResourceType: "farm*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the possible endpoint settings available when you create an endpoint for a specific database engine", - Privilege: "DescribeEndpointSettings", + Description: "Grants permission to get a fleet", + Privilege: "GetFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the type of endpoints available", - Privilege: "DescribeEndpointTypes", + Description: "Grants permission to get a job", + Privilege: "GetJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the endpoints for your account in the current region", - Privilege: "DescribeEndpoints", + Description: "Grants permission to read job template", + Privilege: "GetJobTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the available versions for DMS replication instances", - Privilege: "DescribeEngineVersions", + Description: "Grants permission to get a license endpoint", + Privilege: "GetLicenseEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "license-endpoint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list categories for all event source types, or, if specified, for a specified source type", - Privilege: "DescribeEventCategories", + Description: "Grants permission to get a limit", + Privilege: "GetLimit", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the event subscriptions for a customer account", - Privilege: "DescribeEventSubscriptions", + Description: "Grants permission to get a monitor", + Privilege: "GetMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list events for a given source identifier and source type", - Privilege: "DescribeEvents", + Description: "Grants permission to get a queue", + Privilege: "GetQueue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for extension packs. Note. This action should be added along with ListExtensionPacks, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeExtensionPackAssociations", + Description: "Grants permission to get a queue environment", + Privilege: "GetQueueEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListExtensionPacks", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "queue*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a paginated list of Fleet Advisor collectors in your account based on filter settings", - Privilege: "DescribeFleetAdvisorCollectors", + Description: "Grants permission to get a queue-fleet association", + Privilege: "GetQueueFleetAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a paginated list of Fleet Advisor databases in your account based on filter settings", - Privilege: "DescribeFleetAdvisorDatabases", + Description: "Grants permission to get a queue-limit association", + Privilege: "GetQueueLimitAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a paginated list of descriptions of large-scale assessment (LSA) analyses produced by your Fleet Advisor collectors", - Privilege: "DescribeFleetAdvisorLsaAnalysis", + Description: "Grants permission to get a session for a job", + Privilege: "GetSession", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a paginated list of descriptions of schemas discovered by your Fleet Advisor collectors based on filter settings", - Privilege: "DescribeFleetAdvisorSchemaObjectSummary", + Description: "Grants permission to get a session action for a job", + Privilege: "GetSessionAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a paginated list of schemas discovered by your Fleet Advisor collectors based on filter settings", - Privilege: "DescribeFleetAdvisorSchemas", + Description: "Grants permission to get all collected statistics for sessions", + Privilege: "GetSessionsStatisticsAggregation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a instance profiles. Note. This action should be added along with ListInstanceProfiles, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeInstanceProfiles", + Description: "Grants permission to get a step in a job", + Privilege: "GetStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListInstanceProfiles", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "InstanceProfile", + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for metadata model assessments. Note. This action should be added along with ListMetadataModelAssessments, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeMetadataModelAssessments", + Description: "Grants permission to get a storage profile", + Privilege: "GetStorageProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListMetadataModelAssessments", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "farm*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model conversions. Note. This action should be added along with ListMetadataModelConversions, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeMetadataModelConversions", + Description: "Grants permission to get a storage profile for a queue", + Privilege: "GetStorageProfileForQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListMetadataModelConversions", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "queue*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model exports. Note. This action should be added along with ListMetadataModelExports, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeMetadataModelExportsAsScript", + Description: "Grants permission to get a job task", + Privilege: "GetTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListMetadataModelExports", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model exports. Note. This action should be added along with ListMetadataModelExports, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeMetadataModelExportsToTarget", + Description: "Grants permission to get a worker", + Privilege: "GetWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListMetadataModelExports", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "worker*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about start metadata model import operations for a migration project", - Privilege: "DescribeMetadataModelImports", + AccessLevel: "List", + Description: "Grants permission to list all available metered products within a license endpoint", + Privilege: "ListAvailableMeteredProducts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a migration projects. Note. This action should be added along with ListMigrationProjects, but does not currently authorize the described Schema Conversion operation", - Privilege: "DescribeMigrationProjects", + AccessLevel: "List", + Description: "Grants permission to list all budgets for a farm", + Privilege: "ListBudgets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:ListMigrationProjects", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "DataProvider", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "InstanceProfile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject", + ResourceType: "budget*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the replication instance types that can be created in the specified region", - Privilege: "DescribeOrderableReplicationInstances", + AccessLevel: "List", + Description: "Grants permission to list all members of a farm", + Privilege: "ListFarmMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about pending maintenance actions", - Privilege: "DescribePendingMaintenanceActions", + AccessLevel: "List", + Description: "Grants permission to list all farms", + Privilege: "ListFarms", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, + { + ConditionKeys: []string{ + "deadline:PrincipalId", + "deadline:RequesterPrincipalId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of descriptions of limitations for recommendations of target AWS engines", - Privilege: "DescribeRecommendationLimitations", + AccessLevel: "List", + Description: "Grants permission to list all members of a fleet", + Privilege: "ListFleetMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of descriptions of target engine recommendations for your source databases", - Privilege: "DescribeRecommendations", + AccessLevel: "List", + Description: "Grants permission to list all fleets", + Privilege: "ListFleets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", + }, + { + ConditionKeys: []string{ + "deadline:PrincipalId", + "deadline:RequesterPrincipalId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to returns the status of the RefreshSchemas operation", - Privilege: "DescribeRefreshSchemasStatus", + AccessLevel: "List", + Description: "Grants permission to list all members of a job", + Privilege: "ListJobMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe replication configs", - Privilege: "DescribeReplicationConfigs", + AccessLevel: "List", + Description: "Grants permission to get a job's parameter definitions in the job template", + Privilege: "ListJobParameterDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the task logs for the specified task", - Privilege: "DescribeReplicationInstanceTaskLogs", + AccessLevel: "List", + Description: "Grants permission to list all jobs in a queue", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + "deadline:PrincipalId", + "deadline:RequesterPrincipalId", }, DependentActions: []string{}, ResourceType: "", @@ -79369,691 +81877,1067 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about replication instances for your account in the current region", - Privilege: "DescribeReplicationInstances", + AccessLevel: "List", + Description: "Grants permission to list all license endpoints", + Privilege: "ListLicenseEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "license-endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the replication subnet groups", - Privilege: "DescribeReplicationSubnetGroups", + AccessLevel: "List", + Description: "Grants permission to list all limits in a farm", + Privilege: "ListLimits", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe replication table statistics", - Privilege: "DescribeReplicationTableStatistics", + AccessLevel: "List", + Description: "Grants permission to list all metered products in a license endpoint", + Privilege: "ListMeteredProducts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfig*", + ResourceType: "metered-product*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the latest task assessment results from Amazon S3", - Privilege: "DescribeReplicationTaskAssessmentResults", + AccessLevel: "List", + Description: "Grants permission to list all monitors", + Privilege: "ListMonitors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of premigration assessment runs based on filter settings", - Privilege: "DescribeReplicationTaskAssessmentRuns", + AccessLevel: "List", + Description: "Grants permission to list all queue environments to which a queue is associated", + Privilege: "ListQueueEnvironments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationInstance", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all queue-fleet associations", + Privilege: "ListQueueFleetAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask", + ResourceType: "fleet*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTaskAssessmentRun", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a paginated list of individual assessments based on filter settings", - Privilege: "DescribeReplicationTaskIndividualAssessments", + AccessLevel: "List", + Description: "Grants permission to list all queue-limit associations", + Privilege: "ListQueueLimitAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationTask", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTaskAssessmentRun", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about replication tasks for your account in the current region", - Privilege: "DescribeReplicationTasks", + AccessLevel: "List", + Description: "Grants permission to list all members in a queue", + Privilege: "ListQueueMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe replications", - Privilege: "DescribeReplications", + AccessLevel: "List", + Description: "Grants permission to list all queues on a farm", + Privilege: "ListQueues", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:DescribeGroup", + "identitystore:DescribeUser", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "deadline:PrincipalId", + "deadline:RequesterPrincipalId", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the schema for the specified endpoint", - Privilege: "DescribeSchemas", + AccessLevel: "List", + Description: "Grants permission to list all session actions for a job", + Privilege: "ListSessionActions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted", - Privilege: "DescribeTableStatistics", + AccessLevel: "List", + Description: "Grants permission to list all sessions for a job", + Privilege: "ListSessions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a extension pack", - Privilege: "DisassociateExtensionPack", + AccessLevel: "List", + Description: "Grants permission to list all sessions for a worker", + Privilege: "ListSessionsForWorker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "worker*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to export the specified metadata model assessment", - Privilege: "ExportMetadataModelAssessment", + AccessLevel: "List", + Description: "Grants permission to list the step consumers for a job step", + Privilege: "ListStepConsumers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all of the AWS DMS attributes for a metadata model. Note. Despite this action requires StartMetadataModelImport, the latter does not currently authorize the described Schema Conversion operation", - Privilege: "GetMetadataModel", + AccessLevel: "List", + Description: "Grants permission to list dependencies for a job step", + Privilege: "ListStepDependencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:StartMetadataModelImport", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload the specified certificate", - Privilege: "ImportCertificate", + AccessLevel: "List", + Description: "Grants permission to list all steps for a job", + Privilege: "ListSteps", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a data providers", - Privilege: "ListDataProviders", + AccessLevel: "List", + Description: "Grants permission to list all storage profiles in a farm", + Privilege: "ListStorageProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:DescribeDataProviders", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "DataProvider", + ResourceType: "farm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a extension packs", - Privilege: "ListExtensionPacks", + AccessLevel: "List", + Description: "Grants permission to list all storage profiles in a queue", + Privilege: "ListStorageProfilesForQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:DescribeExtensionPackAssociations", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a instance profiles", - Privilege: "ListInstanceProfiles", + AccessLevel: "List", + Description: "Grants permission to list all tags on specified Deadline Cloud resources", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:DescribeInstanceProfiles", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "farm", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "license-endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "worker", + }, + { + ConditionKeys: []string{ + "deadline:CalledAction", }, - ResourceType: "InstanceProfile", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model assessment action items. Note. Despite this action requires StartMetadataModelImport, the latter does not currently authorize the described Schema Conversion operation", - Privilege: "ListMetadataModelAssessmentActionItems", + AccessLevel: "List", + Description: "Grants permission to list all tasks for a job", + Privilege: "ListTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:StartMetadataModelImport", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject", + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model assessments", - Privilege: "ListMetadataModelAssessments", + AccessLevel: "List", + Description: "Grants permission to list all workers in a fleet", + Privilege: "ListWorkers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:DescribeMetadataModelAssessments", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject", + ResourceType: "worker*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model conversions", - Privilege: "ListMetadataModelConversions", + AccessLevel: "Write", + Description: "Grants permission to add a metered product to a license endpoint", + Privilege: "PutMeteredProduct", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "metered-product*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for jobs in multiple queues", + Privilege: "SearchJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:DescribeMetadataModelConversions", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a metadata model exports", - Privilege: "ListMetadataModelExports", + AccessLevel: "List", + Description: "Grants permission to search the steps within a single job or to search the steps for multiple queues", + Privilege: "SearchSteps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:DescribeMetadataModelExportsAsScript", - "dms:DescribeMetadataModelExportsToTarget", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject", + ResourceType: "job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS DMS attributes for a migration projects. Note. Despite this action requires DescribeMigrationProjects and DescribeConversionConfiguration, both required actions do not currently authorize the described Schema Conversion operation", - Privilege: "ListMigrationProjects", + AccessLevel: "List", + Description: "Grants permission to search the tasks within a single job or to search the tasks for multiple queues", + Privilege: "SearchTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:DescribeConversionConfiguration", - "dms:DescribeMigrationProjects", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "DataProvider", + ResourceType: "job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InstanceProfile", + ResourceType: "queue", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for workers in multiple fleets", + Privilege: "SearchWorkers", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MigrationProject", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all tags for an AWS DMS resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get all collected statistics for sessions", + Privilege: "StartSessionsStatisticsAggregation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Certificate", + ResourceType: "queue", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for the specified Deadline Cloud resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataMigration", + ResourceType: "farm", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataProvider", + ResourceType: "fleet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Endpoint", + ResourceType: "license-endpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EventSubscription", + ResourceType: "queue", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InstanceProfile", + ResourceType: "worker", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "deadline:CalledAction", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to disassociate one or more tags from the specified Deadline Cloud resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject", + ResourceType: "farm", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfig", + ResourceType: "fleet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance", + ResourceType: "license-endpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationSubnetGroup", + ResourceType: "queue", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask", + ResourceType: "worker", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a conversion configuration. Note. This action should be added along with UpdateConversionConfiguration, but does not currently authorize the described Schema Conversion operation", - Privilege: "ModifyConversionConfiguration", + Description: "Grants permission to update a budget", + Privilege: "UpdateBudget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:UpdateConversionConfiguration", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "budget*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified database migration", - Privilege: "ModifyDataMigration", + Description: "Grants permission to update a farm", + Privilege: "UpdateFarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "DataMigration*", + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified data provider. Note. This action should be added along with UpdateDataProvider, but does not currently authorize the described Schema Conversion operation", - Privilege: "ModifyDataProvider", + Description: "Grants permission to update a fleet", + Privilege: "UpdateFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:UpdateDataProvider", "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "DataProvider*", + ResourceType: "fleet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified endpoint", - Privilege: "ModifyEndpoint", + Description: "Grants permission to update a job", + Privilege: "UpdateJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a limit for a farm", + Privilege: "UpdateLimit", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a monitor", + Privilege: "UpdateMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", + "sso:PutApplicationGrant", + "sso:UpdateApplication", }, - ResourceType: "Endpoint*", + ResourceType: "monitor*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a queue", + Privilege: "UpdateQueue", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Certificate", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an existing AWS DMS event notification subscription", - Privilege: "ModifyEventSubscription", + Description: "Grants permission to update a queue environment", + Privilege: "UpdateQueueEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the name and description of the specified Fleet Advisor collector", - Privilege: "ModifyFleetAdvisorCollector", + Description: "Grants permission to update a queue-fleet association", + Privilege: "UpdateQueueFleetAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "fleet*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the status of the specified Fleet Advisor collector", - Privilege: "ModifyFleetAdvisorCollectorStatuses", + Description: "Grants permission to update a queue-limit association", + Privilege: "UpdateQueueLimitAssociation", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified instance profile. Note. This action should be added along with UpdateInstanceProfile, but does not currently authorize the described Schema Conversion operation", - Privilege: "ModifyInstanceProfile", + Description: "Grants permission to update a session for a job", + Privilege: "UpdateSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:UpdateInstanceProfile", - "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "InstanceProfile*", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified migration project. Note. This action should be added along with UpdateMigrationProject, but does not currently authorize the described Schema Conversion operation", - Privilege: "ModifyMigrationProject", + Description: "Grants permission to update a step for a job", + Privilege: "UpdateStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "dms:UpdateMigrationProject", - "iam:PassRole", + "identitystore:ListGroupMembershipsForMember", }, - ResourceType: "MigrationProject*", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified replication config", - Privilege: "ModifyReplicationConfig", + Description: "Grants permission to update a storage profile for a farm", + Privilege: "UpdateStorageProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationConfig*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "farm*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the replication instance to apply new settings", - Privilege: "ModifyReplicationInstance", + Description: "Grants permission to update a task", + Privilege: "UpdateTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "identitystore:ListGroupMembershipsForMember", + }, + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the settings for the specified replication subnet group", - Privilege: "ModifyReplicationSubnetGroup", + Description: "Grants permission to update a worker", + Privilege: "UpdateWorker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:CreateLogStream", + }, + ResourceType: "worker*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified replication task", - Privilege: "ModifyReplicationTask", + Description: "Grants permission to update the schedule for a worker", + Privilege: "UpdateWorkerSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:CreateLogStream", + }, + ResourceType: "worker*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/budget/${BudgetId}", + ConditionKeys: []string{ + "deadline:FarmMembershipLevels", + }, + Resource: "budget", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "deadline:FarmMembershipLevels", + }, + Resource: "farm", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/fleet/${FleetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "deadline:FarmMembershipLevels", + "deadline:FleetMembershipLevels", + }, + Resource: "fleet", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/queue/${QueueId}/job/${JobId}", + ConditionKeys: []string{ + "deadline:FarmMembershipLevels", + "deadline:JobMembershipLevels", + "deadline:QueueMembershipLevels", + }, + Resource: "job", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:license-endpoint/${LicenseEndpointId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "license-endpoint", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:license-endpoint/${LicenseEndpointId}/metered-product/${ProductId}", + ConditionKeys: []string{}, + Resource: "metered-product", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:monitor/${MonitorId}", + ConditionKeys: []string{}, + Resource: "monitor", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/queue/${QueueId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "deadline:FarmMembershipLevels", + "deadline:QueueMembershipLevels", + }, + Resource: "queue", + }, + { + Arn: "arn:${Partition}:deadline:${Region}:${Account}:farm/${FarmId}/fleet/${FleetId}/worker/${WorkerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "deadline:FarmMembershipLevels", + "deadline:FleetMembershipLevels", + }, + Resource: "worker", + }, + }, + ServiceName: "AWS Deadline Cloud", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "deepcomposer", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to move the specified replication task to a different replication instance", - Privilege: "MoveReplicationTask", + Description: "Grants permission to associate a DeepComposer coupon (or DSN) with the account associated with the sender of the request", + Privilege: "AssociateCoupon", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an audio file by converting the midi composition into a wav or mp3 file", + Privilege: "CreateAudio", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ResourceType: "audio*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reboot a replication instance. Rebooting results in a momentary outage, until the replication instance becomes available again", - Privilege: "RebootReplicationInstance", + Description: "Grants permission to create a multi-track midi composition", + Privilege: "CreateComposition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ResourceType: "composition*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to populate the schema for the specified endpoint", - Privilege: "RefreshSchemas", + Description: "Grants permission to start creating/training a generative-model that is able to perform inference against the user-provided piano-melody to create a multi-track midi composition", + Privilege: "CreateModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Endpoint*", + ResourceType: "model*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reload the target database table with the source for a replication", - Privilege: "ReloadReplicationTables", + Description: "Grants permission to delete the composition", + Privilege: "DeleteComposition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfig*", + ResourceType: "composition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reload the target database table with the source data", - Privilege: "ReloadTables", + Description: "Grants permission to delete the model", + Privilege: "DeleteModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ResourceType: "model*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove metadata tags from a DMS resource", - Privilege: "RemoveTagsFromResource", + AccessLevel: "Read", + Description: "Grants permission to get information about the composition", + Privilege: "GetComposition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Certificate", + ResourceType: "composition*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the model", + Privilege: "GetModel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataMigration", + ResourceType: "model*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the sample/pre-trained DeepComposer model", + Privilege: "GetSampleModel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataProvider", + ResourceType: "model*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the compositions owned by the sender of the request", + Privilege: "ListCompositions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Endpoint", + ResourceType: "composition*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the models owned by the sender of the request", + Privilege: "ListModels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EventSubscription", + ResourceType: "model*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the sample/pre-trained models provided by the DeepComposer service", + Privilege: "ListSampleModels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InstanceProfile", + ResourceType: "model*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject", + ResourceType: "composition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfig", + ResourceType: "model", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the training options or topic for creating/training a model", + Privilege: "ListTrainingTopics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance", + ResourceType: "model*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationSubnetGroup", + ResourceType: "composition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask", + ResourceType: "model", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -80061,123 +82945,158 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to run a large-scale assessment (LSA) analysis on every Fleet Advisor collector in your account", - Privilege: "RunFleetAdvisorLsaAnalysis", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "composition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the database migration", - Privilege: "StartDataMigration", + Description: "Grants permission to modify the mutable properties associated with a composition", + Privilege: "UpdateComposition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataMigration*", + ResourceType: "composition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an extension pack. Note. This action should be added along with AssociateExtensionPack, but does not currently authorize the described Schema Conversion operation", - Privilege: "StartExtensionPackAssociation", + Description: "Grants permission to to modify the mutable properties associated with a model", + Privilege: "UpdateModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:AssociateExtensionPack", - }, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to start a new assessment of metadata model", - Privilege: "StartMetadataModelAssessment", + Arn: "arn:${Partition}:deepcomposer:${Region}:${Account}:model/${ModelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model", + }, + { + Arn: "arn:${Partition}:deepcomposer:${Region}:${Account}:composition/${CompositionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "composition", + }, + { + Arn: "arn:${Partition}:deepcomposer:${Region}:${Account}:audio/${AudioId}", + ConditionKeys: []string{}, + Resource: "audio", + }, + }, + ServiceName: "AWS DeepComposer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "deeplens", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Associates the user's account with IAM roles controlling various permissions needed by AWS DeepLens for proper functionality.", + Privilege: "AssociateServiceRoleToAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new conversion of metadata model", - Privilege: "StartMetadataModelConversion", + AccessLevel: "Read", + Description: "Retrieves a list of AWS DeepLens devices.", + Privilege: "BatchGetDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new export of metadata model as script. Note. This action should be added along with StartMetadataModelExportAsScripts, but does not currently authorize the described Schema Conversion operation", - Privilege: "StartMetadataModelExportAsScript", + AccessLevel: "Read", + Description: "Retrieves a list of AWS DeepLens Models.", + Privilege: "BatchGetModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:StartMetadataModelExportAsScripts", - }, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new export of metadata model as script", - Privilege: "StartMetadataModelExportAsScripts", + AccessLevel: "Read", + Description: "Retrieves a list of AWS DeepLens Projects.", + Privilege: "BatchGetProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:StartMetadataModelExportAsScript", - }, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a new export of metadata model to target", - Privilege: "StartMetadataModelExportToTarget", + Description: "Creates a certificate package that is used to successfully authenticate and Register an AWS DeepLens device.", + Privilege: "CreateDeviceCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a new import of metadata model", - Privilege: "StartMetadataModelImport", + Description: "Creates a new AWS DeepLens Model.", + Privilege: "CreateModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MigrationProject*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the analysis of your source database to provide recommendations of target engines", - Privilege: "StartRecommendations", + Description: "Creates a new AWS DeepLens Project.", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -80188,167 +83107,157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a replication", - Privilege: "StartReplication", + Description: "Deletes an AWS DeepLens Model.", + Privilege: "DeleteModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfig*", + ResourceType: "model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the replication task", - Privilege: "StartReplicationTask", + Description: "Deletes an AWS DeepLens Project.", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the replication task assessment for unsupported data types in the source database", - Privilege: "StartReplicationTaskAssessment", + Description: "Deploys an AWS DeepLens project to a registered AWS DeepLens device.", + Privilege: "DeployProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a new premigration assessment run for one or more individual assessments of a migration task", - Privilege: "StartReplicationTaskAssessmentRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "ReplicationTask*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop the database migration", - Privilege: "StopDataMigration", + Description: "Begins a device de-registration workflow for a registered AWS DeepLens device.", + Privilege: "DeregisterDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataMigration*", + ResourceType: "device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a replication", - Privilege: "StopReplication", + AccessLevel: "Read", + Description: "Retrieves the account level resources associated with the user's account.", + Privilege: "GetAssociatedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfig*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the replication task", - Privilege: "StopReplicationTask", + AccessLevel: "Read", + Description: "Retrieves the the deployment status of a particular AWS DeepLens device, along with any associated metadata.", + Privilege: "GetDeploymentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationTask*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to test the connection between the replication instance and the endpoint", - Privilege: "TestConnection", + Description: "Retrieves information about an AWS DeepLens device.", + Privilege: "GetDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Endpoint*", + ResourceType: "device*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Retrieves an AWS DeepLens Model.", + Privilege: "GetModel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationInstance*", + ResourceType: "model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a conversion configuration", - Privilege: "UpdateConversionConfiguration", + AccessLevel: "Read", + Description: "Retrieves an AWS DeepLens Project.", + Privilege: "GetProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:ModifyConversionConfiguration", - }, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the specified data provider", - Privilege: "UpdateDataProvider", + Description: "Creates a new AWS DeepLens project from a sample project template.", + Privilege: "ImportProjectFromTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:ModifyDataProvider", - }, - ResourceType: "DataProvider*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified instance profile", - Privilege: "UpdateInstanceProfile", + AccessLevel: "List", + Description: "Retrieves a list of AWS DeepLens Deployment identifiers.", + Privilege: "ListDeployments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:ModifyInstanceProfile", - }, - ResourceType: "InstanceProfile*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified migration project", - Privilege: "UpdateMigrationProject", + AccessLevel: "List", + Description: "Retrieves a list of AWS DeepLens device identifiers.", + Privilege: "ListDevices", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dms:ModifyMigrationProject", - }, - ResourceType: "MigrationProject*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to migrate DMS subcriptions to Eventbridge", - Privilege: "UpdateSubscriptionsToEventBridge", + AccessLevel: "List", + Description: "Retrieves a list of AWS DeepLens Model identifiers.", + Privilege: "ListModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -80358,9 +83267,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload files to your Amazon S3 bucket", - Privilege: "UploadFileMetadataList", + AccessLevel: "List", + Description: "Retrieves a list of AWS DeepLens Project identifiers.", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -80369,231 +83278,106 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:cert:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:cert-tag/${TagKey}", - }, - Resource: "Certificate", - }, - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:data-provider:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:data-provider-tag/${TagKey}", - }, - Resource: "DataProvider", - }, - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:data-migration:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:data-migration-tag/${TagKey}", - }, - Resource: "DataMigration", - }, - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:endpoint:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:endpoint-tag/${TagKey}", - }, - Resource: "Endpoint", - }, - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:es:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:es-tag/${TagKey}", - }, - Resource: "EventSubscription", - }, - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:instance-profile:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:instance-profile-tag/${TagKey}", - }, - Resource: "InstanceProfile", - }, - { - Arn: "arn:${Partition}:dms:${Region}:${Account}:migration-project:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:migration-project-tag/${TagKey}", - }, - Resource: "MigrationProject", - }, { - Arn: "arn:${Partition}:dms:${Region}:${Account}:replication-config:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:replication-config-tag/${TagKey}", + AccessLevel: "Write", + Description: "Begins a device registration workflow for an AWS DeepLens device.", + Privilege: "RegisterDevice", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "ReplicationConfig", }, { - Arn: "arn:${Partition}:dms:${Region}:${Account}:rep:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:rep-tag/${TagKey}", + AccessLevel: "Write", + Description: "Removes a deployed AWS DeepLens project from an AWS DeepLens device.", + Privilege: "RemoveProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device*", + }, }, - Resource: "ReplicationInstance", }, { - Arn: "arn:${Partition}:dms:${Region}:${Account}:subgrp:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:subgrp-tag/${TagKey}", + AccessLevel: "Write", + Description: "Updates an existing AWS DeepLens Project.", + Privilege: "UpdateProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", + }, }, - Resource: "ReplicationSubnetGroup", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:dms:${Region}:${Account}:task:*", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "dms:task-tag/${TagKey}", - }, - Resource: "ReplicationTask", + Arn: "arn:${Partition}:deeplens:${Region}:${Account}:device/${DeviceName}", + ConditionKeys: []string{}, + Resource: "device", }, { - Arn: "arn:${Partition}:dms:${Region}:${Account}:assessment-run:*", + Arn: "arn:${Partition}:deeplens:${Region}:${Account}:project/${ProjectName}", ConditionKeys: []string{}, - Resource: "ReplicationTaskAssessmentRun", + Resource: "project", }, { - Arn: "arn:${Partition}:dms:${Region}:${Account}:individual-assessment:*", + Arn: "arn:${Partition}:deeplens:${Region}:${Account}:model/${ModelName}", ConditionKeys: []string{}, - Resource: "ReplicationTaskIndividualAssessment", + Resource: "model", }, }, - ServiceName: "AWS Database Migration Service", + ServiceName: "AWS DeepLens", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the set of tag key-value pairs in the request", + Description: "Filters access by tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the set of tag key-value pairs attached to the resource", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the set of tag keys in the request", + Description: "Filters access by tag keys in the request", Type: "ArrayOfString", }, - }, - Prefix: "docdb-elastic", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to copy a new Amazon DocDB-Elastic cluster snapshot", - Privilege: "CopyClusterSnapshot", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "docdb-elastic:CreateClusterSnapshot", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - }, - ResourceType: "cluster-snapshot*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", - }, - }, + Condition: "deepracer:MultiUser", + Description: "Filters access by multiuser flag", + Type: "Bool", }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon DocDB-Elastic cluster", - Privilege: "CreateCluster", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateVpcEndpoint", - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - "iam:CreateServiceLinkedRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "secretsmanager:DescribeSecret", - "secretsmanager:GetResourcePolicy", - "secretsmanager:GetSecretValue", - "secretsmanager:ListSecretVersionIds", - "secretsmanager:ListSecrets", - }, - ResourceType: "", - }, - }, + Condition: "deepracer:UserToken", + Description: "Filters access by user token in the request", + Type: "String", }, + }, + Prefix: "deepracer", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a new Amazon DocDB-Elastic cluster snapshot", - Privilege: "CreateClusterSnapshot", + Description: "Grants permission to add access for a private leaderboard", + Privilege: "AddLeaderboardAccessPermission", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateVpcEndpoint", - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - "iam:CreateServiceLinkedRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "secretsmanager:DescribeSecret", - "secretsmanager:GetResourcePolicy", - "secretsmanager:GetSecretValue", - "secretsmanager:ListSecretVersionIds", - "secretsmanager:ListSecrets", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "leaderboard*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80601,27 +83385,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a cluster", - Privilege: "DeleteCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve information of the KMS key that the user currently has assigned to their account", + Privilege: "AdminDescribeAccountKey", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80629,28 +83400,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a cluster snapshot", - Privilege: "DeleteClusterSnapshot", + AccessLevel: "Read", + Description: "Grants permission to get current admin multiuser configuration for this account", + Privilege: "AdminGetAccountConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - }, - ResourceType: "cluster-snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -80658,46 +83413,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view details about a cluster", - Privilege: "GetCluster", + Description: "Grants permission to list all deepracer users with their associated resources created under this account", + Privilege: "AdminListAssociatedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a cluster snapshot", - Privilege: "GetClusterSnapshot", + Description: "Grants permission to list user data for all users associated with this account", + Privilege: "AdminListAssociatedUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the cluster snapshots in your account", - Privilege: "ListClusterSnapshots", + AccessLevel: "Write", + Description: "Grants permission to manage a user associated with this account", + Privilege: "AdminManageUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -80707,9 +83448,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the clusters in your account", - Privilege: "ListClusters", + AccessLevel: "Write", + Description: "Grants permission to set configuration options for this account", + Privilege: "AdminSetAccountConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -80719,23 +83460,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to lists tag for an DocumentDB Elastic resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update the KMS key that is assigned to the user's account", + Privilege: "AdminUpdateAccountKey", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-snapshot", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80744,45 +83476,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to restore cluster from a Amazon DocDB-Elastic cluster snapshot", - Privilege: "RestoreClusterFromSnapshot", + Description: "Grants permission to clone an existing DeepRacer model", + Privilege: "CloneReinforcementLearningModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "docdb-elastic:CreateCluster", - "ec2:CreateVpcEndpoint", - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - "iam:CreateServiceLinkedRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "secretsmanager:DescribeSecret", - "secretsmanager:GetResourcePolicy", - "secretsmanager:GetSecretValue", - "secretsmanager:ListSecretVersionIds", - "secretsmanager:ListSecrets", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reinforcement_learning_model*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "track*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80791,17 +83503,15 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a stopped Amazon DocDB-Elastic cluster", - Privilege: "StartCluster", + Description: "Grants permission to create a DeepRacer car in your garage", + Privilege: "CreateCar", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80810,17 +83520,15 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop an existing Amazon DocDB-Elastic cluster", - Privilege: "StopCluster", + Description: "Grants permission to create a leaderboard", + Privilege: "CreateLeaderboard", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80828,25 +83536,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an DocumentDB Elastic resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create an access token for a private leaderboard", + Privilege: "CreateLeaderboardAccessToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-snapshot", + ResourceType: "leaderboard*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80854,23 +83556,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a DocumentDB Elastic resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to submit a DeepRacer model to be evaluated for leaderboards", + Privilege: "CreateLeaderboardSubmission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "leaderboard*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot", + ResourceType: "reinforcement_learning_model*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -80879,128 +83584,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a cluster", - Privilege: "UpdateCluster", + Description: "Grants permission to create ra einforcement learning model for DeepRacer", + Privilege: "CreateReinforcementLearningModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateVpcEndpoint", - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "secretsmanager:DescribeSecret", - "secretsmanager:GetResourcePolicy", - "secretsmanager:GetSecretValue", - "secretsmanager:ListSecretVersionIds", - "secretsmanager:ListSecrets", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "track*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:docdb-elastic:${Region}:${Account}:cluster/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:docdb-elastic:${Region}:${Account}:cluster-snapshot/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster-snapshot", - }, - }, - ServiceName: "Amazon DocumentDB Elastic Clusters", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "drs:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", - }, - { - Condition: "drs:EC2InstanceARN", - Description: "Filters access by the EC2 instance the request originated from", - Type: "ARN", - }, - }, - Prefix: "drs", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to get associate failback client to recovery instance", - Privilege: "AssociateFailbackClientToRecoveryInstanceForDrs", + Description: "Grants permission to delete a leaderboard", + Privilege: "DeleteLeaderboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to associate CloudFormation stack with source network", - Privilege: "AssociateSourceNetworkStack", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStackResource", - "cloudformation:DescribeStacks", - "drs:GetLaunchConfiguration", - "ec2:CreateLaunchTemplateVersion", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribeLaunchTemplates", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "ec2:ModifyLaunchTemplate", - }, - ResourceType: "SourceNetworkResource*", + ResourceType: "leaderboard*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -81009,28 +83626,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to batch create volume snapshot group", - Privilege: "BatchCreateVolumeSnapshotGroupForDrs", + Description: "Grants permission to delete a DeepRacer model", + Privilege: "DeleteModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "reinforcement_learning_model*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to batch delete snapshot request", - Privilege: "BatchDeleteSnapshotRequestForDrs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, ResourceType: "", }, @@ -81038,18 +83646,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create converted snapshot", - Privilege: "CreateConvertedSnapshotForDrs", + Description: "Grants permission to edit a leaderboard", + Privilege: "EditLeaderboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "leaderboard*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -81057,32 +83665,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to extend a source server", - Privilege: "CreateExtendedSourceServer", + AccessLevel: "Read", + Description: "Grants permission to get current multiuser configuration for this account", + Privilege: "GetAccountConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "drs:DescribeSourceServers", - "drs:GetReplicationConfiguration", + "deepracer:UserToken", + "deepracer:MultiUser", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create launch configuration template", - Privilege: "CreateLaunchConfigurationTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve the user's alias for submitting a DeepRacer model to leaderboards", + Privilege: "GetAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -81090,19 +83695,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create recovery instance", - Privilege: "CreateRecoveryInstanceForDrs", + AccessLevel: "Read", + Description: "Grants permission to download artifacts for an existing DeepRacer model", + Privilege: "GetAssetUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "reinforcement_learning_model*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -81110,55 +83715,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create replication configuration template", - Privilege: "CreateReplicationConfigurationTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve a specific DeepRacer car from your garage", + Privilege: "GetCar", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:GetEbsDefaultKmsKeyId", - "ec2:GetEbsEncryptionByDefault", - "kms:CreateGrant", - "kms:DescribeKey", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "car*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a source network", - Privilege: "CreateSourceNetwork", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:DescribeInstances", - "ec2:DescribeVpcs", + "deepracer:UserToken", + "deepracer:MultiUser", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a source server", - Privilege: "CreateSourceServerForDrs", + AccessLevel: "Read", + Description: "Grants permission to view all the DeepRacer cars in your garage", + Privilege: "GetCars", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -81166,164 +83750,187 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a job", - Privilege: "DeleteJob", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an existing DeepRacer model's evaluation jobs", + Privilege: "GetEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource*", + ResourceType: "evaluation_job*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a launch action", - Privilege: "DeleteLaunchAction", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about how the latest submitted DeepRacer model for a user performed on a leaderboard", + Privilege: "GetLatestUserSubmission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource", + ResourceType: "leaderboard*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete launch configuration template", - Privilege: "DeleteLaunchConfigurationTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about leaderboards", + Privilege: "GetLeaderboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "leaderboard*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete recovery instance", - Privilege: "DeleteRecoveryInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete replication configuration template", - Privilege: "DeleteReplicationConfigurationTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an existing DeepRacer model", + Privilege: "GetModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource*", + ResourceType: "reinforcement_learning_model*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete source network", - Privilege: "DeleteSourceNetwork", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "SourceNetworkResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete source server", - Privilege: "DeleteSourceServer", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about private leaderboards", + Privilege: "GetPrivateLeaderboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "leaderboard*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe job log items", - Privilege: "DescribeJobLogItems", + Description: "Grants permission to retrieve information about the performance of a user's DeepRacer model that got placed on a leaderboard", + Privilege: "GetRankedUserSubmission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource*", + ResourceType: "leaderboard*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe jobs", - Privilege: "DescribeJobs", + Description: "Grants permission to retrieve information about DeepRacer tracks", + Privilege: "GetTrack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "track*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe launch configuration template", - Privilege: "DescribeLaunchConfigurationTemplates", + Description: "Grants permission to retrieve information about an existing DeepRacer model's training job", + Privilege: "GetTrainingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "training_job*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe recovery instances", - Privilege: "DescribeRecoveryInstances", + AccessLevel: "Write", + Description: "Grants permission to import a reinforcement learning model for DeepRacer", + Privilege: "ImportModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "drs:DescribeSourceServers", - "ec2:DescribeInstances", + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe recovery snapshots", - Privilege: "DescribeRecoverySnapshots", + Description: "Grants permission to list a DeepRacer model's evaluation jobs", + Privilege: "ListEvaluations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "reinforcement_learning_model*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe replication configuration template", - Privilege: "DescribeReplicationConfigurationTemplates", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, ResourceType: "", }, @@ -81331,35 +83938,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe replication server associations", - Privilege: "DescribeReplicationServerAssociationsForDrs", + Description: "Grants permission to list all the user's leaderboard evaluation jobs for a leaderboard", + Privilege: "ListLeaderboardEvaluations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "leaderboard*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe snapshot requests", - Privilege: "DescribeSnapshotRequestsForDrs", + Description: "Grants permission to list all the DeepRacer model submissions of a user on a leaderboard", + Privilege: "ListLeaderboardSubmissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "leaderboard*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe source networks", - Privilege: "DescribeSourceNetworks", + Description: "Grants permission to list all the available leaderboards", + Privilege: "ListLeaderboards", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, ResourceType: "", }, @@ -81367,58 +83993,63 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe source servers", - Privilege: "DescribeSourceServers", + Description: "Grants permission to list all existing DeepRacer models", + Privilege: "ListModels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disconnect recovery instance", - Privilege: "DisconnectRecoveryInstance", + AccessLevel: "Read", + Description: "Grants permission to retrieve participant information about private leaderboards", + Privilege: "ListPrivateLeaderboardParticipants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "leaderboard*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disconnect source server", - Privilege: "DisconnectSourceServer", + AccessLevel: "Read", + Description: "Grants permission to list all the available private leaderboards", + Privilege: "ListPrivateLeaderboards", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to export CloudFormation template which contains source network resources", - Privilege: "ExportSourceNetworkCfnTemplate", + AccessLevel: "Read", + Description: "Grants permission to list all the subscribed private leaderboards", + Privilege: "ListSubscribedPrivateLeaderboards", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetBucketLocation", - "s3:GetObject", - "s3:PutObject", - }, - ResourceType: "SourceNetworkResource*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", }, DependentActions: []string{}, ResourceType: "", @@ -81427,105 +84058,86 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get agent command", - Privilege: "GetAgentCommandForDrs", + Description: "Grants permission to lists tag for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "car", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "evaluation_job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent confirmed resume info", - Privilege: "GetAgentConfirmedResumeInfoForDrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "leaderboard", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "leaderboard_evaluation_job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent installation assets", - Privilege: "GetAgentInstallationAssetsForDrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reinforcement_learning_model", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent replication info", - Privilege: "GetAgentReplicationInfoForDrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "training_job", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get agent runtime configuration", - Privilege: "GetAgentRuntimeConfigurationForDrs", + Description: "Grants permission to list all DeepRacer tracks", + Privilege: "ListTracks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get agent snapshot credits", - Privilege: "GetAgentSnapshotCreditsForDrs", + Description: "Grants permission to list a DeepRacer model's training jobs", + Privilege: "ListTrainingJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "reinforcement_learning_model*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get channel commands", - Privilege: "GetChannelCommandsForDrs", + AccessLevel: "Write", + Description: "Grants permission to migrate previous reinforcement learning models for DeepRacer", + Privilege: "MigrateModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -81535,158 +84147,179 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get failback command", - Privilege: "GetFailbackCommandForDrs", + AccessLevel: "Write", + Description: "Grants permission to performs the leaderboard operation mentioned in the operation attribute", + Privilege: "PerformLeaderboardOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "leaderboard", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get failback launch requested", - Privilege: "GetFailbackLaunchRequestedForDrs", + AccessLevel: "Write", + Description: "Grants permission to remove access for a private leaderboard", + Privilege: "RemoveLeaderboardAccessPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "leaderboard*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get failback replication configuration", - Privilege: "GetFailbackReplicationConfiguration", + AccessLevel: "Write", + Description: "Grants permission to set the user's alias for submitting a DeepRacer model to leaderboards", + Privilege: "SetAlias", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get launch configuration", - Privilege: "GetLaunchConfiguration", + AccessLevel: "Write", + Description: "Grants permission to evaluate a DeepRacer model in a simulated environment", + Privilege: "StartEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "reinforcement_learning_model*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get replication configuration", - Privilege: "GetReplicationConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "track*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get suggested failback client device mapping", - Privilege: "GetSuggestedFailbackClientDeviceMappingForDrs", + AccessLevel: "Write", + Description: "Grants permission to stop DeepRacer model evaluations", + Privilege: "StopEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "evaluation_job*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initialize service", - Privilege: "InitializeService", + Description: "Grants permission to stop training a DeepRacer model", + Privilege: "StopTrainingReinforcementLearningModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AddRoleToInstanceProfile", - "iam:CreateInstanceProfile", - "iam:CreateServiceLinkedRole", - "iam:GetInstanceProfile", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reinforcement_learning_model*", + }, + { + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to issue an agent certificate", - Privilege: "IssueAgentCertificateForDrs", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "car", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "evaluation_job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list extensible source servers", - Privilege: "ListExtensibleSourceServers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "drs:DescribeSourceServers", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "leaderboard", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list launch actions", - Privilege: "ListLaunchActions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource", + ResourceType: "leaderboard_evaluation_job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource", + ResourceType: "reinforcement_learning_model", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list staging accounts", - Privilege: "ListStagingAccounts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "training_job", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to test reward functions for correctness", + Privilege: "TestRewardFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -81696,363 +84329,485 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to notify agent authentication", - Privilege: "NotifyAgentAuthenticationForDrs", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "car", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "evaluation_job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "leaderboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "leaderboard_evaluation_job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reinforcement_learning_model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training_job", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "deepracer:UserToken", + "deepracer:MultiUser", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify agent is connected", - Privilege: "NotifyAgentConnectedForDrs", + Description: "Grants permission to update a DeepRacer car in your garage", + Privilege: "UpdateCar", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "car*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "deepracer:UserToken", + "deepracer:MultiUser", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:deepracer:${Region}:${Account}:car/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "car", + }, + { + Arn: "arn:${Partition}:deepracer:${Region}:${Account}:evaluation_job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "evaluation_job", + }, + { + Arn: "arn:${Partition}:deepracer:${Region}::leaderboard/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "leaderboard", + }, + { + Arn: "arn:${Partition}:deepracer:${Region}:${Account}:leaderboard_evaluation_job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "leaderboard_evaluation_job", + }, + { + Arn: "arn:${Partition}:deepracer:${Region}:${Account}:model/reinforcement_learning/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "reinforcement_learning_model", + }, + { + Arn: "arn:${Partition}:deepracer:${Region}::track/${ResourceId}", + ConditionKeys: []string{}, + Resource: "track", + }, + { + Arn: "arn:${Partition}:deepracer:${Region}:${Account}:training_job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "training_job", + }, + }, + ServiceName: "AWS DeepRacer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by specifying the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by specifying the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by specifying the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "detective", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to notify agent is disconnected", - Privilege: "NotifyAgentDisconnectedForDrs", + Description: "Grants permission to accept an invitation to become a member of a behavior graph", + Privilege: "AcceptInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the datasource package history for the specified member accounts in a behavior graph managed by this account", + Privilege: "BatchGetGraphMemberDatasources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to notify agent replication progress", - Privilege: "NotifyAgentReplicationProgressForDrs", + AccessLevel: "Read", + Description: "Grants permission to retrieve the datasource package history of the caller account for the specified graphs", + Privilege: "BatchGetMembershipDatasources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a behavior graph and begin to aggregate security information", + Privilege: "CreateGraph", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "detective:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify consistency attained", - Privilege: "NotifyConsistencyAttainedForDrs", + Description: "Grants permission to request the membership of one or more accounts in a behavior graph managed by this account", + Privilege: "CreateMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify replication server authentication", - Privilege: "NotifyReplicationServerAuthenticationForDrs", + Description: "Grants permission to delete a behavior graph and stop aggregating security information", + Privilege: "DeleteGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify replicator volume events", - Privilege: "NotifyVolumeEventForDrs", + Description: "Grants permission to remove member accounts from a behavior graph managed by this account", + Privilege: "DeleteMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a launch action", - Privilege: "PutLaunchAction", + AccessLevel: "Read", + Description: "Grants permission to view the current configuration related to the Amazon Detective integration with AWS Organizations", + Privilege: "DescribeOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ssm:DescribeDocument", + "organizations:DescribeOrganization", }, - ResourceType: "LaunchConfigurationTemplateResource", + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the Amazon Detective delegated administrator account for an organization", + Privilege: "DisableOrganizationAdminAccount", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SourceServerResource", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to retry data replication", - Privilege: "RetryDataReplication", + Description: "Grants permission to remove the association of this account with a behavior graph", + Privilege: "DisassociateMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reverse replication", - Privilege: "ReverseReplication", + Description: "Grants permission to designate the Amazon Detective delegated administrator account for an organization", + Privilege: "EnableOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "drs:DescribeReplicationConfigurationTemplates", - "drs:DescribeSourceServers", - "ec2:DescribeInstances", + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", + "organizations:RegisterDelegatedAdministrator", }, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a behavior graph's eligibility for a free trial period", + Privilege: "GetFreeTrialEligibility", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send agent logs", - Privilege: "SendAgentLogsForDrs", + AccessLevel: "Read", + Description: "Grants permission to retrieve the data ingestion state of a behavior graph", + Privilege: "GetGraphIngestState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an investigation's status and metadata", + Privilege: "GetInvestigation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send agent metrics", - Privilege: "SendAgentMetricsForDrs", + AccessLevel: "Read", + Description: "Grants permission to retrieve details on specified members of a behavior graph", + Privilege: "GetMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about Amazon Detective's pricing", + Privilege: "GetPricingInformation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send channel command result", - Privilege: "SendChannelCommandResultForDrs", + AccessLevel: "Read", + Description: "Grants permission to list usage information of a behavior graph", + Privilege: "GetUsageInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send client logs", - Privilege: "SendClientLogsForDrs", + AccessLevel: "Read", + Description: "Grants permission to invoke Detective's Assistant", + Privilege: "InvokeAssistant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send client metrics", - Privilege: "SendClientMetricsForDrs", + AccessLevel: "List", + Description: "Grants permission to list a graph's datasource package ingest states and timestamps for the most recent state changes in a behavior graph managed by this account", + Privilege: "ListDatasourcePackages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send volume throughput statistics", - Privilege: "SendVolumeStatsForDrs", + AccessLevel: "List", + Description: "Grants permission to list behavior graphs managed by this account", + Privilege: "ListGraphs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start failback launch", - Privilege: "StartFailbackLaunch", + AccessLevel: "List", + Description: "Grants permission to retrieve high volume entities whose relationships cannot be stored by Detective", + Privilege: "ListHighDegreeEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the indicators of an investigation", + Privilege: "ListIndicators", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start recovery", - Privilege: "StartRecovery", + AccessLevel: "List", + Description: "Grants permission to list the investigations of a behavior graph", + Privilege: "ListInvestigations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "drs:CreateRecoveryInstanceForDrs", - "drs:ListTagsForResource", - "ec2:AttachVolume", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateLaunchTemplate", - "ec2:CreateLaunchTemplateVersion", - "ec2:CreateSnapshot", - "ec2:CreateTags", - "ec2:CreateVolume", - "ec2:DeleteLaunchTemplateVersions", - "ec2:DeleteSnapshot", - "ec2:DeleteVolume", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeImages", - "ec2:DescribeInstanceAttribute", - "ec2:DescribeInstanceStatus", - "ec2:DescribeInstanceTypes", - "ec2:DescribeInstances", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribeLaunchTemplates", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSnapshots", - "ec2:DescribeSubnets", - "ec2:DescribeVolumes", - "ec2:DetachVolume", - "ec2:ModifyInstanceAttribute", - "ec2:ModifyLaunchTemplate", - "ec2:RevokeSecurityGroupEgress", - "ec2:RunInstances", - "ec2:StartInstances", - "ec2:StopInstances", - "ec2:TerminateInstances", - "iam:PassRole", - }, - ResourceType: "SourceServerResource*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve details on the behavior graphs to which this account has been invited to join", + Privilege: "ListInvitations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start replication", - Privilege: "StartReplication", + AccessLevel: "List", + Description: "Grants permission to retrieve details on all members of a behavior graph", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start network recovery", - Privilege: "StartSourceNetworkRecovery", + AccessLevel: "List", + Description: "Grants permission to view the current Amazon Detective delegated administrator account for an organization", + Privilege: "ListOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "cloudformation:CreateStack", - "cloudformation:DescribeStackResource", - "cloudformation:DescribeStacks", - "cloudformation:UpdateStack", - "drs:GetLaunchConfiguration", - "ec2:CreateLaunchTemplateVersion", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribeLaunchTemplates", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "ec2:ModifyLaunchTemplate", - "s3:GetObject", - "s3:PutObject", + "organizations:DescribeOrganization", }, - ResourceType: "SourceNetworkResource*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the tag values that are assigned to a behavior graph", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Graph*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -82061,534 +84816,510 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start network replication", - Privilege: "StartSourceNetworkReplication", + Description: "Grants permission to reject an invitation to become a member of a behavior graph", + Privilege: "RejectInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceNetworkResource*", + ResourceType: "Graph*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop failback", - Privilege: "StopFailback", + AccessLevel: "Read", + Description: "Grants permission to search the data stored in a behavior graph", + Privilege: "SearchGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop replication", - Privilege: "StopReplication", + Description: "Grants permission to start investigations", + Privilege: "StartInvestigation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop network replication", - Privilege: "StopSourceNetworkReplication", + Description: "Grants permission to start data ingest for a member account that has a status of ACCEPTED_BUT_DISABLED", + Privilege: "StartMonitoringMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceNetworkResource*", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to assign a resource tag", + Description: "Grants permission to assign tag values to a behavior graph", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource", + ResourceType: "Graph*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tag values from a behavior graph", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource", + ResourceType: "Graph*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or disable datasource package(s) in a behavior graph managed by this account", + Privilege: "UpdateDatasourcePackages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceNetworkResource", + ResourceType: "Graph*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an investigation's state and metadata", + Privilege: "UpdateInvestigationState", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "drs:CreateAction", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Graph*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to terminate recovery instances", - Privilege: "TerminateRecoveryInstances", + Description: "Grants permission to update the current configuration related to the Amazon Detective integration with AWS Organizations", + Privilege: "UpdateOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "drs:DescribeSourceServers", - "ec2:DeleteVolume", - "ec2:DescribeInstances", - "ec2:DescribeVolumes", - "ec2:TerminateInstances", + "organizations:DescribeOrganization", }, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "Graph*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:detective:${Region}:${Account}:graph:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Graph", + }, + }, + ServiceName: "Amazon Detective", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag-value assoicated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "devicefarm", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a device pool within a project", + Privilege: "CreateDevicePool", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a device instance profile", + Privilege: "CreateInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a network profile within a project", + Privilege: "CreateNetworkProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource", + ResourceType: "project*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a project for mobile testing", + Privilege: "CreateProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a remote access session to a device instance", + Privilege: "CreateRemoteAccessSession", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource", + ResourceType: "device*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource", + ResourceType: "project*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceNetworkResource", + ResourceType: "deviceinstance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource", + ResourceType: "upload", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a project for desktop testing", + Privilege: "CreateTestGridProject", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent backlog", - Privilege: "UpdateAgentBacklogForDrs", + Description: "Grants permission to generate a new pre-signed url used to access our test grid service", + Privilege: "CreateTestGridUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "testgrid-project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent conversion info", - Privilege: "UpdateAgentConversionInfoForDrs", + Description: "Grants permission to upload a new file or app within a project", + Privilege: "CreateUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Virtual Private Cloud (VPC) endpoint configuration", + Privilege: "CreateVPCEConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent replication info", - Privilege: "UpdateAgentReplicationInfoForDrs", + Description: "Grants permission to delete a user-generated device pool", + Privilege: "DeleteDevicePool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "devicepool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a user-generated instance profile", + Privilege: "DeleteInstanceProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "instanceprofile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent replication process state", - Privilege: "UpdateAgentReplicationProcessStateForDrs", + Description: "Grants permission to delete a user-generated network profile", + Privilege: "DeleteNetworkProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "networkprofile*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a mobile testing project", + Privilege: "DeleteProject", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent source properties", - Privilege: "UpdateAgentSourcePropertiesForDrs", + Description: "Grants permission to delete a completed remote access session and its results", + Privilege: "DeleteRemoteAccessSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "session*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a run", + Privilege: "DeleteRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "run*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update failback client device mapping", - Privilege: "UpdateFailbackClientDeviceMappingForDrs", + Description: "Grants permission to delete a desktop testing project", + Privilege: "DeleteTestGridProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "testgrid-project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update failback client last seen", - Privilege: "UpdateFailbackClientLastSeenForDrs", + Description: "Grants permission to delete a user-uploaded file", + Privilege: "DeleteUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "upload*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update failback replication configuration", - Privilege: "UpdateFailbackReplicationConfiguration", + Description: "Grants permission to delete an Amazon Virtual Private Cloud (VPC) endpoint configuration", + Privilege: "DeleteVPCEConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "vpceconfiguration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update launch configuration", - Privilege: "UpdateLaunchConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve the number of unmetered iOS and/or unmetered Android devices purchased by the account", + Privilege: "GetAccountSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeInstances", - }, - ResourceType: "SourceServerResource*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update launch configuration", - Privilege: "UpdateLaunchConfigurationTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve the information of a unique device type", + Privilege: "GetDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a replication certificate", - Privilege: "UpdateReplicationCertificateForDrs", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a device instance", + Privilege: "GetDeviceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RecoveryInstanceResource*", + ResourceType: "deviceinstance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update replication configuration", - Privilege: "UpdateReplicationConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a device pool", + Privilege: "GetDevicePool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:GetEbsDefaultKmsKeyId", - "ec2:GetEbsEncryptionByDefault", - "kms:CreateGrant", - "kms:DescribeKey", - }, - ResourceType: "SourceServerResource*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "devicepool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update replication configuration template", - Privilege: "UpdateReplicationConfigurationTemplate", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateSecurityGroup", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:GetEbsDefaultKmsKeyId", - "ec2:GetEbsEncryptionByDefault", - "kms:CreateGrant", - "kms:DescribeKey", - }, - ResourceType: "ReplicationConfigurationTemplateResource*", - }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:drs:${Region}:${Account}:job/${JobID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "JobResource", - }, - { - Arn: "arn:${Partition}:drs:${Region}:${Account}:recovery-instance/${RecoveryInstanceID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "drs:EC2InstanceARN", - }, - Resource: "RecoveryInstanceResource", - }, - { - Arn: "arn:${Partition}:drs:${Region}:${Account}:replication-configuration-template/${ReplicationConfigurationTemplateID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ReplicationConfigurationTemplateResource", - }, - { - Arn: "arn:${Partition}:drs:${Region}:${Account}:launch-configuration-template/${LaunchConfigurationTemplateID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "LaunchConfigurationTemplateResource", - }, - { - Arn: "arn:${Partition}:drs:${Region}:${Account}:source-server/${SourceServerID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "SourceServerResource", - }, - { - Arn: "arn:${Partition}:drs:${Region}:${Account}:source-network/${SourceNetworkID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "SourceNetworkResource", - }, - }, - ServiceName: "AWS Elastic Disaster Recovery", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the value of the request to AWS DS", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the AWS DS Resource being acted upon", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "ds", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to accept a directory sharing request that was sent from the directory owner account", - Privilege: "AcceptSharedDirectory", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the compatibility of a test and/or app with a device pool", + Privilege: "GetDevicePoolCompatibility", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add a CIDR address block to correctly route traffic to and from your Microsoft AD on Amazon Web Services", - Privilege: "AddIpRoutes", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:DescribeSecurityGroups", - }, - ResourceType: "directory*", + ResourceType: "devicepool*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add two domain controllers in the specified Region for the specified directory", - Privilege: "AddRegion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateNetworkInterface", - "ec2:CreateSecurityGroup", - "ec2:CreateTags", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "directory*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "upload", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for the specified Amazon Directory Services directory", - Privilege: "AddTagsToResource", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of an instance profile", + Privilege: "GetInstanceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "directory*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instanceprofile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to authorize an application for your AWS Directory", - Privilege: "AuthorizeApplication", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a job", + Privilege: "GetJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel an in-progress schema extension to a Microsoft AD directory", - Privilege: "CancelSchemaExtension", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a network profile", + Privilege: "GetNetworkProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "networkprofile*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to verify that the alias is available for use", - Privilege: "CheckAlias", + Description: "Grants permission to retrieve the current status and future status of all offerings purchased by an AWS account", + Privilege: "GetOfferingStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -82598,378 +85329,262 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AD Connector to connect to an on-premises directory", - Privilege: "ConnectDirectory", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateNetworkInterface", - "ec2:CreateSecurityGroup", - "ec2:CreateTags", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an alias for a directory and assigns the alias to the directory", - Privilege: "CreateAlias", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a mobile testing project", + Privilege: "GetProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a computer account in the specified directory, and joins the computer to the directory", - Privilege: "CreateComputer", + AccessLevel: "Read", + Description: "Grants permission to retireve the link to a currently running remote access session", + Privilege: "GetRemoteAccessSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "session*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a conditional forwarder associated with your AWS directory", - Privilege: "CreateConditionalForwarder", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a run", + Privilege: "GetRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Simple AD directory", - Privilege: "CreateDirectory", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateNetworkInterface", - "ec2:CreateSecurityGroup", - "ec2:CreateTags", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "", + ResourceType: "run*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IdentityPool Directory in the AWS cloud", - Privilege: "CreateIdentityPoolDirectory", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a testing suite", + Privilege: "GetSuite", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "suite*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a subscription to forward real time Directory Service domain controller security logs to the specified CloudWatch log group in your AWS account", - Privilege: "CreateLogSubscription", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a test case", + Privilege: "GetTest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Microsoft AD in the AWS cloud", - Privilege: "CreateMicrosoftAD", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateNetworkInterface", - "ec2:CreateSecurityGroup", - "ec2:CreateTags", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "", + ResourceType: "test*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud", - Privilege: "CreateSnapshot", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a desktop testing project", + Privilege: "GetTestGridProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate the creation of the AWS side of a trust relationship between a Microsoft AD in the AWS cloud and an external domain", - Privilege: "CreateTrust", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of a test grid session", + Privilege: "GetTestGridSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-project", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a conditional forwarder that has been set up for your AWS directory", - Privilege: "DeleteConditionalForwarder", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-session", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Directory Service directory", - Privilege: "DeleteDirectory", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of an uploaded file", + Privilege: "GetUpload", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - "ec2:DeleteSecurityGroup", - "ec2:DescribeNetworkInterfaces", - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", - }, - ResourceType: "directory*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "upload*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified log subscription", - Privilege: "DeleteLogSubscription", + AccessLevel: "Read", + Description: "Grants permission to retireve the information of an Amazon Virtual Private Cloud (VPC) endpoint configuration", + Privilege: "GetVPCEConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "vpceconfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a directory snapshot", - Privilege: "DeleteSnapshot", + Description: "Grants permission to install an application to a device in a remote access session", + Privilege: "InstallToRemoteAccessSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "session*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an existing trust relationship between your Microsoft AD in the AWS cloud and an external domain", - Privilege: "DeleteTrust", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "upload*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete from the system the certificate that was registered for a secured LDAP connection", - Privilege: "DeregisterCertificate", + AccessLevel: "List", + Description: "Grants permission to list the artifacts in a project", + Privilege: "ListArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove the specified directory as a publisher to the specified SNS topic", - Privilege: "DeregisterEventTopic", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "run", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to display information about the certificate registered for a secured LDAP connection", - Privilege: "DescribeCertificate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "suite", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the type of client authentication for the specified directory, if the type is specified. If no type is specified, information about all client authentication types that are supported for the specified directory is retrieved. Currently, only SmartCard is supported", - Privilege: "DescribeClientAuthenticationSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "test", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain information about the conditional forwarders for this account", - Privilege: "DescribeConditionalForwarders", + AccessLevel: "List", + Description: "Grants permission to list the information of device instances", + Privilege: "ListDeviceInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to obtain information about the directories that belong to this account", - Privilege: "DescribeDirectories", + Description: "Grants permission to list the information of device pools", + Privilege: "ListDevicePools", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide information about any domain controllers in your directory", - Privilege: "DescribeDomainControllers", + AccessLevel: "List", + Description: "Grants permission to list the information of unique device types", + Privilege: "ListDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain information about which SNS topics receive status messages from the specified directory", - Privilege: "DescribeEventTopics", + AccessLevel: "List", + Description: "Grants permission to list the information of device instance profiles", + Privilege: "ListInstanceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the status of LDAP security for the specified directory", - Privilege: "DescribeLDAPSSettings", + AccessLevel: "List", + Description: "Grants permission to list the information of jobs within a run", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "run*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide information about the Regions that are configured for multi-Region replication", - Privilege: "DescribeRegions", + AccessLevel: "List", + Description: "Grants permission to list the information of network profiles within a project", + Privilege: "ListNetworkProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the configurable settings for the specified directory", - Privilege: "DescribeSettings", + AccessLevel: "List", + Description: "Grants permission to list the offering promotions", + Privilege: "ListOfferingPromotions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the shared directories in your account", - Privilege: "DescribeSharedDirectories", + AccessLevel: "List", + Description: "Grants permission to list all of the historical purchases, renewals, and system renewal transactions for an AWS account", + Privilege: "ListOfferingTransactions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain information about the directory snapshots that belong to this account", - Privilege: "DescribeSnapshots", + AccessLevel: "List", + Description: "Grants permission to list the products or offerings that the user can manage through the API", + Privilege: "ListOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -82979,9 +85594,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain information about the trust relationships for this account", - Privilege: "DescribeTrusts", + AccessLevel: "List", + Description: "Grants permission to list the information of mobile testing projects for an AWS account", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -82991,579 +85606,357 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the updates of a directory for a particular update type", - Privilege: "DescribeUpdateDirectory", + AccessLevel: "List", + Description: "Grants permission to list the information of currently running remote access sessions", + Privilege: "ListRemoteAccessSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable alternative client authentication methods for the specified directory", - Privilege: "DisableClientAuthentication", + AccessLevel: "List", + Description: "Grants permission to list the information of runs within a project", + Privilege: "ListRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate LDAP secure calls for the specified directory", - Privilege: "DisableLDAPS", + AccessLevel: "List", + Description: "Grants permission to list the information of samples within a project", + Privilege: "ListSamples", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector directory", - Privilege: "DisableRadius", + AccessLevel: "List", + Description: "Grants permission to list the information of testing suites within a job", + Privilege: "ListSuites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable AWS Management Console access for identity in your AWS Directory", - Privilege: "DisableRoleAccess", + AccessLevel: "List", + Description: "Grants permission to list the tags of a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable single-sign on for a directory", - Privilege: "DisableSso", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "deviceinstance", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable alternative client authentication methods for the specified directory", - Privilege: "EnableClientAuthentication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "devicepool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to activate the switch for the specific directory to always use LDAP secure calls", - Privilege: "EnableLDAPS", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "instanceprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector directory", - Privilege: "EnableRadius", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "networkprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable AWS Management Console access for identity in your AWS Directory", - Privilege: "EnableRoleAccess", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "directory*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable single-sign on for a directory", - Privilege: "EnableSso", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "run", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of the authorized applications on a directory", - Privilege: "GetAuthorizedApplicationDetails", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "session", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to obtain directory limit information for the current region", - Privilege: "GetDirectoryLimits", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "testgrid-project", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to obtain the manual snapshot limits for a directory", - Privilege: "GetSnapshotLimits", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-session", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to obtain the AWS applications authorized for a directory", - Privilege: "ListAuthorizedApplications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "vpceconfiguration", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the certificates registered for a secured LDAP connection, for the specified directory", - Privilege: "ListCertificates", + Description: "Grants permission to list the information of desktop testing projects for an AWS account", + Privilege: "ListTestGridProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the address blocks that you have added to a directory", - Privilege: "ListIpRoutes", + AccessLevel: "List", + Description: "Grants permission to list the session actions performed during a test grid session", + Privilege: "ListTestGridSessionActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-session*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the active log subscriptions for the AWS account", - Privilege: "ListLogSubscriptions", + AccessLevel: "List", + Description: "Grants permission to list the artifacts generated by a test grid session", + Privilege: "ListTestGridSessionArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "testgrid-session*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all schema extensions applied to a Microsoft AD Directory", - Privilege: "ListSchemaExtensions", + Description: "Grants permission to list the sessions within a test grid project", + Privilege: "ListTestGridSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags on an Amazon Directory Services directory", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list the information of tests within a testing suite", + Privilege: "ListTests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "suite*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a certificate for secured LDAP connection", - Privilege: "RegisterCertificate", + AccessLevel: "List", + Description: "Grants permission to list the information of unique problems within a run", + Privilege: "ListUniqueProblems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "run*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a directory with an SNS topic", - Privilege: "RegisterEventTopic", + AccessLevel: "List", + Description: "Grants permission to list the information of uploads within a project", + Privilege: "ListUploads", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sns:GetTopicAttributes", - }, - ResourceType: "directory*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject a directory sharing request that was sent from the directory owner account", - Privilege: "RejectSharedDirectory", + AccessLevel: "List", + Description: "Grants permission to list the information of Amazon Virtual Private Cloud (VPC) endpoint configurations", + Privilege: "ListVPCEConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove IP address blocks from a directory", - Privilege: "RemoveIpRoutes", + Description: "Grants permission to purchase offerings for an AWS account", + Privilege: "PurchaseOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop all replication and removes the domain controllers from the specified Region. You cannot remove the primary Region with this operation", - Privilege: "RemoveRegion", + Description: "Grants permission to set the quantity of devices to renew for an offering", + Privilege: "RenewOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Amazon Directory Services directory", - Privilege: "RemoveTagsFromResource", + AccessLevel: "Write", + Description: "Grants permission to schedule a run", + Privilege: "ScheduleRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteTags", - }, - ResourceType: "directory*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reset the password for any user in your AWS Managed Microsoft AD or Simple AD directory", - Privilege: "ResetUserPassword", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "devicepool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to restore a directory using an existing directory snapshot", - Privilege: "RestoreFromSnapshot", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "upload", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to share a specified directory in your AWS account (directory owner) with another AWS account (directory consumer). With this operation you can use your directory from any AWS account and from any Amazon VPC within an AWS Region", - Privilege: "ShareDirectory", + Description: "Grants permission to terminate a running job", + Privilege: "StopJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to apply a schema extension to a Microsoft AD directory", - Privilege: "StartSchemaExtension", + Description: "Grants permission to terminate a running remote access session", + Privilege: "StopRemoteAccessSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "session*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unauthorize an application from your AWS Directory", - Privilege: "UnauthorizeApplication", + Description: "Grants permission to terminate a running test run", + Privilege: "StopRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "run*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the directory sharing between the directory owner and consumer accounts", - Privilege: "UnshareDirectory", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an authorized application for your AWS Directory", - Privilege: "UpdateAuthorizedApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "deviceinstance", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a conditional forwarder that has been set up for your AWS directory", - Privilege: "UpdateConditionalForwarder", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "devicepool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the configurations like service account credentials or DNS server IP addresses for the specified directory", - Privilege: "UpdateDirectory", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "instanceprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the directory for a particular update type", - Privilege: "UpdateDirectorySetup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "networkprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add or remove domain controllers to or from the directory. Based on the difference between current value and new value (provided through this API call), domain controllers will be added or removed. It may take up to 45 minutes for any new domain controllers to become fully active once the requested number of domain controllers is updated. During this time, you cannot make another update request", - Privilege: "UpdateNumberOfDomainControllers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "project", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the Remote Authentication Dial In User Service (RADIUS) server information for an AD Connector directory", - Privilege: "UpdateRadius", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "run", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the configurable settings for the specified directory", - Privilege: "UpdateSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "session", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the trust that has been set up between your AWS Managed Microsoft AD directory and an on-premises Active Directory", - Privilege: "UpdateTrust", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-project", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to verify a trust relationship between your Microsoft AD in the AWS cloud and an external domain", - Privilege: "VerifyTrust", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "directory*", + ResourceType: "testgrid-session", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ds:${Region}:${Account}:directory/${DirectoryId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "directory", - }, - }, - ServiceName: "AWS Directory Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "dynamodb:Attributes", - Description: "Filters access by attribute (field or column) names of the table", - Type: "ArrayOfString", - }, - { - Condition: "dynamodb:EnclosingOperation", - Description: "Filters access by blocking Transactions APIs calls and allow the non-Transaction APIs calls and vice-versa", - Type: "String", - }, - { - Condition: "dynamodb:FullTableScan", - Description: "Filters access by blocking full table scan", - Type: "Bool", - }, - { - Condition: "dynamodb:LeadingKeys", - Description: "Filters access by the partition key of the table", - Type: "ArrayOfString", - }, - { - Condition: "dynamodb:ReturnConsumedCapacity", - Description: "Filters access by the ReturnConsumedCapacity parameter of a request. Contains either \"TOTAL\" or \"NONE\"", - Type: "String", - }, - { - Condition: "dynamodb:ReturnValues", - Description: "Filters access by the ReturnValues parameter of request. Contains one of the following: \"ALL_OLD\", \"UPDATED_OLD\",\"ALL_NEW\",\"UPDATED_NEW\", or \"NONE\"", - Type: "String", - }, - { - Condition: "dynamodb:Select", - Description: "Filters access by the Select parameter of a Query or Scan request", - Type: "String", - }, - }, - Prefix: "dynamodb", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to return the attributes of one or more items from one or more tables", - Privilege: "BatchGetItem", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "vpceconfiguration", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:Select", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -83571,130 +85964,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to put or delete multiple items in one or more tables", - Privilege: "BatchWriteItem", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "device", }, { - ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deviceinstance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to the ConditionCheckItem operation checks the existence of a set of attributes for the item with the given primary key", - Privilege: "ConditionCheckItem", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "devicepool", }, { - ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:ReturnValues", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instanceprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a backup for an existing table", - Privilege: "CreateBackup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "networkprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a global table from an existing table", - Privilege: "CreateGlobalTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-table*", + ResourceType: "project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "run", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to the CreateTable operation adds a new table to your account", - Privilege: "CreateTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "session", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add a new replica table", - Privilege: "CreateTableReplica", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "testgrid-project", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an existing backup of a table", - Privilege: "DeleteBackup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "testgrid-session", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deletes a single item in a table by primary key", - Privilege: "DeleteItem", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "vpceconfiguration", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:ReturnValues", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -83702,91 +86033,259 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the resource-based policy attached to the resource", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to modify an existing device instance", + Privilege: "UpdateDeviceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "deviceinstance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "instanceprofile", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the DeleteTable operation which deletes a table and all of its items", - Privilege: "DeleteTable", + Description: "Grants permission to modify an existing device pool", + Privilege: "UpdateDevicePool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "devicepool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a replica table and all of its items", - Privilege: "DeleteTableReplica", + Description: "Grants permission to modify an existing instance profile", + Privilege: "UpdateInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "instanceprofile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an existing backup of a table", - Privilege: "DescribeBackup", + AccessLevel: "Write", + Description: "Grants permission to modify an existing network profile", + Privilege: "UpdateNetworkProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "networkprofile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the status of the backup restore settings on the specified table", - Privilege: "DescribeContinuousBackups", + AccessLevel: "Write", + Description: "Grants permission to modify an existing mobile testing project", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table*", - }, - }, - }, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "project*", + }, + }, + }, { - AccessLevel: "Read", - Description: "Grants permission to describe the contributor insights status and related details for a given table or global secondary index", - Privilege: "DescribeContributorInsights", + AccessLevel: "Write", + Description: "Grants permission to modify an existing desktop testing project", + Privilege: "UpdateTestGridProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "testgrid-project*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an existing upload", + Privilege: "UpdateUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "upload*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an existing Amazon Virtual Private Cloud (VPC) endpoint configuration", + Privilege: "UpdateVPCEConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "vpceconfiguration*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:project:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "project", + }, { - AccessLevel: "Read", - Description: "Grants permission to return the regional endpoint information", - Privilege: "DescribeEndpoints", + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:run:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "run", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:job:${ResourceId}", + ConditionKeys: []string{}, + Resource: "job", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:suite:${ResourceId}", + ConditionKeys: []string{}, + Resource: "suite", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:test:${ResourceId}", + ConditionKeys: []string{}, + Resource: "test", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:upload:${ResourceId}", + ConditionKeys: []string{}, + Resource: "upload", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:artifact:${ResourceId}", + ConditionKeys: []string{}, + Resource: "artifact", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:sample:${ResourceId}", + ConditionKeys: []string{}, + Resource: "sample", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:networkprofile:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "networkprofile", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}::deviceinstance:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deviceinstance", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:session:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "session", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:devicepool:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "devicepool", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}::device:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "device", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:instanceprofile:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "instanceprofile", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:vpceconfiguration:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "vpceconfiguration", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:testgrid-project:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "testgrid-project", + }, + { + Arn: "arn:${Partition}:devicefarm:${Region}:${Account}:testgrid-session:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "testgrid-session", + }, + }, + ServiceName: "AWS Device Farm", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "devops-guru:ServiceNames", + Description: "Filters access by API to restrict access to given AWS service names", + Type: "ArrayOfString", + }, + }, + Prefix: "devops-guru", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add a notification channel to DevOps Guru", + Privilege: "AddNotificationChannel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sns:GetTopicAttributes", + "sns:SetTopicAttributes", + }, + ResourceType: "topic*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete specified insight in your account", + Privilege: "DeleteInsight", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -83797,68 +86296,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe an existing Export of a table", - Privilege: "DescribeExport", + Description: "Grants permission to view the health of operations in your AWS account", + Privilege: "DescribeAccountHealth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the specified global table", - Privilege: "DescribeGlobalTable", + Description: "Grants permission to view the health of operations within a time range in your AWS account", + Privilege: "DescribeAccountOverview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return settings information about the specified global table", - Privilege: "DescribeGlobalTableSettings", + Description: "Grants permission to list the details of a specified anomaly", + Privilege: "DescribeAnomaly", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an existing import", - Privilege: "DescribeImport", + Description: "Grants permission to retrieve details about event sources for DevOps Guru", + Privilege: "DescribeEventSourcesConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to grant permission to describe the status of Kinesis streaming and related details for a given table", - Privilege: "DescribeKinesisStreamingDestination", + Description: "Grants permission to view the feedback details of a specified insight", + Privilege: "DescribeFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the current provisioned-capacity limits for your AWS account in a region, both for the region as a whole and for any one DynamoDB table that you create there", - Privilege: "DescribeLimits", + Description: "Grants permission to list the details of a specified insight", + Privilege: "DescribeInsight", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -83869,8 +86368,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe one or more of the Reserved Capacity purchased", - Privilege: "DescribeReservedCapacity", + Description: "Grants permission to view the health of operations in your organization", + Privilege: "DescribeOrganizationHealth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -83881,8 +86380,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe Reserved Capacity offerings that are available for purchase", - Privilege: "DescribeReservedCapacityOfferings", + Description: "Grants permission to view the health of operations within a time range in your organization", + Privilege: "DescribeOrganizationOverview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -83893,171 +86392,198 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), the composition of its shards, and its corresponding DynamoDB table", - Privilege: "DescribeStream", + Description: "Grants permission to view the health of operations for each AWS CloudFormation stack or AWS Services or accounts specified in DevOps Guru in your organization", + Privilege: "DescribeOrganizationResourceCollectionHealth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the table", - Privilege: "DescribeTable", + Description: "Grants permission to view the health of operations for each AWS CloudFormation stack specified in DevOps Guru", + Privilege: "DescribeResourceCollectionHealth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the auto scaling settings across all replicas of the global table", - Privilege: "DescribeTableReplicaAutoScaling", + Description: "Grants permission to view the integration status of services that can be integrated with DevOps Guru", + Privilege: "DescribeServiceIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to give a description of the Time to Live (TTL) status on the specified table", - Privilege: "DescribeTimeToLive", + Description: "Grants permission to list service resource cost estimates", + Privilege: "GetCostEstimation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to grant permission to stop replication from the DynamoDB table to the Kinesis data stream", - Privilege: "DisableKinesisStreamingDestination", + AccessLevel: "Read", + Description: "Grants permission to list AWS CloudFormation stacks that DevOps Guru is configured to use", + Privilege: "GetResourceCollection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to grant permission to start table data replication to the specified Kinesis data stream at a timestamp chosen during the enable workflow", - Privilege: "EnableKinesisStreamingDestination", + AccessLevel: "List", + Description: "Grants permission to list anomalies of a given insight in your account", + Privilege: "ListAnomaliesForInsight", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "devops-guru:ServiceNames", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate an Export of a DynamoDB table to S3", - Privilege: "ExportTableToPointInTime", + AccessLevel: "List", + Description: "Grants permission to list log anomalies of a given insight in your account", + Privilege: "ListAnomalousLogGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to the GetItem operation that returns a set of attributes for the item with the given primary key", - Privilege: "GetItem", + AccessLevel: "List", + Description: "Grants permission to list resource events that are evaluated by DevOps Guru", + Privilege: "ListEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list insights in your account", + Privilege: "ListInsights", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:Select", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the stream records from a given shard", - Privilege: "GetRecords", + AccessLevel: "List", + Description: "Grants permission to list resource monitored by DevOps Guru in your account", + Privilege: "ListMonitoredResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a resource-based policy for a resource", - Privilege: "GetResourcePolicy", + AccessLevel: "List", + Description: "Grants permission to list notification channels configured for DevOps Guru in your account", + Privilege: "ListNotificationChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list insights in your organization", + Privilege: "ListOrganizationInsights", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a shard iterator", - Privilege: "GetShardIterator", + AccessLevel: "List", + Description: "Grants permission to list a specified insight's recommendations", + Privilege: "ListRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate an import from S3 to a DynamoDB table", - Privilege: "ImportTable", + Description: "Grants permission to submit a feedback to DevOps Guru", + Privilege: "PutFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a notification channel from DevOps Guru", + Privilege: "RemoveNotificationChannel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sns:GetTopicAttributes", + "sns:SetTopicAttributes", + }, + ResourceType: "topic*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list backups associated with the account and endpoint", - Privilege: "ListBackups", + Description: "Grants permission to search insights in your account", + Privilege: "SearchInsights", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "devops-guru:ServiceNames", + }, DependentActions: []string{}, ResourceType: "", }, @@ -84065,8 +86591,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the ContributorInsightsSummary for all tables and global secondary indexes associated with the current account and endpoint", - Privilege: "ListContributorInsights", + Description: "Grants permission to search insights in your organization", + Privilege: "SearchOrganizationInsights", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -84076,9 +86602,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list exports associated with the account and endpoint", - Privilege: "ListExports", + AccessLevel: "Read", + Description: "Grants permission to start the creation of an estimate of the monthly cost", + Privilege: "StartCostEstimation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -84088,9 +86614,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all global tables that have a replica in the specified region", - Privilege: "ListGlobalTables", + AccessLevel: "Write", + Description: "Grants permission to update an event source for DevOps Guru", + Privilege: "UpdateEventSourcesConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -84100,9 +86626,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list imports associated with the account and endpoint", - Privilege: "ListImports", + AccessLevel: "Write", + Description: "Grants permission to update the list of AWS CloudFormation stacks that are used to specify which AWS resources in your account are analyzed by DevOps Guru", + Privilege: "UpdateResourceCollection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -84112,9 +86638,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return an array of stream ARNs associated with the current account and endpoint", - Privilege: "ListStreams", + AccessLevel: "Write", + Description: "Grants permission to enable or disable a service that integrates with DevOps Guru", + Privilege: "UpdateServiceIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -84123,46 +86649,79 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to return an array of table names associated with the current account and endpoint", - Privilege: "ListTables", + Arn: "arn:${Partition}:sns:${Region}:${Account}:${TopicName}", + ConditionKeys: []string{}, + Resource: "topic", + }, + }, + ServiceName: "Amazon DevOps Guru", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "directconnect", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept a proposal request to attach a virtual private gateway to a Direct Connect gateway", + Privilege: "AcceptDirectConnectGatewayAssociationProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dx-gateway*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags on an Amazon DynamoDB resource", - Privilege: "ListTagsOfResource", + AccessLevel: "Write", + Description: "Grants permission to create a hosted connection on an interconnect", + Privilege: "AllocateConnectionOnInterconnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a single item in a table by primary key", - Privilege: "PartiQLDelete", + Description: "Grants permission to create a new hosted connection between a AWS Direct Connect partner's network and a specific AWS Direct Connect location", + Privilege: "AllocateHostedConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", - "dynamodb:ReturnValues", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -84171,19 +86730,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new item, if an item with same primary key does not exist in the table", - Privilege: "PartiQLInsert", + Description: "Grants permission to provision a private virtual interface to be owned by a different customer", + Privilege: "AllocatePrivateVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -84191,27 +86754,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to read a set of attributes for items from a table or index", - Privilege: "PartiQLSelect", + AccessLevel: "Write", + Description: "Grants permission to provision a public virtual interface to be owned by a different customer", + Privilege: "AllocatePublicVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "dxlag", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:FullTableScan", - "dynamodb:LeadingKeys", - "dynamodb:Select", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -84220,20 +86780,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to edit an existing item's attributes", - Privilege: "PartiQLUpdate", + Description: "Grants permission to provision a transit virtual interface to be owned by a different customer", + Privilege: "AllocateTransitVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", - "dynamodb:ReturnValues", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -84242,301 +86805,322 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to purchases reserved capacity for use with your account", - Privilege: "PurchaseReservedCapacityOfferings", + Description: "Grants permission to associate a connection with a LAG", + Privilege: "AssociateConnectionWithLag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxcon*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new item, or replace an old item with a new item", - Privilege: "PutItem", + Description: "Grants permission to associate a hosted connection and its virtual interfaces with a link aggregation group (LAG) or interconnect", + Privilege: "AssociateHostedConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon*", }, { - ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:ReturnValues", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a resource-based policy to the resource", - Privilege: "PutResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to associate a MAC Security (MACsec) Connection Key Name (CKN)/ Connectivity Association Key (CAK) pair with an AWS Direct Connect dedicated connection", + Privilege: "AssociateMacSecKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "dxcon", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxlag", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to use the primary key of a table or a secondary index to directly access items from that table or index", - Privilege: "Query", + AccessLevel: "Write", + Description: "Grants permission to associate a virtual interface with a specified link aggregation group (LAG) or connection", + Privilege: "AssociateVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxvif*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "dxcon", }, { - ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:ReturnValues", - "dynamodb:Select", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxlag", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new table from recovery point on AWS Backup", - Privilege: "RestoreTableFromAwsBackup", + Description: "Grants permission to confirm the creation of a hosted connection on an interconnect", + Privilege: "ConfirmConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new table from an existing backup", - Privilege: "RestoreTableFromBackup", + Description: "Grants permission to confirm the the terms of agreement when creating the connection or link aggregation group (LAG)", + Privilege: "ConfirmCustomerAgreement", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "dynamodb:BatchWriteItem", - "dynamodb:DeleteItem", - "dynamodb:GetItem", - "dynamodb:PutItem", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - }, - ResourceType: "backup*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore a table to a point in time", - Privilege: "RestoreTableToPointInTime", + Description: "Grants permission to accept ownership of a private virtual interface created by another customer", + Privilege: "ConfirmPrivateVirtualInterface", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "dynamodb:BatchWriteItem", - "dynamodb:DeleteItem", - "dynamodb:GetItem", - "dynamodb:PutItem", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - }, - ResourceType: "table*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return one or more items and item attributes by accessing every item in a table or a secondary index", - Privilege: "Scan", + AccessLevel: "Write", + Description: "Grants permission to accept ownership of a public virtual interface created by another customer", + Privilege: "ConfirmPublicVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxvif*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to accept ownership of a transit virtual interface created by another customer", + Privilege: "ConfirmTransitVirtualInterface", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "dxvif*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a BGP peer on the specified virtual interface", + Privilege: "CreateBGPPeer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:ReturnValues", - "dynamodb:Select", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxvif*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a backup on AWS Backup with advanced features enabled", - Privilege: "StartAwsBackupJob", + Description: "Grants permission to create a new connection between the customer network and a specific AWS Direct Connect location", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate a set of tags with an Amazon DynamoDB resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a Direct Connect gateway, which is an intermediate object that enables you to connect a set of virtual interfaces and virtual private gateways", + Privilege: "CreateDirectConnectGateway", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the association of tags from an Amazon DynamoDB resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create an association between a Direct Connect gateway and a virtual private gateway", + Privilege: "CreateDirectConnectGatewayAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dx-gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable continuous backups", - Privilege: "UpdateContinuousBackups", + Description: "Grants permission to create a proposal to associate the specified virtual private gateway with the specified Direct Connect gateway", + Privilege: "CreateDirectConnectGatewayAssociationProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dx-gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status for contributor insights for a specific table or global secondary index", - Privilege: "UpdateContributorInsights", + Description: "Grants permission to create a new interconnect between a AWS Direct Connect partner's network and a specific AWS Direct Connect location", + Privilege: "CreateInterconnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxlag", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or remove replicas in the specified global table", - Privilege: "UpdateGlobalTable", + Description: "Grants permission to create a link aggregation group (LAG) with the specified number of bundled physical connections between the customer network and a specific AWS Direct Connect location", + Privilege: "CreateLag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-table*", + ResourceType: "dxcon", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update settings of the specified global table", - Privilege: "UpdateGlobalTableSettings", + Description: "Grants permission to create a new private virtual interface", + Privilege: "CreatePrivateVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-table*", + ResourceType: "dxcon", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update version of the specified global table", - Privilege: "UpdateGlobalTableVersion", + Description: "Grants permission to create a new public virtual interface", + Privilege: "CreatePublicVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-table*", + ResourceType: "dxcon", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table", + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to edit an existing item's attributes, or adds a new item to the table if it does not already exist", - Privilege: "UpdateItem", + Description: "Grants permission to create a new transit virtual interface", + Privilege: "CreateTransitVirtualInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", }, { ConditionKeys: []string{ - "dynamodb:Attributes", - "dynamodb:EnclosingOperation", - "dynamodb:LeadingKeys", - "dynamodb:ReturnConsumedCapacity", - "dynamodb:ReturnValues", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -84545,141 +87129,143 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update data replication configurations for the specified Kinesis data stream", - Privilege: "UpdateKinesisStreamingDestination", + Description: "Grants permission to delete the specified BGP peer on the specified virtual interface with the specified customer address and ASN", + Privilege: "DeleteBGPPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxvif*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table", - Privilege: "UpdateTable", + Description: "Grants permission to delete the connection", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dxcon*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update auto scaling settings on your replica table", - Privilege: "UpdateTableReplicaAutoScaling", + Description: "Grants permission to delete the specified Direct Connect gateway", + Privilege: "DeleteDirectConnectGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dx-gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable TTL for the specified table", - Privilege: "UpdateTimeToLive", + Description: "Grants permission to delete the association between the specified Direct Connect gateway and virtual private gateway", + Privilege: "DeleteDirectConnectGatewayAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dx-gateway*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/index/${IndexName}", - ConditionKeys: []string{}, - Resource: "index", - }, - { - Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/stream/${StreamLabel}", - ConditionKeys: []string{}, - Resource: "stream", - }, { - Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}", - ConditionKeys: []string{}, - Resource: "table", - }, - { - Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/backup/${BackupName}", - ConditionKeys: []string{}, - Resource: "backup", - }, - { - Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/export/${ExportName}", - ConditionKeys: []string{}, - Resource: "export", - }, - { - Arn: "arn:${Partition}:dynamodb::${Account}:global-table/${GlobalTableName}", - ConditionKeys: []string{}, - Resource: "global-table", - }, - { - Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/import/${ImportName}", - ConditionKeys: []string{}, - Resource: "import", - }, - }, - ServiceName: "Amazon DynamoDB", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to delete the association proposal request between the specified Direct Connect gateway and virtual private gateway", + Privilege: "DeleteDirectConnectGatewayAssociationProposal", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to delete the specified interconnect", + Privilege: "DeleteInterconnect", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon*", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to delete the specified link aggregation group (LAG)", + Privilege: "DeleteLag", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag*", + }, + }, }, { - Condition: "ebs:Description", - Description: "Filters access by the description of the snapshot being created", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to delete a virtual interface", + Privilege: "DeleteVirtualInterface", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", + }, + }, }, { - Condition: "ebs:ParentSnapshot", - Description: "Filters access by the ID of the parent snapshot", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to describe the LOA-CFA for a Connection", + Privilege: "DescribeConnectionLoa", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon*", + }, + }, }, { - Condition: "ebs:VolumeSize", - Description: "Filters access by the size of the volume for the snapshot being created, in GiB", - Type: "Numeric", + AccessLevel: "Read", + Description: "Grants permission to describe all connections in this region", + Privilege: "DescribeConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + }, }, - }, - Prefix: "ebs", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to seal and complete the snapshot after all of the required blocks of data have been written to it", - Privilege: "CompleteSnapshot", + AccessLevel: "Read", + Description: "Grants permission to describe a list of connections that have been provisioned on the given interconnect", + Privilege: "DescribeConnectionsOnInterconnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "dxcon*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a list of customer agreements, along with their signed status and whether the customer is an NNIPartner, NNIPartnerV2, or a nonPartner", + Privilege: "DescribeCustomerMetadata", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -84687,856 +87273,1127 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the data of a block in an Amazon Elastic Block Store (EBS) snapshot", - Privilege: "GetSnapshotBlock", + Description: "Grants permission to describe one or more association proposals for connection between a virtual private gateway and a Direct Connect gateway", + Privilege: "DescribeDirectConnectGatewayAssociationProposals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "dx-gateway", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the associations between your Direct Connect gateways and virtual private gateways", + Privilege: "DescribeDirectConnectGatewayAssociations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dx-gateway", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the blocks that are different between two Amazon Elastic Block Store (EBS) snapshots of the same volume/snapshot lineage", - Privilege: "ListChangedBlocks", + Description: "Grants permission to describe the attachments between your Direct Connect gateways and virtual interfaces", + Privilege: "DescribeDirectConnectGatewayAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "dx-gateway", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe all your Direct Connect gateways or only the specified Direct Connect gateway", + Privilege: "DescribeDirectConnectGateways", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dx-gateway", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the blocks in an Amazon Elastic Block Store (EBS) snapshot", - Privilege: "ListSnapshotBlocks", + Description: "Grants permission to describe the hosted connections that have been provisioned on the specified interconnect or link aggregation group (LAG)", + Privilege: "DescribeHostedConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "dxcon", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxlag", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to write a block of data to a snapshot created by the StartSnapshot operation", - Privilege: "PutSnapshotBlock", + AccessLevel: "Read", + Description: "Grants permission to describe the LOA-CFA for an Interconnect", + Privilege: "DescribeInterconnectLoa", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxcon*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new EBS snapshot", - Privilege: "StartSnapshot", + AccessLevel: "Read", + Description: "Grants permission to describe a list of interconnects owned by the AWS account", + Privilege: "DescribeInterconnects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "dxcon", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe all your link aggregation groups (LAG) or the specified LAG", + Privilege: "DescribeLags", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ebs:Description", - "ebs:ParentSnapshot", - "ebs:VolumeSize", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dxlag", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}::snapshot/${SnapshotId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ebs:Description", - "ebs:ParentSnapshot", - "ebs:VolumeSize", + AccessLevel: "Read", + Description: "Grants permission to describe the LOA-CFA for a connection, interconnect, or link aggregation group (LAG)", + Privilege: "DescribeLoa", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", + }, }, - Resource: "snapshot", - }, - }, - ServiceName: "Amazon Elastic Block Store", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", }, { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", + AccessLevel: "Read", + Description: "Grants permission to describe the list of AWS Direct Connect locations in the current AWS region", + Privilege: "DescribeLocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:AccepterVpc", - Description: "Filters access by the ARN of an accepter VPC in a VPC peering connection", - Type: "ARN", + AccessLevel: "Read", + Description: "Grants permission to describe Details about the router for a virtual interface", + Privilege: "DescribeRouterConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", + }, + }, }, { - Condition: "ec2:Add/group", - Description: "Filters access by the group being added to a snapshot", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to describe the tags associated with the specified AWS Direct Connect resources", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dx-gateway", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif", + }, + }, }, { - Condition: "ec2:Add/userId", - Description: "Filters access by the account id being added to a snapshot", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to describe a list of virtual private gateways owned by the AWS account", + Privilege: "DescribeVirtualGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:AllocationId", - Description: "Filters access by the allocation ID of the Elastic IP address", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to describe all virtual interfaces for an AWS account", + Privilege: "DescribeVirtualInterfaces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif", + }, + }, }, { - Condition: "ec2:AssociatePublicIpAddress", - Description: "Filters access by whether the user wants to associate a public IP address with the instance", - Type: "Bool", + AccessLevel: "Write", + Description: "Grants permission to disassociate a connection from a link aggregation group (LAG)", + Privilege: "DisassociateConnectionFromLag", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag*", + }, + }, }, { - Condition: "ec2:Attribute", - Description: "Filters access by an attribute of a resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to remove the association between a MAC Security (MACsec) security key and an AWS Direct Connect dedicated connection", + Privilege: "DisassociateMacSecKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", + }, + }, }, { - Condition: "ec2:Attribute/${AttributeName}", - Description: "Filters access by an attribute being set on a resource", - Type: "String", + AccessLevel: "List", + Description: "Grants permission to list the virtual interface failover test history", + Privilege: "ListVirtualInterfaceTestHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", + }, + }, }, { - Condition: "ec2:AuthenticationType", - Description: "Filters access by the authentication type for the VPN tunnel endpoints", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to start the virtual interface failover test that verifies your configuration meets your resiliency requirements by placing the BGP peering session in the DOWN state. You can then send traffic to verify that there are no outages", + Privilege: "StartBgpFailoverTest", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", + }, + }, }, { - Condition: "ec2:AuthorizedService", - Description: "Filters access by the AWS service that has permission to use a resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to stop the virtual interface failover test", + Privilege: "StopBgpFailoverTest", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", + }, + }, }, { - Condition: "ec2:AuthorizedUser", - Description: "Filters access by an IAM principal that has permission to use a resource", - Type: "String", + AccessLevel: "Tagging", + Description: "Grants permission to add the specified tags to the specified AWS Direct Connect resource. Each resource can have a maximum of 50 tags", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dx-gateway", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:AutoPlacement", - Description: "Filters access by the Auto Placement properties of a Dedicated Host", - Type: "String", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified AWS Direct Connect resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dx-gateway", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:AvailabilityZone", - Description: "Filters access by the name of an Availability Zone in an AWS Region", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to update the AWS Direct Connect dedicated connection configuration. You can update the following parameters for a connection: The connection name or The connection's MAC Security (MACsec) encryption mode", + Privilege: "UpdateConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxcon*", + }, + }, }, { - Condition: "ec2:CapacityReservationFleet", - Description: "Filters access by the ARN of the Capacity Reservation Fleet", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to update the name of a Direct Connect gateway", + Privilege: "UpdateDirectConnectGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dx-gateway*", + }, + }, }, { - Condition: "ec2:ClientRootCertificateChainArn", - Description: "Filters access by the ARN of the client root certificate chain", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to update the specified attributes of the Direct Connect gateway association", + Privilege: "UpdateDirectConnectGatewayAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:CloudwatchLogGroupArn", - Description: "Filters access by the ARN of the CloudWatch Logs log group", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to update the attributes of the specified link aggregation group (LAG)", + Privilege: "UpdateLag", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxlag*", + }, + }, }, { - Condition: "ec2:CloudwatchLogStreamArn", - Description: "Filters access by the ARN of the CloudWatch Logs log stream", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to update the specified attributes of the specified virtual private interface", + Privilege: "UpdateVirtualInterfaceAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dxvif*", + }, + }, }, + }, + Resources: []ParliamentResource{ { - Condition: "ec2:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", + Arn: "arn:${Partition}:directconnect:${Region}:${Account}:dxcon/${ConnectionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dxcon", }, { - Condition: "ec2:DPDTimeoutSeconds", - Description: "Filters access by the duration after which DPD timeout occurs on a VPN tunnel", - Type: "Numeric", + Arn: "arn:${Partition}:directconnect:${Region}:${Account}:dxlag/${LagId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dxlag", }, { - Condition: "ec2:DhcpOptionsID", - Description: "Filters access by the ID of a dynamic host configuration protocol (DHCP) options set", - Type: "String", + Arn: "arn:${Partition}:directconnect:${Region}:${Account}:dxvif/${VirtualInterfaceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dxvif", }, { - Condition: "ec2:DirectoryArn", - Description: "Filters access by the ARN of the directory", - Type: "ARN", + Arn: "arn:${Partition}:directconnect::${Account}:dx-gateway/${DirectConnectGatewayId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dx-gateway", }, + }, + ServiceName: "AWS Direct Connect", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Condition: "ec2:Domain", - Description: "Filters access by the domain of the Elastic IP address", - Type: "String", + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "discovery", + Privileges: []ParliamentPrivilege{ { - Condition: "ec2:EbsOptimized", - Description: "Filters access by whether the instance is enabled for EBS optimization", - Type: "Bool", + AccessLevel: "Write", + Description: "Grants permission to AssociateConfigurationItemsToApplication API. AssociateConfigurationItemsToApplication associates one or more configuration items with an application", + Privilege: "AssociateConfigurationItemsToApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:ElasticGpuType", - Description: "Filters access by the type of Elastic Graphics accelerator", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to BatchDeleteAgents API. BatchDeleteAgents deletes one or more agents/data collectors associated with your account, each identified by its agent ID. Deleting a data collector does not delete the previous data collected", + Privilege: "BatchDeleteAgents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:Encrypted", - Description: "Filters access by whether the EBS volume is encrypted", - Type: "Bool", + AccessLevel: "Write", + Description: "Grants permission to BatchDeleteImportData API. BatchDeleteImportData deletes one or more Migration Hub import tasks, each identified by their import ID. Each import task has a number of records, which can identify servers or applications", + Privilege: "BatchDeleteImportData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:FisActionId", - Description: "Filters access by the ID of an AWS FIS action", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to CreateApplication API. CreateApplication creates an application with the given name and description", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:FisTargetArns", - Description: "Filters access by the ARN of an AWS FIS target", - Type: "ArrayOfARN", + AccessLevel: "Tagging", + Description: "Grants permission to CreateTags API. CreateTags creates one or more tags for configuration items. Tags are metadata that help you categorize IT assets. This API accepts a list of multiple configuration items", + Privilege: "CreateTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:GatewayType", - Description: "Filters access by the gateway type for a VPN endpoint on the AWS side of a VPN connection", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to DeleteApplications API. DeleteApplications deletes a list of applications and their associations with configuration items", + Privilege: "DeleteApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:HostRecovery", - Description: "Filters access by whether host recovery is enabled for a Dedicated Host", - Type: "String", + AccessLevel: "Tagging", + Description: "Grants permission to DeleteTags API. DeleteTags deletes the association between configuration items and one or more tags. This API accepts a list of multiple configuration items", + Privilege: "DeleteTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:IKEVersions", - Description: "Filters access by the internet key exchange (IKE) versions that are permitted for a VPN tunnel", - Type: "ArrayOfString", + AccessLevel: "Read", + Description: "Grants permission to DescribeAgents API. DescribeAgents lists agents or the Connector by ID or lists all agents/Connectors associated with your user if you did not specify an ID", + Privilege: "DescribeAgents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:ImageID", - Description: "Filters access by the ID of an image", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to DescribeBatchDeleteConfigurationTask API. DescribeBatchDeleteConfigurationTask returns attributes about a batched deletion task to delete a set of configuration items. The supplied task ID should be the task ID receieved from the output of StartBatchDeleteConfigurationTask", + Privilege: "DescribeBatchDeleteConfigurationTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:ImageType", - Description: "Filters access by the type of image (machine, aki, or ari)", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to DescribeConfigurations API. DescribeConfigurations retrieves attributes for a list of configuration item IDs. All of the supplied IDs must be for the same asset type (server, application, process, or connection). Output fields are specific to the asset type selected. For example, the output for a server configuration item includes a list of attributes about the server, such as host name, operating system, and number of network cards", + Privilege: "DescribeConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InsideTunnelCidr", - Description: "Filters access by the range of inside IP addresses for a VPN tunnel", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to DescribeContinuousExports API. DescribeContinuousExports lists exports as specified by ID. All continuous exports associated with your user can be listed if you call DescribeContinuousExports as is without passing any parameters", + Privilege: "DescribeContinuousExports", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InsideTunnelIpv6Cidr", - Description: "Filters access by a range of inside IPv6 addresses for a VPN tunnel", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to DescribeExportConfigurations API. DescribeExportConfigurations retrieves the status of a given export process. You can retrieve status from a maximum of 100 processes", + Privilege: "DescribeExportConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InstanceAutoRecovery", - Description: "Filters access by whether the instance type supports auto recovery", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to DescribeExportTasks API. DescribeExportTasks retrieve status of one or more export tasks. You can retrieve the status of up to 100 export tasks", + Privilege: "DescribeExportTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InstanceID", - Description: "Filters access by the ID of an instance", - Type: "String", + AccessLevel: "List", + Description: "Grants permission to DescribeImportTasks API. DescribeImportTasks returns an array of import tasks for your user, including status information, times, IDs, the Amazon S3 Object URL for the import file, and more", + Privilege: "DescribeImportTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InstanceMarketType", - Description: "Filters access by the market or purchasing option of an instance (capacity-block, on-demand, or spot)", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to DescribeTags API. DescribeTags retrieves a list of configuration items that are tagged with a specific tag. Or retrieves a list of all tags assigned to a specific configuration item", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InstanceMetadataTags", - Description: "Filters access by whether the instance allows access to instance tags from the instance metadata", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to DisassociateConfigurationItemsFromApplication API. DisassociateConfigurationItemsFromApplication disassociates one or more configuration items from an application", + Privilege: "DisassociateConfigurationItemsFromApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InstanceProfile", - Description: "Filters access by the ARN of an instance profile", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to ExportConfigurations API. ExportConfigurations exports all discovered configuration data to an Amazon S3 bucket or an application that enables you to view and evaluate the data. Data includes tags and tag associations, processes, connections, servers, and system performance", + Privilege: "ExportConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InstanceType", - Description: "Filters access by the type of instance", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to GetDiscoverySummary API. GetDiscoverySummary retrieves a short summary of discovered assets", + Privilege: "GetDiscoverySummary", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:InternetGatewayID", - Description: "Filters access by the ID of an internet gateway", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to GetNetworkConnectionGraph API. GetNetworkConnectionGraph accepts input list of one of - Ip Addresses, server ids or node ids. Returns a list of nodes and edges which help customer visualize network connection graph. This API is used for visualize network graph functionality in MigrationHub console", + Privilege: "GetNetworkConnectionGraph", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:Ipv4IpamPoolId", - Description: "Filters access by the ID of an IPAM pool provided for IPv4 CIDR block allocation", - Type: "String", + AccessLevel: "List", + Description: "Grants permission to ListConfigurations API. ListConfigurations retrieves a list of configuration items according to criteria you specify in a filter. The filter criteria identify relationship requirements", + Privilege: "ListConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:Ipv6IpamPoolId", - Description: "Filters access by the ID of an IPAM pool provided for IPv6 CIDR block allocation", - Type: "String", + AccessLevel: "List", + Description: "Grants permission to ListServerNeighbors API. ListServerNeighbors retrieves a list of servers which are one network hop away from a specified server", + Privilege: "ListServerNeighbors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:IsLaunchTemplateResource", - Description: "Filters access by whether users are able to override resources that are specified in the launch template", - Type: "Bool", + AccessLevel: "Write", + Description: "Grants permission to StartBatchDeleteConfigurationTask API. StartBatchDeleteConfigurationTask starts an asynchronous batch deletion of your configuration items. All of the supplied IDs must be for the same asset type (server, application, process, or connection). Output is a unique task ID you can use to check back on the deletions progress", + Privilege: "StartBatchDeleteConfigurationTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:KeyPairName", - Description: "Filters access by the name of a key pair", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to StartContinuousExport API. StartContinuousExport start the continuous flow of agent's discovered data into Amazon Athena", + Privilege: "StartContinuousExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AttachRolePolicy", + "iam:CreatePolicy", + "iam:CreateRole", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", + }, + }, }, { - Condition: "ec2:KeyPairType", - Description: "Filters access by the type of a key pair", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to StartDataCollectionByAgentIds API. StartDataCollectionByAgentIds instructs the specified agents or Connectors to start collecting data", + Privilege: "StartDataCollectionByAgentIds", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:KmsKeyId", - Description: "Filters access by the ID of an AWS KMS key provided in the request", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to StartExportTask API. StartExportTask export the configuration data about discovered configuration items and relationships to an S3 bucket in a specified format", + Privilege: "StartExportTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:LaunchTemplate", - Description: "Filters access by the ARN of a launch template", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to StartImportTask API. StartImportTask starts an import task. The Migration Hub import feature allows you to import details of your on-premises environment directly into AWS without having to use the Application Discovery Service (ADS) tools such as the Discovery Connector or Discovery Agent. This gives you the option to perform migration assessment and planning directly from your imported data including the ability to group your devices as applications and track their migration status", + Privilege: "StartImportTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "discovery:AssociateConfigurationItemsToApplication", + "discovery:CreateApplication", + "discovery:CreateTags", + "discovery:GetDiscoverySummary", + "discovery:ListConfigurations", + "s3:GetObject", + }, + ResourceType: "", + }, + }, }, { - Condition: "ec2:MetadataHttpEndpoint", - Description: "Filters access by whether the HTTP endpoint is enabled for the instance metadata service", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to StopContinuousExport API. StopContinuousExport stops the continuous flow of agent's discovered data into Amazon Athena", + Privilege: "StopContinuousExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:MetadataHttpPutResponseHopLimit", - Description: "Filters access by the allowed number of hops when calling the instance metadata service", - Type: "Numeric", + AccessLevel: "Write", + Description: "Grants permission to StopDataCollectionByAgentIds API. StopDataCollectionByAgentIds instructs the specified agents or Connectors to stop collecting data", + Privilege: "StopDataCollectionByAgentIds", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:MetadataHttpTokens", - Description: "Filters access by whether tokens are required when calling the instance metadata service (optional or required)", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to UpdateApplication API. UpdateApplication updates metadata about an application", + Privilege: "UpdateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Application Discovery Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Condition: "ec2:NetworkAclID", - Description: "Filters access by the ID of a network access control list (ACL)", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { - Condition: "ec2:NetworkInterfaceID", - Description: "Filters access by the ID of an elastic network interface", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", Type: "String", }, { - Condition: "ec2:NewInstanceProfile", - Description: "Filters access by the ARN of the instance profile being attached", - Type: "ARN", + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "dlm", + Privileges: []ParliamentPrivilege{ { - Condition: "ec2:OutpostArn", - Description: "Filters access by the ARN of the Outpost", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to create a data lifecycle policy to manage the scheduled creation and retention of Amazon EBS snapshots. You may have up to 100 policies", + Privilege: "CreateLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:Owner", - Description: "Filters access by the owner of the resource (amazon, aws-marketplace, or an AWS account ID)", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to delete an existing data lifecycle policy. In addition, this action halts the creation and deletion of snapshots that the policy specified. Existing snapshots are not affected", + Privilege: "DeleteLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, }, { - Condition: "ec2:ParentSnapshot", - Description: "Filters access by the ARN of the parent snapshot", - Type: "ARN", + AccessLevel: "List", + Description: "Grants permission to returns a list of summary descriptions of data lifecycle policies", + Privilege: "GetLifecyclePolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:ParentVolume", - Description: "Filters access by the ARN of the parent volume from which the snapshot was created", - Type: "ARN", + AccessLevel: "Read", + Description: "Grants permission to return a complete description of a single data lifecycle policy", + Privilege: "GetLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, }, { - Condition: "ec2:Permission", - Description: "Filters access by the type of permission for a resource (INSTANCE-ATTACH or EIP-ASSOCIATE)", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to list the tags associated with a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, }, { - Condition: "ec2:Phase1DHGroup", - Description: "Filters access by the Diffie-Hellman group numbers that are permitted for a VPN tunnel for the phase 1 IKE negotiations", - Type: "ArrayOfString", + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags of a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:Phase1EncryptionAlgorithms", - Description: "Filters access by the encryption algorithms that are permitted for a VPN tunnel for the phase 1 IKE negotiations", - Type: "ArrayOfString", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ec2:Phase1IntegrityAlgorithms", - Description: "Filters access by the integrity algorithms that are permitted for a VPN tunnel for the phase 1 IKE negotiations", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to update an existing data lifecycle policy", + Privilege: "UpdateLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, }, + }, + Resources: []ParliamentResource{ { - Condition: "ec2:Phase1LifetimeSeconds", - Description: "Filters access by the lifetime in seconds for phase 1 of the IKE negotiations for a VPN tunnel", - Type: "Numeric", + Arn: "arn:${Partition}:dlm:${Region}:${Account}:policy/${ResourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "policy", }, + }, + ServiceName: "Amazon Data Lifecycle Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Condition: "ec2:Phase2DHGroup", - Description: "Filters access by the Diffie-Hellman group numbers that are permitted for a VPN tunnel for the phase 2 IKE negotiations", - Type: "ArrayOfString", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", }, { - Condition: "ec2:Phase2EncryptionAlgorithms", - Description: "Filters access by the encryption algorithms that are permitted for a VPN tunnel for the phase 2 IKE negotiations", - Type: "ArrayOfString", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Type: "String", }, { - Condition: "ec2:Phase2IntegrityAlgorithms", - Description: "Filters access by the integrity algorithms that are permitted for a VPN tunnel for the phase 2 IKE negotiations", + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, { - Condition: "ec2:Phase2LifetimeSeconds", - Description: "Filters access by the lifetime in seconds for phase 2 of the IKE negotiations for a VPN tunnel", - Type: "Numeric", - }, - { - Condition: "ec2:PlacementGroup", - Description: "Filters access by the ARN of the placement group", - Type: "ARN", - }, - { - Condition: "ec2:PlacementGroupName", - Description: "Filters access by the name of a placement group", + Condition: "dms:assessment-run-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for AssessmentRun", Type: "String", }, { - Condition: "ec2:PlacementGroupStrategy", - Description: "Filters access by the instance placement strategy used by the placement group (cluster, spread, or partition)", + Condition: "dms:cert-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for Certificate", Type: "String", }, { - Condition: "ec2:ProductCode", - Description: "Filters access by the product code that is associated with the AMI", + Condition: "dms:data-migration-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for DataMigration", Type: "String", }, { - Condition: "ec2:Public", - Description: "Filters access by whether the image has public launch permissions", - Type: "Bool", - }, - { - Condition: "ec2:PublicIpAddress", - Description: "Filters access by a public IP address", + Condition: "dms:data-provider-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for DataProvider", Type: "String", }, { - Condition: "ec2:Quantity", - Description: "Filters access by the number of Dedicated Hosts in a request", - Type: "Numeric", - }, - { - Condition: "ec2:Region", - Description: "Filters access by the name of the AWS Region", + Condition: "dms:endpoint-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for Endpoint", Type: "String", }, { - Condition: "ec2:RekeyFuzzPercentage", - Description: "Filters access by the percentage of increase of the rekey window (determined by the rekey margin time) within which the rekey time is randomly selected for a VPN tunnel", - Type: "Numeric", + Condition: "dms:es-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for EventSubscription", + Type: "String", }, { - Condition: "ec2:RekeyMarginTimeSeconds", - Description: "Filters access by the margin time before the phase 2 lifetime expires for a VPN tunnel", - Type: "Numeric", + Condition: "dms:individual-assessment-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for IndividualAssessment", + Type: "String", }, { - Condition: "ec2:Remove/group", - Description: "Filters access by the group being removed from a snapshot", + Condition: "dms:instance-profile-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for InstanceProfile", Type: "String", }, { - Condition: "ec2:Remove/userId", - Description: "Filters access by the account id being removed from a snapshot", + Condition: "dms:migration-project-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for MigrationProject", Type: "String", }, { - Condition: "ec2:ReplayWindowSizePackets", - Description: "Filters access by the number of packets in an IKE replay window", + Condition: "dms:rep-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationInstance", Type: "String", }, { - Condition: "ec2:RequesterVpc", - Description: "Filters access by the ARN of a requester VPC in a VPC peering connection", - Type: "ARN", + Condition: "dms:replication-config-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationConfig", + Type: "String", }, { - Condition: "ec2:ReservedInstancesOfferingType", - Description: "Filters access by the payment option of the Reserved Instance offering (No Upfront, Partial Upfront, or All Upfront)", + Condition: "dms:req-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the given request", Type: "String", }, { - Condition: "ec2:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", + Condition: "dms:subgrp-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationSubnetGroup", Type: "String", }, { - Condition: "ec2:RoleDelivery", - Description: "Filters access by the version of the instance metadata service for retrieving IAM role credentials for EC2", - Type: "Numeric", - }, - { - Condition: "ec2:RootDeviceType", - Description: "Filters access by the root device type of the instance (ebs or instance-store)", - Type: "String", - }, - { - Condition: "ec2:RouteTableID", - Description: "Filters access by the ID of a route table", - Type: "String", - }, - { - Condition: "ec2:RoutingType", - Description: "Filters access by the routing type for the VPN connection", - Type: "String", - }, - { - Condition: "ec2:SamlProviderArn", - Description: "Filters access by the ARN of the IAM SAML identity provider", - Type: "ARN", - }, - { - Condition: "ec2:SecurityGroupID", - Description: "Filters access by the ID of a security group", - Type: "String", - }, - { - Condition: "ec2:ServerCertificateArn", - Description: "Filters access by the ARN of the server certificate", - Type: "ARN", - }, - { - Condition: "ec2:SnapshotCoolOffPeriod", - Description: "Filters access by the compliance mode cooling-off period", - Type: "Numeric", - }, - { - Condition: "ec2:SnapshotID", - Description: "Filters access by the ID of a snapshot", - Type: "String", - }, - { - Condition: "ec2:SnapshotLockDuration", - Description: "Filters access by the snapshot lock duration", - Type: "Numeric", - }, - { - Condition: "ec2:SnapshotTime", - Description: "Filters access by the initiation time of a snapshot", - Type: "String", - }, - { - Condition: "ec2:SourceInstanceARN", - Description: "Filters access by the ARN of the instance from which the request originated", - Type: "ARN", - }, - { - Condition: "ec2:SourceOutpostArn", - Description: "Filters access by the ARN of the Outpost from which the request originated", - Type: "ARN", - }, - { - Condition: "ec2:Subnet", - Description: "Filters access by the ARN of the subnet", - Type: "ARN", - }, - { - Condition: "ec2:SubnetID", - Description: "Filters access by the ID of a subnet", - Type: "String", - }, - { - Condition: "ec2:Tenancy", - Description: "Filters access by the tenancy of the VPC or instance (default, dedicated, or host)", - Type: "String", - }, - { - Condition: "ec2:VolumeID", - Description: "Filters access by the ID of a volume", - Type: "String", - }, - { - Condition: "ec2:VolumeIops", - Description: "Filters access by the the number of input/output operations per second (IOPS) provisioned for the volume", - Type: "Numeric", - }, - { - Condition: "ec2:VolumeSize", - Description: "Filters access by the size of the volume, in GiB", - Type: "Numeric", - }, - { - Condition: "ec2:VolumeThroughput", - Description: "Filters access by the throughput of the volume, in MiBps", - Type: "Numeric", - }, - { - Condition: "ec2:VolumeType", - Description: "Filters access by the type of volume (gp2, gp3, io1, io2, st1, sc1, or standard)", - Type: "String", - }, - { - Condition: "ec2:Vpc", - Description: "Filters access by the ARN of the VPC", - Type: "ARN", - }, - { - Condition: "ec2:VpcID", - Description: "Filters access by the ID of a virtual private cloud (VPC)", - Type: "String", - }, - { - Condition: "ec2:VpcPeeringConnectionID", - Description: "Filters access by the ID of a VPC peering connection", - Type: "String", - }, - { - Condition: "ec2:VpceServiceName", - Description: "Filters access by the name of the VPC endpoint service", - Type: "String", - }, - { - Condition: "ec2:VpceServiceOwner", - Description: "Filters access by the service owner of the VPC endpoint service (amazon, aws-marketplace, or an AWS account ID)", - Type: "String", - }, - { - Condition: "ec2:VpceServicePrivateDnsName", - Description: "Filters access by the private DNS name of the VPC endpoint service", - Type: "String", - }, - { - Condition: "ec2:transitGatewayAttachmentId", - Description: "Filters access by the ID of a transit gateway attachment", - Type: "String", - }, - { - Condition: "ec2:transitGatewayConnectPeerId", - Description: "Filters access by the ID of a transit gateway connect peer", - Type: "String", - }, - { - Condition: "ec2:transitGatewayId", - Description: "Filters access by the ID of a transit gateway", - Type: "String", - }, - { - Condition: "ec2:transitGatewayMulticastDomainId", - Description: "Filters access by the ID of a transit gateway multicast domain", - Type: "String", - }, - { - Condition: "ec2:transitGatewayPolicyTableId", - Description: "Filters access by the ID of a transit gateway policy table", - Type: "String", - }, - { - Condition: "ec2:transitGatewayRouteTableAnnouncementId", - Description: "Filters access by the ID of a transit gateway route table announcement", - Type: "String", - }, - { - Condition: "ec2:transitGatewayRouteTableId", - Description: "Filters access by the ID of a transit gateway route table", + Condition: "dms:task-tag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request for ReplicationTask", Type: "String", }, }, - Prefix: "ec2", + Prefix: "dms", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept an Elastic IP address transfer", - Privilege: "AcceptAddressTransfer", + AccessLevel: "Tagging", + Description: "Grants permission to add metadata tags to DMS resources, including replication instances, endpoints, security groups, and migration tasks", + Privilege: "AddTagsToResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "elastic-ip*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Certificate", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataMigration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to accept a Convertible Reserved Instance exchange quote", - Privilege: "AcceptReservedInstancesExchangeQuote", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataProvider", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to accept a request to associate subnets with a transit gateway multicast domain", - Privilege: "AcceptTransitGatewayMulticastDomainAssociations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "Endpoint", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain", + ResourceType: "EventSubscription", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "InstanceProfile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to accept a transit gateway peering attachment request", - Privilege: "AcceptTransitGatewayPeeringAttachment", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "MigrationProject", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationConfig", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to accept a request to attach a VPC to a transit gateway", - Privilege: "AcceptTransitGatewayVpcAttachment", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "ReplicationInstance", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationSubnetGroup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to accept one or more interface VPC endpoint connections to your VPC endpoint service", - Privilege: "AcceptVpcEndpointConnections", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "ReplicationTask", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationTaskAssessmentRun", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationTaskIndividualAssessment", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -85545,34 +88402,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to accept a VPC peering connection request", - Privilege: "AcceptVpcPeeringConnection", + Description: "Grants permission to apply a pending maintenance action to a resource (for example, to a replication instance)", + Privilege: "ApplyPendingMaintenanceAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "ReplicationInstance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a extension pack", + Privilege: "AssociateExtensionPack", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AccepterVpc", - "ec2:RequesterVpc", - "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-peering-connection*", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the analysis of up to 20 source databases to recommend target engines for each source database", + Privilege: "BatchStartRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -85580,44 +88438,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to advertise an IP address range that is provisioned for use in AWS through bring your own IP addresses (BYOIP)", - Privilege: "AdvertiseByoipCidr", + Description: "Grants permission to cancel a single premigration assessment run", + Privilege: "CancelReplicationTaskAssessmentRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTaskAssessmentRun*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allocate an Elastic IP address (EIP) to your account", - Privilege: "AllocateAddress", + Description: "Grants permission to create a database migration using the provided settings", + Privilege: "CreateDataMigration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "iam:PassRole", }, - ResourceType: "elastic-ip*", + ResourceType: "MigrationProject*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "ipv4pool-ec2", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -85626,97 +88474,115 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to allocate a Dedicated Host to your account", - Privilege: "AllocateHosts", + Description: "Grants permission to create an data provider using the provided settings", + Privilege: "CreateDataProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "ec2:AutoPlacement", - "ec2:AvailabilityZone", - "ec2:HostRecovery", - "ec2:InstanceType", - "ec2:Quantity", + "dms:req-tag/${TagKey}", }, DependentActions: []string{ - "ec2:CreateTags", + "iam:PassRole", }, - ResourceType: "dedicated-host*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an endpoint using the provided settings", + Privilege: "CreateEndpoint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allocate a CIDR from an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "AllocateIpamPoolCidr", + Description: "Grants permission to create an AWS DMS event notification subscription", + Privilege: "CreateEventSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Fleet Advisor collector using the specified parameters", + Privilege: "CreateFleetAdvisorCollector", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to apply a security group to the association between a Client VPN endpoint and a target network", - Privilege: "ApplySecurityGroupsToClientVpnTargetNetwork", + Description: "Grants permission to create an instance profile using the provided settings", + Privilege: "CreateInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an migration project using the provided settings", + Privilege: "CreateMigrationProject", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "DataProvider*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "InstanceProfile*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -85725,24 +88591,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to assign one or more IPv6 addresses to a network interface", - Privilege: "AssignIpv6Addresses", + Description: "Grants permission to create a replication config using the provided settings", + Privilege: "CreateReplicationConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "Endpoint*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -85751,46 +88613,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to assign one or more secondary private IP addresses to a network interface", - Privilege: "AssignPrivateIpAddresses", + Description: "Grants permission to create a replication instance using the specified parameters", + Privilege: "CreateReplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "network-interface*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to assign one or more secondary private IP addresses to a private NAT gateway", - Privilege: "AssignPrivateNatGatewayAddress", + Description: "Grants permission to create a replication subnet group given a list of the subnet IDs in a VPC", + Privilege: "CreateReplicationSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "natgateway*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -85799,58 +88649,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate an Elastic IP address (EIP) with an instance or a network interface", - Privilege: "AssociateAddress", + Description: "Grants permission to create a replication task using the specified parameters", + Privilege: "CreateReplicationTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-ip", + ResourceType: "Endpoint*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "ReplicationInstance*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, - DependentActions: []string{}, - ResourceType: "network-interface", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "dms:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -85859,93 +88676,88 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate a target network with a Client VPN endpoint", - Privilege: "AssociateClientVpnTargetNetwork", + Description: "Grants permission to delete the specified certificate", + Privilege: "DeleteCertificate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "Certificate*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified connection between a replication instance and an endpoint", + Privilege: "DeleteConnection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "Endpoint*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationInstance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate or disassociate a set of DHCP options with a VPC", - Privilege: "AssociateDhcpOptions", + Description: "Grants permission to delete the specified database migration", + Privilege: "DeleteDataMigration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:DhcpOptionsID", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "dhcp-options*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "DataMigration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified data provider", + Privilege: "DeleteDataProvider", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataProvider*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an ACM certificate with an IAM role to be used in an EC2 Enclave", - Privilege: "AssociateEnclaveCertificateIamRole", + Description: "Grants permission to delete the specified endpoint", + Privilege: "DeleteEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificate*", + ResourceType: "Endpoint*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS DMS event subscription", + Privilege: "DeleteEventSubscription", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "EventSubscription*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified Fleet Advisor collector", + Privilege: "DeleteFleetAdvisorCollector", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -85953,39 +88765,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate an IAM instance profile with a running or stopped instance", - Privilege: "AssociateIamInstanceProfile", + Description: "Grants permission to delete the specified Fleet Advisor databases", + Privilege: "DeleteFleetAdvisorDatabases", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:NewInstanceProfile", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -85993,1073 +88777,798 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate one or more targets with an event window", - Privilege: "AssociateInstanceEventWindow", + Description: "Grants permission to delete the specified instance profile", + Privilege: "DeleteInstanceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "instance-event-window*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "InstanceProfile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an Autonomous System Number (ASN) with a BYOIP CIDR", - Privilege: "AssociateIpamByoasn", + Description: "Grants permission to delete the specified migration project", + Privilege: "DeleteMigrationProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an IPAM resource discovery with an Amazon VPC IPAM", - Privilege: "AssociateIpamResourceDiscovery", + Description: "Grants permission to delete the specified replication config", + Privilege: "DeleteReplicationConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "ipam*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery*", + ResourceType: "ReplicationConfig*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified replication instance", + Privilege: "DeleteReplicationInstance", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery-association*", + ResourceType: "ReplicationInstance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deletes a subnet group", + Privilege: "DeleteReplicationSubnetGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationSubnetGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an Elastic IP address and private IP address with a public Nat gateway", - Privilege: "AssociateNatGatewayAddress", + Description: "Grants permission to delete the specified replication task", + Privilege: "DeleteReplicationTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-ip*", + ResourceType: "ReplicationTask*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the record of a single premigration assessment run", + Privilege: "DeleteReplicationTaskAssessmentRun", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "natgateway*", + ResourceType: "ReplicationTaskAssessmentRun*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all of the AWS DMS attributes for a customer account", + Privilege: "DescribeAccountAttributes", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a subnet or gateway with a route table", - Privilege: "AssociateRouteTable", + AccessLevel: "Read", + Description: "Grants permission to list individual assessments that you can specify for a new premigration assessment run", + Privilege: "DescribeApplicableIndividualAssessments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", - }, - DependentActions: []string{}, - ResourceType: "route-table*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "internet-gateway", + ResourceType: "ReplicationInstance", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "ReplicationTask", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide a description of the certificate", + Privilege: "DescribeCertificates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the status of the connections that have been made between the replication instance and an endpoint", + Privilege: "DescribeConnections", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a CIDR block with a subnet", - Privilege: "AssociateSubnetCidrBlock", + AccessLevel: "Read", + Description: "Grants permission to return information about DMS Schema Conversion project configuration", + Privilege: "DescribeConversionConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about database migrations for your account in the specified region", + Privilege: "DescribeDataMigrations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the possible endpoint settings available when you create an endpoint for a specific database engine", + Privilege: "DescribeEndpointSettings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an attachment and list of subnets with a transit gateway multicast domain", - Privilege: "AssociateTransitGatewayMulticastDomain", + AccessLevel: "Read", + Description: "Grants permission to return information about the type of endpoints available", + Privilege: "DescribeEndpointTypes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the endpoints for your account in the current region", + Privilege: "DescribeEndpoints", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the available versions for DMS replication instances", + Privilege: "DescribeEngineVersions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list categories for all event source types, or, if specified, for a specified source type", + Privilege: "DescribeEventCategories", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a policy table with a transit gateway attachment", - Privilege: "AssociateTransitGatewayPolicyTable", + AccessLevel: "Read", + Description: "Grants permission to list all the event subscriptions for a customer account", + Privilege: "DescribeEventSubscriptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", - }, - DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list events for a given source identifier and source type", + Privilege: "DescribeEvents", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an attachment with a transit gateway route table", - Privilege: "AssociateTransitGatewayRouteTable", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of Fleet Advisor collectors in your account based on filter settings", + Privilege: "DescribeFleetAdvisorCollectors", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, - DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", - }, - DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a branch network interface with a trunk network interface", - Privilege: "AssociateTrunkInterface", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of Fleet Advisor databases in your account based on filter settings", + Privilege: "DescribeFleetAdvisorDatabases", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an AWS Web Application Firewall (WAF) web access control list (ACL) with a Verified Access instance", - Privilege: "AssociateVerifiedAccessInstanceWebAcl", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of descriptions of large-scale assessment (LSA) analyses produced by your Fleet Advisor collectors", + Privilege: "DescribeFleetAdvisorLsaAnalysis", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of descriptions of schemas discovered by your Fleet Advisor collectors based on filter settings", + Privilege: "DescribeFleetAdvisorSchemaObjectSummary", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a CIDR block with a VPC", - Privilege: "AssociateVpcCidrBlock", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of schemas discovered by your Fleet Advisor collectors based on filter settings", + Privilege: "DescribeFleetAdvisorSchemas", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Ipv4IpamPoolId", - "ec2:Ipv6IpamPoolId", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about start metadata model import operations for a migration project", + Privilege: "DescribeMetadataModelImports", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the replication instance types that can be created in the specified region", + Privilege: "DescribeOrderableReplicationInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipv6pool-ec2", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about pending maintenance actions", + Privilege: "DescribePendingMaintenanceActions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to link an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups", - Privilege: "AttachClassicLinkVpc", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of descriptions of limitations for recommendations of target AWS engines", + Privilege: "DescribeRecommendationLimitations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of descriptions of target engine recommendations for your source databases", + Privilege: "DescribeRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to returns the status of the RefreshSchemas operation", + Privilege: "DescribeRefreshSchemasStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "Endpoint*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe replication configs", + Privilege: "DescribeReplicationConfigs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach an internet gateway to a VPC", - Privilege: "AttachInternetGateway", + AccessLevel: "Read", + Description: "Grants permission to return information about the task logs for the specified task", + Privilege: "DescribeReplicationInstanceTaskLogs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "internet-gateway*", + ResourceType: "ReplicationInstance*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about replication instances for your account in the current region", + Privilege: "DescribeReplicationInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a network interface to an instance", - Privilege: "AttachNetworkInterface", + AccessLevel: "Read", + Description: "Grants permission to return information about the replication subnet groups", + Privilege: "DescribeReplicationSubnetGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe replication table statistics", + Privilege: "DescribeReplicationTableStatistics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "ReplicationConfig*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the latest task assessment results from Amazon S3", + Privilege: "DescribeReplicationTaskAssessmentResults", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTask", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a trust provider to a Verified Access instance", - Privilege: "AttachVerifiedAccessTrustProvider", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of premigration assessment runs based on filter settings", + Privilege: "DescribeReplicationTaskAssessmentRuns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-instance*", + ResourceType: "ReplicationInstance", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-trust-provider*", + ResourceType: "ReplicationTask", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTaskAssessmentRun", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach an EBS volume to a running or stopped instance and expose it to the instance with the specified device name", - Privilege: "AttachVolume", + AccessLevel: "Read", + Description: "Grants permission to return a paginated list of individual assessments based on filter settings", + Privilege: "DescribeReplicationTaskIndividualAssessments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "ReplicationTask", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", - "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "ReplicationTaskAssessmentRun", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about replication tasks for your account in the current region", + Privilege: "DescribeReplicationTasks", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a virtual private gateway to a VPC", - Privilege: "AttachVpnGateway", + AccessLevel: "Read", + Description: "Grants permission to describe replications", + Privilege: "DescribeReplications", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "vpn-gateway*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an inbound authorization rule to a Client VPN endpoint", - Privilege: "AuthorizeClientVpnIngress", + AccessLevel: "Read", + Description: "Grants permission to return information about the schema for the specified endpoint", + Privilege: "DescribeSchemas", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "Endpoint*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return table statistics on the database migration task, including table name, rows inserted, rows updated, and rows deleted", + Privilege: "DescribeTableStatistics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add one or more outbound rules to a VPC security group. Policies using the security-group-rule resource-level permission are only enforced when the API request includes TagSpecifications", - Privilege: "AuthorizeSecurityGroupEgress", + Description: "Grants permission to export the specified metadata model assessment", + Privilege: "ExportMetadataModelAssessment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "security-group*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "security-group-rule", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add one or more inbound rules to a VPC security group. Policies using the security-group-rule resource-level permission are only enforced when the API request includes TagSpecifications", - Privilege: "AuthorizeSecurityGroupIngress", + Description: "Grants permission to upload the specified certificate", + Privilege: "ImportCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "security-group*", - }, - { - ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "security-group-rule", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to bundle an instance store-backed Windows instance", - Privilege: "BundleInstance", + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a data providers", + Privilege: "ListDataProviders", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataProvider", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a bundling operation", - Privilege: "CancelBundleTask", + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a extension packs", + Privilege: "ListExtensionPacks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a Capacity Reservation and release the reserved capacity", - Privilege: "CancelCapacityReservation", + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a instance profiles", + Privilege: "ListInstanceProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:CapacityReservationFleet", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "capacity-reservation*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "InstanceProfile", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel one or more Capacity Reservation Fleets", - Privilege: "CancelCapacityReservationFleets", + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a metadata model assessment action items. Note. Despite this action requires StartMetadataModelImport, the latter does not currently authorize the described Schema Conversion operation", + Privilege: "ListMetadataModelAssessmentActionItems", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CancelCapacityReservation", + "dms:StartMetadataModelImport", }, - ResourceType: "capacity-reservation-fleet*", + ResourceType: "MigrationProject", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a metadata model assessments", + Privilege: "ListMetadataModelAssessments", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel an active conversion task", - Privilege: "CancelConversionTask", + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a metadata model conversions", + Privilege: "ListMetadataModelConversions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel an active export task", - Privilege: "CancelExportTask", + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a metadata model exports", + Privilege: "ListMetadataModelExports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-image-task", + ResourceType: "MigrationProject", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the AWS DMS attributes for a migration projects. Note. Despite this action requires DescribeMigrationProjects and DescribeConversionConfiguration, both required actions do not currently authorize the described Schema Conversion operation", + Privilege: "ListMigrationProjects", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "dms:DescribeConversionConfiguration", }, + ResourceType: "DataProvider", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-instance-task", + ResourceType: "InstanceProfile", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove your AWS account from the launch permissions for the specified AMI", - Privilege: "CancelImageLaunchPermission", + AccessLevel: "Read", + Description: "Grants permission to list all tags for an AWS DMS resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "Certificate", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataMigration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an in-process import virtual machine or import snapshot task", - Privilege: "CancelImportTask", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-image-task", + ResourceType: "DataProvider", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-snapshot-task", + ResourceType: "Endpoint", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "EventSubscription", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel a Reserved Instance listing on the Reserved Instance Marketplace", - Privilege: "CancelReservedInstancesListing", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "InstanceProfile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel one or more Spot Fleet requests", - Privilege: "CancelSpotFleetRequests", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "spot-fleet-request*", + ResourceType: "MigrationProject", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationConfig", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel one or more Spot Instance requests", - Privilege: "CancelSpotInstanceRequests", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "spot-instances-request*", + ResourceType: "ReplicationInstance", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationSubnetGroup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to determine whether an owned product code is associated with an instance", - Privilege: "ConfirmProductInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTask", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to copy a source Amazon FPGA image (AFI) to the current Region. Resource-level permissions specified for this action apply to the new AFI only. They do not apply to the source AFI", - Privilege: "CopyFpgaImage", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Owner", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fpga-image*", + ResourceType: "ReplicationTaskAssessmentRun", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTaskIndividualAssessment", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy an Amazon Machine Image (AMI) from a source Region to the current Region. Resource-level permissions specified for this action apply to the new AMI only. They do not apply to the source AMI", - Privilege: "CopyImage", + Description: "Grants permission to modify the specified database migration", + Privilege: "ModifyDataMigration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:ImageID", - "ec2:Owner", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "image*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataMigration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy a point-in-time snapshot of an EBS volume and store it in Amazon S3. Resource-level permissions specified for this action apply to the new snapshot only. They do not apply to the source snapshot", - Privilege: "CopySnapshot", + Description: "Grants permission to modify the specified endpoint", + Privilege: "ModifyEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:OutpostArn", - "ec2:SnapshotID", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "iam:PassRole", }, - ResourceType: "snapshot*", + ResourceType: "Endpoint*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Certificate", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Capacity Reservation", - Privilege: "CreateCapacityReservation", + Description: "Grants permission to modify an existing AWS DMS event notification subscription", + Privilege: "ModifyEventSubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:CapacityReservationFleet", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "capacity-reservation*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -87067,26 +89576,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Capacity Reservation Fleet", - Privilege: "CreateCapacityReservationFleet", + Description: "Grants permission to modify the name and description of the specified Fleet Advisor collector", + Privilege: "ModifyFleetAdvisorCollector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateCapacityReservation", - "ec2:CreateTags", - "ec2:DescribeCapacityReservations", - "ec2:DescribeInstances", - }, - ResourceType: "capacity-reservation-fleet*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -87094,33 +89588,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a carrier gateway and provides CSP connectivity to VPC customers", - Privilege: "CreateCarrierGateway", + Description: "Grants permission to modify the status of the specified Fleet Advisor collector", + Privilege: "ModifyFleetAdvisorCollectorStatuses", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "carrier-gateway*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -87128,47 +89600,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Client VPN endpoint", - Privilege: "CreateClientVpnEndpoint", + Description: "Grants permission to modify the specified replication config", + Privilege: "ModifyReplicationConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "client-vpn-endpoint*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "ReplicationConfig*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the replication instance to apply new settings", + Privilege: "ModifyReplicationInstance", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "ReplicationInstance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the settings for the specified replication subnet group", + Privilege: "ModifyReplicationSubnetGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -87176,135 +89636,161 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a network route to a Client VPN endpoint's route table", - Privilege: "CreateClientVpnRoute", + Description: "Grants permission to modify the specified replication task", + Privilege: "ModifyReplicationTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "ReplicationTask*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to move the specified replication task to a different replication instance", + Privilege: "MoveReplicationTask", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "ReplicationInstance*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a range of customer-owned IP (CoIP) addresses", - Privilege: "CreateCoipCidr", + Description: "Grants permission to reboot a replication instance. Rebooting results in a momentary outage, until the replication instance becomes available again", + Privilege: "RebootReplicationInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "coip-pool*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationInstance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a pool of customer-owned IP (CoIP) addresses", - Privilege: "CreateCoipPool", + Description: "Grants permission to populate the schema for the specified endpoint", + Privilege: "RefreshSchemas", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "coip-pool*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "Endpoint*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationInstance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow a service to access a customer-owned IP (CoIP) pool", - Privilege: "CreateCoipPoolPermission", + Description: "Grants permission to reload the target database table with the source for a replication", + Privilege: "ReloadReplicationTables", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coip-pool*", + ResourceType: "ReplicationConfig*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reload the target database table with the source data", + Privilege: "ReloadTables", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a customer gateway, which provides information to AWS about your customer gateway device", - Privilege: "CreateCustomerGateway", + AccessLevel: "Tagging", + Description: "Grants permission to remove metadata tags from a DMS resource", + Privilege: "RemoveTagsFromResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "customer-gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Certificate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DataMigration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DataProvider", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EventSubscription", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "InstanceProfile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MigrationProject", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationConfig", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationInstance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationSubnetGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationTask", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationTaskAssessmentRun", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ReplicationTaskIndividualAssessment", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -87313,13 +89799,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a default subnet in a specified Availability Zone in a default VPC", - Privilege: "CreateDefaultSubnet", + Description: "Grants permission to run a large-scale assessment (LSA) analysis on every Fleet Advisor collector in your account", + Privilege: "RunFleetAdvisorLsaAnalysis", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -87327,341 +89811,246 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a default VPC with a default subnet in each Availability Zone", - Privilege: "CreateDefaultVpc", + Description: "Grants permission to start the database migration", + Privilege: "StartDataMigration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataMigration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a set of DHCP options for a VPC", - Privilege: "CreateDhcpOptions", + Description: "Grants permission to start a new assessment of metadata model", + Privilege: "StartMetadataModelAssessment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:DhcpOptionsID", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "dhcp-options*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an egress-only internet gateway for a VPC", - Privilege: "CreateEgressOnlyInternetGateway", + Description: "Grants permission to start a new conversion of metadata model", + Privilege: "StartMetadataModelConversion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "egress-only-internet-gateway*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to launch an EC2 Fleet. Resource-level permissions for this action do not include the resources specified in a launch template. To specify resource-level permissions for resources specified in a launch template, you must include the resources in the RunInstances action statement", - Privilege: "CreateFleet", + Description: "Grants permission to start a new export of metadata model as script", + Privilege: "StartMetadataModelExportAsScripts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceID", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:PlacementGroup", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a new export of metadata model to target", + Privilege: "StartMetadataModelExportToTarget", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a new import of metadata model", + Privilege: "StartMetadataModelImport", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the analysis of your source database to provide recommendations of target engines", + Privilege: "StartRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a replication", + Privilege: "StartReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "ReplicationConfig*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the replication task", + Privilege: "StartReplicationTask", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:KmsKeyId", - "ec2:ParentSnapshot", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume", + ResourceType: "ReplicationTask*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the replication task assessment for unsupported data types in the source database", + Privilege: "StartReplicationTaskAssessment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create one or more flow logs to capture IP traffic for a network interface", - Privilege: "CreateFlowLogs", + Description: "Grants permission to start a new premigration assessment run for one or more individual assessments of a migration task", + Privilege: "StartReplicationTaskAssessmentRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", - "ecs:ListClusters", - "ecs:ListContainerInstances", - "ecs:ListServices", - "ecs:ListTaskDefinitions", - "ecs:ListTasks", "iam:PassRole", }, - ResourceType: "vpc-flow-log*", + ResourceType: "ReplicationTask*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop the database migration", + Privilege: "StopDataMigration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "DataMigration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a replication", + Privilege: "StopReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "ReplicationConfig*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop the replication task", + Privilege: "StopReplicationTask", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway", + ResourceType: "ReplicationTask*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to test the connection between the replication instance and the endpoint", + Privilege: "TestConnection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "Endpoint*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "ReplicationInstance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a conversion configuration", + Privilege: "UpdateConversionConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MigrationProject*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon FPGA Image (AFI) from a design checkpoint (DCP)", - Privilege: "CreateFpgaImage", + Description: "Grants permission to update the specified data provider", + Privilege: "UpdateDataProvider", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:Owner", - "ec2:Public", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "fpga-image*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataProvider*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon EBS-backed AMI from a stopped or running Amazon EBS-backed instance", - Privilege: "CreateImage", + Description: "Grants permission to update the specified instance profile", + Privilege: "UpdateInstanceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:ImageID", - "ec2:Owner", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "image*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "InstanceProfile*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified migration project", + Privilege: "UpdateMigrationProject", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:OutpostArn", - "ec2:ParentVolume", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "MigrationProject*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to migrate DMS subcriptions to Eventbridge", + Privilege: "UpdateSubscriptionsToEventBridge", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -87669,44 +90058,158 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an EC2 Instance Connect Endpoint that allows you to connect to an instance without a public IPv4 address", - Privilege: "CreateInstanceConnectEndpoint", + Description: "Grants permission to upload files to your Amazon S3 bucket", + Privilege: "UploadFileMetadataList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:SubnetID", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "instance-connect-endpoint*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:cert:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:cert-tag/${TagKey}", + }, + Resource: "Certificate", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:data-provider:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:data-provider-tag/${TagKey}", + }, + Resource: "DataProvider", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:data-migration:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:data-migration-tag/${TagKey}", + }, + Resource: "DataMigration", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:endpoint:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:endpoint-tag/${TagKey}", + }, + Resource: "Endpoint", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:es:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:es-tag/${TagKey}", + }, + Resource: "EventSubscription", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:instance-profile:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:instance-profile-tag/${TagKey}", + }, + Resource: "InstanceProfile", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:migration-project:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:migration-project-tag/${TagKey}", + }, + Resource: "MigrationProject", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:replication-config:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:replication-config-tag/${TagKey}", + }, + Resource: "ReplicationConfig", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:rep:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:rep-tag/${TagKey}", + }, + Resource: "ReplicationInstance", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:subgrp:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:subgrp-tag/${TagKey}", + }, + Resource: "ReplicationSubnetGroup", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:task:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:task-tag/${TagKey}", + }, + Resource: "ReplicationTask", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:assessment-run:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:assessment-run-tag/${TagKey}", + }, + Resource: "ReplicationTaskAssessmentRun", + }, + { + Arn: "arn:${Partition}:dms:${Region}:${Account}:individual-assessment:*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "dms:individual-assessment-tag/${TagKey}", + }, + Resource: "ReplicationTaskIndividualAssessment", + }, + }, + ServiceName: "AWS Database Migration Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the set of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the set of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the set of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "docdb-elastic", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to apply pending maintenance actions on Amazon DocDB-Elastic cluster", + Privilege: "ApplyPendingMaintenanceAction", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87715,22 +90218,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an event window in which scheduled events for the associated Amazon EC2 instances can run", - Privilege: "CreateInstanceEventWindow", + Description: "Grants permission to copy a new Amazon DocDB-Elastic cluster snapshot", + Privilege: "CopyClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "docdb-elastic:CreateClusterSnapshot", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", }, - ResourceType: "instance-event-window*", + ResourceType: "cluster-snapshot*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87739,8 +90245,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to export a running or stopped instance to an Amazon S3 bucket", - Privilege: "CreateInstanceExportTask", + Description: "Grants permission to create a new Amazon DocDB-Elastic cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -87748,35 +90254,70 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{ - "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "secretsmanager:DescribeSecret", + "secretsmanager:GetResourcePolicy", + "secretsmanager:GetSecretValue", + "secretsmanager:ListSecretVersionIds", + "secretsmanager:ListSecrets", }, - ResourceType: "export-instance-task*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Amazon DocDB-Elastic cluster snapshot", + Privilege: "CreateClusterSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateVpcEndpoint", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "secretsmanager:DescribeSecret", + "secretsmanager:GetResourcePolicy", + "secretsmanager:GetSecretValue", + "secretsmanager:ListSecretVersionIds", + "secretsmanager:ListSecrets", }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "cluster-snapshot*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87785,23 +90326,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an internet gateway for a VPC", - Privilege: "CreateInternetGateway", + Description: "Grants permission to delete a cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:InternetGatewayID", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", }, - ResourceType: "internet-gateway*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87810,23 +90354,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon VPC IP Address Manager (IPAM)", - Privilege: "CreateIpam", + Description: "Grants permission to delete a cluster snapshot", + Privilege: "DeleteClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", - "iam:CreateServiceLinkedRole", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", }, - ResourceType: "ipam*", + ResourceType: "cluster-snapshot*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87834,31 +90381,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IP address pool for Amazon VPC IP Address Manager (IPAM), which is a collection of contiguous IP address CIDRs", - Privilege: "CreateIpamPool", + AccessLevel: "Read", + Description: "Grants permission to view details about a cluster", + Privilege: "GetCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "ipam-pool*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-scope*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details about a cluster snapshot", + Privilege: "GetClusterSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster-snapshot*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87866,24 +90419,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IPAM resource discovery", - Privilege: "CreateIpamResourceDiscovery", + AccessLevel: "Read", + Description: "Grants permission to view details about pending maintenance actions on Amazon DocDB-Elastic cluster", + Privilege: "GetPendingMaintenanceAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "ipam-resource-discovery*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87891,31 +90438,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon VPC IP Address Manager (IPAM) scope, which is the highest-level container within IPAM", - Privilege: "CreateIpamScope", + AccessLevel: "List", + Description: "Grants permission to list the cluster snapshots in your account", + Privilege: "ListClusterSnapshots", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "ipam*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the clusters in your account", + Privilege: "ListClusters", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-scope*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list details about pending maintenance actions on any Amazon DocDB-Elastic cluster", + Privilege: "ListPendingMaintenanceActions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87923,24 +90476,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a 2048-bit RSA key pair", - Privilege: "CreateKeyPair", + AccessLevel: "List", + Description: "Grants permission to lists tag for an DocumentDB Elastic resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:KeyPairType", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "key-pair*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster-snapshot", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87949,23 +90501,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a launch template", - Privilege: "CreateLaunchTemplate", + Description: "Grants permission to restore cluster from a Amazon DocDB-Elastic cluster snapshot", + Privilege: "RestoreClusterFromSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", - "ssm:GetParameters", + "docdb-elastic:CreateCluster", + "ec2:CreateVpcEndpoint", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "secretsmanager:DescribeSecret", + "secretsmanager:GetResourcePolicy", + "secretsmanager:GetSecretValue", + "secretsmanager:ListSecretVersionIds", + "secretsmanager:ListSecrets", }, - ResourceType: "launch-template*", + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster-snapshot*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87974,22 +90548,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new version of a launch template", - Privilege: "CreateLaunchTemplateVersion", + Description: "Grants permission to start a stopped Amazon DocDB-Elastic cluster", + Privilege: "StartCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ssm:GetParameters", - }, - ResourceType: "launch-template*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -87998,48 +90567,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a static route for a local gateway route table", - Privilege: "CreateLocalGatewayRoute", + Description: "Grants permission to stop an existing Amazon DocDB-Elastic cluster", + Privilege: "StopCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an DocumentDB Elastic resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefix-list", + ResourceType: "cluster-snapshot", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -88047,31 +90611,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a local gateway route table", - Privilege: "CreateLocalGatewayRouteTable", + AccessLevel: "Tagging", + Description: "Grants permission to untag a DocumentDB Elastic resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "local-gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "cluster-snapshot", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -88080,40 +90636,123 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to allow a service to access a local gateway route table", - Privilege: "CreateLocalGatewayRouteTablePermission", + Description: "Grants permission to modify a cluster", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateVpcEndpoint", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "secretsmanager:DescribeSecret", + "secretsmanager:GetResourcePolicy", + "secretsmanager:GetSecretValue", + "secretsmanager:ListSecretVersionIds", + "secretsmanager:ListSecrets", }, - DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:docdb-elastic:${Region}:${Account}:cluster/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:docdb-elastic:${Region}:${Account}:cluster-snapshot/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster-snapshot", + }, + }, + ServiceName: "Amazon DocumentDB Elastic Clusters", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "drs:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + { + Condition: "drs:EC2InstanceARN", + Description: "Filters access by the EC2 instance the request originated from", + Type: "ARN", + }, + }, + Prefix: "drs", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to get associate failback client to recovery instance", + Privilege: "AssociateFailbackClientToRecoveryInstanceForDrs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RecoveryInstanceResource*", + }, + }, + }, { AccessLevel: "Write", - Description: "Grants permission to create a local gateway route table virtual interface group association", - Privilege: "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation", + Description: "Grants permission to associate CloudFormation stack with source network", + Privilege: "AssociateSourceNetworkStack", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "cloudformation:DescribeStackResource", + "cloudformation:DescribeStacks", + "drs:GetLaunchConfiguration", + "ec2:CreateLaunchTemplateVersion", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:ModifyLaunchTemplate", }, - ResourceType: "local-gateway-route-table*", + ResourceType: "SourceNetworkResource*", }, { ConditionKeys: []string{ @@ -88121,61 +90760,53 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-virtual-interface-group-association*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to batch create volume snapshot group", + Privilege: "BatchCreateVolumeSnapshotGroupForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface-group*", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a VPC with a local gateway route table", - Privilege: "CreateLocalGatewayRouteTableVpcAssociation", + Description: "Grants permission to batch delete snapshot request", + Privilege: "BatchDeleteSnapshotRequestForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "local-gateway-route-table*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-vpc-association*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create converted snapshot", + Privilege: "CreateConvertedSnapshotForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "SourceServerResource*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -88184,8 +90815,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a managed prefix list", - Privilege: "CreateManagedPrefixList", + Description: "Grants permission to extend a source server", + Privilege: "CreateExtendedSourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -88193,59 +90824,42 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "prefix-list*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "drs:DescribeSourceServers", + "drs:GetReplicationConfiguration", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a NAT gateway in a subnet", - Privilege: "CreateNatGateway", + Description: "Grants permission to create launch configuration template", + Privilege: "CreateLaunchConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "natgateway*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create recovery instance", + Privilege: "CreateRecoveryInstanceForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-ip", + ResourceType: "SourceServerResource*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -88254,295 +90868,267 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a network ACL in a VPC", - Privilege: "CreateNetworkAcl", + Description: "Grants permission to create replication configuration template", + Privilege: "CreateReplicationConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "ec2:NetworkAclID", }, DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "network-acl*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "ec2:CreateSecurityGroup", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:GetEbsDefaultKmsKeyId", + "ec2:GetEbsEncryptionByDefault", + "kms:CreateGrant", + "kms:DescribeKey", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a numbered entry (a rule) in a network ACL", - Privilege: "CreateNetworkAclEntry", + Description: "Grants permission to create a source network", + Privilege: "CreateSourceNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:NetworkAclID", - "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "network-acl*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:DescribeInstances", + "ec2:DescribeVpcs", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Network Access Scope", - Privilege: "CreateNetworkInsightsAccessScope", + Description: "Grants permission to create a source server", + Privilege: "CreateSourceServerForDrs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "network-insights-access-scope*", + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a job", + Privilege: "DeleteJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "JobResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a path to analyze for reachability", - Privilege: "CreateNetworkInsightsPath", + Description: "Grants permission to delete a launch action", + Privilege: "DeleteLaunchAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "network-insights-path*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "LaunchConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "SourceServerResource", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete launch configuration template", + Privilege: "DeleteLaunchConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "internet-gateway", + ResourceType: "LaunchConfigurationTemplateResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete recovery instance", + Privilege: "DeleteRecoveryInstance", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete replication configuration template", + Privilege: "DeleteReplicationConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway", + ResourceType: "ReplicationConfigurationTemplateResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete source network", + Privilege: "DeleteSourceNetwork", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-endpoint", + ResourceType: "SourceNetworkResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete source server", + Privilege: "DeleteSourceServer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe job log items", + Privilege: "DescribeJobLogItems", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AccepterVpc", - "ec2:RequesterVpc", - "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-peering-connection", + ResourceType: "JobResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe jobs", + Privilege: "DescribeJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe launch configuration template", + Privilege: "DescribeLaunchConfigurationTemplates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a network interface in a subnet", - Privilege: "CreateNetworkInterface", + AccessLevel: "Read", + Description: "Grants permission to describe recovery instances", + Privilege: "DescribeRecoveryInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:NetworkInterfaceID", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "drs:DescribeSourceServers", + "ec2:DescribeInstances", }, - ResourceType: "network-interface*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe recovery snapshots", + Privilege: "DescribeRecoverySnapshots", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe replication configuration template", + Privilege: "DescribeReplicationConfigurationTemplates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe replication server associations", + Privilege: "DescribeReplicationServerAssociationsForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create a permission for an AWS-authorized user to perform certain operations on a network interface", - Privilege: "CreateNetworkInterfacePermission", + AccessLevel: "Read", + Description: "Grants permission to describe snapshot requests", + Privilege: "DescribeSnapshotRequestsForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AuthorizedService", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:Permission", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe source networks", + Privilege: "DescribeSourceNetworks", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a placement group", - Privilege: "CreatePlacementGroup", + AccessLevel: "Read", + Description: "Grants permission to describe source servers", + Privilege: "DescribeSourceServers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "placement-group*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -88550,57 +91136,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a public IPv4 address pool for public IPv4 CIDRs that you own and bring to Amazon to manage with Amazon VPC IP Address Manager (IPAM)", - Privilege: "CreatePublicIpv4Pool", + Description: "Grants permission to disconnect recovery instance", + Privilege: "DisconnectRecoveryInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "ipv4pool-ec2*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disconnect source server", + Privilege: "DisconnectSourceServer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a root volume replacement task", - Privilege: "CreateReplaceRootVolumeTask", + Description: "Grants permission to export CloudFormation template which contains source network resources", + Privilege: "ExportSourceNetworkCfnTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "s3:GetBucketLocation", + "s3:GetObject", + "s3:PutObject", }, - ResourceType: "instance*", + ResourceType: "SourceNetworkResource*", }, { ConditionKeys: []string{ @@ -88608,1161 +91178,1189 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "replace-root-volume-task*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get agent command", + Privilege: "GetAgentCommandForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:VolumeID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get agent confirmed resume info", + Privilege: "GetAgentConfirmedResumeInfoForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a listing for Standard Reserved Instances to be sold in the Reserved Instance Marketplace", - Privilege: "CreateReservedInstancesListing", + AccessLevel: "Read", + Description: "Grants permission to get agent installation assets", + Privilege: "GetAgentInstallationAssetsForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a task that restores an AMI from an S3 object previously created by using CreateStoreImageTask", - Privilege: "CreateRestoreImageTask", + AccessLevel: "Read", + Description: "Grants permission to get agent replication info", + Privilege: "GetAgentReplicationInfoForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:ImageID", - "ec2:Owner", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "image*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a route in a VPC route table", - Privilege: "CreateRoute", + AccessLevel: "Read", + Description: "Grants permission to get agent runtime configuration", + Privilege: "GetAgentRuntimeConfigurationForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-table*", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a route table for a VPC", - Privilege: "CreateRouteTable", + AccessLevel: "Read", + Description: "Grants permission to get agent snapshot credits", + Privilege: "GetAgentSnapshotCreditsForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:RouteTableID", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "route-table*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a security group", - Privilege: "CreateSecurityGroup", + AccessLevel: "Read", + Description: "Grants permission to get channel commands", + Privilege: "GetChannelCommandsForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:SecurityGroupID", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "security-group*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot of an EBS volume and store it in Amazon S3", - Privilege: "CreateSnapshot", + AccessLevel: "Read", + Description: "Grants permission to get failback command", + Privilege: "GetFailbackCommandForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:OutpostArn", - "ec2:ParentVolume", - "ec2:SnapshotID", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get failback launch requested", + Privilege: "GetFailbackLaunchRequestedForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RecoveryInstanceResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create crash-consistent snapshots of multiple EBS volumes and store them in Amazon S3", - Privilege: "CreateSnapshots", + AccessLevel: "Read", + Description: "Grants permission to get failback replication configuration", + Privilege: "GetFailbackReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceID", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:PlacementGroup", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "instance*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get launch configuration", + Privilege: "GetLaunchConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:OutpostArn", - "ec2:ParentVolume", - "ec2:SnapshotID", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get replication configuration", + Privilege: "GetReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get suggested failback client device mapping", + Privilege: "GetSuggestedFailbackClientDeviceMappingForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RecoveryInstanceResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a data feed for Spot Instances to view Spot Instance usage logs", - Privilege: "CreateSpotDatafeedSubscription", + Description: "Grants permission to initialize service", + Privilege: "InitializeService", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AddRoleToInstanceProfile", + "iam:CreateInstanceProfile", + "iam:CreateServiceLinkedRole", + "iam:GetInstanceProfile", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to store an AMI as a single object in an S3 bucket", - Privilege: "CreateStoreImageTask", + Description: "Grants permission to issue an agent certificate", + Privilege: "IssueAgentCertificateForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a subnet in a VPC", - Privilege: "CreateSubnet", + AccessLevel: "Read", + Description: "Grants permission to list extensible source servers", + Privilege: "ListExtensibleSourceServers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:SubnetID", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "drs:DescribeSourceServers", }, - ResourceType: "subnet*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list launch actions", + Privilege: "ListLaunchActions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "LaunchConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "SourceServerResource", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list staging accounts", + Privilege: "ListStagingAccounts", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a subnet CIDR reservation", - Privilege: "CreateSubnetCidrReservation", - ResourceTypes: []ParliamentResourceType{ + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for Amazon EC2 resources", - Privilege: "CreateTags", + AccessLevel: "Write", + Description: "Grants permission to notify agent authentication", + Privilege: "NotifyAgentAuthenticationForDrs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-reservation", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-reservation-fleet", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify agent is connected", + Privilege: "NotifyAgentConnectedForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "carrier-gateway", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify agent is disconnected", + Privilege: "NotifyAgentDisconnectedForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coip-pool", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-gateway", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify agent replication progress", + Privilege: "NotifyAgentReplicationProgressForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AutoPlacement", - "ec2:AvailabilityZone", - "ec2:HostRecovery", - "ec2:InstanceType", - "ec2:Quantity", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-host", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:DhcpOptionsID", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dhcp-options", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify consistency attained", + Privilege: "NotifyConsistencyAttainedForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "egress-only-internet-gateway", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify replication server authentication", + Privilege: "NotifyReplicationServerAuthenticationForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ElasticGpuType", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-gpu", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify replicator volume events", + Privilege: "NotifyVolumeEventForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-ip", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put a launch action", + Privilege: "PutLaunchAction", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ssm:DescribeDocument", }, - DependentActions: []string{}, - ResourceType: "export-image-task", + ResourceType: "LaunchConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-instance-task", + ResourceType: "SourceServerResource", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to retry data replication", + Privilege: "RetryDataReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reverse replication", + Privilege: "ReverseReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "drs:DescribeReplicationConfigurationTemplates", + "drs:DescribeSourceServers", + "ec2:DescribeInstances", }, - DependentActions: []string{}, - ResourceType: "fpga-image", + ResourceType: "RecoveryInstanceResource*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "host-reservation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send agent logs", + Privilege: "SendAgentLogsForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-image-task", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send agent metrics", + Privilege: "SendAgentMetricsForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-snapshot-task", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send channel command result", + Privilege: "SendChannelCommandResultForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-connect-endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send client logs", + Privilege: "SendClientLogsForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-event-window", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send client metrics", + Privilege: "SendClientMetricsForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "internet-gateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send volume throughput statistics", + Privilege: "SendVolumeStatsForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start failback launch", + Privilege: "StartFailbackLaunch", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "RecoveryInstanceResource*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start recovery", + Privilege: "StartRecovery", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "drs:CreateRecoveryInstanceForDrs", + "drs:ListTagsForResource", + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateLaunchTemplate", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateSnapshot", + "ec2:CreateTags", + "ec2:CreateVolume", + "ec2:DeleteLaunchTemplateVersions", + "ec2:DeleteSnapshot", + "ec2:DeleteVolume", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstances", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSnapshots", + "ec2:DescribeSubnets", + "ec2:DescribeVolumes", + "ec2:DetachVolume", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyLaunchTemplate", + "ec2:RevokeSecurityGroupEgress", + "ec2:RunInstances", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:TerminateInstances", + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "ipam-resource-discovery-association", + ResourceType: "SourceServerResource*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "ipam-scope", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start replication", + Privilege: "StartReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipv4pool-ec2", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start network recovery", + Privilege: "StartSourceNetworkRecovery", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:CreateStack", + "cloudformation:DescribeStackResource", + "cloudformation:DescribeStacks", + "cloudformation:UpdateStack", + "drs:GetLaunchConfiguration", + "ec2:CreateLaunchTemplateVersion", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:ModifyLaunchTemplate", + "s3:GetObject", + "s3:PutObject", }, - DependentActions: []string{}, - ResourceType: "ipv6pool-ec2", + ResourceType: "SourceNetworkResource*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:KeyPairName", - "ec2:KeyPairType", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "key-pair", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start network replication", + Privilege: "StartSourceNetworkReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "SourceNetworkResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop failback", + Privilege: "StopFailback", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop replication", + Privilege: "StopReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop network replication", + Privilege: "StopSourceNetworkReplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-virtual-interface-group-association", + ResourceType: "SourceNetworkResource*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to assign a resource tag", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-vpc-association", + ResourceType: "JobResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface", + ResourceType: "LaunchConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface-group", + ResourceType: "RecoveryInstanceResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "natgateway", + ResourceType: "ReplicationConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:NetworkAclID", - "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-acl", + ResourceType: "SourceNetworkResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-access-scope", + ResourceType: "SourceServerResource", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "drs:CreateAction", }, DependentActions: []string{}, - ResourceType: "network-insights-access-scope-analysis", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to terminate recovery instances", + Privilege: "TerminateRecoveryInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "drs:DescribeSourceServers", + "ec2:DeleteVolume", + "ec2:DescribeInstances", + "ec2:DescribeVolumes", + "ec2:TerminateInstances", }, - DependentActions: []string{}, - ResourceType: "network-insights-analysis", + ResourceType: "RecoveryInstanceResource*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "network-insights-path", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:Permission", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "JobResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "LaunchConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefix-list", + ResourceType: "RecoveryInstanceResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replace-root-volume-task", + ResourceType: "ReplicationConfigurationTemplateResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:InstanceType", - "ec2:ReservedInstancesOfferingType", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reserved-instances", + ResourceType: "SourceNetworkResource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-table", + ResourceType: "SourceServerResource", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent backlog", + Privilege: "UpdateAgentBacklogForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group-rule", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent conversion info", + Privilege: "UpdateAgentConversionInfoForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "spot-fleet-request", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "spot-instances-request", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent replication info", + Privilege: "UpdateAgentReplicationInfoForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet-cidr-reservation", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent replication process state", + Privilege: "UpdateAgentReplicationProcessStateForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-mirror-filter", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-mirror-session", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent source properties", + Privilege: "UpdateAgentSourcePropertiesForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-mirror-target", + ResourceType: "RecoveryInstanceResource*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update failback client device mapping", + Privilege: "UpdateFailbackClientDeviceMappingForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update failback client last seen", + Privilege: "UpdateFailbackClientLastSeenForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayConnectPeerId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-connect-peer", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update failback replication configuration", + Privilege: "UpdateFailbackReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update launch configuration", + Privilege: "UpdateLaunchConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeInstances", }, - DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update launch configuration", + Privilege: "UpdateLaunchConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table", + ResourceType: "LaunchConfigurationTemplateResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a replication certificate", + Privilege: "UpdateReplicationCertificateForDrs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableAnnouncementId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table-announcement", + ResourceType: "RecoveryInstanceResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update replication configuration", + Privilege: "UpdateReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateSecurityGroup", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:GetEbsDefaultKmsKeyId", + "ec2:GetEbsEncryptionByDefault", + "kms:CreateGrant", + "kms:DescribeKey", }, - DependentActions: []string{}, - ResourceType: "verified-access-endpoint", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update replication configuration template", + Privilege: "UpdateReplicationConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateSecurityGroup", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:GetEbsDefaultKmsKeyId", + "ec2:GetEbsEncryptionByDefault", + "kms:CreateGrant", + "kms:DescribeKey", }, - DependentActions: []string{}, - ResourceType: "verified-access-group", + ResourceType: "ReplicationConfigurationTemplateResource*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:drs:${Region}:${Account}:job/${JobID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "JobResource", + }, + { + Arn: "arn:${Partition}:drs:${Region}:${Account}:recovery-instance/${RecoveryInstanceID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "drs:EC2InstanceARN", + }, + Resource: "RecoveryInstanceResource", + }, + { + Arn: "arn:${Partition}:drs:${Region}:${Account}:replication-configuration-template/${ReplicationConfigurationTemplateID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ReplicationConfigurationTemplateResource", + }, + { + Arn: "arn:${Partition}:drs:${Region}:${Account}:launch-configuration-template/${LaunchConfigurationTemplateID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "LaunchConfigurationTemplateResource", + }, + { + Arn: "arn:${Partition}:drs:${Region}:${Account}:source-server/${SourceServerID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SourceServerResource", + }, + { + Arn: "arn:${Partition}:drs:${Region}:${Account}:source-network/${SourceNetworkID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SourceNetworkResource", + }, + }, + ServiceName: "AWS Elastic Disaster Recovery", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the value of the request to AWS DS", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the AWS DS Resource being acted upon", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "ds", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept a directory sharing request that was sent from the directory owner account", + Privilege: "AcceptSharedDirectory", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-instance", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to access directory data using the Directory Service Data API", + Privilege: "AccessDSData", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-policy", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a CIDR address block to correctly route traffic to and from your Microsoft AD on Amazon Web Services", + Privilege: "AddIpRoutes", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "verified-access-trust-provider", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", - "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", - }, - DependentActions: []string{}, - ResourceType: "volume", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "vpc-endpoint", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "vpc-endpoint-connection", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:DescribeSecurityGroups", }, - DependentActions: []string{}, - ResourceType: "vpc-endpoint-service", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add two domain controllers in the specified Region for the specified directory", + Privilege: "AddRegion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInterface", + "ec2:CreateSecurityGroup", + "ec2:CreateTags", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", }, - DependentActions: []string{}, - ResourceType: "vpc-endpoint-service-permission", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for the specified Amazon Directory Services directory", + Privilege: "AddTagsToResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "vpc-flow-log", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AccepterVpc", - "ec2:RequesterVpc", - "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "vpc-peering-connection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to authorize an application for your AWS Directory", + Privilege: "AuthorizeApplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AuthenticationType", - "ec2:DPDTimeoutSeconds", - "ec2:GatewayType", - "ec2:IKEVersions", - "ec2:InsideTunnelCidr", - "ec2:InsideTunnelIpv6Cidr", - "ec2:Phase1DHGroup", - "ec2:Phase1EncryptionAlgorithms", - "ec2:Phase1IntegrityAlgorithms", - "ec2:Phase1LifetimeSeconds", - "ec2:Phase2DHGroup", - "ec2:Phase2EncryptionAlgorithms", - "ec2:Phase2IntegrityAlgorithms", - "ec2:Phase2LifetimeSeconds", - "ec2:RekeyFuzzPercentage", - "ec2:RekeyMarginTimeSeconds", - "ec2:ReplayWindowSizePackets", - "ec2:ResourceTag/${TagKey}", - "ec2:RoutingType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-connection", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel an in-progress schema extension to a Microsoft AD directory", + Privilege: "CancelSchemaExtension", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to verify that the alias is available for use", + Privilege: "CheckAlias", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:CreateAction", - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -89770,8 +92368,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic mirror filter", - Privilege: "CreateTrafficMirrorFilter", + Description: "Grants permission to create an AD Connector to connect to an on-premises directory", + Privilege: "ConnectDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -89779,104 +92377,110 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInterface", + "ec2:CreateSecurityGroup", "ec2:CreateTags", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", }, - ResourceType: "traffic-mirror-filter*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an alias for a directory and assigns the alias to the directory", + Privilege: "CreateAlias", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic mirror filter rule", - Privilege: "CreateTrafficMirrorFilterRule", + Description: "Grants permission to create a computer account in the specified directory, and joins the computer to the directory", + Privilege: "CreateComputer", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "traffic-mirror-filter*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-mirror-filter-rule*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a conditional forwarder associated with your AWS directory", + Privilege: "CreateConditionalForwarder", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic mirror session", - Privilege: "CreateTrafficMirrorSession", + Description: "Grants permission to create a Simple AD directory", + Privilege: "CreateDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInterface", + "ec2:CreateSecurityGroup", "ec2:CreateTags", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", }, - ResourceType: "network-interface*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-filter*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an IdentityPool Directory in the AWS cloud", + Privilege: "CreateIdentityPoolDirectory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "traffic-mirror-session*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-target*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a subscription to forward real time Directory Service domain controller security logs to the specified CloudWatch log group in your AWS account", + Privilege: "CreateLogSubscription", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic mirror target", - Privilege: "CreateTrafficMirrorTarget", + Description: "Grants permission to create a Microsoft AD in the AWS cloud", + Privilege: "CreateMicrosoftAD", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -89884,645 +92488,633 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{ + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInterface", + "ec2:CreateSecurityGroup", "ec2:CreateTags", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", }, - ResourceType: "traffic-mirror-target*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud", + Privilege: "CreateSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate the creation of the AWS side of a trust relationship between a Microsoft AD in the AWS cloud and an external domain", + Privilege: "CreateTrust", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:VpceServiceName", - "ec2:VpceServiceOwner", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-endpoint", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a conditional forwarder that has been set up for your AWS directory", + Privilege: "DeleteConditionalForwarder", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a transit gateway", - Privilege: "CreateTransitGateway", + Description: "Grants permission to delete an AWS Directory Service directory", + Privilege: "DeleteDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayId", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "ec2:DeleteNetworkInterface", + "ec2:DeleteSecurityGroup", + "ec2:DescribeNetworkInterfaces", + "ec2:RevokeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress", }, - ResourceType: "transit-gateway*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified log subscription", + Privilege: "DeleteLogSubscription", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Connect attachment from a specified transit gateway attachment", - Privilege: "CreateTransitGatewayConnect", + Description: "Grants permission to delete a directory snapshot", + Privilege: "DeleteSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayAttachmentId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway-attachment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing trust relationship between your Microsoft AD in the AWS cloud and an external domain", + Privilege: "DeleteTrust", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Connect peer between a transit gateway and an appliance", - Privilege: "CreateTransitGatewayConnectPeer", + Description: "Grants permission to delete from the system the certificate that was registered for a secured LDAP connection", + Privilege: "DeregisterCertificate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway-attachment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the specified directory as a publisher to the specified SNS topic", + Privilege: "DeregisterEventTopic", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayConnectPeerId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-connect-peer*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to display information about the certificate registered for a secured LDAP connection", + Privilege: "DescribeCertificate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a multicast domain for a transit gateway", - Privilege: "CreateTransitGatewayMulticastDomain", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the type of client authentication for the specified directory, if the type is specified. If no type is specified, information about all client authentication types that are supported for the specified directory is retrieved. Currently, only SmartCard is supported", + Privilege: "DescribeClientAuthenticationSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain information about the conditional forwarders for this account", + Privilege: "DescribeConditionalForwarders", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayMulticastDomainId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to obtain information about the directories that belong to this account", + Privilege: "DescribeDirectories", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to request a transit gateway peering attachment between a requester and accepter transit gateway", - Privilege: "CreateTransitGatewayPeeringAttachment", + AccessLevel: "Read", + Description: "Grants permission to describe the Directory Service Data API status for the specified directory", + Privilege: "DescribeDirectoryDataAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide information about any domain controllers in your directory", + Privilege: "DescribeDomainControllers", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain information about which SNS topics receive status messages from the specified directory", + Privilege: "DescribeEventTopics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a transit gateway policy table", - Privilege: "CreateTransitGatewayPolicyTable", + AccessLevel: "Read", + Description: "Grants permission to describe the status of LDAP security for the specified directory", + Privilege: "DescribeLDAPSSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to provide information about the Regions that are configured for multi-Region replication", + Privilege: "DescribeRegions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayPolicyTableId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the configurable settings for the specified directory", + Privilege: "DescribeSettings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a transit gateway prefix list reference", - Privilege: "CreateTransitGatewayPrefixListReference", + AccessLevel: "Read", + Description: "Grants permission to return the shared directories in your account", + Privilege: "DescribeSharedDirectories", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain information about the directory snapshots that belong to this account", + Privilege: "DescribeSnapshots", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain information about the trust relationships for this account", + Privilege: "DescribeTrusts", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the updates of a directory for a particular update type", + Privilege: "DescribeUpdateDirectory", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a static route for a transit gateway route table", - Privilege: "CreateTransitGatewayRoute", + Description: "Grants permission to disable alternative client authentication methods for the specified directory", + Privilege: "DisableClientAuthentication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable the Directory Service Data API for the specified directory", + Privilege: "DisableDirectoryDataAccess", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deactivate LDAP secure calls for the specified directory", + Privilege: "DisableLDAPS", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a route table for a transit gateway", - Privilege: "CreateTransitGatewayRouteTable", + Description: "Grants permission to disable multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector directory", + Privilege: "DisableRadius", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable AWS Management Console access for identity in your AWS Directory", + Privilege: "DisableRoleAccess", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayRouteTableId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable single-sign on for a directory", + Privilege: "DisableSso", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an announcement for a transit gateway route table", - Privilege: "CreateTransitGatewayRouteTableAnnouncement", + Description: "Grants permission to enable alternative client authentication methods for the specified directory", + Privilege: "EnableClientAuthentication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "transit-gateway-attachment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable the Directory Service Data API for the specified directory", + Privilege: "EnableDirectoryDataAccess", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to activate the switch for the specific directory to always use LDAP secure calls", + Privilege: "EnableLDAPS", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayRouteTableAnnouncementId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table-announcement*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable multi-factor authentication (MFA) with the Remote Authentication Dial In User Service (RADIUS) server for an AD Connector directory", + Privilege: "EnableRadius", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a VPC to a transit gateway", - Privilege: "CreateTransitGatewayVpcAttachment", + Description: "Grants permission to enable AWS Management Console access for identity in your AWS Directory", + Privilege: "EnableRoleAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "subnet*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "transit-gateway*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable single-sign on for a directory", + Privilege: "EnableSso", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the details of the authorized applications on a directory", + Privilege: "GetAuthorizedApplicationDetails", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain directory limit information for the current region", + Privilege: "GetDirectoryLimits", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Verified Access endpoint", - Privilege: "CreateVerifiedAccessEndpoint", + AccessLevel: "Read", + Description: "Grants permission to obtain the manual snapshot limits for a directory", + Privilege: "GetSnapshotLimits", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "verified-access-endpoint*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-group*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain the AWS applications authorized for a directory", + Privilege: "ListAuthorizedApplications", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:Permission", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the certificates registered for a secured LDAP connection, for the specified directory", + Privilege: "ListCertificates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the address blocks that you have added to a directory", + Privilege: "ListIpRoutes", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the active log subscriptions for the AWS account", + Privilege: "ListLogSubscriptions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Verified Access group", - Privilege: "CreateVerifiedAccessGroup", + AccessLevel: "List", + Description: "Grants permission to list all schema extensions applied to a Microsoft AD Directory", + Privilege: "ListSchemaExtensions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "verified-access-group*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all tags on an Amazon Directory Services directory", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-instance*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register a certificate for secured LDAP connection", + Privilege: "RegisterCertificate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Verified Access instance", - Privilege: "CreateVerifiedAccessInstance", + Description: "Grants permission to associate a directory with an SNS topic", + Privilege: "RegisterEventTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "sns:GetTopicAttributes", }, - ResourceType: "verified-access-instance*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject a directory sharing request that was sent from the directory owner account", + Privilege: "RejectSharedDirectory", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a verified trust provider", - Privilege: "CreateVerifiedAccessTrustProvider", + Description: "Grants permission to remove IP address blocks from a directory", + Privilege: "RemoveIpRoutes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "verified-access-trust-provider*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an EBS volume", - Privilege: "CreateVolume", + Description: "Grants permission to stop all replication and removes the domain controllers from the specified Region. You cannot remove the primary Region with this operation", + Privilege: "RemoveRegion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:KmsKeyId", - "ec2:ParentSnapshot", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "volume*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a VPC with a specified CIDR block", - Privilege: "CreateVpc", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an Amazon Directory Services directory", + Privilege: "RemoveTagsFromResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:Ipv4IpamPoolId", - "ec2:Ipv6IpamPoolId", - "ec2:VpcID", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "ipam-pool", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:DeleteTags", }, - DependentActions: []string{}, - ResourceType: "ipv6pool-ec2", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -90531,275 +93123,250 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a VPC endpoint for an AWS service", - Privilege: "CreateVpcEndpoint", + Description: "Grants permission to reset the password for any user in your AWS Managed Microsoft AD or Simple AD directory", + Privilege: "ResetUserPassword", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:VpcID", - }, - DependentActions: []string{ - "ec2:CreateTags", - "route53:AssociateVPCWithHostedZone", - }, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:VpceServiceName", - "ec2:VpceServiceOwner", - }, - DependentActions: []string{}, - ResourceType: "vpc-endpoint*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - }, - DependentActions: []string{}, - ResourceType: "route-table", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - }, - DependentActions: []string{}, - ResourceType: "security-group", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore a directory using an existing directory snapshot", + Privilege: "RestoreFromSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a connection notification for a VPC endpoint or VPC endpoint service", - Privilege: "CreateVpcEndpointConnectionNotification", + Description: "Grants permission to share a specified directory in your AWS account (directory owner) with another AWS account (directory consumer). With this operation you can use your directory from any AWS account and from any Amazon VPC within an AWS Region", + Privilege: "ShareDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-endpoint", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to apply a schema extension to a Microsoft AD directory", + Privilege: "StartSchemaExtension", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unauthorize an application from your AWS Directory", + Privilege: "UnauthorizeApplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a VPC endpoint service configuration to which service consumers (AWS accounts, IAM users, and IAM roles) can connect", - Privilege: "CreateVpcEndpointServiceConfiguration", + Description: "Grants permission to stop the directory sharing between the directory owner and consumer accounts", + Privilege: "UnshareDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:VpceServicePrivateDnsName", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "vpc-endpoint-service*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to request a VPC peering connection between two VPCs", - Privilege: "CreateVpcPeeringConnection", + Description: "Grants permission to update an authorized application for your AWS Directory", + Privilege: "UpdateAuthorizedApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AccepterVpc", - "ec2:RequesterVpc", - "ec2:VpcPeeringConnectionID", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-peering-connection*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a conditional forwarder that has been set up for your AWS directory", + Privilege: "UpdateConditionalForwarder", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a VPN connection between a virtual private gateway or transit gateway and a customer gateway", - Privilege: "CreateVpnConnection", + Description: "Grants permission to update the configurations like service account credentials or DNS server IP addresses for the specified directory", + Privilege: "UpdateDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "customer-gateway*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AuthenticationType", - "ec2:DPDTimeoutSeconds", - "ec2:GatewayType", - "ec2:IKEVersions", - "ec2:InsideTunnelCidr", - "ec2:InsideTunnelIpv6Cidr", - "ec2:Phase1DHGroup", - "ec2:Phase1EncryptionAlgorithms", - "ec2:Phase1IntegrityAlgorithms", - "ec2:Phase1LifetimeSeconds", - "ec2:Phase2DHGroup", - "ec2:Phase2EncryptionAlgorithms", - "ec2:Phase2IntegrityAlgorithms", - "ec2:Phase2LifetimeSeconds", - "ec2:RekeyFuzzPercentage", - "ec2:RekeyMarginTimeSeconds", - "ec2:ReplayWindowSizePackets", - "ec2:RoutingType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the directory for a particular update type", + Privilege: "UpdateDirectorySetup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or remove domain controllers to or from the directory. Based on the difference between current value and new value (provided through this API call), domain controllers will be added or removed. It may take up to 45 minutes for any new domain controllers to become fully active once the requested number of domain controllers is updated. During this time, you cannot make another update request", + Privilege: "UpdateNumberOfDomainControllers", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the Remote Authentication Dial In User Service (RADIUS) server information for an AD Connector directory", + Privilege: "UpdateRadius", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configurable settings for the specified directory", + Privilege: "UpdateSettings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a static route for a VPN connection between a virtual private gateway and a customer gateway", - Privilege: "CreateVpnConnectionRoute", + Description: "Grants permission to update the trust that has been set up between your AWS Managed Microsoft AD directory and an on-premises Active Directory", + Privilege: "UpdateTrust", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "directory*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to verify a trust relationship between your Microsoft AD in the AWS cloud and an external domain", + Privilege: "VerifyTrust", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "directory*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ds:${Region}:${Account}:directory/${DirectoryId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "directory", + }, + }, + ServiceName: "AWS Directory Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the AWS DS Resource being acted upon", + Type: "String", + }, + { + Condition: "ds-data:Identifier", + Description: "Filters access by the type of identifier provided in the request (i.e. SAM Account Name)", + Type: "String", + }, + { + Condition: "ds-data:MemberName", + Description: "Filters access by the directory SAM Account Name included in the MemberName input of the request", + Type: "String", + }, + { + Condition: "ds-data:MemberRealm", + Description: "Filters access by the directory realm name included in the MemberRealm input of the request", + Type: "String", + }, + { + Condition: "ds-data:Realm", + Description: "Filters access by the directory realm name for the request", + Type: "String", + }, + { + Condition: "ds-data:SAMAccountName", + Description: "Filters access by the directory SAM Account Name included in the SAMAccountName input of the request", + Type: "String", + }, + }, + Prefix: "ds-data", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a virtual private gateway", - Privilege: "CreateVpnGateway", + Description: "Grants permission to add a member to a group on a directory", + Privilege: "AddGroupMember", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateTags", + "ds:AccessDSData", }, - ResourceType: "vpn-gateway*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:MemberName", + "ds-data:Realm", + "ds-data:MemberRealm", + "ds-data:Identifier", }, DependentActions: []string{}, ResourceType: "", @@ -90808,20 +93375,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a carrier gateway", - Privilege: "DeleteCarrierGateway", + Description: "Grants permission to create a group on a directory", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "carrier-gateway*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90830,26 +93398,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Client VPN endpoint", - Privilege: "DeleteClientVpnEndpoint", + Description: "Grants permission to create a user on a directory", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90858,37 +93421,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a route from a Client VPN endpoint", - Privilege: "DeleteClientVpnRoute", + Description: "Grants permission to delete a group on a directory", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", - }, - DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90897,20 +93444,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a range of customer-owned IP (CoIP) addresses", - Privilege: "DeleteCoipCidr", + Description: "Grants permission to delete a user on a directory", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "coip-pool*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90918,21 +93466,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a pool of customer-owned IP (CoIP) addresses", - Privilege: "DeleteCoipPool", + AccessLevel: "Read", + Description: "Grants permission to describe a group on a directory", + Privilege: "DescribeGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "coip-pool*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90940,21 +93489,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to deny a service from accessing a customer-owned IP (CoIP) pool", - Privilege: "DeleteCoipPoolPermission", + AccessLevel: "Read", + Description: "Grants permission to describe a user on a directory", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "coip-pool*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90963,20 +93513,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a customer gateway", - Privilege: "DeleteCustomerGateway", + Description: "Grants permission to disable a user on a directory", + Privilege: "DisableUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "customer-gateway*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -90984,22 +93535,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a set of DHCP options", - Privilege: "DeleteDhcpOptions", + AccessLevel: "List", + Description: "Grants permission to list members in a group on a directory", + Privilege: "ListGroupMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:DhcpOptionsID", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "dhcp-options*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Realm", + "ds-data:MemberRealm", + "ds-data:Identifier", }, DependentActions: []string{}, ResourceType: "", @@ -91007,21 +93559,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an egress-only internet gateway", - Privilege: "DeleteEgressOnlyInternetGateway", + AccessLevel: "List", + Description: "Grants permission to list groups on a directory", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "egress-only-internet-gateway*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -91029,21 +93580,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete one or more EC2 Fleets", - Privilege: "DeleteFleets", + AccessLevel: "List", + Description: "Grants permission to list the groups that a member is in on a directory", + Privilege: "ListGroupsForMember", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Realm", + "ds-data:MemberRealm", + "ds-data:Identifier", }, DependentActions: []string{}, ResourceType: "", @@ -91051,21 +93604,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete one or more flow logs", - Privilege: "DeleteFlowLogs", + AccessLevel: "List", + Description: "Grants permission to list users on a directory", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "vpc-flow-log*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -91074,22 +93626,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon FPGA Image (AFI)", - Privilege: "DeleteFpgaImage", + Description: "Grants permission to remove a member from a group on a directory", + Privilege: "RemoveGroupMember", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "fpga-image*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:MemberName", + "ds-data:Realm", + "ds-data:MemberRealm", + "ds-data:Identifier", }, DependentActions: []string{}, ResourceType: "", @@ -91097,22 +93650,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an EC2 Instance Connect Endpoint", - Privilege: "DeleteInstanceConnectEndpoint", + AccessLevel: "Read", + Description: "Grants permission to search for groups on a directory", + Privilege: "SearchGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds-data:DescribeGroup", + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "instance-connect-endpoint*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -91120,21 +93672,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified event window", - Privilege: "DeleteInstanceEventWindow", + AccessLevel: "Read", + Description: "Grants permission to search for users on a directory", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds-data:DescribeUser", + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "instance-event-window*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -91143,21 +93695,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an internet gateway", - Privilege: "DeleteInternetGateway", + Description: "Grants permission to update a group on a directory", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "internet-gateway*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", @@ -91166,42 +93718,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon VPC IP Address Manager (IPAM) and remove all monitored data associated with the IPAM including the historical data for CIDRs", - Privilege: "DeleteIpam", + Description: "Grants permission to update a user on a directory", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AccessDSData", }, - DependentActions: []string{}, - ResourceType: "ipam*", + ResourceType: "directory*", }, { ConditionKeys: []string{ - "ec2:Region", + "ds-data:SAMAccountName", + "ds-data:Identifier", + "ds-data:Realm", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ds:${Region}:${Account}:directory/${DirectoryId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "directory", + }, + }, + ServiceName: "AWS Directory Service Data", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "dsql:WitnessRegion", + Description: "Filters access by the witness region of linked clusters", + Type: "ArrayOfString", + }, + }, + Prefix: "dsql", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "DeleteIpamPool", + Description: "Grants permission to create new clusters", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", }, - DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "Cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -91210,20 +93800,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an IPAM resource discovery", - Privilege: "DeleteIpamResourceDiscovery", + Description: "Grants permission to create multi-Region clusters. Creating multi-Region clusters also requires CreateCluster permission in each specified Region", + Privilege: "CreateMultiRegionClusters", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "dsql:CreateCluster", }, - DependentActions: []string{}, - ResourceType: "ipam-resource-discovery*", + ResourceType: "Cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "dsql:WitnessRegion", }, DependentActions: []string{}, ResourceType: "", @@ -91232,118 +93821,116 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the scope for an Amazon VPC IP Address Manager (IPAM)", - Privilege: "DeleteIpamScope", + Description: "Grants permission to connect to the database", + Privilege: "DbConnect", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "ipam-scope*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a key pair by removing the public key from Amazon EC2", - Privilege: "DeleteKeyPair", + Description: "Grants permission to connect to the database with admin role. Connecting with any other role requires DbConnect permission", + Privilege: "DbConnectAdmin", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:KeyPairName", - "ec2:KeyPairType", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key-pair", + ResourceType: "Cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a cluster and all of its data", + Privilege: "DeleteCluster", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a launch template and its associated versions", - Privilege: "DeleteLaunchTemplate", + Description: "Grants permission to delete multi-Region clusters. Deleting multi-Region clusters also requires DeleteCluster permission in each specified Region", + Privilege: "DeleteMultiRegionClusters", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "dsql:DeleteCluster", }, - DependentActions: []string{}, - ResourceType: "launch-template*", + ResourceType: "Cluster*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a cluster", + Privilege: "GetCluster", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete one or more versions of a launch template", - Privilege: "DeleteLaunchTemplateVersions", + AccessLevel: "Read", + Description: "Grants permission to retrieve endpoint service name specific to a cluster", + Privilege: "GetVpcEndpointServiceName", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-template*", + ResourceType: "Cluster*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of clusters", + Privilege: "ListClusters", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a route from a local gateway route table", - Privilege: "DeleteLocalGatewayRoute", + AccessLevel: "Read", + Description: "Grants permission to list all tags on an Aurora DSQL resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "Cluster*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to Aurora DSQL resources", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefix-list", + ResourceType: "Cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -91351,21 +93938,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a local gateway route table", - Privilege: "DeleteLocalGatewayRouteTable", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from Aurora DSQL resources", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "Cluster*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -91374,42 +93958,99 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deny a service from accessing a local gateway route table", - Privilege: "DeleteLocalGatewayRouteTablePermission", + Description: "Grants permission to modify cluster attributes", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Cluster*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete a local gateway route table virtual interface group association", - Privilege: "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation", + Arn: "arn:${Partition}:dsql:${Region}:${Account}:cluster/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Cluster", + }, + }, + ServiceName: "Amazon Aurora DSQL", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "dynamodb:Attributes", + Description: "Filters access by attribute (field or column) names of the table", + Type: "ArrayOfString", + }, + { + Condition: "dynamodb:EnclosingOperation", + Description: "Filters access by blocking Transactions APIs calls and allow the non-Transaction APIs calls and vice-versa", + Type: "String", + }, + { + Condition: "dynamodb:FullTableScan", + Description: "Filters access by blocking full table scan", + Type: "Bool", + }, + { + Condition: "dynamodb:LeadingKeys", + Description: "Filters access by the partition key of the table", + Type: "ArrayOfString", + }, + { + Condition: "dynamodb:ReturnConsumedCapacity", + Description: "Filters access by the ReturnConsumedCapacity parameter of a request. Contains either \"TOTAL\" or \"NONE\"", + Type: "String", + }, + { + Condition: "dynamodb:ReturnValues", + Description: "Filters access by the ReturnValues parameter of request. Contains one of the following: \"ALL_OLD\", \"UPDATED_OLD\",\"ALL_NEW\",\"UPDATED_NEW\", or \"NONE\"", + Type: "String", + }, + { + Condition: "dynamodb:Select", + Description: "Filters access by the Select parameter of a Query or Scan request", + Type: "String", + }, + }, + Prefix: "dynamodb", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to return the attributes of one or more items from one or more tables", + Privilege: "BatchGetItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-virtual-interface-group-association*", + ResourceType: "table*", }, { ConditionKeys: []string{ - "ec2:Region", + "dynamodb:Attributes", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:Select", }, DependentActions: []string{}, ResourceType: "", @@ -91418,20 +94059,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an association between a VPC and local gateway route table", - Privilege: "DeleteLocalGatewayRouteTableVpcAssociation", + Description: "Grants permission to put or delete multiple items in one or more tables", + Privilege: "BatchWriteItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-vpc-association*", + ResourceType: "table*", }, { ConditionKeys: []string{ - "ec2:Region", + "dynamodb:Attributes", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", }, DependentActions: []string{}, ResourceType: "", @@ -91439,21 +94079,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a managed prefix list", - Privilege: "DeleteManagedPrefixList", + AccessLevel: "Read", + Description: "Grants permission to the ConditionCheckItem operation checks the existence of a set of attributes for the item with the given primary key", + Privilege: "ConditionCheckItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "table*", }, { ConditionKeys: []string{ - "ec2:Region", + "dynamodb:Attributes", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:ReturnValues", }, DependentActions: []string{}, ResourceType: "", @@ -91462,68 +94102,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a NAT gateway", - Privilege: "DeleteNatGateway", + Description: "Grants permission to create a backup for an existing table", + Privilege: "CreateBackup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "natgateway*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a network ACL", - Privilege: "DeleteNetworkAcl", + Description: "Grants permission to create a global table from an existing table", + Privilege: "CreateGlobalTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:NetworkAclID", - "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-acl*", + ResourceType: "global-table*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an inbound or outbound entry (rule) from a network ACL", - Privilege: "DeleteNetworkAclEntry", + Description: "Grants permission to the CreateTable operation adds a new table to your account", + Privilege: "CreateTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:NetworkAclID", - "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-acl*", + ResourceType: "table*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -91532,42 +94151,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Network Access Scope", - Privilege: "DeleteNetworkInsightsAccessScope", + Description: "Grants permission to add a new replica table", + Privilege: "CreateTableReplica", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-access-scope*", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing backup of a table", + Privilege: "DeleteBackup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "backup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Network Access Scope analysis", - Privilege: "DeleteNetworkInsightsAccessScopeAnalysis", + Description: "Grants permission to deletes a single item in a table by primary key", + Privilege: "DeleteItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-access-scope-analysis*", + ResourceType: "table*", }, { ConditionKeys: []string{ - "ec2:Region", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:ReturnValues", }, DependentActions: []string{}, ResourceType: "", @@ -91575,334 +94197,308 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a network insights analysis", - Privilege: "DeleteNetworkInsightsAnalysis", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the resource-based policy attached to the resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-analysis*", + ResourceType: "stream*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a network insights path", - Privilege: "DeleteNetworkInsightsPath", + Description: "Grants permission to the DeleteTable operation which deletes a table and all of its items", + Privilege: "DeleteTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-path*", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a replica table and all of its items", + Privilege: "DeleteTableReplica", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a detached network interface", - Privilege: "DeleteNetworkInterface", + AccessLevel: "Read", + Description: "Grants permission to describe an existing backup of a table", + Privilege: "DescribeBackup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "backup*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to check the status of the backup restore settings on the specified table", + Privilege: "DescribeContinuousBackups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a permission that is associated with a network interface", - Privilege: "DeleteNetworkInterfacePermission", + AccessLevel: "Read", + Description: "Grants permission to describe the contributor insights status and related details for a given table or global secondary index", + Privilege: "DescribeContributorInsights", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a placement group", - Privilege: "DeletePlacementGroup", + AccessLevel: "Read", + Description: "Grants permission to return the regional endpoint information", + Privilege: "DescribeEndpoints", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "placement-group", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a public IPv4 address pool for public IPv4 CIDRs that you own and brought to Amazon to manage with Amazon VPC IP Address Manager (IPAM)", - Privilege: "DeletePublicIpv4Pool", + AccessLevel: "Read", + Description: "Grants permission to describe an existing Export of a table", + Privilege: "DescribeExport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipv4pool-ec2*", + ResourceType: "export*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the specified global table", + Privilege: "DescribeGlobalTable", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the queued purchases for the specified Reserved Instances", - Privilege: "DeleteQueuedReservedInstances", + AccessLevel: "Read", + Description: "Grants permission to return settings information about the specified global table", + Privilege: "DescribeGlobalTableSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove an IAM policy that enables cross-account sharing from a resource", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to describe an existing import", + Privilege: "DescribeImport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "import*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to grant permission to describe the status of Kinesis streaming and related details for a given table", + Privilege: "DescribeKinesisStreamingDestination", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the current provisioned-capacity limits for your AWS account in a region, both for the region as a whole and for any one DynamoDB table that you create there", + Privilege: "DescribeLimits", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe one or more of the Reserved Capacity purchased", + Privilege: "DescribeReservedCapacity", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a route from a route table", - Privilege: "DeleteRoute", + AccessLevel: "Read", + Description: "Grants permission to describe Reserved Capacity offerings that are available for purchase", + Privilege: "DescribeReservedCapacityOfferings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a stream, including the current status of the stream, its Amazon Resource Name (ARN), the composition of its shards, and its corresponding DynamoDB table", + Privilege: "DescribeStream", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a route table", - Privilege: "DeleteRouteTable", + AccessLevel: "Read", + Description: "Grants permission to return information about the table", + Privilege: "DescribeTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-table*", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the auto scaling settings across all replicas of the global table", + Privilege: "DescribeTableReplicaAutoScaling", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a security group", - Privilege: "DeleteSecurityGroup", + AccessLevel: "Read", + Description: "Grants permission to give a description of the Time to Live (TTL) status on the specified table", + Privilege: "DescribeTimeToLive", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to grant permission to stop replication from the DynamoDB table to the Kinesis data stream", + Privilege: "DisableKinesisStreamingDestination", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a snapshot of an EBS volume", - Privilege: "DeleteSnapshot", + Description: "Grants permission to grant permission to start table data replication to the specified Kinesis data stream at a timestamp chosen during the enable workflow", + Privilege: "EnableKinesisStreamingDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:OutpostArn", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate an Export of a DynamoDB table to S3", + Privilege: "ExportTableToPointInTime", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a data feed for Spot Instances", - Privilege: "DeleteSpotDatafeedSubscription", + AccessLevel: "Read", + Description: "Grants permission to view the status of Attribute Based Access Control for the account", + Privilege: "GetAbacStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a subnet", - Privilege: "DeleteSubnet", + AccessLevel: "Read", + Description: "Grants permission to the GetItem operation that returns a set of attributes for the item with the given primary key", + Privilege: "GetItem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "table*", }, { ConditionKeys: []string{ - "ec2:Region", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:Select", }, DependentActions: []string{}, ResourceType: "", @@ -91910,683 +94506,1679 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a subnet CIDR reservation", - Privilege: "DeleteSubnetCidrReservation", + AccessLevel: "Read", + Description: "Grants permission to retrieve the stream records from a given shard", + Privilege: "GetRecords", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ec2:Region", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete one or more tags from Amazon EC2 resources", - Privilege: "DeleteTags", + AccessLevel: "Read", + Description: "Grants permission to view a resource-based policy for a resource", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-reservation", + ResourceType: "stream*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-reservation-fleet", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a shard iterator", + Privilege: "GetShardIterator", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "carrier-gateway", + ResourceType: "stream*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate an import from S3 to a DynamoDB table", + Privilege: "ImportTable", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list backups associated with the account and endpoint", + Privilege: "ListBackups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coip-pool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the ContributorInsightsSummary for all tables and global secondary indexes associated with the current account and endpoint", + Privilege: "ListContributorInsights", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-gateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list exports associated with the account and endpoint", + Privilege: "ListExports", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-host", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all global tables that have a replica in the specified region", + Privilege: "ListGlobalTables", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dhcp-options", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list imports associated with the account and endpoint", + Privilege: "ListImports", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "egress-only-internet-gateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return an array of stream ARNs associated with the current account and endpoint", + Privilege: "ListStreams", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-gpu", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return an array of table names associated with the current account and endpoint", + Privilege: "ListTables", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "elastic-ip", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all tags on an Amazon DynamoDB resource", + Privilege: "ListTagsOfResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-image-task", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a single item in a table by primary key", + Privilege: "PartiQLDelete", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-instance-task", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", + "dynamodb:ReturnValues", }, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new item, if an item with same primary key does not exist in the table", + Privilege: "PartiQLInsert", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fpga-image", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", }, DependentActions: []string{}, - ResourceType: "host-reservation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read a set of attributes for items from a table or index", + Privilege: "PartiQLSelect", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-image-task", + ResourceType: "index", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:FullTableScan", + "dynamodb:LeadingKeys", + "dynamodb:Select", }, DependentActions: []string{}, - ResourceType: "import-snapshot-task", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to edit an existing item's attributes", + Privilege: "PartiQLUpdate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", + "dynamodb:ReturnValues", }, DependentActions: []string{}, - ResourceType: "instance-connect-endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchases reserved capacity for use with your account", + Privilege: "PurchaseReservedCapacityOfferings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-event-window", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new item, or replace an old item with a new item", + Privilege: "PutItem", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "internet-gateway", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:ReturnValues", }, DependentActions: []string{}, - ResourceType: "ipam", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to attach a resource-based policy to the resource", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "stream*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to use the primary key of a table or a secondary index to directly access items from that table or index", + Privilege: "Query", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery-association", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipam-scope", + ResourceType: "index", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:ReturnValues", + "dynamodb:Select", }, DependentActions: []string{}, - ResourceType: "ipv4pool-ec2", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new table from recovery point on AWS Backup", + Privilege: "RestoreTableFromAwsBackup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipv6pool-ec2", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new table from an existing backup", + Privilege: "RestoreTableFromBackup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "dynamodb:BatchWriteItem", + "dynamodb:DeleteItem", + "dynamodb:GetItem", + "dynamodb:PutItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", }, - DependentActions: []string{}, - ResourceType: "key-pair", + ResourceType: "backup*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore a table to a point in time", + Privilege: "RestoreTableToPointInTime", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "dynamodb:BatchWriteItem", + "dynamodb:DeleteItem", + "dynamodb:GetItem", + "dynamodb:PutItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", }, - DependentActions: []string{}, - ResourceType: "local-gateway", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return one or more items and item attributes by accessing every item in a table or a secondary index", + Privilege: "Scan", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-virtual-interface-group-association", + ResourceType: "index", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:ReturnValues", + "dynamodb:Select", }, DependentActions: []string{}, - ResourceType: "local-gateway-route-table-vpc-association", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a backup on AWS Backup with advanced features enabled", + Privilege: "StartAwsBackupJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to associate a set of tags with an Amazon DynamoDB resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface-group", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "natgateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove the association of tags from an Amazon DynamoDB resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-acl", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "network-insights-access-scope", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update the status of Attribute Based Access Control for the account", + Privilege: "UpdateAbacStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-access-scope-analysis", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or disable continuous backups", + Privilege: "UpdateContinuousBackups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-analysis", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the status for contributor insights for a specific table or global secondary index", + Privilege: "UpdateContributorInsights", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-insights-path", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "index", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or remove replicas in the specified global table", + Privilege: "UpdateGlobalTable", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "global-table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefix-list", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update settings of the specified global table", + Privilege: "UpdateGlobalTableSettings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replace-root-volume-task", + ResourceType: "global-table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reserved-instances", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update version of the specified global table", + Privilege: "UpdateGlobalTableVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-table", + ResourceType: "global-table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "table", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to edit an existing item's attributes, or adds a new item to the table if it does not already exist", + Privilege: "UpdateItem", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "security-group-rule", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "dynamodb:Attributes", + "dynamodb:EnclosingOperation", + "dynamodb:LeadingKeys", + "dynamodb:ReturnConsumedCapacity", + "dynamodb:ReturnValues", }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update data replication configurations for the specified Kinesis data stream", + Privilege: "UpdateKinesisStreamingDestination", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "spot-fleet-request", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the provisioned throughput settings, global secondary indexes, or DynamoDB Streams settings for a given table", + Privilege: "UpdateTable", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "spot-instances-request", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update auto scaling settings on your replica table", + Privilege: "UpdateTableReplicaAutoScaling", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnet", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "subnet-cidr-reservation", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or disable TTL for the specified table", + Privilege: "UpdateTimeToLive", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-mirror-filter", + ResourceType: "table*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/index/${IndexName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "index", + }, + { + Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/stream/${StreamLabel}", + ConditionKeys: []string{}, + Resource: "stream", + }, + { + Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "table", + }, + { + Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/backup/${BackupName}", + ConditionKeys: []string{}, + Resource: "backup", + }, + { + Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/export/${ExportName}", + ConditionKeys: []string{}, + Resource: "export", + }, + { + Arn: "arn:${Partition}:dynamodb::${Account}:global-table/${GlobalTableName}", + ConditionKeys: []string{}, + Resource: "global-table", + }, + { + Arn: "arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}/import/${ImportName}", + ConditionKeys: []string{}, + Resource: "import", + }, + }, + ServiceName: "Amazon DynamoDB", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "ebs:Description", + Description: "Filters access by the description of the snapshot being created", + Type: "String", + }, + { + Condition: "ebs:ParentSnapshot", + Description: "Filters access by the ID of the parent snapshot", + Type: "String", + }, + { + Condition: "ebs:VolumeSize", + Description: "Filters access by the size of the volume for the snapshot being created, in GiB", + Type: "Numeric", + }, + }, + Prefix: "ebs", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to seal and complete the snapshot after all of the required blocks of data have been written to it", + Privilege: "CompleteSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "traffic-mirror-session", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "traffic-mirror-target", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the data of a block in an Amazon Elastic Block Store (EBS) snapshot", + Privilege: "GetSnapshotBlock", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the blocks that are different between two Amazon Elastic Block Store (EBS) snapshots of the same volume/snapshot lineage", + Privilege: "ListChangedBlocks", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-connect-peer", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the blocks in an Amazon Elastic Block Store (EBS) snapshot", + Privilege: "ListSnapshotBlocks", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to write a block of data to a snapshot created by the StartSnapshot operation", + Privilege: "PutSnapshotBlock", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table-announcement", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new EBS snapshot", + Privilege: "StartSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verified-access-group", + ResourceType: "snapshot", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:TagKeys", + "ebs:Description", + "ebs:ParentSnapshot", + "ebs:VolumeSize", }, DependentActions: []string{}, - ResourceType: "verified-access-instance", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ec2:${Region}::snapshot/${SnapshotId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ebs:Description", + "ebs:ParentSnapshot", + "ebs:VolumeSize", + }, + Resource: "snapshot", + }, + }, + ServiceName: "Amazon Elastic Block Store", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "ec2:AccepterVpc", + Description: "Filters access by the ARN of an accepter VPC in a VPC peering connection", + Type: "ARN", + }, + { + Condition: "ec2:Add/group", + Description: "Filters access by the group being added to a snapshot", + Type: "String", + }, + { + Condition: "ec2:Add/userId", + Description: "Filters access by the account id being added to a snapshot", + Type: "String", + }, + { + Condition: "ec2:AllocationId", + Description: "Filters access by the allocation ID of the Elastic IP address", + Type: "String", + }, + { + Condition: "ec2:AssociatePublicIpAddress", + Description: "Filters access by whether the user wants to associate a public IP address with the instance", + Type: "Bool", + }, + { + Condition: "ec2:Attribute", + Description: "Filters access by an attribute of a resource", + Type: "String", + }, + { + Condition: "ec2:Attribute/${AttributeName}", + Description: "Filters access by an attribute being set on a resource", + Type: "String", + }, + { + Condition: "ec2:AuthenticationType", + Description: "Filters access by the authentication type for the VPN tunnel endpoints", + Type: "String", + }, + { + Condition: "ec2:AuthorizedService", + Description: "Filters access by the AWS service that has permission to use a resource", + Type: "String", + }, + { + Condition: "ec2:AuthorizedUser", + Description: "Filters access by an IAM principal that has permission to use a resource", + Type: "String", + }, + { + Condition: "ec2:AutoPlacement", + Description: "Filters access by the Auto Placement properties of a Dedicated Host", + Type: "String", + }, + { + Condition: "ec2:AvailabilityZone", + Description: "Filters access by the name of an Availability Zone in an AWS Region", + Type: "String", + }, + { + Condition: "ec2:AvailabilityZoneId", + Description: "Filters access by the ID of an Availability Zone in an AWS Region", + Type: "String", + }, + { + Condition: "ec2:CapacityReservationFleet", + Description: "Filters access by the ARN of the Capacity Reservation Fleet", + Type: "ARN", + }, + { + Condition: "ec2:ClientRootCertificateChainArn", + Description: "Filters access by the ARN of the client root certificate chain", + Type: "ARN", + }, + { + Condition: "ec2:CloudwatchLogGroupArn", + Description: "Filters access by the ARN of the CloudWatch Logs log group", + Type: "ARN", + }, + { + Condition: "ec2:CloudwatchLogStreamArn", + Description: "Filters access by the ARN of the CloudWatch Logs log stream", + Type: "ARN", + }, + { + Condition: "ec2:CpuOptionsAmdSevSnp", + Description: "Filters access by the state of AMD SEV-SNP CPU Options. Currently, only US East (Ohio) and Europe (Ireland) are supported", + Type: "String", + }, + { + Condition: "ec2:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + { + Condition: "ec2:CreateDate", + Description: "Filters access by the date and time at which the Capacity Reservation was created", + Type: "Date", + }, + { + Condition: "ec2:DPDTimeoutSeconds", + Description: "Filters access by the duration after which DPD timeout occurs on a VPN tunnel", + Type: "Numeric", + }, + { + Condition: "ec2:DestinationCapacityReservationId", + Description: "Filters access by the ID of the Capacity Reservation that you want to move capacity into", + Type: "ARN", + }, + { + Condition: "ec2:DhcpOptionsID", + Description: "Filters access by the ID of a dynamic host configuration protocol (DHCP) options set", + Type: "String", + }, + { + Condition: "ec2:DirectoryArn", + Description: "Filters access by the ARN of the directory", + Type: "ARN", + }, + { + Condition: "ec2:Domain", + Description: "Filters access by the domain of the Elastic IP address", + Type: "String", + }, + { + Condition: "ec2:EbsOptimized", + Description: "Filters access by whether the instance is enabled for EBS optimization", + Type: "Bool", + }, + { + Condition: "ec2:ElasticGpuType", + Description: "Filters access by the type of Elastic Graphics accelerator", + Type: "String", + }, + { + Condition: "ec2:Encrypted", + Description: "Filters access by whether the EBS volume is encrypted", + Type: "Bool", + }, + { + Condition: "ec2:EndDate", + Description: "Filters access by the date and time at which the Capacity Reservation ends", + Type: "Date", + }, + { + Condition: "ec2:EndDateType", + Description: "Filters access by the way in which the Capacity Reservation ends", + Type: "String", + }, + { + Condition: "ec2:EphemeralStorage", + Description: "Filters access by whether the instance is enabled for ephemeral storage", + Type: "Bool", + }, + { + Condition: "ec2:FisActionId", + Description: "Filters access by the ID of an AWS FIS action", + Type: "String", + }, + { + Condition: "ec2:FisTargetArns", + Description: "Filters access by the ARN of an AWS FIS target", + Type: "ArrayOfARN", + }, + { + Condition: "ec2:GatewayType", + Description: "Filters access by the gateway type for a VPN endpoint on the AWS side of a VPN connection", + Type: "String", + }, + { + Condition: "ec2:HostRecovery", + Description: "Filters access by whether host recovery is enabled for a Dedicated Host", + Type: "String", + }, + { + Condition: "ec2:IKEVersions", + Description: "Filters access by the internet key exchange (IKE) versions that are permitted for a VPN tunnel", + Type: "ArrayOfString", + }, + { + Condition: "ec2:ImageID", + Description: "Filters access by the ID of an image", + Type: "String", + }, + { + Condition: "ec2:ImageType", + Description: "Filters access by the type of image (machine, aki, or ari)", + Type: "String", + }, + { + Condition: "ec2:InsideTunnelCidr", + Description: "Filters access by the range of inside IP addresses for a VPN tunnel", + Type: "String", + }, + { + Condition: "ec2:InsideTunnelIpv6Cidr", + Description: "Filters access by a range of inside IPv6 addresses for a VPN tunnel", + Type: "String", + }, + { + Condition: "ec2:InstanceAutoRecovery", + Description: "Filters access by whether the instance type supports auto recovery", + Type: "String", + }, + { + Condition: "ec2:InstanceBandwidthWeighting", + Description: "Filters access by the bandwidth weighting of an instance", + Type: "String", + }, + { + Condition: "ec2:InstanceCount", + Description: "Filters access by the number of instances", + Type: "Numeric", + }, + { + Condition: "ec2:InstanceID", + Description: "Filters access by the ID of an instance", + Type: "String", + }, + { + Condition: "ec2:InstanceMarketType", + Description: "Filters access by the market or purchasing option of an instance (capacity-block, on-demand, or spot)", + Type: "String", + }, + { + Condition: "ec2:InstanceMatchCriteria", + Description: "Filters access by the type of instance launches that the Capacity Reservation accepts", + Type: "String", + }, + { + Condition: "ec2:InstanceMetadataTags", + Description: "Filters access by whether the instance allows access to instance tags from the instance metadata", + Type: "String", + }, + { + Condition: "ec2:InstancePlatform", + Description: "Filters access by the type of operating system for which the Capacity Reservation reserves capacity", + Type: "ARN", + }, + { + Condition: "ec2:InstanceProfile", + Description: "Filters access by the ARN of an instance profile", + Type: "ARN", + }, + { + Condition: "ec2:InstanceType", + Description: "Filters access by the type of instance", + Type: "String", + }, + { + Condition: "ec2:InternetGatewayID", + Description: "Filters access by the ID of an internet gateway", + Type: "String", + }, + { + Condition: "ec2:Ipv4IpamPoolId", + Description: "Filters access by the ID of an IPAM pool provided for IPv4 CIDR block allocation", + Type: "String", + }, + { + Condition: "ec2:Ipv6IpamPoolId", + Description: "Filters access by the ID of an IPAM pool provided for IPv6 CIDR block allocation", + Type: "String", + }, + { + Condition: "ec2:IsLaunchTemplateResource", + Description: "Filters access by whether users are able to override resources that are specified in the launch template", + Type: "Bool", + }, + { + Condition: "ec2:KeyPairName", + Description: "Filters access by the name of a key pair", + Type: "String", + }, + { + Condition: "ec2:KeyPairType", + Description: "Filters access by the type of a key pair", + Type: "String", + }, + { + Condition: "ec2:KmsKeyId", + Description: "Filters access by the ID of an AWS KMS key provided in the request", + Type: "String", + }, + { + Condition: "ec2:LaunchTemplate", + Description: "Filters access by the ARN of a launch template", + Type: "ARN", + }, + { + Condition: "ec2:Location", + Description: "Filters access by the destination for the snapshot copy", + Type: "String", + }, + { + Condition: "ec2:ManagedResourceOperator", + Description: "Filters access by the presence of an EC2 operator provisioning a managed resource", + Type: "String", + }, + { + Condition: "ec2:MetadataHttpEndpoint", + Description: "Filters access by whether the HTTP endpoint is enabled for the instance metadata service", + Type: "String", + }, + { + Condition: "ec2:MetadataHttpPutResponseHopLimit", + Description: "Filters access by the allowed number of hops when calling the instance metadata service", + Type: "Numeric", + }, + { + Condition: "ec2:MetadataHttpTokens", + Description: "Filters access by whether tokens are required when calling the instance metadata service (optional or required)", + Type: "String", + }, + { + Condition: "ec2:NetworkAclID", + Description: "Filters access by the ID of a network access control list (ACL)", + Type: "String", + }, + { + Condition: "ec2:NetworkInterfaceID", + Description: "Filters access by the ID of an elastic network interface", + Type: "String", + }, + { + Condition: "ec2:NewInstanceProfile", + Description: "Filters access by the ARN of the instance profile being attached", + Type: "ARN", + }, + { + Condition: "ec2:OutpostArn", + Description: "Filters access by the ARN of the Outpost", + Type: "ARN", + }, + { + Condition: "ec2:Owner", + Description: "Filters access by the owner of the resource (amazon, aws-marketplace, or an AWS account ID)", + Type: "String", + }, + { + Condition: "ec2:ParentSnapshot", + Description: "Filters access by the ARN of the parent snapshot", + Type: "ARN", + }, + { + Condition: "ec2:ParentVolume", + Description: "Filters access by the ARN of the parent volume from which the snapshot was created", + Type: "ARN", + }, + { + Condition: "ec2:Permission", + Description: "Filters access by the type of permission for a resource (INSTANCE-ATTACH or EIP-ASSOCIATE)", + Type: "String", + }, + { + Condition: "ec2:Phase1DHGroup", + Description: "Filters access by the Diffie-Hellman group numbers that are permitted for a VPN tunnel for the phase 1 IKE negotiations", + Type: "ArrayOfString", + }, + { + Condition: "ec2:Phase1EncryptionAlgorithms", + Description: "Filters access by the encryption algorithms that are permitted for a VPN tunnel for the phase 1 IKE negotiations", + Type: "ArrayOfString", + }, + { + Condition: "ec2:Phase1IntegrityAlgorithms", + Description: "Filters access by the integrity algorithms that are permitted for a VPN tunnel for the phase 1 IKE negotiations", + Type: "ArrayOfString", + }, + { + Condition: "ec2:Phase1LifetimeSeconds", + Description: "Filters access by the lifetime in seconds for phase 1 of the IKE negotiations for a VPN tunnel", + Type: "Numeric", + }, + { + Condition: "ec2:Phase2DHGroup", + Description: "Filters access by the Diffie-Hellman group numbers that are permitted for a VPN tunnel for the phase 2 IKE negotiations", + Type: "ArrayOfString", + }, + { + Condition: "ec2:Phase2EncryptionAlgorithms", + Description: "Filters access by the encryption algorithms that are permitted for a VPN tunnel for the phase 2 IKE negotiations", + Type: "ArrayOfString", + }, + { + Condition: "ec2:Phase2IntegrityAlgorithms", + Description: "Filters access by the integrity algorithms that are permitted for a VPN tunnel for the phase 2 IKE negotiations", + Type: "ArrayOfString", + }, + { + Condition: "ec2:Phase2LifetimeSeconds", + Description: "Filters access by the lifetime in seconds for phase 2 of the IKE negotiations for a VPN tunnel", + Type: "Numeric", + }, + { + Condition: "ec2:PlacementGroup", + Description: "Filters access by the ARN of the placement group", + Type: "ARN", + }, + { + Condition: "ec2:PlacementGroupName", + Description: "Filters access by the name of a placement group", + Type: "String", + }, + { + Condition: "ec2:PlacementGroupStrategy", + Description: "Filters access by the instance placement strategy used by the placement group (cluster, spread, or partition)", + Type: "String", + }, + { + Condition: "ec2:ProductCode", + Description: "Filters access by the product code that is associated with the AMI", + Type: "String", + }, + { + Condition: "ec2:Public", + Description: "Filters access by whether the image has public launch permissions", + Type: "Bool", + }, + { + Condition: "ec2:PublicIpAddress", + Description: "Filters access by a public IP address", + Type: "String", + }, + { + Condition: "ec2:Quantity", + Description: "Filters access by the number of Dedicated Hosts in a request", + Type: "Numeric", + }, + { + Condition: "ec2:Region", + Description: "Filters access by the name of the AWS Region", + Type: "String", + }, + { + Condition: "ec2:RekeyFuzzPercentage", + Description: "Filters access by the percentage of increase of the rekey window (determined by the rekey margin time) within which the rekey time is randomly selected for a VPN tunnel", + Type: "Numeric", + }, + { + Condition: "ec2:RekeyMarginTimeSeconds", + Description: "Filters access by the margin time before the phase 2 lifetime expires for a VPN tunnel", + Type: "Numeric", + }, + { + Condition: "ec2:Remove/group", + Description: "Filters access by the group being removed from a snapshot", + Type: "String", + }, + { + Condition: "ec2:Remove/userId", + Description: "Filters access by the account id being removed from a snapshot", + Type: "String", + }, + { + Condition: "ec2:ReplayWindowSizePackets", + Description: "Filters access by the number of packets in an IKE replay window", + Type: "String", + }, + { + Condition: "ec2:RequesterVpc", + Description: "Filters access by the ARN of a requester VPC in a VPC peering connection", + Type: "ARN", + }, + { + Condition: "ec2:ReservedInstancesOfferingType", + Description: "Filters access by the payment option of the Reserved Instance offering (No Upfront, Partial Upfront, or All Upfront)", + Type: "String", + }, + { + Condition: "ec2:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "ec2:RoleDelivery", + Description: "Filters access by the version of the instance metadata service for retrieving IAM role credentials for EC2", + Type: "Numeric", + }, + { + Condition: "ec2:RootDeviceType", + Description: "Filters access by the root device type of the instance (ebs or instance-store)", + Type: "String", + }, + { + Condition: "ec2:RouteTableID", + Description: "Filters access by the ID of a route table", + Type: "String", + }, + { + Condition: "ec2:RoutingType", + Description: "Filters access by the routing type for the VPN connection", + Type: "String", + }, + { + Condition: "ec2:SamlProviderArn", + Description: "Filters access by the ARN of the IAM SAML identity provider", + Type: "ARN", + }, + { + Condition: "ec2:SecurityGroupID", + Description: "Filters access by the ID of a security group", + Type: "String", + }, + { + Condition: "ec2:ServerCertificateArn", + Description: "Filters access by the ARN of the server certificate", + Type: "ARN", + }, + { + Condition: "ec2:SnapshotCoolOffPeriod", + Description: "Filters access by the compliance mode cooling-off period", + Type: "Numeric", + }, + { + Condition: "ec2:SnapshotID", + Description: "Filters access by the ID of a snapshot", + Type: "String", + }, + { + Condition: "ec2:SnapshotLockDuration", + Description: "Filters access by the snapshot lock duration", + Type: "Numeric", + }, + { + Condition: "ec2:SnapshotTime", + Description: "Filters access by the initiation time of a snapshot", + Type: "String", + }, + { + Condition: "ec2:SourceAvailabilityZone", + Description: "Filters access by the name of the Availability Zone from which the request originated", + Type: "String", + }, + { + Condition: "ec2:SourceCapacityReservationId", + Description: "Filters access by the ID of the Capacity Reservation from which you want to move capacity", + Type: "ARN", + }, + { + Condition: "ec2:SourceInstanceARN", + Description: "Filters access by the ARN of the instance from which the request originated", + Type: "ARN", + }, + { + Condition: "ec2:SourceOutpostArn", + Description: "Filters access by the ARN of the Outpost from which the request originated", + Type: "ARN", + }, + { + Condition: "ec2:Subnet", + Description: "Filters access by the ARN of the subnet", + Type: "ARN", + }, + { + Condition: "ec2:SubnetID", + Description: "Filters access by the ID of a subnet", + Type: "String", + }, + { + Condition: "ec2:Tenancy", + Description: "Filters access by the tenancy of the VPC or instance (default, dedicated, or host)", + Type: "String", + }, + { + Condition: "ec2:VolumeID", + Description: "Filters access by the ID of a volume", + Type: "String", + }, + { + Condition: "ec2:VolumeIops", + Description: "Filters access by the the number of input/output operations per second (IOPS) provisioned for the volume", + Type: "Numeric", + }, + { + Condition: "ec2:VolumeSize", + Description: "Filters access by the size of the volume, in GiB", + Type: "Numeric", + }, + { + Condition: "ec2:VolumeThroughput", + Description: "Filters access by the throughput of the volume, in MiBps", + Type: "Numeric", + }, + { + Condition: "ec2:VolumeType", + Description: "Filters access by the type of volume (gp2, gp3, io1, io2, st1, sc1, or standard)", + Type: "String", + }, + { + Condition: "ec2:Vpc", + Description: "Filters access by the ARN of the VPC", + Type: "ARN", + }, + { + Condition: "ec2:VpcID", + Description: "Filters access by the ID of a virtual private cloud (VPC)", + Type: "String", + }, + { + Condition: "ec2:VpcPeeringConnectionID", + Description: "Filters access by the ID of a VPC peering connection", + Type: "String", + }, + { + Condition: "ec2:VpceServiceName", + Description: "Filters access by the name of the VPC endpoint service", + Type: "String", + }, + { + Condition: "ec2:VpceServiceOwner", + Description: "Filters access by the service owner of the VPC endpoint service (amazon, aws-marketplace, or an AWS account ID)", + Type: "String", + }, + { + Condition: "ec2:VpceServicePrivateDnsName", + Description: "Filters access by the private DNS name of the VPC endpoint service", + Type: "String", + }, + { + Condition: "ec2:transitGatewayAttachmentId", + Description: "Filters access by the ID of a transit gateway attachment", + Type: "String", + }, + { + Condition: "ec2:transitGatewayConnectPeerId", + Description: "Filters access by the ID of a transit gateway connect peer", + Type: "String", + }, + { + Condition: "ec2:transitGatewayId", + Description: "Filters access by the ID of a transit gateway", + Type: "String", + }, + { + Condition: "ec2:transitGatewayMulticastDomainId", + Description: "Filters access by the ID of a transit gateway multicast domain", + Type: "String", + }, + { + Condition: "ec2:transitGatewayPolicyTableId", + Description: "Filters access by the ID of a transit gateway policy table", + Type: "String", + }, + { + Condition: "ec2:transitGatewayRouteTableAnnouncementId", + Description: "Filters access by the ID of a transit gateway route table announcement", + Type: "String", + }, + { + Condition: "ec2:transitGatewayRouteTableId", + Description: "Filters access by the ID of a transit gateway route table", + Type: "String", + }, + { + Condition: "ec2:vpceMultiRegion", + Description: "Filters access by multi region of the VPC endpoint service", + Type: "String", + }, + { + Condition: "ec2:vpceServiceRegion", + Description: "Filters access by the region of the VPC endpoint service", + Type: "String", + }, + { + Condition: "ec2:vpceSupportedRegion", + Description: "Filters access by the supported region of the VPC endpoint service", + Type: "String", + }, + }, + Prefix: "ec2", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept an Elastic IP address transfer", + Privilege: "AcceptAddressTransfer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", }, - DependentActions: []string{}, - ResourceType: "verified-access-policy", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "verified-access-trust-provider", + ResourceType: "elastic-ip*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "volume", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to accept assign billing of the available capacity of a shared Capacity Reservation to the calling account", + Privilege: "AcceptCapacityReservationBillingOwnership", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:OutpostArn", + "ec2:PlacementGroup", "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "capacity-reservation*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to accept a Convertible Reserved Instance exchange quote", + Privilege: "AcceptReservedInstancesExchangeQuote", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-connection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to accept a request to associate subnets with a transit gateway multicast domain", + Privilege: "AcceptTransitGatewayMulticastDomainAssociations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service", + ResourceType: "transit-gateway-attachment", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service-permission", + ResourceType: "transit-gateway-multicast-domain", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "vpc-flow-log", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to accept a transit gateway peering attachment request", + Privilege: "AcceptTransitGatewayPeeringAttachment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "vpc-peering-connection", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "vpn-connection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to accept a request to attach a VPC to a transit gateway", + Privilege: "AcceptTransitGatewayVpcAttachment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ - "aws:TagKeys", "ec2:Region", }, DependentActions: []string{}, @@ -92596,16 +96188,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic mirror filter", - Privilege: "DeleteTrafficMirrorFilter", + Description: "Grants permission to accept one or more interface VPC endpoint connections to your VPC endpoint service", + Privilege: "AcceptVpcEndpointConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", }, DependentActions: []string{}, - ResourceType: "traffic-mirror-filter*", + ResourceType: "vpc-endpoint-service*", }, { ConditionKeys: []string{ @@ -92618,21 +96212,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic mirror filter rule", - Privilege: "DeleteTrafficMirrorFilterRule", + Description: "Grants permission to accept a VPC peering connection request", + Privilege: "AcceptVpcPeeringConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "traffic-mirror-filter*", + ResourceType: "vpc*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AccepterVpc", + "ec2:RequesterVpc", + "ec2:ResourceTag/${TagKey}", + "ec2:VpcPeeringConnectionID", + }, DependentActions: []string{}, - ResourceType: "traffic-mirror-filter-rule*", + ResourceType: "vpc-peering-connection*", }, { ConditionKeys: []string{ @@ -92645,17 +96247,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic mirror session", - Privilege: "DeleteTrafficMirrorSession", + Description: "Grants permission to advertise an IP address range that is provisioned for use in AWS through bring your own IP addresses (BYOIP)", + Privilege: "AdvertiseByoipCidr", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-session*", - }, { ConditionKeys: []string{ "ec2:Region", @@ -92667,16 +96261,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic mirror target", - Privilege: "DeleteTrafficMirrorTarget", + Description: "Grants permission to allocate an Elastic IP address (EIP) to your account", + Privilege: "AllocateAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "traffic-mirror-target*", + ResourceType: "ipam-pool", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv4pool-ec2", }, { ConditionKeys: []string{ @@ -92689,17 +96301,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway", - Privilege: "DeleteTransitGateway", + Description: "Grants permission to allocate a Dedicated Host to your account", + Privilege: "AllocateHosts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AutoPlacement", + "ec2:AvailabilityZone", + "ec2:HostRecovery", + "ec2:InstanceType", + "ec2:Quantity", }, - DependentActions: []string{}, - ResourceType: "transit-gateway*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "dedicated-host*", }, { ConditionKeys: []string{ @@ -92712,17 +96330,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway connect attachment", - Privilege: "DeleteTransitGatewayConnect", + Description: "Grants permission to allocate a CIDR from an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "AllocateIpamPoolCidr", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "ipam-pool*", }, { ConditionKeys: []string{ @@ -92735,17 +96352,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway connect peer", - Privilege: "DeleteTransitGatewayConnectPeer", + Description: "Grants permission to apply a security group to the association between a Client VPN endpoint and a target network", + Privilege: "ApplySecurityGroupsToClientVpnTargetNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayConnectPeerId", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "transit-gateway-connect-peer*", + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -92758,17 +96400,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway multicast domain", - Privilege: "DeleteTransitGatewayMulticastDomain", + Description: "Grants permission to assign one or more IPv6 addresses to a network interface", + Privilege: "AssignIpv6Addresses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "network-interface*", }, { ConditionKeys: []string{ @@ -92781,17 +96427,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a peering attachment from a transit gateway", - Privilege: "DeleteTransitGatewayPeeringAttachment", + Description: "Grants permission to assign one or more secondary private IP addresses to a network interface", + Privilege: "AssignPrivateIpAddresses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "network-interface*", }, { ConditionKeys: []string{ @@ -92804,17 +96454,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway policy table", - Privilege: "DeleteTransitGatewayPolicyTable", + Description: "Grants permission to assign one or more secondary private IP addresses to a private NAT gateway", + Privilege: "AssignPrivateNatGatewayAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table*", + ResourceType: "natgateway*", }, { ConditionKeys: []string{ @@ -92827,25 +96476,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway prefix list reference", - Privilege: "DeleteTransitGatewayPrefixListReference", + Description: "Grants permission to associate an Elastic IP address (EIP) with an instance or a network interface", + Privilege: "AssociateAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "elastic-ip", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "network-interface", }, { ConditionKeys: []string{ @@ -92858,17 +96540,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a route from a transit gateway route table", - Privilege: "DeleteTransitGatewayRoute", + Description: "Grants permission to assign billing of the unused capacity of a shared Capacity Reservation to a consumer account", + Privilege: "AssociateCapacityReservationBillingOwner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:OutpostArn", + "ec2:PlacementGroup", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "capacity-reservation*", }, { ConditionKeys: []string{ @@ -92881,17 +96577,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway route table", - Privilege: "DeleteTransitGatewayRouteTable", + Description: "Grants permission to associate a target network with a Client VPN endpoint", + Privilege: "AssociateClientVpnTargetNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + }, + DependentActions: []string{}, + ResourceType: "subnet*", }, { ConditionKeys: []string{ @@ -92904,17 +96614,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a transit gateway route table announcement", - Privilege: "DeleteTransitGatewayRouteTableAnnouncement", + Description: "Grants permission to associate or disassociate a set of DHCP options with a VPC", + Privilege: "AssociateDhcpOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:DhcpOptionsID", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableAnnouncementId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table-announcement*", + ResourceType: "dhcp-options*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -92927,17 +96647,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a VPC attachment from a transit gateway", - Privilege: "DeleteTransitGatewayVpcAttachment", + Description: "Grants permission to associate an ACM certificate with an IAM role to be used in an EC2 Enclave", + Privilege: "AssociateEnclaveCertificateIamRole", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "certificate*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", }, { ConditionKeys: []string{ @@ -92950,16 +96671,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Verified Access endpoint", - Privilege: "DeleteVerifiedAccessEndpoint", + Description: "Grants permission to associate an IAM instance profile with a running or stopped instance", + Privilege: "AssociateIamInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:NewInstanceProfile", + "ec2:PlacementGroup", + "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", }, - DependentActions: []string{}, - ResourceType: "verified-access-endpoint*", + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "instance*", }, { ConditionKeys: []string{ @@ -92972,8 +96714,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Verified Access group", - Privilege: "DeleteVerifiedAccessGroup", + Description: "Grants permission to associate one or more targets with an event window", + Privilege: "AssociateInstanceEventWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -92981,7 +96723,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-group*", + ResourceType: "instance-event-window*", }, { ConditionKeys: []string{ @@ -92994,17 +96736,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Verified Access instance", - Privilege: "DeleteVerifiedAccessInstance", + Description: "Grants permission to associate an Autonomous System Number (ASN) with a BYOIP CIDR", + Privilege: "AssociateIpamByoasn", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "verified-access-instance*", - }, { ConditionKeys: []string{ "ec2:Region", @@ -93016,16 +96750,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a verified trust provider", - Privilege: "DeleteVerifiedAccessTrustProvider", + Description: "Grants permission to associate an IPAM resource discovery with an Amazon VPC IPAM", + Privilege: "AssociateIpamResourceDiscovery", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "ipam*", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-trust-provider*", + ResourceType: "ipam-resource-discovery*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "ipam-resource-discovery-association*", }, { ConditionKeys: []string{ @@ -93038,24 +96790,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an EBS volume", - Privilege: "DeleteVolume", + Description: "Grants permission to associate an Elastic IP address and private IP address with a public Nat gateway", + Privilege: "AssociateNatGatewayAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "natgateway*", }, { ConditionKeys: []string{ @@ -93068,13 +96823,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a VPC", - Privilege: "DeleteVpc", + Description: "Grants permission to associate a route server with a VPC", + Privilege: "AssociateRouteServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", + "ec2:ResourceTag/${TagKey}", "ec2:Tenancy", "ec2:VpcID", }, @@ -93092,46 +96857,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete one or more VPC endpoint connection notifications", - Privilege: "DeleteVpcEndpointConnectionNotifications", + Description: "Grants permission to associate a subnet or gateway with a route table", + Privilege: "AssociateRouteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint", + ResourceType: "route-table*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:InternetGatewayID", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service", + ResourceType: "internet-gateway", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete one or more VPC endpoint service configurations", - Privilege: "DeleteVpcEndpointServiceConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "vpn-gateway", }, { ConditionKeys: []string{ @@ -93144,42 +96909,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete one or more VPC endpoints", - Privilege: "DeleteVpcEndpoints", + Description: "Grants permission to associate a security group with another VPC in the same Region", + Privilege: "AssociateSecurityGroupVpc", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:VpceServiceName", - }, - DependentActions: []string{}, - ResourceType: "vpc-endpoint*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "ec2:SecurityGroupID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a VPC peering connection", - Privilege: "DeleteVpcPeeringConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AccepterVpc", - "ec2:RequesterVpc", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc-peering-connection*", + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -93192,16 +96945,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a VPN connection", - Privilege: "DeleteVpnConnection", + Description: "Grants permission to associate a CIDR block with a subnet", + Privilege: "AssociateSubnetCidrBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "subnet*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool", }, { ConditionKeys: []string{ @@ -93214,38 +96978,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a static route for a VPN connection between a virtual private gateway and a customer gateway", - Privilege: "DeleteVpnConnectionRoute", + Description: "Grants permission to associate an attachment and list of subnets with a transit gateway multicast domain", + Privilege: "AssociateTransitGatewayMulticastDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "subnet*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-attachment*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a virtual private gateway", - Privilege: "DeleteVpnGateway", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "vpn-gateway*", + ResourceType: "transit-gateway-multicast-domain*", }, { ConditionKeys: []string{ @@ -93258,30 +97021,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to release an IP address range that was provisioned through bring your own IP addresses (BYOIP), and to delete the corresponding address pool", - Privilege: "DeprovisionByoipCidr", + Description: "Grants permission to associate a policy table with a transit gateway attachment", + Privilege: "AssociateTransitGatewayPolicyTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-attachment*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deprovision an Autonomous System Number (ASN) from an Amazon Web Services account", - Privilege: "DeprovisionIpamByoasn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayPolicyTableId", }, DependentActions: []string{}, - ResourceType: "ipam*", + ResourceType: "transit-gateway-policy-table*", }, { ConditionKeys: []string{ @@ -93294,16 +97053,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deprovision a CIDR provisioned from an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "DeprovisionIpamPoolCidr", + Description: "Grants permission to associate an attachment with a transit gateway route table", + Privilege: "AssociateTransitGatewayRouteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "transit-gateway-route-table*", }, { ConditionKeys: []string{ @@ -93316,17 +97085,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deprovision a CIDR from a public IPv4 pool", - Privilege: "DeprovisionPublicIpv4PoolCidr", + Description: "Grants permission to associate a branch network interface with a trunk network interface", + Privilege: "AssociateTrunkInterface", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "ipv4pool-ec2*", - }, { ConditionKeys: []string{ "ec2:Region", @@ -93338,21 +97099,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister an Amazon Machine Image (AMI)", - Privilege: "DeregisterImage", + Description: "Grants permission to associate an AWS Web Application Firewall (WAF) web access control list (ACL) with a Verified Access instance", + Privilege: "AssociateVerifiedAccessInstanceWebAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "verified-access-instance*", }, { ConditionKeys: []string{ @@ -93365,43 +97121,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove tags from the set of tags to include in notifications about scheduled events for your instances", - Privilege: "DeregisterInstanceEventNotificationAttributes", + Description: "Grants permission to associate a CIDR block with a VPC", + Privilege: "AssociateVpcCidrBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deregister one or more network interface members from a group IP address in a transit gateway multicast domain", - Privilege: "DeregisterTransitGatewayMulticastGroupMembers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "ipam-pool", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain", + ResourceType: "ipv6pool-ec2", }, { ConditionKeys: []string{ @@ -93414,44 +97163,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister one or more network interface sources from a group IP address in a transit gateway multicast domain", - Privilege: "DeregisterTransitGatewayMulticastGroupSources", + Description: "Grants permission to link an EC2-Classic instance to a ClassicLink-enabled VPC through one or more of the VPC's security groups", + Privilege: "AttachClassicLinkVpc", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "instance*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", + "ec2:SecurityGroupID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain", + ResourceType: "security-group*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the attributes of the AWS account", - Privilege: "DescribeAccountAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93462,38 +97221,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe an Elastic IP address transfer", - Privilege: "DescribeAddressTransfers", + AccessLevel: "Write", + Description: "Grants permission to attach an internet gateway to a VPC", + Privilege: "AttachInternetGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:InternetGatewayID", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "internet-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Elastic IP addresses", - Privilege: "DescribeAddresses", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the attributes of the specified Elastic IP addresses", - Privilege: "DescribeAddressesAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93504,38 +97254,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the longer ID format settings for all resource types", - Privilege: "DescribeAggregateIdFormat", + AccessLevel: "Write", + Description: "Grants permission to attach a network interface to an instance", + Privilege: "AttachNetworkInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more of the Availability Zones that are available to you", - Privilege: "DescribeAvailabilityZones", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the current infrastructure performance metric subscriptions", - Privilege: "DescribeAwsNetworkPerformanceMetricSubscriptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93546,38 +97307,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more bundling tasks", - Privilege: "DescribeBundleTasks", + AccessLevel: "Write", + Description: "Grants permission to attach a trust provider to a Verified Access instance", + Privilege: "AttachVerifiedAccessTrustProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the IP address ranges that were provisioned through bring your own IP addresses (BYOIP)", - Privilege: "DescribeByoipCidrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-trust-provider*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe Capacity Block offerings available for purchase", - Privilege: "DescribeCapacityBlockOfferings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93588,38 +97337,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more Capacity Reservation Fleets", - Privilege: "DescribeCapacityReservationFleets", + AccessLevel: "Write", + Description: "Grants permission to attach an EBS volume to a running or stopped instance and expose it to the instance with the specified device name", + Privilege: "AttachVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Capacity Reservations", - Privilege: "DescribeCapacityReservations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Carrier Gateways", - Privilege: "DescribeCarrierGateways", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93630,31 +97394,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more linked EC2-Classic instances", - Privilege: "DescribeClassicLinkInstances", + AccessLevel: "Write", + Description: "Grants permission to attach a virtual private gateway to a VPC", + Privilege: "AttachVpnGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the authorization rules for a Client VPN endpoint", - Privilege: "DescribeClientVpnAuthorizationRules", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "vpn-gateway*", }, { ConditionKeys: []string{ @@ -93666,9 +97426,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe active client connections and connections that have been terminated within the last 60 minutes for a Client VPN endpoint", - Privilege: "DescribeClientVpnConnections", + AccessLevel: "Write", + Description: "Grants permission to add an inbound authorization rule to a Client VPN endpoint", + Privilege: "AuthorizeClientVpnIngress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -93694,51 +97454,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more Client VPN endpoints", - Privilege: "DescribeClientVpnEndpoints", + AccessLevel: "Write", + Description: "Grants permission to add one or more outbound rules to a VPC security group. Policies using the security-group-rule resource-level permission are only enforced when the API request includes TagSpecifications", + Privilege: "AuthorizeSecurityGroupEgress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "ec2:SecurityGroupID", + "ec2:Vpc", }, - DependentActions: []string{}, - ResourceType: "client-vpn-endpoint", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the routes for a Client VPN endpoint", - Privilege: "DescribeClientVpnRoutes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "security-group-rule", }, { ConditionKeys: []string{ @@ -93750,38 +97488,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the target networks that are associated with a Client VPN endpoint", - Privilege: "DescribeClientVpnTargetNetworks", + AccessLevel: "Write", + Description: "Grants permission to add one or more inbound rules to a VPC security group. Policies using the security-group-rule resource-level permission are only enforced when the API request includes TagSpecifications", + Privilege: "AuthorizeSecurityGroupIngress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "ec2:SecurityGroupID", + "ec2:Vpc", }, - DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "security-group*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group-rule", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the specified customer-owned address pools or all of your customer-owned address pools", - Privilege: "DescribeCoipPools", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93792,9 +97522,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more conversion tasks", - Privilege: "DescribeConversionTasks", + AccessLevel: "Write", + Description: "Grants permission to bundle an instance store-backed Windows instance", + Privilege: "BundleInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -93806,9 +97536,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more customer gateways", - Privilege: "DescribeCustomerGateways", + AccessLevel: "Write", + Description: "Grants permission to cancel a bundling operation", + Privilege: "CancelBundleTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -93820,24 +97550,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more DHCP options sets", - Privilege: "DescribeDhcpOptions", + AccessLevel: "Write", + Description: "Grants permission to cancel a Capacity Reservation and release the reserved capacity", + Privilege: "CancelCapacityReservation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:CapacityReservationFleet", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "capacity-reservation*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more egress-only internet gateways", - Privilege: "DescribeEgressOnlyInternetGateways", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93848,24 +97572,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe an Elastic Graphics accelerator that is associated with an instance", - Privilege: "DescribeElasticGpus", + AccessLevel: "Write", + Description: "Grants permission to cancel one or more Capacity Reservation Fleets", + Privilege: "CancelCapacityReservationFleets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CancelCapacityReservation", + }, + ResourceType: "capacity-reservation-fleet*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more export image tasks", - Privilege: "DescribeExportImageTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93876,9 +97596,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more export instance tasks", - Privilege: "DescribeExportTasks", + AccessLevel: "Write", + Description: "Grants permission to cancel an active conversion task", + Privilege: "CancelConversionTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -93890,24 +97610,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe fast-launch enabled Windows AMIs", - Privilege: "DescribeFastLaunchImages", + AccessLevel: "Write", + Description: "Grants permission to cancel a declarative policies report", + Privilege: "CancelDeclarativePoliciesReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "declarative-policies-report*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the state of fast snapshot restores for snapshots", - Privilege: "DescribeFastSnapshotRestores", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93918,9 +97632,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the events for an EC2 Fleet during a specified time", - Privilege: "DescribeFleetHistory", + AccessLevel: "Write", + Description: "Grants permission to cancel an active export task", + Privilege: "CancelExportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -93928,29 +97642,15 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "export-image-task", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the running instances for an EC2 Fleet", - Privilege: "DescribeFleetInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "export-instance-task", }, { ConditionKeys: []string{ @@ -93962,24 +97662,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more EC2 Fleets", - Privilege: "DescribeFleets", + AccessLevel: "Write", + Description: "Grants permission to remove your AWS account from the launch permissions for the specified AMI", + Privilege: "CancelImageLaunchPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more flow logs", - Privilege: "DescribeFlowLogs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -93990,33 +97689,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the attributes of an Amazon FPGA Image (AFI)", - Privilege: "DescribeFpgaImageAttribute", + AccessLevel: "Write", + Description: "Grants permission to cancel an in-process import virtual machine or import snapshot task", + Privilege: "CancelImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Owner", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "fpga-image*", + ResourceType: "import-image-task", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "import-snapshot-task", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Amazon FPGA Images (AFIs)", - Privilege: "DescribeFpgaImages", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94027,9 +97719,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the Dedicated Host Reservations that are available to purchase", - Privilege: "DescribeHostReservationOfferings", + AccessLevel: "Write", + Description: "Grants permission to cancel a Reserved Instance listing on the Reserved Instance Marketplace", + Privilege: "CancelReservedInstancesListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -94041,24 +97733,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the Dedicated Host Reservations that are associated with Dedicated Hosts in the AWS account", - Privilege: "DescribeHostReservations", + AccessLevel: "Write", + Description: "Grants permission to cancel one or more Spot Fleet requests", + Privilege: "CancelSpotFleetRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "spot-fleet-request*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Dedicated Hosts", - Privilege: "DescribeHosts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94069,24 +97755,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the IAM instance profile associations", - Privilege: "DescribeIamInstanceProfileAssociations", + AccessLevel: "Write", + Description: "Grants permission to cancel one or more Spot Instance requests", + Privilege: "CancelSpotInstanceRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "spot-instances-request*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the ID format settings for resources", - Privilege: "DescribeIdFormat", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94097,9 +97777,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the ID format settings for resources for an IAM user, IAM role, or root user", - Privilege: "DescribeIdentityIdFormat", + AccessLevel: "Write", + Description: "Grants permission to determine whether an owned product code is associated with an instance", + Privilege: "ConfirmProductInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -94111,22 +97791,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe an attribute of an Amazon Machine Image (AMI)", - Privilege: "DescribeImageAttribute", + AccessLevel: "Write", + Description: "Grants permission to copy a source Amazon FPGA image (AFI) to the current Region. Resource-level permissions specified for this action apply to the new AFI only. They do not apply to the source AFI", + Privilege: "CopyFpgaImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "fpga-image*", }, { ConditionKeys: []string{ @@ -94138,24 +97812,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more images (AMIs, AKIs, and ARIs)", - Privilege: "DescribeImages", + AccessLevel: "Write", + Description: "Grants permission to copy an Amazon Machine Image (AMI) from a source Region to the current Region", + Privilege: "CopyImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:ImageID", + "ec2:Owner", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe import virtual machine or import snapshot tasks", - Privilege: "DescribeImportImageTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94166,10 +97846,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe import snapshot tasks", - Privilege: "DescribeImportSnapshotTasks", + AccessLevel: "Write", + Description: "Grants permission to copy a point-in-time snapshot of an EBS volume and store it in Amazon S3. Resource-level permissions specified for this action apply to the new snapshot only. They do not apply to the source snapshot", + Privilege: "CopySnapshot", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:OutpostArn", + "ec2:SnapshotID", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "snapshot*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -94180,32 +97872,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the attributes of an instance", - Privilege: "DescribeInstanceAttribute", + AccessLevel: "Write", + Description: "Grants permission to create a Capacity Reservation", + Privilege: "CreateCapacityReservation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "ec2:AvailabilityZone", + "ec2:AvailabilityZoneId", + "ec2:CapacityReservationFleet", "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:EphemeralStorage", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", + "ec2:OutpostArn", "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", "ec2:Tenancy", }, - DependentActions: []string{}, - ResourceType: "instance*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "capacity-reservation*", }, { ConditionKeys: []string{ @@ -94217,24 +97910,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe EC2 Instance Connect Endpoints", - Privilege: "DescribeInstanceConnectEndpoints", + AccessLevel: "Write", + Description: "Grants permission to create a new Capacity Reservation by splitting the available capacity of the source Capacity Reservation", + Privilege: "CreateCapacityReservationBySplitting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:OutpostArn", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "capacity-reservation*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the credit option for CPU usage of one or more burstable performance instances", - Privilege: "DescribeInstanceCreditSpecifications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94245,24 +97949,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the set of tags to include in notifications about scheduled events for your instances", - Privilege: "DescribeInstanceEventNotificationAttributes", + AccessLevel: "Write", + Description: "Grants permission to create a Capacity Reservation Fleet", + Privilege: "CreateCapacityReservationFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateCapacityReservation", + "ec2:CreateTags", + "ec2:DescribeCapacityReservations", + "ec2:DescribeInstances", + }, + ResourceType: "capacity-reservation-fleet*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the specified event windows or all event windows", - Privilege: "DescribeInstanceEventWindows", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94273,38 +97976,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the status of one or more instances", - Privilege: "DescribeInstanceStatus", + AccessLevel: "Write", + Description: "Grants permission to create a carrier gateway and provides CSP connectivity to VPC customers", + Privilege: "CreateCarrierGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "carrier-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe a tree-based hierarchy that represents the physical host placement of EC2 instances", - Privilege: "DescribeInstanceTopology", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the set of instance types that are offered in a location", - Privilege: "DescribeInstanceTypeOfferings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94315,52 +98010,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the details of instance types that are offered in a location", - Privilege: "DescribeInstanceTypes", + AccessLevel: "Write", + Description: "Grants permission to create a Client VPN endpoint", + Privilege: "CreateClientVpnEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "client-vpn-endpoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more instances", - Privilege: "DescribeInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more internet gateways", - Privilege: "DescribeInternetGateways", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe a bring your own Autonomous System Number (BYOASN) that you've brought to IPAM", - Privilege: "DescribeIpamByoasn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94371,38 +98058,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe Amazon VPC IP Address Manager (IPAM) pools", - Privilege: "DescribeIpamPools", + AccessLevel: "Write", + Description: "Grants permission to add a network route to a Client VPN endpoint's route table", + Privilege: "CreateClientVpnRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "client-vpn-endpoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe IPAM resource discoveries", - Privilege: "DescribeIpamResourceDiscoveries", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe resource discovery associations with an Amazon VPC IPAM", - Privilege: "DescribeIpamResourceDiscoveryAssociations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94413,24 +98095,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe Amazon VPC IP Address Manager (IPAM) scopes", - Privilege: "DescribeIpamScopes", + AccessLevel: "Write", + Description: "Grants permission to create a range of customer-owned IP (CoIP) addresses", + Privilege: "CreateCoipCidr", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "coip-pool*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe an Amazon VPC IP Address Manager (IPAM)", - Privilege: "DescribeIpams", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94441,68 +98117,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more IPv6 address pools", - Privilege: "DescribeIpv6Pools", + AccessLevel: "Write", + Description: "Grants permission to create a pool of customer-owned IP (CoIP) addresses", + Privilege: "CreateCoipPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "coip-pool*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more key pairs", - Privilege: "DescribeKeyPairs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more launch template versions", - Privilege: "DescribeLaunchTemplateVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", }, - DependentActions: []string{ - "ssm:GetParameters", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more launch templates", - Privilege: "DescribeLaunchTemplates", + AccessLevel: "Write", + Description: "Grants permission to allow a service to access a customer-owned IP (CoIP) pool", + Privilege: "CreateCoipPoolPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "coip-pool*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to allow a service to describe local gateway route table permissions", - Privilege: "DescribeLocalGatewayRouteTablePermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94513,24 +98171,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the associations between virtual interface groups and local gateway route tables", - Privilege: "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations", + AccessLevel: "Write", + Description: "Grants permission to create a customer gateway, which provides information to AWS about your customer gateway device", + Privilege: "CreateCustomerGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "customer-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe an association between VPCs and local gateway route tables", - Privilege: "DescribeLocalGatewayRouteTableVpcAssociations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94541,9 +98195,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more local gateway route tables", - Privilege: "DescribeLocalGatewayRouteTables", + AccessLevel: "Write", + Description: "Grants permission to create a default subnet in a specified Availability Zone in a default VPC", + Privilege: "CreateDefaultSubnet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -94555,9 +98209,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe local gateway virtual interface groups", - Privilege: "DescribeLocalGatewayVirtualInterfaceGroups", + AccessLevel: "Write", + Description: "Grants permission to create a default VPC with a default subnet in each Availability Zone", + Privilege: "CreateDefaultVpc", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -94569,24 +98223,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe local gateway virtual interfaces", - Privilege: "DescribeLocalGatewayVirtualInterfaces", + AccessLevel: "Write", + Description: "Grants permission to create a set of DHCP options for a VPC", + Privilege: "CreateDhcpOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:DhcpOptionsID", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "dhcp-options*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more local gateways", - Privilege: "DescribeLocalGateways", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94597,38 +98248,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the lock status for a snapshot", - Privilege: "DescribeLockedSnapshots", + AccessLevel: "Write", + Description: "Grants permission to create an egress-only internet gateway for a VPC", + Privilege: "CreateEgressOnlyInternetGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "egress-only-internet-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe your EC2 Mac Dedicated hosts", - Privilege: "DescribeMacHosts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe your managed prefix lists and any AWS-managed prefix lists", - Privilege: "DescribeManagedPrefixLists", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94639,108 +98282,97 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe Elastic IP addresses that are being moved to the EC2-VPC platform", - Privilege: "DescribeMovingAddresses", + AccessLevel: "Write", + Description: "Grants permission to launch an EC2 Fleet. Resource-level permissions for this action do not include the resources specified in a launch template. To specify resource-level permissions for resources specified in a launch template, you must include the resources in the RunInstances action statement", + Privilege: "CreateFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "fleet*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more NAT gateways", - Privilege: "DescribeNatGateways", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:PlacementGroup", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more network ACLs", - Privilege: "DescribeNetworkAcls", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Network Access Scope analyses", - Privilege: "DescribeNetworkInsightsAccessScopeAnalyses", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "launch-template", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the Network Access Scopes", - Privilege: "DescribeNetworkInsightsAccessScopes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "placement-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more network insights analyses", - Privilege: "DescribeNetworkInsightsAnalyses", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more network insights paths", - Privilege: "DescribeNetworkInsightsPaths", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:KmsKeyId", + "ec2:ParentSnapshot", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe a network interface attribute", - Privilege: "DescribeNetworkInterfaceAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94751,94 +98383,77 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the permissions that are associated with a network interface", - Privilege: "DescribeNetworkInterfacePermissions", + AccessLevel: "Write", + Description: "Grants permission to create one or more flow logs to capture IP traffic for a network interface", + Privilege: "CreateFlowLogs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + "ecs:ListClusters", + "ecs:ListContainerInstances", + "ecs:ListServices", + "ecs:ListTaskDefinitions", + "ecs:ListTasks", + "iam:PassRole", + }, + ResourceType: "vpc-flow-log*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more network interfaces", - Privilege: "DescribeNetworkInterfaces", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more placement groups", - Privilege: "DescribePlacementGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe available AWS services in a prefix list format", - Privilege: "DescribePrefixLists", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the ID format settings for the root user and all IAM roles and IAM users that have explicitly specified a longer ID (17-character ID) preference", - Privilege: "DescribePrincipalIdFormat", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-attachment", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more IPv4 address pools", - Privilege: "DescribePublicIpv4Pools", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more AWS Regions that are currently available in your account", - Privilege: "DescribeRegions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94849,24 +98464,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe a root volume replacement task", - Privilege: "DescribeReplaceRootVolumeTasks", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon FPGA Image (AFI) from a design checkpoint (DCP)", + Privilege: "CreateFpgaImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:Owner", + "ec2:Public", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "fpga-image*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more purchased Reserved Instances in your account", - Privilege: "DescribeReservedInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94877,52 +98490,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe your account's Reserved Instance listings in the Reserved Instance Marketplace", - Privilege: "DescribeReservedInstancesListings", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EBS-backed AMI from a stopped or running Amazon EBS-backed instance", + Privilege: "CreateImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:ImageID", + "ec2:Owner", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "image*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the modifications made to one or more Reserved Instances", - Privilege: "DescribeReservedInstancesModifications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the Reserved Instance offerings that are available for purchase", - Privilege: "DescribeReservedInstancesOfferings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:OutpostArn", + "ec2:ParentVolume", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more route tables", - Privilege: "DescribeRouteTables", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -94933,38 +98555,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to find available schedules for Scheduled Instances", - Privilege: "DescribeScheduledInstanceAvailability", + AccessLevel: "Write", + Description: "Grants permission to create an EC2 Instance Connect Endpoint that allows you to connect to an instance without a public IPv4 address", + Privilege: "CreateInstanceConnectEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:SubnetID", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "instance-connect-endpoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Scheduled Instances in your account", - Privilege: "DescribeScheduledInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the VPCs on the other side of a VPC peering connection that are referencing specified VPC security groups", - Privilege: "DescribeSecurityGroupReferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -94973,7 +98589,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "security-group", }, { ConditionKeys: []string{ @@ -94985,24 +98601,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more of your security group rules", - Privilege: "DescribeSecurityGroupRules", + AccessLevel: "Write", + Description: "Grants permission to create an event window in which scheduled events for the associated Amazon EC2 instances can run", + Privilege: "CreateInstanceEventWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "instance-event-window*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more security groups", - Privilege: "DescribeSecurityGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95013,25 +98625,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe an attribute of a snapshot", - Privilege: "DescribeSnapshotAttribute", + AccessLevel: "Write", + Description: "Grants permission to export a running or stopped instance to an Amazon S3 bucket", + Privilege: "CreateInstanceExportTask", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "export-instance-task*", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:OutpostArn", - "ec2:Owner", - "ec2:ParentVolume", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "instance*", }, { ConditionKeys: []string{ @@ -95043,24 +98673,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the storage tier status for Amazon EBS snapshots", - Privilege: "DescribeSnapshotTierStatus", + AccessLevel: "Write", + Description: "Grants permission to create an internet gateway for a VPC", + Privilege: "CreateInternetGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:InternetGatewayID", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "internet-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more EBS snapshots", - Privilege: "DescribeSnapshots", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95071,10 +98698,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the data feed for Spot Instances", - Privilege: "DescribeSpotDatafeedSubscription", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon VPC IP Address Manager (IPAM)", + Privilege: "CreateIpam", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "ipam*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -95085,17 +98723,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the running instances for a Spot Fleet", - Privilege: "DescribeSpotFleetInstances", + AccessLevel: "Write", + Description: "Grants permission to create a verification token, which proves ownership of an external resource", + Privilege: "CreateIpamExternalResourceVerificationToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "ipam*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "spot-fleet-request*", + ResourceType: "ipam-external-resource-verification-token*", }, { ConditionKeys: []string{ @@ -95107,17 +98755,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the events for a Spot Fleet request during a specified time", - Privilege: "DescribeSpotFleetRequestHistory", + AccessLevel: "Write", + Description: "Grants permission to create an IP address pool for Amazon VPC IP Address Manager (IPAM), which is a collection of contiguous IP address CIDRs", + Privilege: "CreateIpamPool", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "ipam-pool*", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "spot-fleet-request*", + ResourceType: "ipam-scope*", }, { ConditionKeys: []string{ @@ -95129,24 +98787,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more Spot Fleet requests", - Privilege: "DescribeSpotFleetRequests", + AccessLevel: "Write", + Description: "Grants permission to create an IPAM resource discovery", + Privilege: "CreateIpamResourceDiscovery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "ipam-resource-discovery*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more Spot Instance requests", - Privilege: "DescribeSpotInstanceRequests", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95157,38 +98812,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the Spot Instance price history", - Privilege: "DescribeSpotPriceHistory", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon VPC IP Address Manager (IPAM) scope, which is the highest-level container within IPAM", + Privilege: "CreateIpamScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "ipam*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the stale security group rules for security groups in a specified VPC", - Privilege: "DescribeStaleSecurityGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-scope*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the progress of the AMI store tasks", - Privilege: "DescribeStoreImageTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95199,24 +98844,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more subnets", - Privilege: "DescribeSubnets", + AccessLevel: "Write", + Description: "Grants permission to create a 2048-bit RSA key pair", + Privilege: "CreateKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:KeyPairType", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "key-pair*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more tags for an Amazon EC2 resource", - Privilege: "DescribeTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95227,10 +98869,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe traffic mirror filters that determine the traffic that is mirrored", - Privilege: "DescribeTrafficMirrorFilterRules", + AccessLevel: "Write", + Description: "Grants permission to create a launch template", + Privilege: "CreateLaunchTemplate", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + "ssm:GetParameters", + }, + ResourceType: "launch-template*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -95241,10 +98894,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more traffic mirror filters", - Privilege: "DescribeTrafficMirrorFilters", + AccessLevel: "Write", + Description: "Grants permission to create a new version of a launch template", + Privilege: "CreateLaunchTemplateVersion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ssm:GetParameters", + }, + ResourceType: "launch-template*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -95255,66 +98918,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more traffic mirror sessions", - Privilege: "DescribeTrafficMirrorSessions", + AccessLevel: "Write", + Description: "Grants permission to create a static route for a local gateway route table", + Privilege: "CreateLocalGatewayRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more traffic mirror targets", - Privilege: "DescribeTrafficMirrorTargets", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-virtual-interface-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more attachments between resources and transit gateways", - Privilege: "DescribeTransitGatewayAttachments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more transit gateway connect peers", - Privilege: "DescribeTransitGatewayConnectPeers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "prefix-list", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more transit gateway connect attachments", - Privilege: "DescribeTransitGatewayConnects", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95325,52 +98968,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more transit gateway multicast domains", - Privilege: "DescribeTransitGatewayMulticastDomains", + AccessLevel: "Write", + Description: "Grants permission to create a local gateway route table", + Privilege: "CreateLocalGatewayRouteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more transit gateway peering attachments", - Privilege: "DescribeTransitGatewayPeeringAttachments", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe a transit gateway policy table", - Privilege: "DescribeTransitGatewayPolicyTables", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe a transit gateway route table announcement", - Privilege: "DescribeTransitGatewayRouteTableAnnouncements", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95381,24 +99000,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more transit gateway route tables", - Privilege: "DescribeTransitGatewayRouteTables", + AccessLevel: "Write", + Description: "Grants permission to allow a service to access a local gateway route table", + Privilege: "CreateLocalGatewayRouteTablePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more VPC attachments on a transit gateway", - Privilege: "DescribeTransitGatewayVpcAttachments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95409,66 +99022,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more transit gateways", - Privilege: "DescribeTransitGateways", + AccessLevel: "Write", + Description: "Grants permission to create a local gateway route table virtual interface group association", + Privilege: "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more network interface trunk associations", - Privilege: "DescribeTrunkInterfaceAssociations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the specified Verified Access endpoints or all Verified Access endpoints", - Privilege: "DescribeVerifiedAccessEndpoints", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table-virtual-interface-group-association*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the specified Verified Access groups or all Verified Access groups", - Privilege: "DescribeVerifiedAccessGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-virtual-interface-group*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the current logging configuration for the Verified Access instances", - Privilege: "DescribeVerifiedAccessInstanceLoggingConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95479,67 +99062,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the AWS Web Application Firewall (WAF) web access control list (ACL) associations for a Verified Access instance", - Privilege: "DescribeVerifiedAccessInstanceWebAclAssociations", + AccessLevel: "Write", + Description: "Grants permission to associate a VPC with a local gateway route table", + Privilege: "CreateLocalGatewayRouteTableVpcAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the specified Verified Access instances or all Verified Access instances", - Privilege: "DescribeVerifiedAccessInstances", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe details of existing Verified Access trust providers", - Privilege: "DescribeVerifiedAccessTrustProviders", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table-vpc-association*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe an attribute of an EBS volume", - Privilege: "DescribeVolumeAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -95551,24 +99104,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the status of one or more EBS volumes", - Privilege: "DescribeVolumeStatus", + AccessLevel: "Write", + Description: "Grants permission to create a managed prefix list", + Privilege: "CreateManagedPrefixList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "prefix-list*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more EBS volumes", - Privilege: "DescribeVolumes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95579,48 +99128,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the current modification status of one or more EBS volumes", - Privilege: "DescribeVolumesModifications", + AccessLevel: "Write", + Description: "Grants permission to create a NAT gateway in a subnet", + Privilege: "CreateNatGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "natgateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe an attribute of a VPC", - Privilege: "DescribeVpcAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "subnet*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "elastic-ip", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the ClassicLink status of one or more VPCs", - Privilege: "DescribeVpcClassicLink", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95631,52 +99174,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the ClassicLink DNS support status of one or more VPCs", - Privilege: "DescribeVpcClassicLinkDnsSupport", + AccessLevel: "Write", + Description: "Grants permission to create a network ACL in a VPC", + Privilege: "CreateNetworkAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:NetworkAclID", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the connection notifications for VPC endpoints and VPC endpoint services", - Privilege: "DescribeVpcEndpointConnectionNotifications", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-acl*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the VPC endpoint connections to your VPC endpoint services", - Privilege: "DescribeVpcEndpointConnections", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe VPC endpoint service configurations (your services)", - Privilege: "DescribeVpcEndpointServiceConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95687,32 +99209,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the principals (service consumers) that are permitted to discover your VPC endpoint service", - Privilege: "DescribeVpcEndpointServicePermissions", + AccessLevel: "Write", + Description: "Grants permission to create a numbered entry (a rule) in a network ACL", + Privilege: "CreateNetworkAclEntry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:NetworkAclID", "ec2:ResourceTag/${TagKey}", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", - }, - { - ConditionKeys: []string{ - "ec2:Region", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-acl*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe all supported AWS services that can be specified when creating a VPC endpoint", - Privilege: "DescribeVpcEndpointServices", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95723,38 +99233,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more VPC endpoints", - Privilege: "DescribeVpcEndpoints", + AccessLevel: "Write", + Description: "Grants permission to create a Network Access Scope", + Privilege: "CreateNetworkInsightsAccessScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more VPC peering connections", - Privilege: "DescribeVpcPeeringConnections", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-insights-access-scope*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more VPCs", - Privilege: "DescribeVpcs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -95765,149 +99257,109 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more VPN connections", - Privilege: "DescribeVpnConnections", + AccessLevel: "Write", + Description: "Grants permission to create a path to analyze for reachability", + Privilege: "CreateNetworkInsightsPath", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe one or more virtual private gateways", - Privilege: "DescribeVpnGateways", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-insights-path*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to unlink (detach) a linked EC2-Classic instance from a VPC", - Privilege: "DetachClassicLinkVpc", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", "ec2:InstanceID", "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", "ec2:InstanceProfile", "ec2:InstanceType", "ec2:MetadataHttpEndpoint", "ec2:MetadataHttpPutResponseHopLimit", "ec2:MetadataHttpTokens", "ec2:PlacementGroup", + "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", "ec2:RootDeviceType", "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "instance", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:InternetGatewayID", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "internet-gateway", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to detach an internet gateway from a VPC", - Privilege: "DetachInternetGateway", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, DependentActions: []string{}, - ResourceType: "internet-gateway*", + ResourceType: "transit-gateway", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "vpc-endpoint", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-endpoint-service", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to detach a network interface from an instance", - Privilege: "DetachNetworkInterface", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "ec2:AccepterVpc", + "ec2:RequesterVpc", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:VpcPeeringConnectionID", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "vpc-peering-connection", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "vpn-gateway", }, { ConditionKeys: []string{ @@ -95920,77 +99372,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to detach a trust provider from a Verified Access instance", - Privilege: "DetachVerifiedAccessTrustProvider", + Description: "Grants permission to create a network interface in a subnet", + Privilege: "CreateNetworkInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "verified-access-instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:NetworkInterfaceID", }, - DependentActions: []string{}, - ResourceType: "verified-access-trust-provider*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to detach an EBS volume from an instance", - Privilege: "DetachVolume", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "subnet*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:SecurityGroupID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "security-group", }, { ConditionKeys: []string{ @@ -96002,27 +99417,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to detach a virtual private gateway from a VPC", - Privilege: "DetachVpnGateway", + AccessLevel: "Permissions management", + Description: "Grants permission to create a permission for an AWS-authorized user to perform certain operations on a network interface", + Privilege: "CreateNetworkInterfacePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AuthorizedService", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", + "ec2:Permission", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpn-gateway*", + ResourceType: "network-interface*", }, { ConditionKeys: []string{ @@ -96035,19 +99447,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable Elastic IP address transfer", - Privilege: "DisableAddressTransfer", + Description: "Grants permission to create a placement group", + Privilege: "CreatePlacementGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", }, - DependentActions: []string{}, - ResourceType: "elastic-ip*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "placement-group*", }, { ConditionKeys: []string{ @@ -96060,23 +99473,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable infrastructure performance metric subscriptions", - Privilege: "DisableAwsNetworkPerformanceMetricSubscription", + Description: "Grants permission to create a public IPv4 address pool for public IPv4 CIDRs that you own and bring to Amazon to manage with Amazon VPC IP Address Manager (IPAM)", + Privilege: "CreatePublicIpv4Pool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "ipv4pool-ec2*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable EBS encryption by default for your account", - Privilege: "DisableEbsEncryptionByDefault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -96088,65 +99497,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable faster launching for Windows AMIs", - Privilege: "DisableFastLaunch", + Description: "Grants permission to create a root volume replacement task", + Privilege: "CreateReplaceRootVolumeTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", "ec2:RootDeviceType", + "ec2:Tenancy", }, - DependentActions: []string{}, - ResourceType: "image*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable fast snapshot restores for one or more snapshots in specified Availability Zones", - Privilege: "DisableFastSnapshotRestores", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "replace-root-volume-task*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:VolumeID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable an AMI", - Privilege: "DisableImage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -96158,7 +99555,20 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "image", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot", }, { ConditionKeys: []string{ @@ -96171,8 +99581,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable block public access for AMIs at the account level in the specified AWS Region", - Privilege: "DisableImageBlockPublicAccess", + Description: "Grants permission to create a listing for Standard Reserved Instances to be sold in the Reserved Instance Marketplace", + Privilege: "CreateReservedInstancesListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -96185,21 +99595,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to cancel the deprecation of the specified AMI", - Privilege: "DisableImageDeprecation", + Description: "Grants permission to start a task that restores an AMI from an S3 object previously created by using CreateStoreImageTask", + Privilege: "CreateRestoreImageTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "ec2:ImageID", - "ec2:ImageType", "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, - DependentActions: []string{}, - ResourceType: "image*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "image*", }, { ConditionKeys: []string{ @@ -96212,21 +99621,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable deregistration protection for an AMI. When deregistration protection is disabled, the AMI can be deregistered", - Privilege: "DisableImageDeregistrationProtection", + Description: "Grants permission to create a route in a VPC route table", + Privilege: "CreateRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", + "ec2:RouteTableID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "route-table*", }, { ConditionKeys: []string{ @@ -96239,39 +99645,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable an AWS Organizations member account as an Amazon VPC IP Address Manager (IPAM) admin account", - Privilege: "DisableIpamOrganizationAdminAccount", + Description: "Grants permission to create a route server", + Privilege: "CreateRouteServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{ - "organizations:DeregisterDelegatedAdministrator", - }, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable access to the EC2 serial console of all instances for your account", - Privilege: "DisableSerialConsoleAccess", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", + "ec2:CreateTags", + "sns:CreateTopic", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "route-server*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable the block public access for snapshots setting for a Region", - Privilege: "DisableSnapshotBlockPublicAccess", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -96283,35 +99670,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable a resource attachment from propagating routes to the specified propagation route table", - Privilege: "DisableTransitGatewayRouteTablePropagation", + Description: "Grants permission to create a route server endpoint", + Privilege: "CreateRouteServerEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", }, - DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + DependentActions: []string{ + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:CreateSecurityGroup", + "ec2:CreateTags", + "ec2:DescribeSecurityGroups", + }, + ResourceType: "route-server*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "route-server-endpoint*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableAnnouncementId", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table-announcement", + ResourceType: "subnet*", }, { ConditionKeys: []string{ @@ -96324,26 +99719,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable a virtual private gateway from propagating routes to a specified route table of a VPC", - Privilege: "DisableVgwRoutePropagation", + Description: "Grants permission to create a route server peer", + Privilege: "CreateRouteServerPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", }, - DependentActions: []string{}, - ResourceType: "route-table*", + DependentActions: []string{ + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateTags", + }, + ResourceType: "route-server-endpoint*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", }, DependentActions: []string{}, - ResourceType: "vpn-gateway*", + ResourceType: "route-server-peer*", }, { ConditionKeys: []string{ @@ -96356,33 +99754,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disable ClassicLink for a VPC", - Privilege: "DisableVpcClassicLink", + Description: "Grants permission to create a route table for a VPC", + Privilege: "CreateRouteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:RouteTableID", }, - DependentActions: []string{}, - ResourceType: "vpc*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "route-table*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable ClassicLink DNS support for a VPC", - Privilege: "DisableVpcClassicLinkDnsSupport", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -96391,7 +99776,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -96404,31 +99789,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an Elastic IP address from an instance or network interface", - Privilege: "DisassociateAddress", + Description: "Grants permission to create a security group", + Privilege: "CreateSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:SecurityGroupID", }, - DependentActions: []string{}, - ResourceType: "elastic-ip", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "security-group*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "vpc", }, { ConditionKeys: []string{ @@ -96441,46 +99824,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a target network from a Client VPN endpoint", - Privilege: "DisassociateClientVpnTargetNetwork", + Description: "Grants permission to create a snapshot of an EBS volume and store it in Amazon S3", + Privilege: "CreateSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:Location", + "ec2:OutpostArn", + "ec2:ParentVolume", + "ec2:SnapshotID", + "ec2:SourceAvailabilityZone", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", }, - DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "snapshot*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate an ACM certificate from a IAM role", - Privilege: "DisassociateEnclaveCertificateIamRole", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "certificate*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "volume*", }, { ConditionKeys: []string{ @@ -96493,53 +99869,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an IAM instance profile from a running or stopped instance", - Privilege: "DisassociateIamInstanceProfile", + Description: "Grants permission to create crash-consistent snapshots of multiple EBS volumes and store them in Amazon S3", + Privilege: "CreateSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", "ec2:InstanceProfile", "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", "ec2:RootDeviceType", "ec2:Tenancy", }, - DependentActions: []string{}, - ResourceType: "instance*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "instance*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:Location", + "ec2:OutpostArn", + "ec2:ParentVolume", + "ec2:SnapshotID", + "ec2:SourceAvailabilityZone", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate one or more targets from an event window", - Privilege: "DisassociateInstanceEventWindow", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "instance-event-window*", + ResourceType: "volume*", }, { ConditionKeys: []string{ @@ -96552,8 +99932,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an Autonomous System Number (ASN) from a BYOIP CIDR", - Privilege: "DisassociateIpamByoasn", + Description: "Grants permission to create a data feed for Spot Instances to view Spot Instance usage logs", + Privilege: "CreateSpotDatafeedSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -96566,16 +99946,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a resource discovery from an Amazon VPC IPAM", - Privilege: "DisassociateIpamResourceDiscovery", + Description: "Grants permission to store an AMI as a single object in an S3 bucket", + Privilege: "CreateStoreImageTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery-association*", + ResourceType: "image*", }, { ConditionKeys: []string{ @@ -96588,19 +99973,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a secondary Elastic IP address from a public NAT gateway", - Privilege: "DisassociateNatGatewayAddress", + Description: "Grants permission to create a subnet in a VPC", + Privilege: "CreateSubnet", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:SubnetID", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "subnet*", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "elastic-ip*", + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -96608,22 +100003,22 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "natgateway*", + ResourceType: "ipam-pool", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:Permission", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a subnet CIDR reservation", + Privilege: "CreateSubnetCidrReservation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -96634,1122 +100029,996 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a subnet from a route table", - Privilege: "DisassociateRouteTable", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for Amazon EC2 resources", + Privilege: "CreateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", - "ec2:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "internet-gateway", + ResourceType: "capacity-reservation", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipv4pool-ec2", + ResourceType: "capacity-reservation-fleet", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "ipv6pool-ec2", + ResourceType: "carrier-gateway", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "route-table", + ResourceType: "client-vpn-endpoint", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "coip-pool", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "customer-gateway", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "declarative-policies-report", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a CIDR block from a subnet", - Privilege: "DisassociateSubnetCidrBlock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AutoPlacement", "ec2:AvailabilityZone", + "ec2:HostRecovery", + "ec2:InstanceType", + "ec2:Quantity", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "dedicated-host", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:DhcpOptionsID", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dhcp-options", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate one or more subnets from a transit gateway multicast domain", - Privilege: "DisassociateTransitGatewayMulticastDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "egress-only-internet-gateway", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ElasticGpuType", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "elastic-gpu", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "elastic-ip", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "export-image-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a policy table from a transit gateway", - Privilege: "DisassociateTransitGatewayPolicyTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "export-instance-task", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table*", + ResourceType: "fleet", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fpga-image", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a resource attachment from a transit gateway route table", - Privilege: "DisassociateTransitGatewayRouteTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "host-reservation", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "image", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "import-image-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a branch network interface to a trunk network interface", - Privilege: "DisassociateTrunkInterface", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "import-snapshot-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate an AWS Web Application Firewall (WAF) web access control list (ACL) from a Verified Access instance", - Privilege: "DisassociateVerifiedAccessInstanceWebAcl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "verified-access-instance*", + ResourceType: "instance", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance-connect-endpoint", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a CIDR block from a VPC", - Privilege: "DisassociateVpcCidrBlock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "instance-event-window", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:InternetGatewayID", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "internet-gateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable Elastic IP address transfer", - Privilege: "EnableAddressTransfer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "elastic-ip*", + ResourceType: "ipam", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-external-resource-verification-token", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable infrastructure performance subscriptions", - Privilege: "EnableAwsNetworkPerformanceMetricSubscription", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable EBS encryption by default for your account", - Privilege: "EnableEbsEncryptionByDefault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-resource-discovery", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable faster launching for Windows AMIs", - Privilege: "EnableFastLaunch", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "ipam-resource-discovery-association", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "ipam-scope", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipv4pool-ec2", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable fast snapshot restores for one or more snapshots in specified Availability Zones", - Privilege: "EnableFastSnapshotRestores", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "ipv6pool-ec2", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:KeyPairName", + "ec2:KeyPairType", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "key-pair", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to re-enable a disabled AMI", - Privilege: "EnableImage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "launch-template", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable block public access for AMIs at the account level in the specified AWS Region", - Privilege: "EnableImageBlockPublicAccess", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable deprecation of the specified AMI at the specified date and time", - Privilege: "EnableImageDeprecation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "local-gateway-route-table-virtual-interface-group-association", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table-vpc-association", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable deregistration protection for an AMI. When deregistration protection is enabled, the AMI can't be deregistered", - Privilege: "EnableImageDeregistrationProtection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "local-gateway-virtual-interface", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable an AWS Organizations member account as an Amazon VPC IP Address Manager (IPAM) admin account", - Privilege: "EnableIpamOrganizationAdminAccount", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "ec2:Region", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:EnableAWSServiceAccess", - "organizations:RegisterDelegatedAdministrator", - }, - ResourceType: "", + ResourceType: "local-gateway-virtual-interface-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable organization sharing of reachability analyzer", - Privilege: "EnableReachabilityAnalyzerOrganizationSharing", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:EnableAWSServiceAccess", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "natgateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable access to the EC2 serial console of all instances for your account", - Privilege: "EnableSerialConsoleAccess", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:NetworkAclID", + "ec2:ResourceTag/${TagKey}", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-acl", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable or modify the block public access for snapshots setting for a Region", - Privilege: "EnableSnapshotBlockPublicAccess", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-insights-access-scope", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable an attachment to propagate routes to a propagation route table", - Privilege: "EnableTransitGatewayRouteTablePropagation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "network-insights-access-scope-analysis", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "network-insights-analysis", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableAnnouncementId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table-announcement", + ResourceType: "network-insights-path", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", + "ec2:Permission", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable a virtual private gateway to propagate routes to a VPC route table", - Privilege: "EnableVgwRoutePropagation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "route-table*", + ResourceType: "placement-group", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpn-gateway*", + ResourceType: "prefix-list", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "replace-root-volume-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable I/O operations for a volume that had I/O operations disabled", - Privilege: "EnableVolumeIO", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", + "ec2:InstanceType", + "ec2:ReservedInstancesOfferingType", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "reserved-instances", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "route-table", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable a VPC for ClassicLink", - Privilege: "EnableVpcClassicLink", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + "ec2:SecurityGroupID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "security-group", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group-rule", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable a VPC to support DNS hostname resolution for ClassicLink", - Privilege: "EnableVpcClassicLinkDnsSupport", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "snapshot", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "spot-fleet-request", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to download the client certificate revocation list for a Client VPN endpoint", - Privilege: "ExportClientVpnClientCertificateRevocationList", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "spot-instances-request", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to download the contents of the Client VPN endpoint configuration file for a Client VPN endpoint", - Privilege: "ExportClientVpnClientConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "subnet-cidr-reservation", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-filter", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to export an Amazon Machine Image (AMI) to a VM file", - Privilege: "ExportImage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "export-image-task*", + DependentActions: []string{}, + ResourceType: "traffic-mirror-filter-rule", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "traffic-mirror-session", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-target", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to export routes from a transit gateway route table to an Amazon S3 bucket", - Privilege: "ExportTransitGatewayRoutes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the list of roles associated with an ACM certificate", - Privilege: "GetAssociatedEnclaveCertificateIamRoles", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, DependentActions: []string{}, - ResourceType: "certificate*", + ResourceType: "transit-gateway-attachment", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayConnectPeerId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-connect-peer", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about the IPv6 CIDR block associations for a specified IPv6 address pool", - Privilege: "GetAssociatedIpv6PoolCidrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-multicast-domain", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get network performance data", - Privilege: "GetAwsNetworkPerformanceData", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayPolicyTableId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-policy-table", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get usage information about a Capacity Reservation", - Privilege: "GetCapacityReservationUsage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:CapacityReservationFleet", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "capacity-reservation*", + ResourceType: "transit-gateway-route-table", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableAnnouncementId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-route-table-announcement", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the allocations from the specified customer-owned address pool", - Privilege: "GetCoipPoolUsage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "coip-pool*", + ResourceType: "verified-access-endpoint", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-endpoint-target", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the console output for an instance", - Privilege: "GetConsoleOutput", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "verified-access-group", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a JPG-format screenshot of a running instance", - Privilege: "GetConsoleScreenshot", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:NewInstanceProfile", - "ec2:PlacementGroup", - "ec2:ProductCode", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "verified-access-policy", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-trust-provider", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the default credit option for CPU usage of a burstable performance instance family", - Privilege: "GetDefaultCreditSpecification", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the ID of the default customer master key (CMK) for EBS encryption by default", - Privilege: "GetEbsDefaultKmsKeyId", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe whether EBS encryption by default is enabled for your account", - Privilege: "GetEbsEncryptionByDefault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-block-public-access-exclusion", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to generate a CloudFormation template to streamline the integration of VPC flow logs with Amazon Athena", - Privilege: "GetFlowLogsIntegrationTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-flow-log*", + ResourceType: "vpc-endpoint", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-endpoint-connection", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the resource groups to which a Capacity Reservation has been added", - Privilege: "GetGroupsForCapacityReservation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:CapacityReservationFleet", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceServiceRegion", + "ec2:vpceSupportedRegion", }, DependentActions: []string{}, - ResourceType: "capacity-reservation*", + ResourceType: "vpc-endpoint-service", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-endpoint-service-permission", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to preview a reservation purchase with configurations that match those of a Dedicated Host", - Privilege: "GetHostReservationPurchasePreview", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-flow-log", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the current state of block public access for AMIs at the account level in the specified AWS Region", - Privilege: "GetImageBlockPublicAccessState", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AccepterVpc", + "ec2:RequesterVpc", + "ec2:ResourceTag/${TagKey}", + "ec2:VpcPeeringConnectionID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-peering-connection", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view the default instance metadata service (IMDS) settings set for your account in the specified Region", - Privilege: "GetInstanceMetadataDefaults", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AuthenticationType", + "ec2:DPDTimeoutSeconds", + "ec2:GatewayType", + "ec2:IKEVersions", + "ec2:InsideTunnelCidr", + "ec2:InsideTunnelIpv6Cidr", + "ec2:Phase1DHGroup", + "ec2:Phase1EncryptionAlgorithms", + "ec2:Phase1IntegrityAlgorithms", + "ec2:Phase1LifetimeSeconds", + "ec2:Phase2DHGroup", + "ec2:Phase2EncryptionAlgorithms", + "ec2:Phase2IntegrityAlgorithms", + "ec2:Phase2LifetimeSeconds", + "ec2:RekeyFuzzPercentage", + "ec2:RekeyMarginTimeSeconds", + "ec2:ReplayWindowSizePackets", + "ec2:ResourceTag/${TagKey}", + "ec2:RoutingType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpn-connection", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the public endorsement key associated with the Nitro Trusted Platform Module (NitroTPM) for the specified instance", - Privilege: "GetInstanceTpmEkPub", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "vpn-gateway", }, { ConditionKeys: []string{ + "ec2:CreateAction", "ec2:Region", }, DependentActions: []string{}, @@ -97758,47 +101027,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of instance types with specified instance attributes", - Privilege: "GetInstanceTypesFromInstanceRequirements", + AccessLevel: "Write", + Description: "Grants permission to create a traffic mirror filter", + Privilege: "CreateTrafficMirrorFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the binary representation of the UEFI variable store", - Privilege: "GetInstanceUefiData", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:NewInstanceProfile", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "traffic-mirror-filter*", }, { ConditionKeys: []string{ @@ -97810,39 +101051,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve historical information about a CIDR within an Amazon VPC IP Address Manager (IPAM) scope", - Privilege: "GetIpamAddressHistory", + AccessLevel: "Write", + Description: "Grants permission to create a traffic mirror filter rule", + Privilege: "CreateTrafficMirrorFilterRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "ipam-scope*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-filter*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve IPAM discovered accounts", - Privilege: "GetIpamDiscoveredAccounts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery*", + ResourceType: "traffic-mirror-filter-rule*", }, { ConditionKeys: []string{ @@ -97854,61 +101083,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the public IP addresses that have been discovered by IPAM", - Privilege: "GetIpamDiscoveredPublicAddresses", + AccessLevel: "Write", + Description: "Grants permission to create a traffic mirror session", + Privilege: "CreateTrafficMirrorSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, - DependentActions: []string{}, - ResourceType: "ipam-resource-discovery*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-interface*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the resource CIDRs that are monitored as part of a resource discovery", - Privilege: "GetIpamDiscoveredResourceCidrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery*", + ResourceType: "traffic-mirror-filter*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-session*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of all the CIDR allocations in an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "GetIpamPoolAllocations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "traffic-mirror-target*", }, { ConditionKeys: []string{ @@ -97920,47 +101135,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the CIDRs provisioned to an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "GetIpamPoolCidrs", + AccessLevel: "Write", + Description: "Grants permission to create a traffic mirror target", + Privilege: "CreateTrafficMirrorTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "ipam-pool*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + DependentActions: []string{ + "ec2:CreateTags", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-target*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about the resources in an Amazon VPC IP Address Manager (IPAM) scope", - Privilege: "GetIpamResourceCidrs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-scope*", + ResourceType: "network-interface", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:VpceServiceName", + "ec2:VpceServiceOwner", }, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "vpc-endpoint", }, { ConditionKeys: []string{ @@ -97972,32 +101178,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the configuration data of the specified instance for use with a new launch template or launch template version", - Privilege: "GetLaunchTemplateData", + AccessLevel: "Write", + Description: "Grants permission to create a transit gateway", + Privilege: "CreateTransitGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayId", }, - DependentActions: []string{}, - ResourceType: "instance*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway*", }, { ConditionKeys: []string{ @@ -98009,17 +101203,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the resources that are associated with the specified managed prefix list", - Privilege: "GetManagedPrefixListAssociations", + AccessLevel: "Write", + Description: "Grants permission to create a Connect attachment from a specified transit gateway attachment", + Privilege: "CreateTransitGatewayConnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayAttachmentId", }, - DependentActions: []string{}, - ResourceType: "prefix-list*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ @@ -98031,17 +101228,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the entries for a specified managed prefix list", - Privilege: "GetManagedPrefixListEntries", + AccessLevel: "Write", + Description: "Grants permission to create a Connect peer between a transit gateway and an appliance", + Privilege: "CreateTransitGatewayConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayConnectPeerId", }, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "transit-gateway-connect-peer*", }, { ConditionKeys: []string{ @@ -98053,17 +101262,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the findings for one or more Network Access Scope analyses", - Privilege: "GetNetworkInsightsAccessScopeAnalysisFindings", + AccessLevel: "Write", + Description: "Grants permission to create a multicast domain for a transit gateway", + Privilege: "CreateTransitGatewayMulticastDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "network-insights-access-scope-analysis*", + ResourceType: "transit-gateway-multicast-domain*", }, { ConditionKeys: []string{ @@ -98075,17 +101296,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the content for a specified Network Access Scope", - Privilege: "GetNetworkInsightsAccessScopeContent", + AccessLevel: "Write", + Description: "Grants permission to request a transit gateway peering attachment between a requester and accepter transit gateway", + Privilege: "CreateTransitGatewayPeeringAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "network-insights-access-scope*", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ @@ -98097,47 +101330,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the encrypted administrator password for a running Windows instance", - Privilege: "GetPasswordData", + AccessLevel: "Write", + Description: "Grants permission to create a transit gateway policy table", + Privilege: "CreateTransitGatewayPolicyTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:transitGatewayId", }, - DependentActions: []string{}, - ResourceType: "instance*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayPolicyTableId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-policy-table*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return a quote and exchange information for exchanging one or more Convertible Reserved Instances for a new Convertible Reserved Instance", - Privilege: "GetReservedInstancesExchangeQuote", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -98148,9 +101364,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an IAM policy that enables cross-account sharing", - Privilege: "GetResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to create a transit gateway prefix list reference", + Privilege: "CreateTransitGatewayPrefixListReference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -98158,25 +101374,25 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "prefix-list*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "transit-gateway-route-table*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "verified-access-group", + ResourceType: "transit-gateway-attachment", }, { ConditionKeys: []string{ @@ -98188,34 +101404,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of security groups for a specified VPC", - Privilege: "GetSecurityGroupsForVpc", + AccessLevel: "Write", + Description: "Grants permission to create a static route for a transit gateway route table", + Privilege: "CreateTransitGatewayRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "transit-gateway-route-table*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-attachment", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the access status of your account to the EC2 serial console of all instances", - Privilege: "GetSerialConsoleAccessStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -98226,38 +101436,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current state of the block public access for snapshots setting for a Region", - Privilege: "GetSnapshotBlockPublicAccessState", + AccessLevel: "Write", + Description: "Grants permission to create a route table for a transit gateway", + Privilege: "CreateTransitGatewayRouteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to calculate the Spot placement score for a Region or Availability Zone based on the specified target capacity and compute requirements", - Privilege: "GetSpotPlacementScores", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-route-table*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the subnet CIDR reservations", - Privilege: "GetSubnetCidrReservations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -98268,32 +101470,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the route tables to which a resource attachment propagates routes", - Privilege: "GetTransitGatewayAttachmentPropagations", + AccessLevel: "Write", + Description: "Grants permission to create an announcement for a transit gateway route table", + Privilege: "CreateTransitGatewayRouteTableAnnouncement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "transit-gateway-attachment*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about the associations for a transit gateway multicast domain", - Privilege: "GetTransitGatewayMulticastDomainAssociations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayRouteTableAnnouncementId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table-announcement*", }, { ConditionKeys: []string{ @@ -98305,56 +101513,51 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about associations for a transit gateway policy table", - Privilege: "GetTransitGatewayPolicyTableAssociations", + AccessLevel: "Write", + Description: "Grants permission to attach a VPC to a transit gateway", + Privilege: "CreateTransitGatewayVpcAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", + "ec2:SubnetID", + "ec2:Vpc", }, - DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "subnet*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about associations for a transit gateway policy table entry", - Privilege: "GetTransitGatewayPolicyTableEntries", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-policy-table*", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about prefix list references for a transit gateway route table", - Privilege: "GetTransitGatewayPrefixListReferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -98365,67 +101568,62 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about associations for a transit gateway route table", - Privilege: "GetTransitGatewayRouteTableAssociations", + AccessLevel: "Write", + Description: "Grants permission to create a Verified Access endpoint", + Privilege: "CreateVerifiedAccessEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "verified-access-endpoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about the route table propagations for a transit gateway route table", - Privilege: "GetTransitGatewayRouteTablePropagations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-group*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to show the Verified Access policy associated with the endpoint", - Privilege: "GetVerifiedAccessEndpointPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:NetworkInterfaceID", + "ec2:Permission", "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "verified-access-endpoint*", + ResourceType: "network-interface", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to show the contents of the Verified Access policy associated with the group", - Privilege: "GetVerifiedAccessGroupPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "verified-access-group*", + ResourceType: "subnet", }, { ConditionKeys: []string{ @@ -98437,10 +101635,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to show the AWS Web Application Firewall (WAF) web access control list (ACL) for a Verified Access instance", - Privilege: "GetVerifiedAccessInstanceWebAcl", + AccessLevel: "Write", + Description: "Grants permission to create a Verified Access group", + Privilege: "CreateVerifiedAccessGroup", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "verified-access-group*", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -98459,22 +101667,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to download an AWS-provided sample configuration file to be used with the customer gateway device", - Privilege: "GetVpnConnectionDeviceSampleConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a Verified Access instance", + Privilege: "CreateVerifiedAccessInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "vpn-connection*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "vpn-connection-device-type*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "verified-access-instance*", }, { ConditionKeys: []string{ @@ -98486,10 +101691,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to obtain a list of customer gateway devices for which sample configuration files can be provided", - Privilege: "GetVpnConnectionDeviceTypes", + AccessLevel: "Write", + Description: "Grants permission to create a verified trust provider", + Privilege: "CreateVerifiedAccessTrustProvider", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "verified-access-trust-provider*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -98500,17 +101715,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view available tunnel endpoint maintenance events", - Privilege: "GetVpnTunnelReplacementStatus", + AccessLevel: "Write", + Description: "Grants permission to create an EBS volume", + Privilege: "CreateVolume", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:KmsKeyId", + "ec2:ParentSnapshot", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "volume*", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotTime", + "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "snapshot", }, { ConditionKeys: []string{ @@ -98523,44 +101762,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to transfer existing BYOIP IPv4 CIDRs to IPAM", - Privilege: "ImportByoipCidrToIpam", + Description: "Grants permission to create a VPC with a specified CIDR block", + Privilege: "CreateVpc", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", + "ec2:VpcID", }, - DependentActions: []string{}, - ResourceType: "ipam-pool*", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "vpc*", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to upload a client certificate revocation list to a Client VPN endpoint", - Privilege: "ImportClientVpnClientCertificateRevocationList", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "ipv6pool-ec2", }, { ConditionKeys: []string{ @@ -98573,44 +101805,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI)", - Privilege: "ImportImage", + Description: "Grants permission to create an exclusion list for blocked public access on a VPC", + Privilege: "CreateVpcBlockPublicAccessExclusion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:RootDeviceType", }, DependentActions: []string{ "ec2:CreateTags", }, - ResourceType: "image*", + ResourceType: "vpc-block-public-access-exclusion*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "import-image-task*", + ResourceType: "subnet", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Owner", - "ec2:ParentVolume", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "vpc", }, { ConditionKeys: []string{ @@ -98623,41 +101852,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an import instance task using metadata from a disk image", - Privilege: "ImportInstance", + Description: "Grants permission to create a VPC endpoint for an AWS service", + Privilege: "CreateVpcEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:InstanceID", "ec2:ResourceTag/${TagKey}", + "ec2:VpcID", + }, + DependentActions: []string{ + "ec2:CreateTags", + "route53:AssociateVPCWithHostedZone", + }, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:VpceServiceName", + "ec2:VpceServiceOwner", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "vpc-endpoint*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + "ec2:RouteTableID", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "route-table", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", "ec2:SecurityGroupID", - "ec2:Vpc", }, DependentActions: []string{}, ResourceType: "security-group", @@ -98665,10 +101898,8 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, ResourceType: "subnet", @@ -98684,18 +101915,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import a public key from an RSA key pair that was created with a third-party tool", - Privilege: "ImportKeyPair", + Description: "Grants permission to create a connection notification for a VPC endpoint or VPC endpoint service", + Privilege: "CreateVpcEndpointConnectionNotification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{ - "ec2:CreateTags", + DependentActions: []string{}, + ResourceType: "vpc-endpoint", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceServiceRegion", }, - ResourceType: "key-pair*", + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service", }, { ConditionKeys: []string{ @@ -98708,31 +101947,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import a disk into an EBS snapshot", - Privilege: "ImportSnapshot", + Description: "Grants permission to create a VPC endpoint service configuration to which service consumers (AWS accounts, IAM users, and IAM roles) can connect", + Privilege: "CreateVpcEndpointServiceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "ec2:VpceServicePrivateDnsName", + "ec2:vpceMultiRegion", + "ec2:vpceServiceRegion", }, DependentActions: []string{ "ec2:CreateTags", }, - ResourceType: "import-snapshot-task*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", - }, - DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "vpc-endpoint-service*", }, { ConditionKeys: []string{ @@ -98745,24 +101974,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an import volume task using metadata from a disk image", - Privilege: "ImportVolume", + Description: "Grants permission to request a VPC peering connection between two VPCs", + Privilege: "CreateVpcPeeringConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AccepterVpc", + "ec2:RequesterVpc", + "ec2:VpcPeeringConnectionID", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "vpc-peering-connection*", }, { ConditionKeys: []string{ @@ -98775,68 +102011,70 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to temporarily inject errors for target API requests", - Privilege: "InjectApiError", + Description: "Grants permission to create a VPN connection between a virtual private gateway or transit gateway and a customer gateway", + Privilege: "CreateVpnConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:FisActionId", - "ec2:FisTargetArns", - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "customer-gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AuthenticationType", + "ec2:DPDTimeoutSeconds", + "ec2:GatewayType", + "ec2:IKEVersions", + "ec2:InsideTunnelCidr", + "ec2:InsideTunnelIpv6Cidr", + "ec2:Phase1DHGroup", + "ec2:Phase1EncryptionAlgorithms", + "ec2:Phase1IntegrityAlgorithms", + "ec2:Phase1LifetimeSeconds", + "ec2:Phase2DHGroup", + "ec2:Phase2EncryptionAlgorithms", + "ec2:Phase2IntegrityAlgorithms", + "ec2:Phase2LifetimeSeconds", + "ec2:RekeyFuzzPercentage", + "ec2:RekeyMarginTimeSeconds", + "ec2:ReplayWindowSizePackets", + "ec2:RoutingType", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpn-connection*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Amazon Machine Images (AMIs) that are currently in the Recycle Bin", - Privilege: "ListImagesInRecycleBin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the Amazon EBS snapshots that are currently in the Recycle Bin", - Privilege: "ListSnapshotsInRecycleBin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-attachment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to lock an Amazon EBS snapshot in either governance or compliance mode to protect it against accidental or malicious deletions", - Privilege: "LockSnapshot", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotCoolOffPeriod", - "ec2:SnapshotID", - "ec2:SnapshotLockDuration", - "ec2:SnapshotTime", - "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "vpn-gateway", }, { ConditionKeys: []string{ @@ -98849,21 +102087,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an attribute of the specified Elastic IP address", - Privilege: "ModifyAddressAttribute", + Description: "Grants permission to create a static route for a VPN connection between a virtual private gateway and a customer gateway", + Privilege: "CreateVpnConnectionRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Domain", - "ec2:PublicIpAddress", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "elastic-ip*", + ResourceType: "vpn-connection*", }, { ConditionKeys: []string{ @@ -98876,9 +102109,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the opt-in status of the Local Zone and Wavelength Zone group for your account", - Privilege: "ModifyAvailabilityZoneGroup", + Description: "Grants permission to create a virtual private gateway", + Privilege: "CreateVpnGateway", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "vpn-gateway*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -98890,19 +102133,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a Capacity Reservation's capacity and the conditions under which it is to be released", - Privilege: "ModifyCapacityReservation", + Description: "Grants permission to delete a carrier gateway", + Privilege: "DeleteCarrierGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:CapacityReservationFleet", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "capacity-reservation*", + ResourceType: "carrier-gateway*", }, { ConditionKeys: []string{ @@ -98915,20 +102155,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a Capacity Reservation Fleet", - Privilege: "ModifyCapacityReservationFleet", + Description: "Grants permission to delete a Client VPN endpoint", + Privilege: "DeleteClientVpnEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, - DependentActions: []string{ - "ec2:ModifyCapacityReservation", - }, - ResourceType: "capacity-reservation-fleet*", + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", }, { ConditionKeys: []string{ @@ -98941,14 +102183,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a Client VPN endpoint", - Privilege: "ModifyClientVpnEndpoint", + Description: "Grants permission to delete a route from a Client VPN endpoint", + Privilege: "DeleteClientVpnRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ClientRootCertificateChainArn", "ec2:CloudwatchLogGroupArn", "ec2:CloudwatchLogStreamArn", @@ -98963,22 +102203,13 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", + "ec2:SubnetID", "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "security-group", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", - }, - DependentActions: []string{}, - ResourceType: "vpc", + ResourceType: "subnet", }, { ConditionKeys: []string{ @@ -98991,9 +102222,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change the account level default credit option for CPU usage of burstable performance instances", - Privilege: "ModifyDefaultCreditSpecification", + Description: "Grants permission to delete a range of customer-owned IP (CoIP) addresses", + Privilege: "DeleteCoipCidr", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "coip-pool*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -99005,9 +102244,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change the default customer master key (CMK) for EBS encryption by default for your account", - Privilege: "ModifyEbsDefaultKmsKeyId", + Description: "Grants permission to delete a pool of customer-owned IP (CoIP) addresses", + Privilege: "DeleteCoipPool", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "coip-pool*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -99019,50 +102266,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an EC2 Fleet", - Privilege: "ModifyFleet", + Description: "Grants permission to deny a service from accessing a customer-owned IP (CoIP) pool", + Privilege: "DeleteCoipPoolPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "coip-pool*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - }, - DependentActions: []string{}, - ResourceType: "image", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a customer gateway", + Privilege: "DeleteCustomerGateway", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "customer-gateway*", }, { ConditionKeys: []string{ @@ -99075,20 +102310,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an attribute of an Amazon FPGA Image (AFI)", - Privilege: "ModifyFpgaImageAttribute", + Description: "Grants permission to delete a set of DHCP options", + Privilege: "DeleteDhcpOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Owner", - "ec2:Public", + "ec2:DhcpOptionsID", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "fpga-image*", + ResourceType: "dhcp-options*", }, { ConditionKeys: []string{ @@ -99101,18 +102333,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a Dedicated Host", - Privilege: "ModifyHosts", + Description: "Grants permission to delete an egress-only internet gateway", + Privilege: "DeleteEgressOnlyInternetGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "dedicated-host*", + ResourceType: "egress-only-internet-gateway*", }, { ConditionKeys: []string{ @@ -99125,9 +102355,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the ID format for a resource", - Privilege: "ModifyIdFormat", + Description: "Grants permission to delete one or more EC2 Fleets", + Privilege: "DeleteFleets", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "fleet*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -99139,9 +102377,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the ID format of a resource for a specific principal in your account", - Privilege: "ModifyIdentityIdFormat", + Description: "Grants permission to delete one or more flow logs", + Privilege: "DeleteFlowLogs", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpc-flow-log*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -99153,23 +102399,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an attribute of an Amazon Machine Image (AMI)", - Privilege: "ModifyImageAttribute", + Description: "Grants permission to delete an Amazon FPGA Image (AFI)", + Privilege: "DeleteFpgaImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ImageID", - "ec2:ImageType", "ec2:Owner", "ec2:Public", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "fpga-image*", }, { ConditionKeys: []string{ @@ -99182,59 +102423,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an attribute of an instance", - Privilege: "ModifyInstanceAttribute", + Description: "Grants permission to delete an EC2 Instance Connect Endpoint", + Privilege: "DeleteInstanceConnectEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:SubnetID", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "instance-connect-endpoint*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified event window", + Privilege: "DeleteInstanceEventWindow", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "volume", + ResourceType: "instance-event-window*", }, { ConditionKeys: []string{ @@ -99247,41 +102468,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the Capacity Reservation settings for a stopped instance", - Privilege: "ModifyInstanceCapacityReservationAttributes", + Description: "Grants permission to delete an internet gateway", + Privilege: "DeleteInternetGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "ec2:InternetGatewayID", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "internet-gateway*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon VPC IP Address Manager (IPAM) and remove all monitored data associated with the IPAM including the historical data for CIDRs", + Privilege: "DeleteIpam", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "capacity-reservation", + ResourceType: "ipam*", }, { ConditionKeys: []string{ @@ -99294,33 +102513,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the credit option for CPU usage on an instance", - Privilege: "ModifyInstanceCreditSpecification", + Description: "Grants permission to delete a verification token, which proves ownership of an external resource", + Privilege: "DeleteIpamExternalResourceVerificationToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "ipam-external-resource-verification-token*", }, { ConditionKeys: []string{ @@ -99333,32 +102535,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the start time for a scheduled EC2 instance event", - Privilege: "ModifyInstanceEventStartTime", + Description: "Grants permission to delete an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "DeleteIpamPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "ipam-pool*", }, { ConditionKeys: []string{ @@ -99371,8 +102557,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified event window", - Privilege: "ModifyInstanceEventWindow", + Description: "Grants permission to delete an IPAM resource discovery", + Privilege: "DeleteIpamResourceDiscovery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -99380,7 +102566,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "instance-event-window*", + ResourceType: "ipam-resource-discovery*", }, { ConditionKeys: []string{ @@ -99393,33 +102579,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the recovery behaviour for an instance", - Privilege: "ModifyInstanceMaintenanceOptions", + Description: "Grants permission to delete the scope for an Amazon VPC IP Address Manager (IPAM)", + Privilege: "DeleteIpamScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "ipam-scope*", }, { ConditionKeys: []string{ @@ -99432,12 +102601,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the default instance metadata service (IMDS) settings for your account in the specified Region", - Privilege: "ModifyInstanceMetadataDefaults", + Description: "Grants permission to delete a key pair by removing the public key from Amazon EC2", + Privilege: "DeleteKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Attribute/${AttributeName}", + "aws:ResourceTag/${TagKey}", + "ec2:KeyPairName", + "ec2:KeyPairType", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "key-pair", + }, + { + ConditionKeys: []string{ "ec2:Region", }, DependentActions: []string{}, @@ -99447,33 +102625,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the metadata options for an instance", - Privilege: "ModifyInstanceMetadataOptions", + Description: "Grants permission to delete a launch template and its associated versions", + Privilege: "DeleteLaunchTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "ec2:ManagedResourceOperator", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "launch-template*", }, { ConditionKeys: []string{ @@ -99486,51 +102648,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the placement attributes for an instance", - Privilege: "ModifyInstancePlacement", + Description: "Grants permission to delete one or more versions of a launch template", + Privilege: "DeleteLaunchTemplateVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "ec2:ManagedResourceOperator", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "launch-template*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a route from a local gateway route table", + Privilege: "DeleteLocalGatewayRoute", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "dedicated-host", + ResourceType: "local-gateway-route-table*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "prefix-list", }, { ConditionKeys: []string{ @@ -99543,18 +102701,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM)", - Privilege: "ModifyIpam", + Description: "Grants permission to delete a local gateway route table", + Privilege: "DeleteLocalGatewayRouteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam*", + ResourceType: "local-gateway-route-table*", }, { ConditionKeys: []string{ @@ -99567,18 +102723,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "ModifyIpamPool", + Description: "Grants permission to deny a service from accessing a local gateway route table", + Privilege: "DeleteLocalGatewayRouteTablePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "local-gateway-route-table*", }, { ConditionKeys: []string{ @@ -99591,18 +102745,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM) resource CIDR", - Privilege: "ModifyIpamResourceCidr", + Description: "Grants permission to delete a local gateway route table virtual interface group association", + Privilege: "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-scope*", + ResourceType: "local-gateway-route-table-virtual-interface-group-association*", }, { ConditionKeys: []string{ @@ -99615,8 +102767,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a resource discovery", - Privilege: "ModifyIpamResourceDiscovery", + Description: "Grants permission to delete an association between a VPC and local gateway route table", + Privilege: "DeleteLocalGatewayRouteTableVpcAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -99624,7 +102776,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-resource-discovery*", + ResourceType: "local-gateway-route-table-vpc-association*", }, { ConditionKeys: []string{ @@ -99637,18 +102789,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM) scope", - Privilege: "ModifyIpamScope", + Description: "Grants permission to delete a managed prefix list", + Privilege: "DeleteManagedPrefixList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-scope*", + ResourceType: "prefix-list*", }, { ConditionKeys: []string{ @@ -99661,18 +102811,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a launch template", - Privilege: "ModifyLaunchTemplate", + Description: "Grants permission to delete a NAT gateway", + Privilege: "DeleteNatGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "launch-template*", + ResourceType: "natgateway*", }, { ConditionKeys: []string{ @@ -99685,46 +102833,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a local gateway route", - Privilege: "ModifyLocalGatewayRoute", + Description: "Grants permission to delete a network ACL", + Privilege: "DeleteNetworkAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:NetworkAclID", "ec2:ResourceTag/${TagKey}", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "network-acl*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "local-gateway-virtual-interface-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an inbound or outbound entry (rule) from a network ACL", + Privilege: "DeleteNetworkAclEntry", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:Permission", + "ec2:NetworkAclID", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "prefix-list", + ResourceType: "network-acl*", }, { ConditionKeys: []string{ @@ -99737,18 +102881,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a managed prefix list", - Privilege: "ModifyManagedPrefixList", + Description: "Grants permission to delete a Network Access Scope", + Privilege: "DeleteNetworkInsightsAccessScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "network-insights-access-scope*", }, { ConditionKeys: []string{ @@ -99761,55 +102903,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an attribute of a network interface", - Privilege: "ModifyNetworkInterfaceAttribute", + Description: "Grants permission to delete a Network Access Scope analysis", + Privilege: "DeleteNetworkInsightsAccessScopeAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "network-insights-access-scope-analysis*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a network insights analysis", + Privilege: "DeleteNetworkInsightsAnalysis", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "network-insights-analysis*", }, { ConditionKeys: []string{ @@ -99822,34 +102947,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the options for instance hostnames for the specified instance", - Privilege: "ModifyPrivateDnsNameOptions", + Description: "Grants permission to delete a network insights path", + Privilege: "DeleteNetworkInsightsPath", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:NewInstanceProfile", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "network-insights-path*", }, { ConditionKeys: []string{ @@ -99862,22 +102969,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify attributes of one or more Reserved Instances", - Privilege: "ModifyReservedInstances", + Description: "Grants permission to delete a detached network interface", + Privilege: "DeleteNetworkInterface", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:AvailabilityZone", - "ec2:InstanceType", - "ec2:ReservedInstancesOfferingType", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "reserved-instances*", + ResourceType: "network-interface*", }, { ConditionKeys: []string{ @@ -99889,35 +102995,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the rules of a security group", - Privilege: "ModifySecurityGroupRules", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a permission that is associated with a network interface", + Privilege: "DeleteNetworkInterfacePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", + "ec2:Subnet", "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "network-interface", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group-rule*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a placement group", + Privilege: "DeletePlacementGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "prefix-list", + ResourceType: "placement-group", }, { ConditionKeys: []string{ @@ -99929,28 +103046,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add or remove permission settings for a snapshot", - Privilege: "ModifySnapshotAttribute", + AccessLevel: "Write", + Description: "Grants permission to delete a public IPv4 address pool for public IPv4 CIDRs that you own and brought to Amazon to manage with Amazon VPC IP Address Manager (IPAM)", + Privilege: "DeletePublicIpv4Pool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Add/group", - "ec2:Add/userId", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:Remove/group", - "ec2:Remove/userId", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "ipv4pool-ec2*", }, { ConditionKeys: []string{ @@ -99963,25 +103069,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to archive Amazon EBS snapshots", - Privilege: "ModifySnapshotTier", + Description: "Grants permission to delete the queued purchases for the specified Reserved Instances", + Privilege: "DeleteQueuedReservedInstances", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", - }, - DependentActions: []string{}, - ResourceType: "snapshot*", - }, { ConditionKeys: []string{ "ec2:Region", @@ -99993,37 +103083,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a Spot Fleet request", - Privilege: "ModifySpotFleetRequest", + Description: "Grants permission to remove an IAM policy that enables cross-account sharing from a resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "spot-fleet-request*", + ResourceType: "ipam-pool", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "placement-group", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "verified-access-group", }, { ConditionKeys: []string{ @@ -100036,21 +103123,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify an attribute of a subnet", - Privilege: "ModifySubnetAttribute", + Description: "Grants permission to delete a route from a route table", + Privilege: "DeleteRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", + "ec2:RouteTableID", "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "route-table*", }, { ConditionKeys: []string{ @@ -100063,18 +103147,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to allow or restrict mirroring network services", - Privilege: "ModifyTrafficMirrorFilterNetworkServices", + Description: "Grants permission to delete a route server", + Privilege: "DeleteRouteServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-filter*", + DependentActions: []string{ + "sns:DeleteTopic", + }, + ResourceType: "route-server*", }, { ConditionKeys: []string{ @@ -100087,26 +103171,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a traffic mirror rule", - Privilege: "ModifyTrafficMirrorFilterRule", + Description: "Grants permission to delete a route server endpoint", + Privilege: "DeleteRouteServerEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-filter*", - }, - { - ConditionKeys: []string{ - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + "ec2:DeleteSecurityGroup", + "ec2:RevokeSecurityGroupIngress", }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-filter-rule*", + ResourceType: "route-server-endpoint*", }, { ConditionKeys: []string{ @@ -100119,34 +103198,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a traffic mirror session", - Privilege: "ModifyTrafficMirrorSession", + Description: "Grants permission to delete a route server peer", + Privilege: "DeleteRouteServerPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-session*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-filter", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + DependentActions: []string{ + "ec2:RevokeSecurityGroupIngress", }, - DependentActions: []string{}, - ResourceType: "traffic-mirror-target", + ResourceType: "route-server-peer*", }, { ConditionKeys: []string{ @@ -100159,28 +103223,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a transit gateway", - Privilege: "ModifyTransitGateway", + Description: "Grants permission to delete a route table", + Privilege: "DeleteRouteTable", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", - }, - DependentActions: []string{}, - ResourceType: "transit-gateway*", - }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:RouteTableID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table", + ResourceType: "route-table*", }, { ConditionKeys: []string{ @@ -100193,38 +103247,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a transit gateway prefix list reference", - Privilege: "ModifyTransitGatewayPrefixListReference", + Description: "Grants permission to delete a security group", + Privilege: "DeleteSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "security-group*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot of an EBS volume", + Privilege: "DeleteSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:OutpostArn", + "ec2:Owner", + "ec2:ParentVolume", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ @@ -100237,20 +103300,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a VPC attachment on a transit gateway", - Privilege: "ModifyTransitGatewayVpcAttachment", + Description: "Grants permission to delete a data feed for Spot Instances", + Privilege: "DeleteSpotDatafeedSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a subnet", + Privilege: "DeleteSubnet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -100260,7 +103326,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "subnet*", }, { ConditionKeys: []string{ @@ -100273,1133 +103339,896 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the configuration of a Verified Access endpoint", - Privilege: "ModifyVerifiedAccessEndpoint", + Description: "Grants permission to delete a subnet CIDR reservation", + Privilege: "DeleteSubnetCidrReservation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "verified-access-endpoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to delete one or more tags from Amazon EC2 resources", + Privilege: "DeleteTags", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "capacity-reservation", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-group", + ResourceType: "capacity-reservation-fleet", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "carrier-gateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the specified Verified Access endpoint policy", - Privilege: "ModifyVerifiedAccessEndpointPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-endpoint*", + ResourceType: "client-vpn-endpoint", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "coip-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the specified Verified Access Group configuration", - Privilege: "ModifyVerifiedAccessGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-group*", + ResourceType: "customer-gateway", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-instance", + ResourceType: "declarative-policies-report", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-host", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the specified Verified Access group policy", - Privilege: "ModifyVerifiedAccessGroupPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-group*", + ResourceType: "dhcp-options", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "egress-only-internet-gateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the configuration of the specified Verified Access instance", - Privilege: "ModifyVerifiedAccessInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-instance*", + ResourceType: "elastic-gpu", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "elastic-ip", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the logging configuration for the specified Verified Access instance", - Privilege: "ModifyVerifiedAccessInstanceLoggingConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-instance*", + ResourceType: "export-image-task", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "export-instance-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the configuration of the specified Verified Access trust provider", - Privilege: "ModifyVerifiedAccessTrustProvider", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-trust-provider*", + ResourceType: "fleet", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fpga-image", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of an EBS volume", - Privilege: "ModifyVolume", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "host-reservation", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify an attribute of a volume", - Privilege: "ModifyVolumeAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "import-image-task", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "import-snapshot-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify an attribute of a VPC", - Privilege: "ModifyVpcAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "instance", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance-connect-endpoint", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify an attribute of a VPC endpoint", - Privilege: "ModifyVpcEndpoint", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint*", + ResourceType: "instance-event-window", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", }, DependentActions: []string{}, - ResourceType: "route-table", + ResourceType: "internet-gateway", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "ipam", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "ipam-external-resource-verification-token", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify a connection notification for a VPC endpoint or VPC endpoint service", - Privilege: "ModifyVpcEndpointConnectionNotification", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint", + ResourceType: "ipam-resource-discovery", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service", + ResourceType: "ipam-resource-discovery-association", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipam-scope", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the attributes of a VPC endpoint service configuration", - Privilege: "ModifyVpcEndpointServiceConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:VpceServicePrivateDnsName", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "ipv4pool-ec2", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipv6pool-ec2", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the payer responsibility for a VPC endpoint service", - Privilege: "ModifyVpcEndpointServicePayerResponsibility", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "key-pair", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "launch-template", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to modify the permissions for a VPC endpoint service", - Privilege: "ModifyVpcEndpointServicePermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "local-gateway", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the VPC peering connection options on one side of a VPC peering connection", - Privilege: "ModifyVpcPeeringConnectionOptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AccepterVpc", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:RequesterVpc", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", }, DependentActions: []string{}, - ResourceType: "vpc-peering-connection*", + ResourceType: "local-gateway-route-table-virtual-interface-group-association", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-route-table-vpc-association", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the instance tenancy attribute of a VPC", - Privilege: "ModifyVpcTenancy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "vpc*", + ResourceType: "local-gateway-virtual-interface", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "local-gateway-virtual-interface-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the target gateway of a Site-to-Site VPN connection", - Privilege: "ModifyVpnConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AuthenticationType", - "ec2:DPDTimeoutSeconds", - "ec2:GatewayType", - "ec2:IKEVersions", - "ec2:InsideTunnelCidr", - "ec2:InsideTunnelIpv6Cidr", - "ec2:Phase1DHGroup", - "ec2:Phase1EncryptionAlgorithms", - "ec2:Phase1IntegrityAlgorithms", - "ec2:Phase1LifetimeSeconds", - "ec2:Phase2DHGroup", - "ec2:Phase2EncryptionAlgorithms", - "ec2:Phase2IntegrityAlgorithms", - "ec2:Phase2LifetimeSeconds", - "ec2:RekeyFuzzPercentage", - "ec2:RekeyMarginTimeSeconds", - "ec2:ReplayWindowSizePackets", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RoutingType", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "natgateway", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-acl", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the connection options for your Site-to-Site VPN connection", - Privilege: "ModifyVpnConnectionOptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "network-insights-access-scope", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-insights-access-scope-analysis", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the certificate for a Site-to-Site VPN connection", - Privilege: "ModifyVpnTunnelCertificate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "network-insights-analysis", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-insights-path", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the options for a Site-to-Site VPN connection", - Privilege: "ModifyVpnTunnelOptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AuthenticationType", - "ec2:DPDTimeoutSeconds", - "ec2:GatewayType", - "ec2:IKEVersions", - "ec2:InsideTunnelCidr", - "ec2:InsideTunnelIpv6Cidr", - "ec2:Phase1DHGroup", - "ec2:Phase1EncryptionAlgorithms", - "ec2:Phase1IntegrityAlgorithms", - "ec2:Phase1LifetimeSeconds", - "ec2:Phase2DHGroup", - "ec2:Phase2EncryptionAlgorithms", - "ec2:Phase2IntegrityAlgorithms", - "ec2:Phase2LifetimeSeconds", - "ec2:RekeyFuzzPercentage", - "ec2:RekeyMarginTimeSeconds", - "ec2:ReplayWindowSizePackets", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RoutingType", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "network-interface", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "placement-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable detailed monitoring for a running instance", - Privilege: "MonitorInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "prefix-list", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "replace-root-volume-task", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to move an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform", - Privilege: "MoveAddressToVpc", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reserved-instances", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to move a BYOIP IPv4 CIDR to Amazon VPC IP Address Manager (IPAM) from a public IPv4 pool", - Privilege: "MoveByoipCidrToIpam", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "route-table", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "security-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to temporarily pause I/O operations for a target Amazon EBS volume", - Privilege: "PauseVolumeIO", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:ParentSnapshot", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "security-group-rule", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "snapshot", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "spot-fleet-request", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to provision an address range for use in AWS through bring your own IP addresses (BYOIP), and to create a corresponding address pool", - Privilege: "ProvisionByoipCidr", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "spot-instances-request", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to provision an Autonomous System Number (ASN) for use in an Amazon Web Services account", - Privilege: "ProvisionIpamByoasn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam*", + ResourceType: "subnet", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnet-cidr-reservation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to provision a CIDR to an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "ProvisionIpamPoolCidr", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "traffic-mirror-filter", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-filter-rule", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to provision a CIDR to a public IPv4 pool", - Privilege: "ProvisionPublicIpv4PoolCidr", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "traffic-mirror-session", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipv4pool-ec2*", + ResourceType: "traffic-mirror-target", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to purchase a Capacity Block offering", - Privilege: "PurchaseCapacityBlock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "ec2:CapacityReservationFleet", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "capacity-reservation*", - }, - { - ConditionKeys: []string{ - "ec2:Region", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-attachment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to purchase a reservation with configurations that match those of a Dedicated Host", - Privilege: "PurchaseHostReservation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "dedicated-host*", + DependentActions: []string{}, + ResourceType: "transit-gateway-connect-peer", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-multicast-domain", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to purchase a Reserved Instance offering", - Privilege: "PurchaseReservedInstancesOffering", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-policy-table", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to purchase one or more Scheduled Instances with a specified schedule", - Privilege: "PurchaseScheduledInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "transit-gateway-route-table", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to attach an IAM policy that enables cross-account sharing to a resource", - Privilege: "PutResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "ipam-pool", + ResourceType: "transit-gateway-route-table-announcement", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "verified-access-endpoint", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "verified-access-group", + ResourceType: "verified-access-endpoint-target", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to request a reboot of one or more instances", - Privilege: "RebootInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "verified-access-instance", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "verified-access-policy", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register an Amazon Machine Image (AMI)", - Privilege: "RegisterImage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "ec2:ImageID", - "ec2:Owner", - }, - DependentActions: []string{ - "ec2:CreateTags", + "ec2:ResourceTag/${TagKey}", }, - ResourceType: "image*", + DependentActions: []string{}, + ResourceType: "verified-access-trust-provider", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:OutpostArn", - "ec2:Owner", - "ec2:ParentVolume", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "volume", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add tags to the set of tags to include in notifications about scheduled events for your instances", - Privilege: "RegisterInstanceEventNotificationAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-block-public-access-exclusion", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register one or more network interfaces as a member of a group IP address in a transit gateway multicast domain", - Privilege: "RegisterTransitGatewayMulticastGroupMembers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "vpc-endpoint", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "vpc-endpoint-connection", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-endpoint-service", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register one or more network interfaces as a source of a group IP address in a transit gateway multicast domain", - Privilege: "RegisterTransitGatewayMulticastGroupSources", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "vpc-endpoint-service-permission", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "vpc-flow-log", }, { ConditionKeys: []string{ - "ec2:Region", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-peering-connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reject requests to associate cross-account subnets with a transit gateway multicast domain", - Privilege: "RejectTransitGatewayMulticastDomainAssociations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "vpn-connection", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain", + ResourceType: "vpn-gateway", }, { ConditionKeys: []string{ + "aws:TagKeys", "ec2:Region", }, DependentActions: []string{}, @@ -101409,17 +104238,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reject a transit gateway peering attachment request", - Privilege: "RejectTransitGatewayPeeringAttachment", + Description: "Grants permission to delete a traffic mirror filter", + Privilege: "DeleteTrafficMirrorFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", + ResourceType: "traffic-mirror-filter*", }, { ConditionKeys: []string{ @@ -101432,39 +104260,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reject a request to attach a VPC to a transit gateway", - Privilege: "RejectTransitGatewayVpcAttachment", + Description: "Grants permission to delete a traffic mirror filter rule", + Privilege: "DeleteTrafficMirrorFilterRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", - }, - DependentActions: []string{}, - ResourceType: "transit-gateway-attachment*", - }, - { - ConditionKeys: []string{ - "ec2:Region", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "traffic-mirror-filter*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reject one or more VPC endpoint connection requests to a VPC endpoint service", - Privilege: "RejectVpcEndpointConnections", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "traffic-mirror-filter-rule*", }, { ConditionKeys: []string{ @@ -101477,19 +104290,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reject a VPC peering connection request", - Privilege: "RejectVpcPeeringConnection", + Description: "Grants permission to delete a traffic mirror session", + Privilege: "DeleteTrafficMirrorSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AccepterVpc", - "ec2:RequesterVpc", "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", }, DependentActions: []string{}, - ResourceType: "vpc-peering-connection*", + ResourceType: "traffic-mirror-session*", }, { ConditionKeys: []string{ @@ -101502,19 +104312,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to release an Elastic IP address", - Privilege: "ReleaseAddress", + Description: "Grants permission to delete a traffic mirror target", + Privilege: "DeleteTrafficMirrorTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Domain", - "ec2:PublicIpAddress", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "elastic-ip", + ResourceType: "traffic-mirror-target*", }, { ConditionKeys: []string{ @@ -101527,16 +104334,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to release one or more On-Demand Dedicated Hosts", - Privilege: "ReleaseHosts", + Description: "Grants permission to delete a transit gateway", + Privilege: "DeleteTransitGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", }, DependentActions: []string{}, - ResourceType: "dedicated-host*", + ResourceType: "transit-gateway*", }, { ConditionKeys: []string{ @@ -101549,16 +104357,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to release an allocation within an Amazon VPC IP Address Manager (IPAM) pool", - Privilege: "ReleaseIpamPoolAllocation", + Description: "Grants permission to delete a transit gateway connect attachment", + Privilege: "DeleteTransitGatewayConnect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "ipam-pool*", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ @@ -101571,34 +104380,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to replace an IAM instance profile for an instance", - Privilege: "ReplaceIamInstanceProfileAssociation", + Description: "Grants permission to delete a transit gateway connect peer", + Privilege: "DeleteTransitGatewayConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:NewInstanceProfile", - "ec2:PlacementGroup", - "ec2:ProductCode", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, - DependentActions: []string{ - "iam:PassRole", + "ec2:transitGatewayConnectPeerId", }, - ResourceType: "instance*", + DependentActions: []string{}, + ResourceType: "transit-gateway-connect-peer*", }, { ConditionKeys: []string{ @@ -101611,29 +104403,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change which network ACL a subnet is associated with", - Privilege: "ReplaceNetworkAclAssociation", + Description: "Grants permission to delete a transit gateway multicast domain", + Privilege: "DeleteTransitGatewayMulticastDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:NetworkAclID", - "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", - }, - DependentActions: []string{}, - ResourceType: "network-acl*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + "ec2:transitGatewayMulticastDomainId", }, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "transit-gateway-multicast-domain*", }, { ConditionKeys: []string{ @@ -101646,18 +104426,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to replace an entry (rule) in a network ACL", - Privilege: "ReplaceNetworkAclEntry", + Description: "Grants permission to delete a peering attachment from a transit gateway", + Privilege: "DeleteTransitGatewayPeeringAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:NetworkAclID", "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", + "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "network-acl*", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ @@ -101670,18 +104449,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to replace a route within a route table in a VPC", - Privilege: "ReplaceRoute", + Description: "Grants permission to delete a transit gateway policy table", + Privilege: "DeleteTransitGatewayPolicyTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", + "ec2:transitGatewayPolicyTableId", }, DependentActions: []string{}, - ResourceType: "route-table*", + ResourceType: "transit-gateway-policy-table*", }, { ConditionKeys: []string{ @@ -101694,62 +104472,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change the route table that is associated with a subnet", - Privilege: "ReplaceRouteTableAssociation", + Description: "Grants permission to delete a transit gateway prefix list reference", + Privilege: "DeleteTransitGatewayPrefixListReference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "route-table*", + ResourceType: "prefix-list*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:InternetGatewayID", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "internet-gateway", + ResourceType: "transit-gateway-route-table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "ipv4pool-ec2", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a route from a transit gateway route table", + Privilege: "DeleteTransitGatewayRoute", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "ipv6pool-ec2", + ResourceType: "transit-gateway-route-table*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a transit gateway route table", + Privilege: "DeleteTransitGatewayRouteTable", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", }, DependentActions: []string{}, - ResourceType: "vpn-gateway", + ResourceType: "transit-gateway-route-table*", }, { ConditionKeys: []string{ @@ -101762,18 +104549,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to replace a route in a transit gateway route table", - Privilege: "ReplaceTransitGatewayRoute", + Description: "Grants permission to delete a transit gateway route table announcement", + Privilege: "DeleteTransitGatewayRouteTableAnnouncement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:transitGatewayRouteTableAnnouncementId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "transit-gateway-route-table-announcement*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a VPC attachment from a transit gateway", + Privilege: "DeleteTransitGatewayVpcAttachment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -101781,7 +104582,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:transitGatewayAttachmentId", }, DependentActions: []string{}, - ResourceType: "transit-gateway-attachment", + ResourceType: "transit-gateway-attachment*", }, { ConditionKeys: []string{ @@ -101794,8 +104595,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to replace a VPN tunnel", - Privilege: "ReplaceVpnTunnel", + Description: "Grants permission to delete a Verified Access endpoint", + Privilege: "DeleteVerifiedAccessEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -101803,7 +104604,7 @@ func getParliamentIamPermissions() ParliamentPermissions { "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "vpn-connection*", + ResourceType: "verified-access-endpoint*", }, { ConditionKeys: []string{ @@ -101816,9 +104617,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to submit feedback about the status of an instance", - Privilege: "ReportInstanceStatus", + Description: "Grants permission to delete a Verified Access group", + Privilege: "DeleteVerifiedAccessGroup", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -101830,95 +104639,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Spot Fleet request", - Privilege: "RequestSpotFleet", + Description: "Grants permission to delete a Verified Access instance", + Privilege: "DeleteVerifiedAccessInstance", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "spot-fleet-request*", - }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "verified-access-instance*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:KeyPairName", - "ec2:KeyPairType", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "key-pair", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a verified trust provider", + Privilege: "DeleteVerifiedAccessTrustProvider", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "verified-access-trust-provider*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an EBS volume", + Privilege: "DeleteVolume", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", }, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "volume*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:OutpostArn", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a VPC", + Privilege: "DeleteVpc", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + "ec2:Tenancy", + "ec2:VpcID", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "vpc*", }, { ConditionKeys: []string{ @@ -101931,102 +104738,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Spot Instance request", - Privilege: "RequestSpotInstances", + Description: "Grants permission to delete an exclusion list for blocked public access on a VPC", + Privilege: "DeleteVpcBlockPublicAccessExclusion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateTags", - "iam:PassRole", + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", }, - ResourceType: "spot-instances-request*", + DependentActions: []string{}, + ResourceType: "vpc-block-public-access-exclusion*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete one or more VPC endpoint connection notifications", + Privilege: "DeleteVpcEndpointConnectionNotifications", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:KeyPairName", - "ec2:KeyPairType", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "key-pair", + ResourceType: "vpc-endpoint", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:Permission", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", }, DependentActions: []string{}, - ResourceType: "network-interface", + ResourceType: "vpc-endpoint-service", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete one or more VPC endpoint service configurations", + Privilege: "DeleteVpcEndpointServiceConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", }, DependentActions: []string{}, - ResourceType: "security-group", + ResourceType: "vpc-endpoint-service*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:OutpostArn", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete one or more VPC endpoints", + Privilege: "DeleteVpcEndpoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + "ec2:VpceServiceName", }, DependentActions: []string{}, - ResourceType: "subnet", + ResourceType: "vpc-endpoint*", }, { ConditionKeys: []string{ @@ -102039,21 +104839,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset the attribute of the specified IP address", - Privilege: "ResetAddressAttribute", + Description: "Grants permission to delete a VPC peering connection", + Privilege: "DeleteVpcPeeringConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AllocationId", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Domain", - "ec2:PublicIpAddress", + "ec2:AccepterVpc", + "ec2:RequesterVpc", "ec2:ResourceTag/${TagKey}", + "ec2:VpcPeeringConnectionID", }, DependentActions: []string{}, - ResourceType: "elastic-ip*", + ResourceType: "vpc-peering-connection*", }, { ConditionKeys: []string{ @@ -102066,9 +104864,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset the default customer master key (CMK) for EBS encryption for your account to use the AWS-managed CMK for EBS", - Privilege: "ResetEbsDefaultKmsKeyId", + Description: "Grants permission to delete a VPN connection", + Privilege: "DeleteVpnConnection", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -102080,20 +104886,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset an attribute of an Amazon FPGA Image (AFI) to its default value", - Privilege: "ResetFpgaImageAttribute", + Description: "Grants permission to delete a static route for a VPN connection between a virtual private gateway and a customer gateway", + Privilege: "DeleteVpnConnectionRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Owner", - "ec2:Public", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "fpga-image*", + ResourceType: "vpn-connection*", }, { ConditionKeys: []string{ @@ -102106,23 +104908,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset an attribute of an Amazon Machine Image (AMI) to its default value", - Privilege: "ResetImageAttribute", + Description: "Grants permission to delete a virtual private gateway", + Privilege: "DeleteVpnGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:Owner", - "ec2:Public", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "vpn-gateway*", }, { ConditionKeys: []string{ @@ -102135,31 +104930,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset an attribute of an instance to its default value", - Privilege: "ResetInstanceAttribute", + Description: "Grants permission to release an IP address range that was provisioned through bring your own IP addresses (BYOIP), and to delete the corresponding address pool", + Privilege: "DeprovisionByoipCidr", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", - }, - DependentActions: []string{}, - ResourceType: "instance*", - }, { ConditionKeys: []string{ "ec2:Region", @@ -102171,20 +104944,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reset an attribute of a network interface", - Privilege: "ResetNetworkInterfaceAttribute", + Description: "Grants permission to deprovision an Autonomous System Number (ASN) from an Amazon Web Services account", + Privilege: "DeprovisionIpamByoasn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "ipam*", }, { ConditionKeys: []string{ @@ -102196,24 +104965,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to reset permission settings for a snapshot", - Privilege: "ResetSnapshotAttribute", + AccessLevel: "Write", + Description: "Grants permission to deprovision a CIDR provisioned from an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "DeprovisionIpamPoolCidr", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Owner", - "ec2:ParentVolume", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "ipam-pool*", }, { ConditionKeys: []string{ @@ -102226,9 +104988,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to restore an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform", - Privilege: "RestoreAddressToClassic", + Description: "Grants permission to deprovision a CIDR from a public IPv4 pool", + Privilege: "DeprovisionPublicIpv4PoolCidr", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv4pool-ec2*", + }, { ConditionKeys: []string{ "ec2:Region", @@ -102240,8 +105010,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to restore an Amazon Machine Image (AMI) from the Recycle Bin", - Privilege: "RestoreImageFromRecycleBin", + Description: "Grants permission to deregister an Amazon Machine Image (AMI)", + Privilege: "DeregisterImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -102267,16 +105037,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to restore the entries from a previous version of a managed prefix list to a new version of the prefix list", - Privilege: "RestoreManagedPrefixListVersion", + Description: "Grants permission to remove tags from the set of tags to include in notifications about scheduled events for your instances", + Privilege: "DeregisterInstanceEventNotificationAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister one or more network interface members from a group IP address in a transit gateway multicast domain", + Privilege: "DeregisterTransitGatewayMulticastGroupMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "prefix-list*", + ResourceType: "network-interface", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain", }, { ConditionKeys: []string{ @@ -102289,22 +105087,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to restore an Amazon EBS snapshot from the Recycle Bin", - Privilege: "RestoreSnapshotFromRecycleBin", + Description: "Grants permission to deregister one or more network interface sources from a group IP address in a transit gateway multicast domain", + Privilege: "DeregisterTransitGatewayMulticastGroupSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", + "ec2:Subnet", + "ec2:Vpc", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "network-interface", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain", }, { ConditionKeys: []string{ @@ -102316,24 +105122,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore an archived Amazon EBS snapshot for use temporarily or permanently, or modify the restore period or restore type for a snapshot that was previously temporarily restored", - Privilege: "RestoreSnapshotTier", + AccessLevel: "List", + Description: "Grants permission to describe the attributes of the AWS account", + Privilege: "DescribeAccountAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an Elastic IP address transfer", + Privilege: "DescribeAddressTransfers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102344,24 +105150,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove an inbound authorization rule from a Client VPN endpoint", - Privilege: "RevokeClientVpnIngress", + AccessLevel: "List", + Description: "Grants permission to describe one or more Elastic IP addresses", + Privilege: "DescribeAddresses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the attributes of the specified Elastic IP addresses", + Privilege: "DescribeAddressesAttribute", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102372,20 +105178,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove one or more outbound rules from a VPC security group", - Privilege: "RevokeSecurityGroupEgress", + AccessLevel: "List", + Description: "Grants permission to describe the longer ID format settings for all resource types", + Privilege: "DescribeAggregateIdFormat", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more of the Availability Zones that are available to you", + Privilege: "DescribeAvailabilityZones", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102396,20 +105206,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove one or more inbound rules from a security group", - Privilege: "RevokeSecurityGroupIngress", + AccessLevel: "List", + Description: "Grants permission to describe the current infrastructure performance metric subscriptions", + Privilege: "DescribeAwsNetworkPerformanceMetricSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more bundling tasks", + Privilege: "DescribeBundleTasks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102420,198 +105234,279 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to launch one or more instances", - Privilege: "RunInstances", + AccessLevel: "List", + Description: "Grants permission to describe the IP address ranges that were provisioned through bring your own IP addresses (BYOIP)", + Privilege: "DescribeByoipCidrs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Owner", - "ec2:Public", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", + "ec2:Region", }, - DependentActions: []string{ - "ec2:CreateTags", - "iam:PassRole", - "ssm:GetParameters", + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Capacity Block extensions history", + Privilege: "DescribeCapacityBlockExtensionHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", }, - ResourceType: "image*", + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Capacity Block extensions offerings", + Privilege: "DescribeCapacityBlockExtensionOfferings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", "ec2:InstanceType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", + "ec2:OutpostArn", "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:RootDeviceType", + "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "capacity-reservation*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AssociatePublicIpAddress", - "ec2:AuthorizedService", - "ec2:AvailabilityZone", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:NetworkInterfaceID", - "ec2:Subnet", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Capacity Block offerings available for purchase", + Privilege: "DescribeCapacityBlockOfferings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more requests to assign the billing of the unused capacity of a Capacity Reservation", + Privilege: "DescribeCapacityReservationBillingRequests", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "subnet*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Capacity Reservation Fleets", + Privilege: "DescribeCapacityReservationFleets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "capacity-reservation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Capacity Reservations", + Privilege: "DescribeCapacityReservations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ElasticGpuType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "elastic-gpu", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Carrier Gateways", + Privilege: "DescribeCarrierGateways", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ec2:Region", + }, DependentActions: []string{}, - ResourceType: "elastic-inference", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more linked EC2-Classic instances", + Privilege: "DescribeClassicLinkInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ec2:Region", + }, DependentActions: []string{}, - ResourceType: "group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the authorization rules for a Client VPN endpoint", + Privilege: "DescribeClientVpnAuthorizationRules", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:IsLaunchTemplateResource", - "ec2:KeyPairName", - "ec2:KeyPairType", - "ec2:LaunchTemplate", "ec2:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "key-pair", + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe active client connections and connections that have been terminated within the last 60 minutes for a Client VPN endpoint", + Privilege: "DescribeClientVpnConnections", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "launch-template", + ResourceType: "client-vpn-endpoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ec2:Region", + }, DependentActions: []string{}, - ResourceType: "license-configuration", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Client VPN endpoints", + Privilege: "DescribeClientVpnEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the routes for a Client VPN endpoint", + Privilege: "DescribeClientVpnRoutes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "placement-group", + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the target networks that are associated with a Client VPN endpoint", + Privilege: "DescribeClientVpnTargetNetworks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Owner", - "ec2:ParentVolume", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotID", - "ec2:SnapshotTime", - "ec2:VolumeSize", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "client-vpn-endpoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:ParentSnapshot", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "volume", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified customer-owned address pools or all of your customer-owned address pools", + Privilege: "DescribeCoipPools", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102622,9 +105517,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to launch one or more Scheduled Instances", - Privilege: "RunScheduledInstances", + AccessLevel: "List", + Description: "Grants permission to describe one or more conversion tasks", + Privilege: "DescribeConversionTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -102637,17 +105532,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to search for routes in a local gateway route table", - Privilege: "SearchLocalGatewayRoutes", + Description: "Grants permission to describe one or more customer gateways", + Privilege: "DescribeCustomerGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "local-gateway-route-table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more declarative policies reports", + Privilege: "DescribeDeclarativePoliciesReports", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102659,18 +105560,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to search for groups, sources, and members in a transit gateway multicast domain", - Privilege: "SearchTransitGatewayMulticastGroups", + Description: "Grants permission to describe one or more DHCP options sets", + Privilege: "DescribeDhcpOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "transit-gateway-multicast-domain*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more egress-only internet gateways", + Privilege: "DescribeEgressOnlyInternetGateways", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102682,18 +105588,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to search for routes in a transit gateway route table", - Privilege: "SearchTransitGatewayRoutes", + Description: "Grants permission to describe an Elastic Graphics accelerator that is associated with an instance", + Privilege: "DescribeElasticGpus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "transit-gateway-route-table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more export image tasks", + Privilege: "DescribeExportImageTasks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102704,31 +105615,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a diagnostic interrupt to an Amazon EC2 instance", - Privilege: "SendDiagnosticInterrupt", + AccessLevel: "List", + Description: "Grants permission to describe one or more export instance tasks", + Privilege: "DescribeExportTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe fast-launch enabled Windows AMIs", + Privilege: "DescribeFastLaunchImages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102739,30 +105643,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to interrupt a Spot Instance", - Privilege: "SendSpotInstanceInterruptions", + AccessLevel: "List", + Description: "Grants permission to describe the state of fast snapshot restores for snapshots", + Privilege: "DescribeFastSnapshotRestores", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the events for an EC2 Fleet during a specified time", + Privilege: "DescribeFleetHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "fleet*", }, { ConditionKeys: []string{ @@ -102774,35 +105679,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a stopped instance", - Privilege: "StartInstances", + AccessLevel: "List", + Description: "Grants permission to describe the running instances for an EC2 Fleet", + Privilege: "DescribeFleetInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "fleet*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ec2:Region", + }, DependentActions: []string{}, - ResourceType: "license-configuration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more EC2 Fleets", + Privilege: "DescribeFleets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102813,28 +105715,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a Network Access Scope analysis", - Privilege: "StartNetworkInsightsAccessScopeAnalysis", + AccessLevel: "List", + Description: "Grants permission to describe one or more flow logs", + Privilege: "DescribeFlowLogs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the attributes of an Amazon FPGA Image (AFI)", + Privilege: "DescribeFpgaImageAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ec2:Owner", "ec2:ResourceTag/${TagKey}", }, - DependentActions: []string{ - "ec2:CreateTags", - }, - ResourceType: "network-insights-access-scope*", + DependentActions: []string{}, + ResourceType: "fpga-image*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "network-insights-access-scope-analysis*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Amazon FPGA Images (AFIs)", + Privilege: "DescribeFpgaImages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102845,28 +105766,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start analyzing a specified path", - Privilege: "StartNetworkInsightsAnalysis", + AccessLevel: "List", + Description: "Grants permission to describe the Dedicated Host Reservations that are available to purchase", + Privilege: "DescribeHostReservationOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ec2:Region", }, - DependentActions: []string{ - "ec2:CreateTags", + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the Dedicated Host Reservations that are associated with Dedicated Hosts in the AWS account", + Privilege: "DescribeHostReservations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", }, - ResourceType: "network-insights-analysis*", + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Dedicated Hosts", + Privilege: "DescribeHosts", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "network-insights-path*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the IAM instance profile associations", + Privilege: "DescribeIamInstanceProfileAssociations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102877,18 +105822,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the private DNS verification process for a VPC endpoint service", - Privilege: "StartVpcEndpointServicePrivateDnsVerification", + AccessLevel: "List", + Description: "Grants permission to describe the ID format settings for resources", + Privilege: "DescribeIdFormat", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "vpc-endpoint-service*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the ID format settings for resources for an IAM user, IAM role, or root user", + Privilege: "DescribeIdentityIdFormat", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102899,31 +105850,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an Amazon EBS-backed instance", - Privilege: "StopInstances", + AccessLevel: "List", + Description: "Grants permission to describe an attribute of an Amazon Machine Image (AMI)", + Privilege: "DescribeImageAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", "ec2:ResourceTag/${TagKey}", "ec2:RootDeviceType", - "ec2:Tenancy", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "image*", }, { ConditionKeys: []string{ @@ -102935,24 +105877,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate active Client VPN endpoint connections", - Privilege: "TerminateClientVpnConnections", + AccessLevel: "List", + Description: "Grants permission to describe one or more images (AMIs, AKIs, and ARIs)", + Privilege: "DescribeImages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "client-vpn-endpoint*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe import virtual machine or import snapshot tasks", + Privilege: "DescribeImportImageTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe import snapshot tasks", + Privilege: "DescribeImportSnapshotTasks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -102963,21 +105919,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to shut down one or more instances", - Privilege: "TerminateInstances", + AccessLevel: "List", + Description: "Grants permission to describe the attributes of an instance", + Privilege: "DescribeInstanceAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", "ec2:EbsOptimized", "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", "ec2:InstanceID", "ec2:InstanceMarketType", "ec2:InstanceMetadataTags", "ec2:InstanceProfile", "ec2:InstanceType", + "ec2:ManagedResourceOperator", "ec2:MetadataHttpEndpoint", "ec2:MetadataHttpPutResponseHopLimit", "ec2:MetadataHttpTokens", @@ -103000,22 +105959,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to unassign one or more IPv6 addresses from a network interface", - Privilege: "UnassignIpv6Addresses", + AccessLevel: "List", + Description: "Grants permission to describe EC2 Instance Connect Endpoints", + Privilege: "DescribeInstanceConnectEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the credit option for CPU usage of one or more burstable performance instances", + Privilege: "DescribeInstanceCreditSpecifications", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103026,22 +105987,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to unassign one or more secondary private IP addresses from a network interface", - Privilege: "UnassignPrivateIpAddresses", + AccessLevel: "List", + Description: "Grants permission to describe the set of tags to include in notifications about scheduled events for your instances", + Privilege: "DescribeInstanceEventNotificationAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:NetworkInterfaceID", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "network-interface*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified event windows or all event windows", + Privilege: "DescribeInstanceEventWindows", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103052,18 +106015,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to unassign secondary private IPv4 addresses from a private NAT gateway", - Privilege: "UnassignPrivateNatGatewayAddress", + AccessLevel: "List", + Description: "Grants permission to describe the AMI that was used to launch an instance", + Privilege: "DescribeInstanceImageMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "natgateway*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the status of one or more instances", + Privilege: "DescribeInstanceStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103074,26 +106043,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to unlock a snapshot that is locked in governance mode or in compliance mode while still in the cooling-off period", - Privilege: "UnlockSnapshot", + AccessLevel: "List", + Description: "Grants permission to describe a tree-based hierarchy that represents the physical host placement of EC2 instances", + Privilege: "DescribeInstanceTopology", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:Encrypted", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotCoolOffPeriod", - "ec2:SnapshotID", - "ec2:SnapshotLockDuration", - "ec2:SnapshotTime", - "ec2:VolumeSize", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the set of instance types that are offered in a location", + Privilege: "DescribeInstanceTypeOfferings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103104,33 +106071,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable detailed monitoring for a running instance", - Privilege: "UnmonitorInstances", + AccessLevel: "List", + Description: "Grants permission to describe the details of instance types that are offered in a location", + Privilege: "DescribeInstanceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more instances", + Privilege: "DescribeInstances", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103141,20 +106099,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update descriptions for one or more outbound rules in a VPC security group", - Privilege: "UpdateSecurityGroupRuleDescriptionsEgress", + AccessLevel: "List", + Description: "Grants permission to describe one or more internet gateways", + Privilege: "DescribeInternetGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe a bring your own Autonomous System Number (BYOASN) that you've brought to IPAM", + Privilege: "DescribeIpamByoasn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103165,20 +106127,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update descriptions for one or more inbound rules in a security group", - Privilege: "UpdateSecurityGroupRuleDescriptionsIngress", + AccessLevel: "List", + Description: "Grants permission to describe verification tokens, which proves ownership of an external resource", + Privilege: "DescribeIpamExternalResourceVerificationTokens", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + "ec2:Region", }, DependentActions: []string{}, - ResourceType: "security-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Amazon VPC IP Address Manager (IPAM) pools", + Privilege: "DescribeIpamPools", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "ec2:Region", @@ -103189,9 +106155,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop advertising an address range that was provisioned for use in AWS through bring your own IP addresses (BYOIP)", - Privilege: "WithdrawByoipCidr", + AccessLevel: "List", + Description: "Grants permission to describe IPAM resource discoveries", + Privilege: "DescribeIpamResourceDiscoveries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -103202,1243 +106168,41427 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:elastic-ip/${AllocationId}", + AccessLevel: "List", + Description: "Grants permission to describe resource discovery associations with an Amazon VPC IPAM", + Privilege: "DescribeIpamResourceDiscoveryAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Amazon VPC IP Address Manager (IPAM) scopes", + Privilege: "DescribeIpamScopes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an Amazon VPC IP Address Manager (IPAM)", + Privilege: "DescribeIpams", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more IPv6 address pools", + Privilege: "DescribeIpv6Pools", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more key pairs", + Privilege: "DescribeKeyPairs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more launch template versions", + Privilege: "DescribeLaunchTemplateVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{ + "ssm:GetParameters", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more launch templates", + Privilege: "DescribeLaunchTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to allow a service to describe local gateway route table permissions", + Privilege: "DescribeLocalGatewayRouteTablePermissions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the associations between virtual interface groups and local gateway route tables", + Privilege: "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an association between VPCs and local gateway route tables", + Privilege: "DescribeLocalGatewayRouteTableVpcAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more local gateway route tables", + Privilege: "DescribeLocalGatewayRouteTables", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe local gateway virtual interface groups", + Privilege: "DescribeLocalGatewayVirtualInterfaceGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe local gateway virtual interfaces", + Privilege: "DescribeLocalGatewayVirtualInterfaces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more local gateways", + Privilege: "DescribeLocalGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the lock status for a snapshot", + Privilege: "DescribeLockedSnapshots", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe your EC2 Mac Dedicated hosts", + Privilege: "DescribeMacHosts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe your managed prefix lists and any AWS-managed prefix lists", + Privilege: "DescribeManagedPrefixLists", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Elastic IP addresses that are being moved to the EC2-VPC platform", + Privilege: "DescribeMovingAddresses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more NAT gateways", + Privilege: "DescribeNatGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more network ACLs", + Privilege: "DescribeNetworkAcls", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Network Access Scope analyses", + Privilege: "DescribeNetworkInsightsAccessScopeAnalyses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the Network Access Scopes", + Privilege: "DescribeNetworkInsightsAccessScopes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more network insights analyses", + Privilege: "DescribeNetworkInsightsAnalyses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more network insights paths", + Privilege: "DescribeNetworkInsightsPaths", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe a network interface attribute", + Privilege: "DescribeNetworkInterfaceAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the permissions that are associated with a network interface", + Privilege: "DescribeNetworkInterfacePermissions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more network interfaces", + Privilege: "DescribeNetworkInterfaces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more placement groups", + Privilege: "DescribePlacementGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe available AWS services in a prefix list format", + Privilege: "DescribePrefixLists", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the ID format settings for the root user and all IAM roles and IAM users that have explicitly specified a longer ID (17-character ID) preference", + Privilege: "DescribePrincipalIdFormat", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more IPv4 address pools", + Privilege: "DescribePublicIpv4Pools", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more AWS Regions that are currently available in your account", + Privilege: "DescribeRegions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe a root volume replacement task", + Privilege: "DescribeReplaceRootVolumeTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more purchased Reserved Instances in your account", + Privilege: "DescribeReservedInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe your account's Reserved Instance listings in the Reserved Instance Marketplace", + Privilege: "DescribeReservedInstancesListings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the modifications made to one or more Reserved Instances", + Privilege: "DescribeReservedInstancesModifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the Reserved Instance offerings that are available for purchase", + Privilege: "DescribeReservedInstancesOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more route server endpoints", + Privilege: "DescribeRouteServerEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more route server peers", + Privilege: "DescribeRouteServerPeers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more route servers", + Privilege: "DescribeRouteServers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more route tables", + Privilege: "DescribeRouteTables", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to find available schedules for Scheduled Instances", + Privilege: "DescribeScheduledInstanceAvailability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Scheduled Instances in your account", + Privilege: "DescribeScheduledInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the VPCs on the other side of a VPC peering connection that are referencing specified VPC security groups", + Privilege: "DescribeSecurityGroupReferences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more of your security group rules", + Privilege: "DescribeSecurityGroupRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe security group VPC associations", + Privilege: "DescribeSecurityGroupVpcAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more security groups", + Privilege: "DescribeSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an attribute of a snapshot", + Privilege: "DescribeSnapshotAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:OutpostArn", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the storage tier status for Amazon EBS snapshots", + Privilege: "DescribeSnapshotTierStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more EBS snapshots", + Privilege: "DescribeSnapshots", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the data feed for Spot Instances", + Privilege: "DescribeSpotDatafeedSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the running instances for a Spot Fleet", + Privilege: "DescribeSpotFleetInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "spot-fleet-request*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the events for a Spot Fleet request during a specified time", + Privilege: "DescribeSpotFleetRequestHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "spot-fleet-request*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Spot Fleet requests", + Privilege: "DescribeSpotFleetRequests", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Spot Instance requests", + Privilege: "DescribeSpotInstanceRequests", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the Spot Instance price history", + Privilege: "DescribeSpotPriceHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the stale security group rules for security groups in a specified VPC", + Privilege: "DescribeStaleSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the progress of the AMI store tasks", + Privilege: "DescribeStoreImageTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more subnets", + Privilege: "DescribeSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more tags for an Amazon EC2 resource", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe traffic mirror filters that determine the traffic that is mirrored", + Privilege: "DescribeTrafficMirrorFilterRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more traffic mirror filters", + Privilege: "DescribeTrafficMirrorFilters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more traffic mirror sessions", + Privilege: "DescribeTrafficMirrorSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more traffic mirror targets", + Privilege: "DescribeTrafficMirrorTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more attachments between resources and transit gateways", + Privilege: "DescribeTransitGatewayAttachments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more transit gateway connect peers", + Privilege: "DescribeTransitGatewayConnectPeers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more transit gateway connect attachments", + Privilege: "DescribeTransitGatewayConnects", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more transit gateway multicast domains", + Privilege: "DescribeTransitGatewayMulticastDomains", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more transit gateway peering attachments", + Privilege: "DescribeTransitGatewayPeeringAttachments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe a transit gateway policy table", + Privilege: "DescribeTransitGatewayPolicyTables", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe a transit gateway route table announcement", + Privilege: "DescribeTransitGatewayRouteTableAnnouncements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more transit gateway route tables", + Privilege: "DescribeTransitGatewayRouteTables", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more VPC attachments on a transit gateway", + Privilege: "DescribeTransitGatewayVpcAttachments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more transit gateways", + Privilege: "DescribeTransitGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more network interface trunk associations", + Privilege: "DescribeTrunkInterfaceAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified Verified Access endpoints or all Verified Access endpoints", + Privilege: "DescribeVerifiedAccessEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified Verified Access groups or all Verified Access groups", + Privilege: "DescribeVerifiedAccessGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the current logging configuration for the Verified Access instances", + Privilege: "DescribeVerifiedAccessInstanceLoggingConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the AWS Web Application Firewall (WAF) web access control list (ACL) associations for a Verified Access instance", + Privilege: "DescribeVerifiedAccessInstanceWebAclAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified Verified Access instances or all Verified Access instances", + Privilege: "DescribeVerifiedAccessInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe details of existing Verified Access trust providers", + Privilege: "DescribeVerifiedAccessTrustProviders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an attribute of an EBS volume", + Privilege: "DescribeVolumeAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the status of one or more EBS volumes", + Privilege: "DescribeVolumeStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more EBS volumes", + Privilege: "DescribeVolumes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the current modification status of one or more EBS volumes", + Privilege: "DescribeVolumesModifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an attribute of a VPC", + Privilege: "DescribeVpcAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe an exclusion list for blocked public access on a VPC", + Privilege: "DescribeVpcBlockPublicAccessExclusions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe options for blocked public access on a VPC", + Privilege: "DescribeVpcBlockPublicAccessOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the ClassicLink status of one or more VPCs", + Privilege: "DescribeVpcClassicLink", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the ClassicLink DNS support status of one or more VPCs", + Privilege: "DescribeVpcClassicLinkDnsSupport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the VPC endpoint associations", + Privilege: "DescribeVpcEndpointAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the connection notifications for VPC endpoints and VPC endpoint services", + Privilege: "DescribeVpcEndpointConnectionNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the VPC endpoint connections to your VPC endpoint services", + Privilege: "DescribeVpcEndpointConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe VPC endpoint service configurations (your services)", + Privilege: "DescribeVpcEndpointServiceConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the principals (service consumers) that are permitted to discover your VPC endpoint service", + Privilege: "DescribeVpcEndpointServicePermissions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe all supported AWS services that can be specified when creating a VPC endpoint", + Privilege: "DescribeVpcEndpointServices", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more VPC endpoints", + Privilege: "DescribeVpcEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more VPC peering connections", + Privilege: "DescribeVpcPeeringConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more VPCs", + Privilege: "DescribeVpcs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more VPN connections", + Privilege: "DescribeVpnConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more virtual private gateways", + Privilege: "DescribeVpnGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unlink (detach) a linked EC2-Classic instance from a VPC", + Privilege: "DetachClassicLinkVpc", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach an internet gateway from a VPC", + Privilege: "DetachInternetGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:InternetGatewayID", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "internet-gateway*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach a network interface from an instance", + Privilege: "DetachNetworkInterface", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach a trust provider from a Verified Access instance", + Privilege: "DetachVerifiedAccessTrustProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-trust-provider*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach an EBS volume from an instance", + Privilege: "DetachVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach a virtual private gateway from a VPC", + Privilege: "DetachVpnGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-gateway*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable Elastic IP address transfer", + Privilege: "DisableAddressTransfer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable allowed images settings", + Privilege: "DisableAllowedImagesSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable infrastructure performance metric subscriptions", + Privilege: "DisableAwsNetworkPerformanceMetricSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable EBS encryption by default for your account", + Privilege: "DisableEbsEncryptionByDefault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable faster launching for Windows AMIs", + Privilege: "DisableFastLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable fast snapshot restores for one or more snapshots in specified Availability Zones", + Privilege: "DisableFastSnapshotRestores", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable an AMI", + Privilege: "DisableImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable block public access for AMIs at the account level in the specified AWS Region", + Privilege: "DisableImageBlockPublicAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel the deprecation of the specified AMI", + Privilege: "DisableImageDeprecation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable deregistration protection for an AMI. When deregistration protection is disabled, the AMI can be deregistered", + Privilege: "DisableImageDeregistrationProtection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable an AWS Organizations member account as an Amazon VPC IP Address Manager (IPAM) admin account", + Privilege: "DisableIpamOrganizationAdminAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{ + "organizations:DeregisterDelegatedAdministrator", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable route server propagation", + Privilege: "DisableRouteServerPropagation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable access to the EC2 serial console of all instances for your account", + Privilege: "DisableSerialConsoleAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable the block public access for snapshots setting for a Region", + Privilege: "DisableSnapshotBlockPublicAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable a resource attachment from propagating routes to the specified propagation route table", + Privilege: "DisableTransitGatewayRouteTablePropagation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableAnnouncementId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table-announcement", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable a virtual private gateway from propagating routes to a specified route table of a VPC", + Privilege: "DisableVgwRoutePropagation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-gateway*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable ClassicLink for a VPC", + Privilege: "DisableVpcClassicLink", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable ClassicLink DNS support for a VPC", + Privilege: "DisableVpcClassicLinkDnsSupport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an Elastic IP address from an instance or network interface", + Privilege: "DisassociateAddress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a pending request to assign billing of the unused capacity of a Capacity Reservation to a consumer account", + Privilege: "DisassociateCapacityReservationBillingOwner", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:OutpostArn", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a target network from a Client VPN endpoint", + Privilege: "DisassociateClientVpnTargetNetwork", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an ACM certificate from a IAM role", + Privilege: "DisassociateEnclaveCertificateIamRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an IAM instance profile from a running or stopped instance", + Privilege: "DisassociateIamInstanceProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate one or more targets from an event window", + Privilege: "DisassociateInstanceEventWindow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "instance-event-window*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an Autonomous System Number (ASN) from a BYOIP CIDR", + Privilege: "DisassociateIpamByoasn", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a resource discovery from an Amazon VPC IPAM", + Privilege: "DisassociateIpamResourceDiscovery", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-resource-discovery-association*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a secondary Elastic IP address from a public NAT gateway", + Privilege: "DisassociateNatGatewayAddress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "natgateway*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:Permission", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a route server from a VPC", + Privilege: "DisassociateRouteServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a subnet from a route table", + Privilege: "DisassociateRouteTable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:InternetGatewayID", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "internet-gateway", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv4pool-ec2", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv6pool-ec2", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-gateway", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a security group from a VPC", + Privilege: "DisassociateSecurityGroupVpc", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a CIDR block from a subnet", + Privilege: "DisassociateSubnetCidrBlock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate one or more subnets from a transit gateway multicast domain", + Privilege: "DisassociateTransitGatewayMulticastDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a policy table from a transit gateway", + Privilege: "DisassociateTransitGatewayPolicyTable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayPolicyTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-policy-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a resource attachment from a transit gateway route table", + Privilege: "DisassociateTransitGatewayRouteTable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a branch network interface to a trunk network interface", + Privilege: "DisassociateTrunkInterface", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an AWS Web Application Firewall (WAF) web access control list (ACL) from a Verified Access instance", + Privilege: "DisassociateVerifiedAccessInstanceWebAcl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a CIDR block from a VPC", + Privilege: "DisassociateVpcCidrBlock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable Elastic IP address transfer", + Privilege: "EnableAddressTransfer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable allowed images settings", + Privilege: "EnableAllowedImagesSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable infrastructure performance subscriptions", + Privilege: "EnableAwsNetworkPerformanceMetricSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable EBS encryption by default for your account", + Privilege: "EnableEbsEncryptionByDefault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable faster launching for Windows AMIs", + Privilege: "EnableFastLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{ + "ec2:CreateLaunchTemplate", + "ec2:CreateSnapshot", + "ec2:CreateTags", + "ec2:DeleteSnapshot", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypeOfferings", + "ec2:DescribeInstances", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSnapshots", + "ec2:DescribeSubnets", + "ec2:RunInstances", + "ec2:StopInstances", + "ec2:TerminateInstances", + "iam:PassRole", + }, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "launch-template", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable fast snapshot restores for one or more snapshots in specified Availability Zones", + Privilege: "EnableFastSnapshotRestores", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to re-enable a disabled AMI", + Privilege: "EnableImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable block public access for AMIs at the account level in the specified AWS Region", + Privilege: "EnableImageBlockPublicAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable deprecation of the specified AMI at the specified date and time", + Privilege: "EnableImageDeprecation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable deregistration protection for an AMI. When deregistration protection is enabled, the AMI can't be deregistered", + Privilege: "EnableImageDeregistrationProtection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable an AWS Organizations member account as an Amazon VPC IP Address Manager (IPAM) admin account", + Privilege: "EnableIpamOrganizationAdminAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:EnableAWSServiceAccess", + "organizations:RegisterDelegatedAdministrator", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable organization sharing of reachability analyzer", + Privilege: "EnableReachabilityAnalyzerOrganizationSharing", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:EnableAWSServiceAccess", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable route server propagation", + Privilege: "EnableRouteServerPropagation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable access to the EC2 serial console of all instances for your account", + Privilege: "EnableSerialConsoleAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or modify the block public access for snapshots setting for a Region", + Privilege: "EnableSnapshotBlockPublicAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable an attachment to propagate routes to a propagation route table", + Privilege: "EnableTransitGatewayRouteTablePropagation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableAnnouncementId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table-announcement", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable a virtual private gateway to propagate routes to a VPC route table", + Privilege: "EnableVgwRoutePropagation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-gateway*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable I/O operations for a volume that had I/O operations disabled", + Privilege: "EnableVolumeIO", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable a VPC for ClassicLink", + Privilege: "EnableVpcClassicLink", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable a VPC to support DNS hostname resolution for ClassicLink", + Privilege: "EnableVpcClassicLinkDnsSupport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to download the client certificate revocation list for a Client VPN endpoint", + Privilege: "ExportClientVpnClientCertificateRevocationList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to download the contents of the Client VPN endpoint configuration file for a Client VPN endpoint", + Privilege: "ExportClientVpnClientConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export an Amazon Machine Image (AMI) to a VM file", + Privilege: "ExportImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "export-image-task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export routes from a transit gateway route table to an Amazon S3 bucket", + Privilege: "ExportTransitGatewayRoutes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to export a verified access instance client configuration", + Privilege: "ExportVerifiedAccessInstanceClientConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the allowed settings for images", + Privilege: "GetAllowedImagesSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the list of roles associated with an ACM certificate", + Privilege: "GetAssociatedEnclaveCertificateIamRoles", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificate*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the IPv6 CIDR block associations for a specified IPv6 address pool", + Privilege: "GetAssociatedIpv6PoolCidrs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get network performance data", + Privilege: "GetAwsNetworkPerformanceData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get usage information about a Capacity Reservation", + Privilege: "GetCapacityReservationUsage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:CapacityReservationFleet", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the allocations from the specified customer-owned address pool", + Privilege: "GetCoipPoolUsage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "coip-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the console output for an instance", + Privilege: "GetConsoleOutput", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a JPG-format screenshot of a running instance", + Privilege: "GetConsoleScreenshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:NewInstanceProfile", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the report summary of declarative policies", + Privilege: "GetDeclarativePoliciesReportSummary", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "declarative-policies-report*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the default credit option for CPU usage of a burstable performance instance family", + Privilege: "GetDefaultCreditSpecification", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the ID of the default customer master key (CMK) for EBS encryption by default", + Privilege: "GetEbsDefaultKmsKeyId", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe whether EBS encryption by default is enabled for your account", + Privilege: "GetEbsEncryptionByDefault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to generate a CloudFormation template to streamline the integration of VPC flow logs with Amazon Athena", + Privilege: "GetFlowLogsIntegrationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpc-flow-log*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the resource groups to which a Capacity Reservation has been added", + Privilege: "GetGroupsForCapacityReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:CapacityReservationFleet", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to preview a reservation purchase with configurations that match those of a Dedicated Host", + Privilege: "GetHostReservationPurchasePreview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the current state of block public access for AMIs at the account level in the specified AWS Region", + Privilege: "GetImageBlockPublicAccessState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the default instance metadata service (IMDS) settings set for your account in the specified Region", + Privilege: "GetInstanceMetadataDefaults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the public endorsement key associated with the Nitro Trusted Platform Module (NitroTPM) for the specified instance", + Privilege: "GetInstanceTpmEkPub", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view a list of instance types with specified instance attributes", + Privilege: "GetInstanceTypesFromInstanceRequirements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the binary representation of the UEFI variable store", + Privilege: "GetInstanceUefiData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:NewInstanceProfile", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve historical information about a CIDR within an Amazon VPC IP Address Manager (IPAM) scope", + Privilege: "GetIpamAddressHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-scope*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve IPAM discovered accounts", + Privilege: "GetIpamDiscoveredAccounts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-resource-discovery*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the public IP addresses that have been discovered by IPAM", + Privilege: "GetIpamDiscoveredPublicAddresses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-resource-discovery*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the resource CIDRs that are monitored as part of a resource discovery", + Privilege: "GetIpamDiscoveredResourceCidrs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-resource-discovery*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of all the CIDR allocations in an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "GetIpamPoolAllocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the CIDRs provisioned to an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "GetIpamPoolCidrs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the resources in an Amazon VPC IP Address Manager (IPAM) scope", + Privilege: "GetIpamResourceCidrs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-scope*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the configuration data of the specified instance for use with a new launch template or launch template version", + Privilege: "GetLaunchTemplateData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the resources that are associated with the specified managed prefix list", + Privilege: "GetManagedPrefixListAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the entries for a specified managed prefix list", + Privilege: "GetManagedPrefixListEntries", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the findings for one or more Network Access Scope analyses", + Privilege: "GetNetworkInsightsAccessScopeAnalysisFindings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "network-insights-access-scope-analysis*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the content for a specified Network Access Scope", + Privilege: "GetNetworkInsightsAccessScopeContent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "network-insights-access-scope*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the encrypted administrator password for a running Windows instance", + Privilege: "GetPasswordData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a quote and exchange information for exchanging one or more Convertible Reserved Instances for a new Convertible Reserved Instance", + Privilege: "GetReservedInstancesExchangeQuote", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an IAM policy that enables cross-account sharing", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "placement-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get associations for a route server", + Privilege: "GetRouteServerAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get propagations for a route server", + Privilege: "GetRouteServerPropagations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the routing database for a route server", + Privilege: "GetRouteServerRoutingDatabase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of security groups for a specified VPC", + Privilege: "GetSecurityGroupsForVpc", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the access status of your account to the EC2 serial console of all instances", + Privilege: "GetSerialConsoleAccessStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the current state of the block public access for snapshots setting for a Region", + Privilege: "GetSnapshotBlockPublicAccessState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to calculate the Spot placement score for a Region or Availability Zone based on the specified target capacity and compute requirements", + Privilege: "GetSpotPlacementScores", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the subnet CIDR reservations", + Privilege: "GetSubnetCidrReservations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the route tables to which a resource attachment propagates routes", + Privilege: "GetTransitGatewayAttachmentPropagations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about the associations for a transit gateway multicast domain", + Privilege: "GetTransitGatewayMulticastDomainAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about associations for a transit gateway policy table", + Privilege: "GetTransitGatewayPolicyTableAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayPolicyTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-policy-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about associations for a transit gateway policy table entry", + Privilege: "GetTransitGatewayPolicyTableEntries", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayPolicyTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-policy-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about prefix list references for a transit gateway route table", + Privilege: "GetTransitGatewayPrefixListReferences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about associations for a transit gateway route table", + Privilege: "GetTransitGatewayRouteTableAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get information about the route table propagations for a transit gateway route table", + Privilege: "GetTransitGatewayRouteTablePropagations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to show the Verified Access policy associated with the endpoint", + Privilege: "GetVerifiedAccessEndpointPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get verified access endpoint targets", + Privilege: "GetVerifiedAccessEndpointTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to show the contents of the Verified Access policy associated with the group", + Privilege: "GetVerifiedAccessGroupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to show the AWS Web Application Firewall (WAF) web access control list (ACL) for a Verified Access instance", + Privilege: "GetVerifiedAccessInstanceWebAcl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to download an AWS-provided sample configuration file to be used with the customer gateway device", + Privilege: "GetVpnConnectionDeviceSampleConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpn-connection-device-type*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to obtain a list of customer gateway devices for which sample configuration files can be provided", + Privilege: "GetVpnConnectionDeviceTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view available tunnel endpoint maintenance events", + Privilege: "GetVpnTunnelReplacementStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to transfer existing BYOIP IPv4 CIDRs to IPAM", + Privilege: "ImportByoipCidrToIpam", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upload a client certificate revocation list to a Client VPN endpoint", + Privilege: "ImportClientVpnClientCertificateRevocationList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import single or multi-volume disk images or EBS snapshots into an Amazon Machine Image (AMI)", + Privilege: "ImportImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:RootDeviceType", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "import-image-task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an import instance task using metadata from a disk image", + Privilege: "ImportInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a public key from an RSA key pair that was created with a third-party tool", + Privilege: "ImportKeyPair", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "key-pair*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a disk into an EBS snapshot", + Privilege: "ImportSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "import-snapshot-task*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an import volume task using metadata from a disk image", + Privilege: "ImportVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to temporarily inject errors for target API requests", + Privilege: "InjectApiError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:FisActionId", + "ec2:FisTargetArns", + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Amazon Machine Images (AMIs) that are currently in the Recycle Bin", + Privilege: "ListImagesInRecycleBin", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EBS snapshots that are currently in the Recycle Bin", + Privilege: "ListSnapshotsInRecycleBin", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to lock an Amazon EBS snapshot in either governance or compliance mode to protect it against accidental or malicious deletions", + Privilege: "LockSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotCoolOffPeriod", + "ec2:SnapshotID", + "ec2:SnapshotLockDuration", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of the specified Elastic IP address", + Privilege: "ModifyAddressAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the opt-in status of the Local Zone and Wavelength Zone group for your account", + Privilege: "ModifyAvailabilityZoneGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a Capacity Reservation's capacity and the conditions under which it is to be released", + Privilege: "ModifyCapacityReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:CapacityReservationFleet", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a Capacity Reservation Fleet", + Privilege: "ModifyCapacityReservationFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:ModifyCapacityReservation", + }, + ResourceType: "capacity-reservation-fleet*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a Client VPN endpoint", + Privilege: "ModifyClientVpnEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the account level default credit option for CPU usage of burstable performance instances", + Privilege: "ModifyDefaultCreditSpecification", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the default customer master key (CMK) for EBS encryption by default for your account", + Privilege: "ModifyEbsDefaultKmsKeyId", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an EC2 Fleet", + Privilege: "ModifyFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "launch-template", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of an Amazon FPGA Image (AFI)", + Privilege: "ModifyFpgaImageAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "fpga-image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a Dedicated Host", + Privilege: "ModifyHosts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "dedicated-host*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the ID format for a resource", + Privilege: "ModifyIdFormat", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the ID format of a resource for a specific principal in your account", + Privilege: "ModifyIdentityIdFormat", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of an Amazon Machine Image (AMI)", + Privilege: "ModifyImageAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of an instance", + Privilege: "ModifyInstanceAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the Capacity Reservation settings for a stopped instance", + Privilege: "ModifyInstanceCapacityReservationAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the CPU options on an instance", + Privilege: "ModifyInstanceCpuOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the credit option for CPU usage on an instance", + Privilege: "ModifyInstanceCreditSpecification", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the start time for a scheduled EC2 instance event", + Privilege: "ModifyInstanceEventStartTime", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified event window", + Privilege: "ModifyInstanceEventWindow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "instance-event-window*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the recovery behaviour for an instance", + Privilege: "ModifyInstanceMaintenanceOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the default instance metadata service (IMDS) settings for your account in the specified Region", + Privilege: "ModifyInstanceMetadataDefaults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Attribute/${AttributeName}", + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the metadata options for an instance", + Privilege: "ModifyInstanceMetadataOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the network performance options for an instance", + Privilege: "ModifyInstanceNetworkPerformanceOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the placement attributes for an instance", + Privilege: "ModifyInstancePlacement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "dedicated-host", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "placement-group", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM)", + Privilege: "ModifyIpam", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "ModifyIpamPool", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM) resource CIDR", + Privilege: "ModifyIpamResourceCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-scope*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a resource discovery", + Privilege: "ModifyIpamResourceDiscovery", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-resource-discovery*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configurations of an Amazon VPC IP Address Manager (IPAM) scope", + Privilege: "ModifyIpamScope", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-scope*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a launch template", + Privilege: "ModifyLaunchTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "launch-template*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a local gateway route", + Privilege: "ModifyLocalGatewayRoute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "local-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "local-gateway-virtual-interface-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:Permission", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a managed prefix list", + Privilege: "ModifyManagedPrefixList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of a network interface", + Privilege: "ModifyNetworkInterfaceAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the options for instance hostnames for the specified instance", + Privilege: "ModifyPrivateDnsNameOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:NewInstanceProfile", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify attributes of one or more Reserved Instances", + Privilege: "ModifyReservedInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:InstanceType", + "ec2:ReservedInstancesOfferingType", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "reserved-instances*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a route server", + Privilege: "ModifyRouteServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "route-server*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the rules of a security group", + Privilege: "ModifySecurityGroupRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "security-group-rule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to add or remove permission settings for a snapshot", + Privilege: "ModifySnapshotAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Add/group", + "ec2:Add/userId", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:Remove/group", + "ec2:Remove/userId", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to archive Amazon EBS snapshots", + Privilege: "ModifySnapshotTier", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a Spot Fleet request", + Privilege: "ModifySpotFleetRequest", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "spot-fleet-request*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "launch-template", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of a subnet", + Privilege: "ModifySubnetAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to allow or restrict mirroring network services", + Privilege: "ModifyTrafficMirrorFilterNetworkServices", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "traffic-mirror-filter*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a traffic mirror rule", + Privilege: "ModifyTrafficMirrorFilterRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "traffic-mirror-filter*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "traffic-mirror-filter-rule*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a traffic mirror session", + Privilege: "ModifyTrafficMirrorSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "traffic-mirror-session*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "traffic-mirror-filter", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "traffic-mirror-target", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a transit gateway", + Privilege: "ModifyTransitGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a transit gateway prefix list reference", + Privilege: "ModifyTransitGatewayPrefixListReference", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a VPC attachment on a transit gateway", + Privilege: "ModifyTransitGatewayVpcAttachment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of a Verified Access endpoint", + Privilege: "ModifyVerifiedAccessEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified Verified Access endpoint policy", + Privilege: "ModifyVerifiedAccessEndpointPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified Verified Access Group configuration", + Privilege: "ModifyVerifiedAccessGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified Verified Access group policy", + Privilege: "ModifyVerifiedAccessGroupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of the specified Verified Access instance", + Privilege: "ModifyVerifiedAccessInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the logging configuration for the specified Verified Access instance", + Privilege: "ModifyVerifiedAccessInstanceLoggingConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of the specified Verified Access trust provider", + Privilege: "ModifyVerifiedAccessTrustProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-trust-provider*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the parameters of an EBS volume", + Privilege: "ModifyVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of a volume", + Privilege: "ModifyVolumeAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of a VPC", + Privilege: "ModifyVpcAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an exclusion list for blocked public access on a VPC", + Privilege: "ModifyVpcBlockPublicAccessExclusion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpc-block-public-access-exclusion*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify options for blocked public access on a VPC", + Privilege: "ModifyVpcBlockPublicAccessOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an attribute of a VPC endpoint", + Privilege: "ModifyVpcEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + }, + DependentActions: []string{}, + ResourceType: "route-table", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a connection notification for a VPC endpoint or VPC endpoint service", + Privilege: "ModifyVpcEndpointConnectionNotification", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the attributes of a VPC endpoint service configuration", + Privilege: "ModifyVpcEndpointServiceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:VpceServicePrivateDnsName", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the payer responsibility for a VPC endpoint service", + Privilege: "ModifyVpcEndpointServicePayerResponsibility", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to modify the permissions for a VPC endpoint service", + Privilege: "ModifyVpcEndpointServicePermissions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the VPC peering connection options on one side of a VPC peering connection", + Privilege: "ModifyVpcPeeringConnectionOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AccepterVpc", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:RequesterVpc", + "ec2:ResourceTag/${TagKey}", + "ec2:VpcPeeringConnectionID", + }, + DependentActions: []string{}, + ResourceType: "vpc-peering-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the instance tenancy attribute of a VPC", + Privilege: "ModifyVpcTenancy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + DependentActions: []string{}, + ResourceType: "vpc*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the target gateway of a Site-to-Site VPN connection", + Privilege: "ModifyVpnConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AuthenticationType", + "ec2:DPDTimeoutSeconds", + "ec2:GatewayType", + "ec2:IKEVersions", + "ec2:InsideTunnelCidr", + "ec2:InsideTunnelIpv6Cidr", + "ec2:Phase1DHGroup", + "ec2:Phase1EncryptionAlgorithms", + "ec2:Phase1IntegrityAlgorithms", + "ec2:Phase1LifetimeSeconds", + "ec2:Phase2DHGroup", + "ec2:Phase2EncryptionAlgorithms", + "ec2:Phase2IntegrityAlgorithms", + "ec2:Phase2LifetimeSeconds", + "ec2:RekeyFuzzPercentage", + "ec2:RekeyMarginTimeSeconds", + "ec2:ReplayWindowSizePackets", + "ec2:ResourceTag/${TagKey}", + "ec2:RoutingType", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the connection options for your Site-to-Site VPN connection", + Privilege: "ModifyVpnConnectionOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the certificate for a Site-to-Site VPN connection", + Privilege: "ModifyVpnTunnelCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the options for a Site-to-Site VPN connection", + Privilege: "ModifyVpnTunnelOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AuthenticationType", + "ec2:DPDTimeoutSeconds", + "ec2:GatewayType", + "ec2:IKEVersions", + "ec2:InsideTunnelCidr", + "ec2:InsideTunnelIpv6Cidr", + "ec2:Phase1DHGroup", + "ec2:Phase1EncryptionAlgorithms", + "ec2:Phase1IntegrityAlgorithms", + "ec2:Phase1LifetimeSeconds", + "ec2:Phase2DHGroup", + "ec2:Phase2EncryptionAlgorithms", + "ec2:Phase2IntegrityAlgorithms", + "ec2:Phase2LifetimeSeconds", + "ec2:RekeyFuzzPercentage", + "ec2:RekeyMarginTimeSeconds", + "ec2:ReplayWindowSizePackets", + "ec2:ResourceTag/${TagKey}", + "ec2:RoutingType", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable detailed monitoring for a running instance", + Privilege: "MonitorInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to move an Elastic IP address from the EC2-Classic platform to the EC2-VPC platform", + Privilege: "MoveAddressToVpc", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to move a BYOIP IPv4 CIDR to Amazon VPC IP Address Manager (IPAM) from a public IPv4 pool", + Privilege: "MoveByoipCidrToIpam", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to move available capacity from a source Capacity Reservation to a destination Capacity Reservation", + Privilege: "MoveCapacityReservationInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:OutpostArn", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to temporarily pause I/O operations for a target Amazon EBS volume", + Privilege: "PauseVolumeIO", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provision an address range for use in AWS through bring your own IP addresses (BYOIP), and to create a corresponding address pool", + Privilege: "ProvisionByoipCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provision an Autonomous System Number (ASN) for use in an Amazon Web Services account", + Privilege: "ProvisionIpamByoasn", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provision a CIDR to an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "ProvisionIpamPoolCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-external-resource-verification-token", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provision a CIDR to a public IPv4 pool", + Privilege: "ProvisionPublicIpv4PoolCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv4pool-ec2*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase a Capacity Block offering", + Privilege: "PurchaseCapacityBlock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:CapacityReservationFleet", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase a Capacity Block extension", + Privilege: "PurchaseCapacityBlockExtension", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:CapacityReservationFleet", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase a reservation with configurations that match those of a Dedicated Host", + Privilege: "PurchaseHostReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "dedicated-host*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase a Reserved Instance offering", + Privilege: "PurchaseReservedInstancesOffering", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase one or more Scheduled Instances with a specified schedule", + Privilege: "PurchaseScheduledInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach an IAM policy that enables cross-account sharing to a resource", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "placement-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "verified-access-group", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to request a reboot of one or more instances", + Privilege: "RebootInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register an Amazon Machine Image (AMI)", + Privilege: "RegisterImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:ImageID", + "ec2:Owner", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:OutpostArn", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add tags to the set of tags to include in notifications about scheduled events for your instances", + Privilege: "RegisterInstanceEventNotificationAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register one or more network interfaces as a member of a group IP address in a transit gateway multicast domain", + Privilege: "RegisterTransitGatewayMulticastGroupMembers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register one or more network interfaces as a source of a group IP address in a transit gateway multicast domain", + Privilege: "RegisterTransitGatewayMulticastGroupSources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject a request to assign billing of the available capacity of a shared Capacity Reservation to your account", + Privilege: "RejectCapacityReservationBillingOwnership", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:OutpostArn", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject requests to associate cross-account subnets with a transit gateway multicast domain", + Privilege: "RejectTransitGatewayMulticastDomainAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject a transit gateway peering attachment request", + Privilege: "RejectTransitGatewayPeeringAttachment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject a request to attach a VPC to a transit gateway", + Privilege: "RejectTransitGatewayVpcAttachment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject one or more VPC endpoint connection requests to a VPC endpoint service", + Privilege: "RejectVpcEndpointConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject a VPC peering connection request", + Privilege: "RejectVpcPeeringConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AccepterVpc", + "ec2:RequesterVpc", + "ec2:ResourceTag/${TagKey}", + "ec2:VpcPeeringConnectionID", + }, + DependentActions: []string{}, + ResourceType: "vpc-peering-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to release an Elastic IP address", + Privilege: "ReleaseAddress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to release one or more On-Demand Dedicated Hosts", + Privilege: "ReleaseHosts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "dedicated-host*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to release an allocation within an Amazon VPC IP Address Manager (IPAM) pool", + Privilege: "ReleaseIpamPoolAllocation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipam-pool*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace an IAM instance profile for an instance", + Privilege: "ReplaceIamInstanceProfileAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:NewInstanceProfile", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace image criteria in allowed images settings", + Privilege: "ReplaceImageCriteriaInAllowedImagesSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change which network ACL a subnet is associated with", + Privilege: "ReplaceNetworkAclAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:NetworkAclID", + "ec2:ResourceTag/${TagKey}", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-acl*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace an entry (rule) in a network ACL", + Privilege: "ReplaceNetworkAclEntry", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:NetworkAclID", + "ec2:ResourceTag/${TagKey}", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-acl*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace a route within a route table in a VPC", + Privilege: "ReplaceRoute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the route table that is associated with a subnet", + Privilege: "ReplaceRouteTableAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:InternetGatewayID", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "internet-gateway", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv4pool-ec2", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "ipv6pool-ec2", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-gateway", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace a route in a transit gateway route table", + Privilege: "ReplaceTransitGatewayRoute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-attachment", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace a VPN tunnel", + Privilege: "ReplaceVpnTunnel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "vpn-connection*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to submit feedback about the status of an instance", + Privilege: "ReportInstanceStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Spot Fleet request", + Privilege: "RequestSpotFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "spot-fleet-request*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:KeyPairName", + "ec2:KeyPairType", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "key-pair", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "launch-template", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "placement-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:OutpostArn", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Spot Instance request", + Privilege: "RequestSpotInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + "iam:PassRole", + }, + ResourceType: "spot-instances-request*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:KeyPairName", + "ec2:KeyPairType", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "key-pair", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:Permission", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "placement-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:OutpostArn", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset the attribute of the specified IP address", + Privilege: "ResetAddressAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AllocationId", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-ip*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset the default customer master key (CMK) for EBS encryption for your account to use the AWS-managed CMK for EBS", + Privilege: "ResetEbsDefaultKmsKeyId", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset an attribute of an Amazon FPGA Image (AFI) to its default value", + Privilege: "ResetFpgaImageAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "fpga-image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset an attribute of an Amazon Machine Image (AMI) to its default value", + Privilege: "ResetImageAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset an attribute of an instance to its default value", + Privilege: "ResetInstanceAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset an attribute of a network interface", + Privilege: "ResetNetworkInterfaceAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to reset permission settings for a snapshot", + Privilege: "ResetSnapshotAttribute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform", + Privilege: "RestoreAddressToClassic", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore an Amazon Machine Image (AMI) from the Recycle Bin", + Privilege: "RestoreImageFromRecycleBin", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{}, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore the entries from a previous version of a managed prefix list to a new version of the prefix list", + Privilege: "RestoreManagedPrefixListVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "prefix-list*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore an Amazon EBS snapshot from the Recycle Bin", + Privilege: "RestoreSnapshotFromRecycleBin", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore an archived Amazon EBS snapshot for use temporarily or permanently, or modify the restore period or restore type for a snapshot that was previously temporarily restored", + Privilege: "RestoreSnapshotTier", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an inbound authorization rule from a Client VPN endpoint", + Privilege: "RevokeClientVpnIngress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove one or more outbound rules from a VPC security group", + Privilege: "RevokeSecurityGroupEgress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove one or more inbound rules from a security group", + Privilege: "RevokeSecurityGroupIngress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to launch one or more instances", + Privilege: "RunInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Owner", + "ec2:Public", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + DependentActions: []string{ + "ec2:CreateTags", + "iam:PassRole", + "ssm:GetParameters", + }, + ResourceType: "image*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AssociatePublicIpAddress", + "ec2:AuthorizedService", + "ec2:AvailabilityZone", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "subnet*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + }, + DependentActions: []string{}, + ResourceType: "capacity-reservation", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ElasticGpuType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "elastic-gpu", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "elastic-inference", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:IsLaunchTemplateResource", + "ec2:KeyPairName", + "ec2:KeyPairType", + "ec2:LaunchTemplate", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "key-pair", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "launch-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "license-configuration", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "placement-group", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotID", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + DependentActions: []string{}, + ResourceType: "volume", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to launch one or more Scheduled Instances", + Privilege: "RunScheduledInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for routes in a local gateway route table", + Privilege: "SearchLocalGatewayRoutes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "local-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for groups, sources, and members in a transit gateway multicast domain", + Privilege: "SearchTransitGatewayMulticastGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-multicast-domain*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for routes in a transit gateway route table", + Privilege: "SearchTransitGatewayRoutes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + DependentActions: []string{}, + ResourceType: "transit-gateway-route-table*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a diagnostic interrupt to an Amazon EC2 instance", + Privilege: "SendDiagnosticInterrupt", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to interrupt a Spot Instance", + Privilege: "SendSpotInstanceInterruptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to start a declarative policies report", + Privilege: "StartDeclarativePoliciesReport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a stopped instance", + Privilege: "StartInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "license-configuration", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a Network Access Scope analysis", + Privilege: "StartNetworkInsightsAccessScopeAnalysis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "network-insights-access-scope*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "network-insights-access-scope-analysis*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start analyzing a specified path", + Privilege: "StartNetworkInsightsAnalysis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "network-insights-analysis*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "network-insights-path*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the private DNS verification process for a VPC endpoint service", + Privilege: "StartVpcEndpointServicePrivateDnsVerification", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:vpceMultiRegion", + "ec2:vpceSupportedRegion", + }, + DependentActions: []string{}, + ResourceType: "vpc-endpoint-service*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an Amazon EBS-backed instance", + Privilege: "StopInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to terminate active Client VPN endpoint connections", + Privilege: "TerminateClientVpnConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + DependentActions: []string{}, + ResourceType: "client-vpn-endpoint*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to shut down one or more instances", + Privilege: "TerminateInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unassign one or more IPv6 addresses from a network interface", + Privilege: "UnassignIpv6Addresses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unassign one or more secondary private IP addresses from a network interface", + Privilege: "UnassignPrivateIpAddresses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "network-interface*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unassign secondary private IPv4 addresses from a private NAT gateway", + Privilege: "UnassignPrivateNatGatewayAddress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "natgateway*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unlock a snapshot that is locked in governance mode or in compliance mode while still in the cooling-off period", + Privilege: "UnlockSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:Encrypted", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotCoolOffPeriod", + "ec2:SnapshotID", + "ec2:SnapshotLockDuration", + "ec2:SnapshotTime", + "ec2:VolumeSize", + }, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable detailed monitoring for a running instance", + Privilege: "UnmonitorInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update descriptions for one or more outbound rules in a VPC security group", + Privilege: "UpdateSecurityGroupRuleDescriptionsEgress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update descriptions for one or more inbound rules in a security group", + Privilege: "UpdateSecurityGroupRuleDescriptionsIngress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + DependentActions: []string{}, + ResourceType: "security-group*", + }, + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop advertising an address range that was provisioned for use in AWS through bring your own IP addresses (BYOIP)", + Privilege: "WithdrawByoipCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ec2:Region", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:elastic-ip/${AllocationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AllocationId", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Domain", + "ec2:PublicIpAddress", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "elastic-ip", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation-fleet/${CapacityReservationFleetId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "capacity-reservation-fleet", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation/${CapacityReservationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:AvailabilityZoneId", + "ec2:CapacityReservationFleet", + "ec2:CreateDate", + "ec2:DestinationCapacityReservationId", + "ec2:EbsOptimized", + "ec2:EndDate", + "ec2:EndDateType", + "ec2:EphemeralStorage", + "ec2:InstanceCount", + "ec2:InstanceMatchCriteria", + "ec2:InstancePlatform", + "ec2:InstanceType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:OutpostArn", + "ec2:PlacementGroup", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:SourceCapacityReservationId", + "ec2:Tenancy", + }, + Resource: "capacity-reservation", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:carrier-gateway/${CarrierGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:Vpc", + }, + Resource: "carrier-gateway", + }, + { + Arn: "arn:${Partition}:acm:${Region}:${Account}:certificate/${CertificateId}", + ConditionKeys: []string{}, + Resource: "certificate", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:client-vpn-endpoint/${ClientVpnEndpointId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ClientRootCertificateChainArn", + "ec2:CloudwatchLogGroupArn", + "ec2:CloudwatchLogStreamArn", + "ec2:DirectoryArn", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:SamlProviderArn", + "ec2:ServerCertificateArn", + }, + Resource: "client-vpn-endpoint", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:customer-gateway/${CustomerGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "customer-gateway", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:declarative-policies-report/${DeclarativePoliciesReportId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "declarative-policies-report", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:dedicated-host/${DedicatedHostId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AutoPlacement", + "ec2:AvailabilityZone", + "ec2:HostRecovery", + "ec2:InstanceType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Quantity", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "dedicated-host", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:dhcp-options/${DhcpOptionsId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:DhcpOptionsID", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "dhcp-options", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:egress-only-internet-gateway/${EgressOnlyInternetGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "egress-only-internet-gateway", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:elastic-gpu/${ElasticGpuId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:ElasticGpuType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "elastic-gpu", + }, + { + Arn: "arn:${Partition}:elastic-inference:${Region}:${Account}:elastic-inference-accelerator/${AcceleratorId}", + ConditionKeys: []string{}, + Resource: "elastic-inference", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:export-image-task/${ExportImageTaskId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "export-image-task", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:export-instance-task/${ExportTaskId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "export-instance-task", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:fleet/${FleetId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "fleet", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:fpga-image/${FpgaImageId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Owner", + "ec2:Public", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "fpga-image", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:host-reservation/${HostReservationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "host-reservation", + }, + { + Arn: "arn:${Partition}:ec2:${Region}::image/${ImageId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:ImageID", + "ec2:ImageType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Owner", + "ec2:Public", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + }, + Resource: "image", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:import-image-task/${ImportImageTaskId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "import-image-task", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:import-snapshot-task/${ImportSnapshotTaskId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "import-snapshot-task", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance-connect-endpoint/${InstanceConnectEndpointId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + }, + Resource: "instance-connect-endpoint", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance-event-window/${InstanceEventWindowId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "instance-event-window", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:CpuOptionsAmdSevSnp", + "ec2:EbsOptimized", + "ec2:InstanceAutoRecovery", + "ec2:InstanceBandwidthWeighting", + "ec2:InstanceID", + "ec2:InstanceMarketType", + "ec2:InstanceMetadataTags", + "ec2:InstanceProfile", + "ec2:InstanceType", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:MetadataHttpEndpoint", + "ec2:MetadataHttpPutResponseHopLimit", + "ec2:MetadataHttpTokens", + "ec2:NewInstanceProfile", + "ec2:PlacementGroup", + "ec2:ProductCode", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:RootDeviceType", + "ec2:Tenancy", + }, + Resource: "instance", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:internet-gateway/${InternetGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:InternetGatewayID", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "internet-gateway", + }, + { + Arn: "arn:${Partition}:ec2::${Account}:ipam-external-resource-verification-token/${IpamExternalResourceVerificationTokenId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipam-external-resource-verification-token", + }, + { + Arn: "arn:${Partition}:ec2::${Account}:ipam/${IpamId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipam", + }, + { + Arn: "arn:${Partition}:ec2::${Account}:ipam-pool/${IpamPoolId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipam-pool", + }, + { + Arn: "arn:${Partition}:ec2::${Account}:ipam-resource-discovery-association/${IpamResourceDiscoveryAssociationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipam-resource-discovery-association", + }, + { + Arn: "arn:${Partition}:ec2::${Account}:ipam-resource-discovery/${IpamResourceDiscoveryId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipam-resource-discovery", + }, + { + Arn: "arn:${Partition}:ec2::${Account}:ipam-scope/${IpamScopeId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipam-scope", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:coip-pool/${Ipv4PoolCoipId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "coip-pool", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:ipv4pool-ec2/${Ipv4PoolEc2Id}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipv4pool-ec2", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:ipv6pool-ec2/${Ipv6PoolEc2Id}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "ipv6pool-ec2", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:key-pair/${KeyPairName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:IsLaunchTemplateResource", + "ec2:KeyPairName", + "ec2:KeyPairType", + "ec2:LaunchTemplate", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "key-pair", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:launch-template/${LaunchTemplateId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "launch-template", + }, + { + Arn: "arn:${Partition}:license-manager:${Region}:${Account}:license-configuration:${LicenseConfigurationId}", + ConditionKeys: []string{}, + Resource: "license-configuration", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway/${LocalGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "local-gateway", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table-virtual-interface-group-association/${LocalGatewayRouteTableVirtualInterfaceGroupAssociationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "local-gateway-route-table-virtual-interface-group-association", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table-vpc-association/${LocalGatewayRouteTableVpcAssociationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "local-gateway-route-table-vpc-association", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table/${LocalGatewayRoutetableId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "local-gateway-route-table", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface-group/${LocalGatewayVirtualInterfaceGroupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "local-gateway-virtual-interface-group", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface/${LocalGatewayVirtualInterfaceId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "local-gateway-virtual-interface", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:natgateway/${NatGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "natgateway", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-acl/${NaclId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:NetworkAclID", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:Vpc", + }, + Resource: "network-acl", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope-analysis/${NetworkInsightsAccessScopeAnalysisId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "network-insights-access-scope-analysis", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope/${NetworkInsightsAccessScopeId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "network-insights-access-scope", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-analysis/${NetworkInsightsAnalysisId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "network-insights-analysis", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-path/${NetworkInsightsPathId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "network-insights-path", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-interface/${NetworkInterfaceId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AssociatePublicIpAddress", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AuthorizedService", + "ec2:AuthorizedUser", + "ec2:AvailabilityZone", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:NetworkInterfaceID", + "ec2:Permission", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:Subnet", + "ec2:Vpc", + }, + Resource: "network-interface", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:placement-group/${PlacementGroupName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:PlacementGroupName", + "ec2:PlacementGroupStrategy", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "placement-group", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:prefix-list/${PrefixListId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "prefix-list", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:replace-root-volume-task/${ReplaceRootVolumeTaskId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "replace-root-volume-task", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:reserved-instances/${ReservationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:InstanceType", + "ec2:Region", + "ec2:ReservedInstancesOfferingType", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + }, + Resource: "reserved-instances", + }, + { + Arn: "arn:${Partition}:resource-groups:${Region}:${Account}:group/${GroupName}", + ConditionKeys: []string{}, + Resource: "group", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}", + ConditionKeys: []string{}, + Resource: "role", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:route-server-endpoint/${RouteServerEndpointId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "route-server-endpoint", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:route-server/${RouteServerId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "route-server", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:route-server-peer/${RouteServerPeerId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AvailabilityZone", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "route-server-peer", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:route-table/${RouteTableId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:RouteTableID", + "ec2:Vpc", + }, + Resource: "route-table", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:security-group/${SecurityGroupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:SecurityGroupID", + "ec2:Vpc", + }, + Resource: "security-group", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:security-group-rule/${SecurityGroupRuleId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "security-group-rule", + }, + { + Arn: "arn:${Partition}:ec2:${Region}::snapshot/${SnapshotId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Add/group", + "ec2:Add/userId", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Location", + "ec2:OutpostArn", + "ec2:Owner", + "ec2:ParentVolume", + "ec2:Region", + "ec2:Remove/group", + "ec2:Remove/userId", + "ec2:ResourceTag/${TagKey}", + "ec2:SnapshotCoolOffPeriod", + "ec2:SnapshotID", + "ec2:SnapshotLockDuration", + "ec2:SnapshotTime", + "ec2:SourceAvailabilityZone", + "ec2:SourceOutpostArn", + "ec2:VolumeSize", + }, + Resource: "snapshot", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:spot-fleet-request/${SpotFleetRequestId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "spot-fleet-request", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:spot-instances-request/${SpotInstanceRequestId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "spot-instances-request", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:subnet-cidr-reservation/${SubnetCidrReservationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "subnet-cidr-reservation", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:subnet/${SubnetId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:IsLaunchTemplateResource", + "ec2:LaunchTemplate", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:SubnetID", + "ec2:Vpc", + }, + Resource: "subnet", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-filter/${TrafficMirrorFilterId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "traffic-mirror-filter", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-filter-rule/${TrafficMirrorFilterRuleId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "traffic-mirror-filter-rule", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-session/${TrafficMirrorSessionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "traffic-mirror-session", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-target/${TrafficMirrorTargetId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "traffic-mirror-target", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-attachment/${TransitGatewayAttachmentId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayAttachmentId", + }, + Resource: "transit-gateway-attachment", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-connect-peer/${TransitGatewayConnectPeerId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayConnectPeerId", + }, + Resource: "transit-gateway-connect-peer", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway/${TransitGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayId", + }, + Resource: "transit-gateway", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-multicast-domain/${TransitGatewayMulticastDomainId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayMulticastDomainId", + }, + Resource: "transit-gateway-multicast-domain", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-policy-table/${TransitGatewayPolicyTableId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayPolicyTableId", + }, + Resource: "transit-gateway-policy-table", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-route-table-announcement/${TransitGatewayRouteTableAnnouncementId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableAnnouncementId", + }, + Resource: "transit-gateway-route-table-announcement", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-route-table/${TransitGatewayRouteTableId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:transitGatewayRouteTableId", + }, + Resource: "transit-gateway-route-table", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-endpoint/${VerifiedAccessEndpointId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "verified-access-endpoint", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-endpoint-target/${VerifiedAccessEndpointTargetId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "verified-access-endpoint-target", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-group/${VerifiedAccessGroupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "verified-access-group", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-instance/${VerifiedAccessInstanceId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "verified-access-instance", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-policy/${VerifiedAccessPolicyId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "verified-access-policy", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-trust-provider/${VerifiedAccessTrustProviderId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "verified-access-trust-provider", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:volume/${VolumeId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AvailabilityZone", + "ec2:Encrypted", + "ec2:IsLaunchTemplateResource", + "ec2:KmsKeyId", + "ec2:LaunchTemplate", + "ec2:ManagedResourceOperator", + "ec2:ParentSnapshot", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:VolumeID", + "ec2:VolumeIops", + "ec2:VolumeSize", + "ec2:VolumeThroughput", + "ec2:VolumeType", + }, + Resource: "volume", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-block-public-access-exclusion/${VpcBlockPublicAccessExclusionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "vpc-block-public-access-exclusion", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint-connection/${VpcEndpointConnectionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "vpc-endpoint-connection", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint/${VpcEndpointId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:VpceServiceName", + "ec2:VpceServiceOwner", + }, + Resource: "vpc-endpoint", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint-service/${VpcEndpointServiceId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:VpceServicePrivateDnsName", + "ec2:vpceMultiRegion", + "ec2:vpceServiceRegion", + "ec2:vpceSupportedRegion", + }, + Resource: "vpc-endpoint-service", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint-service-permission/${VpcEndpointServicePermissionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "vpc-endpoint-service-permission", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-flow-log/${VpcFlowLogId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "vpc-flow-log", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc/${VpcId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Ipv4IpamPoolId", + "ec2:Ipv6IpamPoolId", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + "ec2:Tenancy", + "ec2:VpcID", + }, + Resource: "vpc", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-peering-connection/${VpcPeeringConnectionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:AccepterVpc", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:Region", + "ec2:RequesterVpc", + "ec2:ResourceTag/${TagKey}", + "ec2:VpcPeeringConnectionID", + }, + Resource: "vpc-peering-connection", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpn-connection-device-type/${VpnConnectionDeviceTypeId}", + ConditionKeys: []string{ + "ec2:Region", + }, + Resource: "vpn-connection-device-type", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpn-connection/${VpnConnectionId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Attribute", + "ec2:Attribute/${AttributeName}", + "ec2:AuthenticationType", + "ec2:DPDTimeoutSeconds", + "ec2:GatewayType", + "ec2:IKEVersions", + "ec2:InsideTunnelCidr", + "ec2:InsideTunnelIpv6Cidr", + "ec2:Phase1DHGroup", + "ec2:Phase1EncryptionAlgorithms", + "ec2:Phase1IntegrityAlgorithms", + "ec2:Phase1LifetimeSeconds", + "ec2:Phase2DHGroup", + "ec2:Phase2EncryptionAlgorithms", + "ec2:Phase2IntegrityAlgorithms", + "ec2:Phase2LifetimeSeconds", + "ec2:Region", + "ec2:RekeyFuzzPercentage", + "ec2:RekeyMarginTimeSeconds", + "ec2:ReplayWindowSizePackets", + "ec2:ResourceTag/${TagKey}", + "ec2:RoutingType", + }, + Resource: "vpn-connection", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpn-gateway/${VpnGatewayId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "ec2:Region", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "vpn-gateway", + }, + }, + ServiceName: "Amazon EC2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tags associated with the resource", + Type: "String", + }, + { + Condition: "ec2-instance-connect:maxTunnelDuration", + Description: "Filters access by maximum session duration associated with the instance", + Type: "Numeric", + }, + { + Condition: "ec2-instance-connect:privateIpAddress", + Description: "Filters access by private IP Address associated with the instance", + Type: "IPAddress", + }, + { + Condition: "ec2-instance-connect:remotePort", + Description: "Filters access by port number associated with the instance", + Type: "Numeric", + }, + { + Condition: "ec2:ResourceTag/${TagKey}", + Description: "Filters access by tags associated with the resource", + Type: "String", + }, + { + Condition: "ec2:osuser", + Description: "Filters access by specifying the default user name for the AMI that you used to launch your instance", + Type: "String", + }, + }, + Prefix: "ec2-instance-connect", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to establish SSH connection to an EC2 instance using EC2 Instance Connect Endpoint", + Privilege: "OpenTunnel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance-connect-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + "ec2-instance-connect:remotePort", + "ec2-instance-connect:privateIpAddress", + "ec2-instance-connect:MaxTunnelDuration", + }, + DependentActions: []string{}, + ResourceType: "instance-connect-endpoint", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to push an SSH public key to the specified EC2 instance to be used for standard SSH", + Privilege: "SendSSHPublicKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "ec2:osuser", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to push an SSH public key to the specified EC2 instance to be used for serial console SSH", + Privilege: "SendSerialConsoleSSHPublicKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "instance", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance-connect-endpoint/${InstanceConnectEndpointId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ec2:ResourceTag/${TagKey}", + }, + Resource: "instance-connect-endpoint", + }, + }, + ServiceName: "Amazon EC2 Instance Connect", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "ec2:SourceInstanceARN", + Description: "Filters access by the ARN of the instance from which the request originated", + Type: "ARN", + }, + { + Condition: "ssm:SourceInstanceARN", + Description: "Filters access by verifying the Amazon Resource Name (ARN) of the AWS Systems Manager's managed instance from which the request is made. This key is not present when the request comes from the managed instance authenticated with an IAM role associated with EC2 instance profile", + Type: "ARN", + }, + }, + Prefix: "ec2messages", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to acknowledge a message, ensuring it will not be delivered again", + Privilege: "AcknowledgeMessage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a message", + Privilege: "DeleteMessage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to fail a message, signifying the message could not be processed successfully, ensuring it cannot be replied to or delivered again", + Privilege: "FailMessage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to route traffic to the correct endpoint based on the given destination for the messages", + Privilege: "GetEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to deliver messages to clients/instances using long polling", + Privilege: "GetMessages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send replies from clients/instances to upstream service", + Privilege: "SendReply", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Message Delivery Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "ecr:AccountSetting", + Description: "Filters access by the ECR account setting name", + Type: "String", + }, + { + Condition: "ecr:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + }, + Prefix: "ecr", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to check the availability of multiple image layers in a specified registry and repository", + Privilege: "BatchCheckLayerAvailability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a list of specified images within a specified repository", + Privilege: "BatchDeleteImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get detailed information for specified images within a specified repository", + Privilege: "BatchGetImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve repository scanning configuration for a list of repositories", + Privilege: "BatchGetRepositoryScanningConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to retrieve the image from the upstream registry and import it to your private registry", + Privilege: "BatchImportUpstreamImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inform Amazon ECR that the image layer upload for a specified registry, repository name, and upload ID, has completed", + Privilege: "CompleteLayerUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create new pull-through cache rule", + Privilege: "CreatePullThroughCacheRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an image repository", + Privilege: "CreateRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ecr:TagResource", + }, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the repository creation template", + Privilege: "CreateRepositoryCreationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified lifecycle policy", + Privilege: "DeleteLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the pull-through cache rule", + Privilege: "DeletePullThroughCacheRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete the registry policy", + Privilege: "DeleteRegistryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing image repository", + Privilege: "DeleteRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the repository creation template", + Privilege: "DeleteRepositoryCreationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete the repository policy from a specified repository", + Privilege: "DeleteRepositoryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve replication status about an image in a registry, including failure reason if replication fails", + Privilege: "DescribeImageReplicationStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the image scan findings for the specified image", + Privilege: "DescribeImageScanFindings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get metadata about the images in a repository, including image size, image tags, and creation date", + Privilege: "DescribeImages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the pull-through cache rules", + Privilege: "DescribePullThroughCacheRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the registry settings", + Privilege: "DescribeRegistry", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe image repositories in a registry", + Privilege: "DescribeRepositories", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the repository creation template", + Privilege: "DescribeRepositoryCreationTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve account settings", + Privilege: "GetAccountSetting", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecr:AccountSetting", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a token that is valid for a specified registry for 12 hours", + Privilege: "GetAuthorizationToken", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the download URL corresponding to an image layer", + Privilege: "GetDownloadUrlForLayer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the status about an image copy", + Privilege: "GetImageCopyStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified lifecycle policy", + Privilege: "GetLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the results of the specified lifecycle policy preview request", + Privilege: "GetLifecyclePolicyPreview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the registry policy", + Privilege: "GetRegistryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve registry scanning configuration", + Privilege: "GetRegistryScanningConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the repository policy for a specified repository", + Privilege: "GetRepositoryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify Amazon ECR that you intend to upload an image layer", + Privilege: "InitiateLayerUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the image IDs for a given repository", + Privilege: "ListImages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for an Amazon ECR resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update account settings", + Privilege: "PutAccountSetting", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecr:AccountSetting", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update the image manifest associated with an image", + Privilege: "PutImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the image scanning configuration for a repository", + Privilege: "PutImageScanningConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the image tag mutability settings for a repository", + Privilege: "PutImageTagMutability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update a lifecycle policy", + Privilege: "PutLifecyclePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update the registry policy", + Privilege: "PutRegistryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update registry scanning configuration", + Privilege: "PutRegistryScanningConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the replication configuration for the registry", + Privilege: "PutReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replicate images to the destination registry", + Privilege: "ReplicateImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to apply a repository policy on a specified repository to control access permissions", + Privilege: "SetRepositoryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an image scan", + Privilege: "StartImageScan", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a preview of the specified lifecycle policy", + Privilege: "StartLifecyclePolicyPreview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an Amazon ECR resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag an Amazon ECR resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the pull-through cache rule", + Privilege: "UpdatePullThroughCacheRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the repository creation template", + Privilege: "UpdateRepositoryCreationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ecr:CreateRepository", + "ecr:PutLifecyclePolicy", + "ecr:SetRepositoryPolicy", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upload an image layer part to Amazon ECR", + Privilege: "UploadLayerPart", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to validate the pull-through cache rule", + Privilege: "ValidatePullThroughCacheRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ecr:${Region}:${Account}:repository/${RepositoryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecr:ResourceTag/${TagKey}", + }, + Resource: "repository", + }, + }, + ServiceName: "Amazon Elastic Container Registry", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters create requests based on the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters create requests based on the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "ecr-public:ResourceTag/${TagKey}", + Description: "Filters actions based on tag-value associated with the resource", + Type: "String", + }, + }, + Prefix: "ecr-public", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to check the availability of multiple image layers in a specified registry and repository", + Privilege: "BatchCheckLayerAvailability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a list of specified images within a specified repository", + Privilege: "BatchDeleteImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inform Amazon ECR that the image layer upload for a specified registry, repository name, and upload ID, has completed", + Privilege: "CompleteLayerUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an image repository", + Privilege: "CreateRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ecr-public:TagResource", + }, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing image repository", + Privilege: "DeleteRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the repository policy from a specified repository", + Privilege: "DeleteRepositoryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe all the image tags for a given repository", + Privilege: "DescribeImageTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get metadata about the images in a repository, including image size, image tags, and creation date", + Privilege: "DescribeImages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the catalog data associated with a registry", + Privilege: "DescribeRegistries", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "registry*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe image repositories in a registry", + Privilege: "DescribeRepositories", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a token that is valid for a specified registry for 12 hours", + Privilege: "GetAuthorizationToken", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the catalog data associated with a registry", + Privilege: "GetRegistryCatalogData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "registry*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the catalog data associated with a repository", + Privilege: "GetRepositoryCatalogData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the repository policy for a specified repository", + Privilege: "GetRepositoryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify Amazon ECR that you intend to upload an image layer", + Privilege: "InitiateLayerUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for an Amazon ECR resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update the image manifest associated with an image", + Privilege: "PutImage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create and update the catalog data associated with a registry", + Privilege: "PutRegistryCatalogData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "registry*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the catalog data associated with a repository", + Privilege: "PutRepositoryCatalogData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to apply a repository policy on a specified repository to control access permissions", + Privilege: "SetRepositoryPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an Amazon ECR resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag an Amazon ECR resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upload an image layer part to Amazon ECR Public", + Privilege: "UploadLayerPart", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ecr-public::${Account}:repository/${RepositoryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecr-public:ResourceTag/${TagKey}", + }, + Resource: "repository", + }, + { + Arn: "arn:${Partition}:ecr-public::${Account}:registry/${RegistryId}", + ConditionKeys: []string{}, + Resource: "registry", + }, + }, + ServiceName: "Amazon Elastic Container Registry Public", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "ecs:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + { + Condition: "ecs:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "ecs:account-setting", + Description: "Filters access by the Amazon ECS account setting name", + Type: "String", + }, + { + Condition: "ecs:auto-assign-public-ip", + Description: "Filters access by the public IP assignment configuration of your Amazon ECS task or Amazon ECS service that uses awsvpc network mode", + Type: "Bool", + }, + { + Condition: "ecs:capacity-provider", + Description: "Filters access by the ARN of an Amazon ECS capacity provider", + Type: "ArrayOfARN", + }, + { + Condition: "ecs:cluster", + Description: "Filters access by the ARN of an Amazon ECS cluster", + Type: "ARN", + }, + { + Condition: "ecs:compute-compatibility", + Description: "Filters access by the required compatibilities field provided in the request", + Type: "ArrayOfString", + }, + { + Condition: "ecs:container-instances", + Description: "Filters access by the ARN of an Amazon ECS container instance", + Type: "ARN", + }, + { + Condition: "ecs:container-name", + Description: "Filters access by the name of an Amazon ECS container which is defined in the ECS task definition", + Type: "String", + }, + { + Condition: "ecs:enable-ebs-volumes", + Description: "Filters access by the Amazon ECS managed Amazon EBS volume capability of your ECS task or service", + Type: "String", + }, + { + Condition: "ecs:enable-ecs-managed-tags", + Description: "Filters access by the enableECSManagedTags configuration of your Amazon ECS task or Amazon ECS service", + Type: "Bool", + }, + { + Condition: "ecs:enable-execute-command", + Description: "Filters access by the execute-command capability of your Amazon ECS task or Amazon ECS service", + Type: "String", + }, + { + Condition: "ecs:enable-service-connect", + Description: "Filters access by the enable field value in the Service Connect configuration", + Type: "String", + }, + { + Condition: "ecs:enable-vpc-lattice", + Description: "Filters access by the VPC lattice capability of your Amazon ECS service", + Type: "String", + }, + { + Condition: "ecs:fargate-ephemeral-storage-kms-key", + Description: "Filters access by the AWS KMS key id provided in the request", + Type: "String", + }, + { + Condition: "ecs:namespace", + Description: "Filters access by the ARN of AWS Cloud Map namespace which is defined in the Service Connect Configuration", + Type: "ARN", + }, + { + Condition: "ecs:privileged", + Description: "Filters access by the privileged field provided in the request", + Type: "String", + }, + { + Condition: "ecs:propagate-tags", + Description: "Filters access by the tag propagation configuration of your Amazon ECS task or Amazon ECS service", + Type: "String", + }, + { + Condition: "ecs:service", + Description: "Filters access by the ARN of an Amazon ECS service", + Type: "ARN", + }, + { + Condition: "ecs:subnet", + Description: "Filters access by the subnet configuration of your Amazon ECS task or Amazon ECS service that uses awsvpc network mode", + Type: "ArrayOfString", + }, + { + Condition: "ecs:task", + Description: "Filters access by the ARN of an Amazon ECS task", + Type: "ARN", + }, + { + Condition: "ecs:task-cpu", + Description: "Filters access by the task cpu, as an integer with 1024 = 1 vCPU, provided in the request", + Type: "Numeric", + }, + { + Condition: "ecs:task-definition", + Description: "Filters access by the ARN of an Amazon ECS task definition", + Type: "ARN", + }, + { + Condition: "ecs:task-memory", + Description: "Filters access by the task memory, as an integer representing MiB, provided in the request", + Type: "Numeric", + }, + }, + Prefix: "ecs", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used in capacity provider strategies to facilitate cluster auto scaling", + Privilege: "CreateCapacityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Amazon ECS cluster", + Privilege: "CreateCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:capacity-provider", + "ecs:fargate-ephemeral-storage-kms-key", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to run and maintain a desired number of tasks from a specified task definition via service creation", + Privilege: "CreateService", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:cluster", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:capacity-provider", + "ecs:task-definition", + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + "ecs:enable-service-connect", + "ecs:namespace", + "ecs:enable-vpc-lattice", + "ecs:enable-ecs-managed-tags", + "ecs:propagate-tags", + "ecs:auto-assign-public-ip", + "ecs:subnet", + "ecs:task-cpu", + "ecs:task-memory", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Amazon ECS task set", + Privilege: "CreateTaskSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:cluster", + "ecs:capacity-provider", + "ecs:service", + "ecs:task-definition", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the ARN and resource ID format of a resource for a specified IAM user, IAM role, or the root user for an account. You can specify whether the new ARN and resource ID format are disabled for new resources that are created", + Privilege: "DeleteAccountSetting", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:account-setting", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete one or more custom attributes from an Amazon ECS resource", + Privilege: "DeleteAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified capacity provider", + Privilege: "DeleteCapacityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "capacity-provider*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified cluster", + Privilege: "DeleteCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a specified service within a cluster", + Privilege: "DeleteService", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified task definitions by family and revision", + Privilege: "DeleteTaskDefinitions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-definition*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified task set", + Privilege: "DeleteTaskSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-set*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister an Amazon ECS container instance from the specified cluster", + Privilege: "DeregisterContainerInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister the specified task definition by family and revision", + Privilege: "DeregisterTaskDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe one or more Amazon ECS capacity providers", + Privilege: "DescribeCapacityProviders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "capacity-provider*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describes one or more of your clusters", + Privilege: "DescribeClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describes Amazon ECS container instances", + Privilege: "DescribeContainerInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe one or more of your service deployments", + Privilege: "DescribeServiceDeployments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:cluster", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "ecs:cluster", + "ecs:service", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service-deployment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe one or more of your service revisions", + Privilege: "DescribeServiceRevisions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:cluster", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "ecs:cluster", + "ecs:service", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service-revision*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified services running in your cluster", + Privilege: "DescribeServices", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a task definition. You can specify a family and revision to find information about a specific task definition, or you can simply specify the family to find the latest ACTIVE revision in that family", + Privilege: "DescribeTaskDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe Amazon ECS task sets", + Privilege: "DescribeTaskSets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-set*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a specified task or tasks", + Privilege: "DescribeTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get an endpoint for the Amazon ECS agent to poll for updates", + Privilege: "DiscoverPollEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to run a command remotely on an Amazon ECS container", + Privilege: "ExecuteCommand", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:container-name", + "ecs:task", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the protection status of tasks in an Amazon ECS service", + Privilege: "GetTaskProtection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the account settings for an Amazon ECS resource for a specified principal", + Privilege: "ListAccountSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to lists the attributes for Amazon ECS resources within a specified target type and cluster", + Privilege: "ListAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of existing clusters", + Privilege: "ListClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of container instances in a specified cluster", + Privilege: "ListContainerInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of service deployments for a specified service", + Privilege: "ListServiceDeployments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "service*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of services that are running in a specified cluster", + Privilege: "ListServices", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of services that are running in a specified AWS Cloud Map Namespace", + Privilege: "ListServicesByNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:namespace", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of tags for the specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "capacity-provider", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-set", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of task definition families that are registered to your account (which may include task definition families that no longer have any ACTIVE task definitions)", + Privilege: "ListTaskDefinitionFamilies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of task definitions that are registered to your account", + Privilege: "ListTaskDefinitions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of tasks for a specified cluster", + Privilege: "ListTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to an agent to connect with the Amazon ECS service to report status and get commands", + Privilege: "Poll", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the ARN and resource ID format of a resource for a specified IAM user, IAM role, or the root user for an account. You can specify whether the new ARN and resource ID format are enabled for new resources that are created. Enabling this setting is required to use new Amazon ECS features such as resource tagging", + Privilege: "PutAccountSetting", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:account-setting", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the ARN and resource ID format of a resource type for all IAM users on an account for which no individual account setting has been set. Enabling this setting is required to use new Amazon ECS features such as resource tagging", + Privilege: "PutAccountSettingDefault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:account-setting", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an attribute on an Amazon ECS resource", + Privilege: "PutAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the available capacity providers and the default capacity provider strategy for a cluster", + Privilege: "PutClusterCapacityProviders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:capacity-provider", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register an EC2 instance into the specified cluster", + Privilege: "RegisterContainerInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register a new task definition from the supplied family and containerDefinitions", + Privilege: "RegisterTaskDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "task-definition*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:compute-compatibility", + "ecs:privileged", + "ecs:task-cpu", + "ecs:task-memory", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a task using random placement and the default Amazon ECS scheduler", + Privilege: "RunTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "task-definition*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:cluster", + "ecs:capacity-provider", + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a new task from the specified task definition on the specified container instance or instances", + Privilege: "StartTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "task-definition*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ecs:cluster", + "ecs:container-instances", + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a telemetry session", + Privilege: "StartTelemetrySession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an ongoing service deployment", + Privilege: "StopServiceDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:cluster", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "ecs:cluster", + "ecs:service", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service-deployment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a running task", + Privilege: "StopTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send an acknowledgement that attachments changed states", + Privilege: "SubmitAttachmentStateChanges", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send an acknowledgement that a container changed states", + Privilege: "SubmitContainerStateChange", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send an acknowledgement that a task changed states", + Privilege: "SubmitTaskStateChange", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag the specified resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "capacity-provider", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-set", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "ecs:CreateAction", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "capacity-provider", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-set", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified capacity provider", + Privilege: "UpdateCapacityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "capacity-provider*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration or settings to use for a cluster", + Privilege: "UpdateCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:fargate-ephemeral-storage-kms-key", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the settings to use for a cluster", + Privilege: "UpdateClusterSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the Amazon ECS container agent on a specified container instance", + Privilege: "UpdateContainerAgent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the user to modify the status of an Amazon ECS container instance", + Privilege: "UpdateContainerInstancesState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the parameters of a service", + Privilege: "UpdateService", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "ecs:cluster", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "ecs:capacity-provider", + "ecs:enable-ebs-volumes", + "ecs:enable-execute-command", + "ecs:enable-service-connect", + "ecs:namespace", + "ecs:task-definition", + "ecs:enable-vpc-lattice", + "ecs:enable-ecs-managed-tags", + "ecs:propagate-tags", + "ecs:auto-assign-public-ip", + "ecs:subnet", + "ecs:task-cpu", + "ecs:task-memory", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the primary task set used in a service", + Privilege: "UpdateServicePrimaryTaskSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the protection status of a task", + Privilege: "UpdateTaskProtection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified task set", + Privilege: "UpdateTaskSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task-set*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:cluster/${ClusterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:container-instance/${ClusterName}/${ContainerInstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "container-instance", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:service/${ClusterName}/${ServiceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "service", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:service-deployment/${ClusterName}/${ServiceName}/${ServiceDeploymentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service", + }, + Resource: "service-deployment", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:service-revision/${ClusterName}/${ServiceName}/${ServiceRevisionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:cluster", + "ecs:service", + }, + Resource: "service-revision", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:task/${ClusterName}/${TaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "task", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:task-definition/${TaskDefinitionFamilyName}:${TaskDefinitionRevisionNumber}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "task-definition", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:capacity-provider/${CapacityProviderName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "capacity-provider", + }, + { + Arn: "arn:${Partition}:ecs:${Region}:${Account}:task-set/${ClusterName}/${ServiceName}/${TaskSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ecs:ResourceTag/${TagKey}", + }, + Resource: "task-set", + }, + }, + ServiceName: "Amazon Elastic Container Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a key that is present in the request the user makes to the EKS service", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names present in the request the user makes to the EKS service", + Type: "ArrayOfString", + }, + { + Condition: "eks:accessEntryType", + Description: "Filters access by the access entry type present in the access entry requests the user makes to the EKS service", + Type: "String", + }, + { + Condition: "eks:accessScope", + Description: "Filters access by the accessScope present in the associate / disassociate access policy requests the user makes to the EKS service", + Type: "String", + }, + { + Condition: "eks:authenticationMode", + Description: "Filters access by the authenticationMode present in the create / update cluster request", + Type: "String", + }, + { + Condition: "eks:blockStorageEnabled", + Description: "Filters access by the block storage enabled parameter in the create / update cluster request", + Type: "Bool", + }, + { + Condition: "eks:bootstrapClusterCreatorAdminPermissions", + Description: "Filters access by the bootstrapClusterCreatorAdminPermissions present in the create cluster request", + Type: "Bool", + }, + { + Condition: "eks:bootstrapSelfManagedAddons", + Description: "Filters access by the bootstrapSelfManagedAddons present in the create cluster request", + Type: "Bool", + }, + { + Condition: "eks:clientId", + Description: "Filters access by the clientId present in the associateIdentityProviderConfig request the user makes to the EKS service", + Type: "String", + }, + { + Condition: "eks:clusterName", + Description: "Filters access by the clusterName present in the access entry requests the user makes to the EKS service", + Type: "String", + }, + { + Condition: "eks:computeConfigEnabled", + Description: "Filters access by the compute config enabled parameter in the create / update cluster request", + Type: "Bool", + }, + { + Condition: "eks:elasticLoadBalancingEnabled", + Description: "Filters access by the elastic load balancing enabled parameter in the create / update cluster request", + Type: "Bool", + }, + { + Condition: "eks:issuerUrl", + Description: "Filters access by the issuerUrl present in the associateIdentityProviderConfig request the user makes to the EKS service", + Type: "String", + }, + { + Condition: "eks:kubernetesGroups", + Description: "Filters access by the kubernetesGroups present in the access entry requests the user makes to the EKS service", + Type: "ArrayOfString", + }, + { + Condition: "eks:namespaces", + Description: "Filters access by the namespaces present in the associate / disassociate access policy requests the user makes to the EKS service", + Type: "ArrayOfString", + }, + { + Condition: "eks:policyArn", + Description: "Filters access by the policyArn present in the access entry requests the user makes to the EKS service", + Type: "ARN", + }, + { + Condition: "eks:principalArn", + Description: "Filters access by the principalArn present in the access entry requests requests the user makes to the EKS service", + Type: "ARN", + }, + { + Condition: "eks:supportType", + Description: "Filters access by the supportType present in the create / update cluster request", + Type: "String", + }, + { + Condition: "eks:username", + Description: "Filters access by the Kubernetes username present in the access entry requests the user makes to the EKS service", + Type: "String", + }, + }, + Prefix: "eks", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to view Kubernetes objects via AWS EKS console", + Privilege: "AccessKubernetesApi", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate an Amazon EKS access policy to an Amazon EKS access entry", + Privilege: "AssociateAccessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry*", + }, + { + ConditionKeys: []string{ + "eks:policyArn", + "eks:namespaces", + "eks:accessScope", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate encryption configuration to a cluster", + Privilege: "AssociateEncryptionConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate an identity provider configuration to a cluster", + Privilege: "AssociateIdentityProviderConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "eks:clientId", + "eks:issuerUrl", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EKS access entry", + Privilege: "CreateAccessEntry", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "eks:principalArn", + "eks:kubernetesGroups", + "eks:username", + "eks:accessEntryType", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EKS add-on", + Privilege: "CreateAddon", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EKS cluster", + Privilege: "CreateCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "eks:bootstrapClusterCreatorAdminPermissions", + "eks:bootstrapSelfManagedAddons", + "eks:authenticationMode", + "eks:supportType", + "eks:computeConfigEnabled", + "eks:elasticLoadBalancingEnabled", + "eks:blockStorageEnabled", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an EKS Anywhere subscription", + Privilege: "CreateEksAnywhereSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Fargate profile", + Privilege: "CreateFargateProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EKS Nodegroup", + Privilege: "CreateNodegroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an EKS Pod Identity association", + Privilege: "CreatePodIdentityAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon EKS access entry", + Privilege: "DeleteAccessEntry", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon EKS add-on", + Privilege: "DeleteAddon", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon EKS cluster", + Privilege: "DeleteCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to describe an EKS Anywhere subscription", + Privilege: "DeleteEksAnywhereSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eks-anywhere-subscription*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Fargate profile", + Privilege: "DeleteFargateProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fargateprofile*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon EKS Nodegroup", + Privilege: "DeleteNodegroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an EKS Pod Identity association", + Privilege: "DeletePodIdentityAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister an External cluster", + Privilege: "DeregisterCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an Amazon EKS access entry", + Privilege: "DescribeAccessEntry", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information about an Amazon EKS add-on", + Privilege: "DescribeAddon", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list configuration options about an Amazon EKS add-on", + Privilege: "DescribeAddonConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive version information about the add-ons that Amazon EKS Add-ons supports", + Privilege: "DescribeAddonVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information about an Amazon EKS cluster", + Privilege: "DescribeCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information about Kubernetes versions that Amazon EKS clusters support", + Privilege: "DescribeClusterVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an EKS Anywhere subscription", + Privilege: "DescribeEksAnywhereSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eks-anywhere-subscription*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information about an AWS Fargate profile associated with a cluster", + Privilege: "DescribeFargateProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fargateprofile*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information about an Idp config associated with a cluster", + Privilege: "DescribeIdentityProviderConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityproviderconfig*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information of a detected insight for a specified cluster", + Privilege: "DescribeInsight", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptive information about an Amazon EKS nodegroup", + Privilege: "DescribeNodegroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an EKS Pod Identity association", + Privilege: "DescribePodIdentityAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a given update for a given Amazon EKS cluster/nodegroup/add-on (in the specified or default region)", + Privilege: "DescribeUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an Amazon EKS access policy from an Amazon EKS acces entry", + Privilege: "DisassociateAccessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry*", + }, + { + ConditionKeys: []string{ + "eks:policyArn", + "eks:namespaces", + "eks:accessScope", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an asssociated Idp config", + Privilege: "DisassociateIdentityProviderConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityproviderconfig*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all Amazon EKS access entries", + Privilege: "ListAccessEntries", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Amazon EKS access policies", + Privilege: "ListAccessPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EKS add-ons in your AWS account (in the specified or default region) for a given cluster", + Privilege: "ListAddons", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list associated access policy on and Amazon EKS access entry", + Privilege: "ListAssociatedAccessPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EKS clusters in your AWS account (in the specified or default region)", + Privilege: "ListClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list EKS Anywhere subscriptions", + Privilege: "ListEksAnywhereSubscriptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the AWS Fargate profiles in your AWS account (in the specified or default region) associated with a given cluster", + Privilege: "ListFargateProfiles", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Idp configs in your AWS account (in the specified or default region) associated with a given cluster", + Privilege: "ListIdentityProviderConfigs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all detected insights for a specified cluster", + Privilege: "ListInsights", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EKS nodegroups in your AWS account (in the specified or default region) attached to given cluster", + Privilege: "ListNodegroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list EKS Pod Identity associations", + Privilege: "ListPodIdentityAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for the specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eks-anywhere-subscription", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fargateprofile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityproviderconfig", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the updates for a given Amazon EKS cluster/nodegroup/add-on (in the specified or default region)", + Privilege: "ListUpdates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register an External cluster", + Privilege: "RegisterCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag the specified resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eks-anywhere-subscription", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fargateprofile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityproviderconfig", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eks-anywhere-subscription", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fargateprofile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityproviderconfig", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an Amazon EKS access entry", + Privilege: "UpdateAccessEntry", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-entry*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update Amazon EKS add-on configurations, such as the VPC-CNI version", + Privilege: "UpdateAddon", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "addon*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update Amazon EKS cluster configurations (eg: API server endpoint access)", + Privilege: "UpdateClusterConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "eks:authenticationMode", + "eks:supportType", + "eks:computeConfigEnabled", + "eks:elasticLoadBalancingEnabled", + "eks:blockStorageEnabled", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the Kubernetes version of an Amazon EKS cluster", + Privilege: "UpdateClusterVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an EKS Anywhere subscription", + Privilege: "UpdateEksAnywhereSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eks-anywhere-subscription*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update Amazon EKS nodegroup configurations (eg: min/max/desired capacity or labels)", + Privilege: "UpdateNodegroupConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the Kubernetes version of an Amazon EKS nodegroup", + Privilege: "UpdateNodegroupVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "nodegroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an EKS Pod Identity association", + Privilege: "UpdatePodIdentityAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "podidentityassociation*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:cluster/${ClusterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:nodegroup/${ClusterName}/${NodegroupName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "nodegroup", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:addon/${ClusterName}/${AddonName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "addon", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:fargateprofile/${ClusterName}/${FargateProfileName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "fargateprofile", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:identityproviderconfig/${ClusterName}/${IdentityProviderType}/${IdentityProviderConfigName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "identityproviderconfig", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:eks-anywhere-subscription/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "eks-anywhere-subscription", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:podidentityassociation/${ClusterName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "podidentityassociation", + }, + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:access-entry/${ClusterName}/${IamIdentityType}/${IamIdentityAccountID}/${IamIdentityName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "eks:accessEntryType", + "eks:clusterName", + "eks:kubernetesGroups", + "eks:principalArn", + "eks:username", + }, + Resource: "access-entry", + }, + { + Arn: "arn:${Partition}:eks::aws:cluster-access-policy/${AccessPolicyName}", + ConditionKeys: []string{}, + Resource: "access-policy", + }, + }, + ServiceName: "Amazon Elastic Kubernetes Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + }, + Prefix: "eks-auth", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to exchange a Kubernetes service account token for temporary AWS credentials", + Privilege: "AssumeRoleForPodIdentity", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:eks:${Region}:${Account}:cluster/${ClusterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + }, + ServiceName: "Amazon EKS Auth", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elastic-inference", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to customer for connecting to Elastic Inference accelerator", + Privilege: "Connect", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accelerator*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the locations in which a given accelerator type or set of types is present in a given region", + Privilege: "DescribeAcceleratorOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the accelerator types available in a given region, as well as their characteristics, such as memory and throughput", + Privilege: "DescribeAcceleratorTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe information over a provided set of accelerators belonging to an account", + Privilege: "DescribeAccelerators", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all tags on an Amazon RDS resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to assign one or more tags (key-value pairs) to the specified QuickSight resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag or tags from a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elastic-inference:${Region}:${Account}:elastic-inference-accelerator/${AcceleratorId}", + ConditionKeys: []string{}, + Resource: "accelerator", + }, + }, + ServiceName: "Amazon Elastic Inference", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticache:AtRestEncryptionEnabled", + Description: "Filters access by the AtRestEncryptionEnabled parameter present in the request or default false value if parameter is not present", + Type: "Bool", + }, + { + Condition: "elasticache:AuthTokenEnabled", + Description: "Filters access by the presence of non empty AuthToken parameter in the request", + Type: "Bool", + }, + { + Condition: "elasticache:AutomaticFailoverEnabled", + Description: "Filters access by the AutomaticFailoverEnabled parameter in the request", + Type: "Bool", + }, + { + Condition: "elasticache:CacheNodeType", + Description: "Filters access by the cacheNodeType parameter present in the request. This key can be used to restrict which cache node types can be used on cluster creation or scaling operations", + Type: "String", + }, + { + Condition: "elasticache:CacheParameterGroupName", + Description: "Filters access by the CacheParameterGroupName parameter in the request", + Type: "String", + }, + { + Condition: "elasticache:ClusterModeEnabled", + Description: "Filters access by the cluster mode parameter present in the request. Default value for single node group (shard) creations is false", + Type: "Bool", + }, + { + Condition: "elasticache:DataStorageUnit", + Description: "Filters access by the CacheUsageLimits.DataStorage.Unit parameter in the CreateServerlessCache and ModifyServerlessCache request", + Type: "String", + }, + { + Condition: "elasticache:EngineType", + Description: "Filters access by the engine type present in creation requests. For replication group creations, default engine 'redis' is used as key if parameter is not present", + Type: "String", + }, + { + Condition: "elasticache:EngineVersion", + Description: "Filters access by the engineVersion parameter present in creation or cluster modification requests", + Type: "String", + }, + { + Condition: "elasticache:KmsKeyId", + Description: "Filters access by the Key ID of the KMS key", + Type: "String", + }, + { + Condition: "elasticache:MaximumDataStorage", + Description: "Filters access by the CacheUsageLimits.DataStorage.Maximum parameter in the CreateServerlessCache and ModifyServerlessCache request", + Type: "Numeric", + }, + { + Condition: "elasticache:MaximumECPUPerSecond", + Description: "Filters access by the CacheUsageLimits.ECPUPerSecond.Maximum parameter in the CreateServerlessCache and ModifyServerlessCache request", + Type: "Numeric", + }, + { + Condition: "elasticache:MinimumDataStorage", + Description: "Filters access by the CacheUsageLimits.DataStorage.Minimum parameter in the CreateServerlessCache and ModifyServerlessCache request", + Type: "Numeric", + }, + { + Condition: "elasticache:MinimumECPUPerSecond", + Description: "Filters access by the CacheUsageLimits.ECPUPerSecond.Minimum parameter in the CreateServerlessCache and ModifyServerlessCache request", + Type: "Numeric", + }, + { + Condition: "elasticache:MultiAZEnabled", + Description: "Filters access by the AZMode parameter, MultiAZEnabled parameter or the number of availability zones that the cluster or replication group can be placed in", + Type: "Bool", + }, + { + Condition: "elasticache:NumNodeGroups", + Description: "Filters access by the NumNodeGroups or NodeGroupCount parameter specified in the request. This key can be used to restrict the number of node groups (shards) clusters can have after creation or scaling operations", + Type: "Numeric", + }, + { + Condition: "elasticache:ReplicasPerNodeGroup", + Description: "Filters access by the number of replicas per node group (shards) specified in creations or scaling requests", + Type: "Numeric", + }, + { + Condition: "elasticache:SnapshotRetentionLimit", + Description: "Filters access by the SnapshotRetentionLimit parameter in the request", + Type: "Numeric", + }, + { + Condition: "elasticache:TransitEncryptionEnabled", + Description: "Filters access by the TransitEncryptionEnabled parameter present in the request. For replication group creations, default value 'false' is used as key if parameter is not present", + Type: "Bool", + }, + { + Condition: "elasticache:UserAuthenticationMode", + Description: "Filters access by the UserAuthenticationMode parameter in the request", + Type: "String", + }, + }, + Prefix: "elasticache", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an ElastiCache resource", + Privilege: "AddTagsToResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reserved-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to authorize an EC2 security group on a ElastiCache security group", + Privilege: "AuthorizeCacheSecurityGroupIngress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AuthorizeSecurityGroupIngress", + }, + ResourceType: "securitygroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to apply ElastiCache service updates to sets of clusters and replication groups", + Privilege: "BatchApplyUpdateAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "s3:GetObject", + }, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop ElastiCache service updates from being executed on a set of clusters", + Privilege: "BatchStopUpdateAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to complete an online migration of data from hosted Redis on Amazon EC2 to ElastiCache", + Privilege: "CompleteMigration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to connect as a specified ElastiCache user to an ElastiCache Replication Group or ElastiCache serverless cache", + Privilege: "Connect", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscache", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to make a copy of an existing serverless cache snapshot", + Privilege: "CopyServerlessCacheSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:KmsKeyId", + }, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "serverlesscachesnapshot*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to make a copy of an existing snapshot", + Privilege: "CopySnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + "s3:DeleteObject", + "s3:GetBucketAcl", + "s3:PutObject", + }, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticache:KmsKeyId", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a cache cluster", + Privilege: "CreateCacheCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "elasticache:AddTagsToResource", + "s3:GetObject", + }, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticache:CacheNodeType", + "elasticache:EngineVersion", + "elasticache:EngineType", + "elasticache:MultiAZEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:SnapshotRetentionLimit", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{ + "elasticache:CacheNodeType", + "elasticache:EngineVersion", + "elasticache:EngineType", + "elasticache:MultiAZEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:SnapshotRetentionLimit", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a parameter group", + Privilege: "CreateCacheParameterGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a cache security group", + Privilege: "CreateCacheSecurityGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "securitygroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a cache subnet group", + Privilege: "CreateCacheSubnetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a global replication group", + Privilege: "CreateGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a replication group", + Privilege: "CreateReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "elasticache:AddTagsToResource", + "s3:GetObject", + }, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{ + "elasticache:NumNodeGroups", + "elasticache:CacheNodeType", + "elasticache:ReplicasPerNodeGroup", + "elasticache:EngineVersion", + "elasticache:EngineType", + "elasticache:AtRestEncryptionEnabled", + "elasticache:TransitEncryptionEnabled", + "elasticache:AutomaticFailoverEnabled", + "elasticache:MultiAZEnabled", + "elasticache:ClusterModeEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:SnapshotRetentionLimit", + "elasticache:KmsKeyId", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticache:NumNodeGroups", + "elasticache:CacheNodeType", + "elasticache:ReplicasPerNodeGroup", + "elasticache:EngineVersion", + "elasticache:EngineType", + "elasticache:AtRestEncryptionEnabled", + "elasticache:TransitEncryptionEnabled", + "elasticache:AutomaticFailoverEnabled", + "elasticache:MultiAZEnabled", + "elasticache:ClusterModeEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:SnapshotRetentionLimit", + "elasticache:KmsKeyId", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a serverless cache", + Privilege: "CreateServerlessCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:EngineType", + "elasticache:EngineVersion", + "elasticache:SnapshotRetentionLimit", + "elasticache:KmsKeyId", + "elasticache:MinimumDataStorage", + "elasticache:MaximumDataStorage", + "elasticache:DataStorageUnit", + "elasticache:MinimumECPUPerSecond", + "elasticache:MaximumECPUPerSecond", + }, + DependentActions: []string{ + "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeTags", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "elasticache:AddTagsToResource", + "s3:GetObject", + }, + ResourceType: "serverlesscache*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a copy of a serverless cache at a specific moment in time", + Privilege: "CreateServerlessCacheSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "serverlesscache*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:KmsKeyId", + }, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a copy of an entire Redis cluster at a specific moment in time", + Privilege: "CreateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticache:KmsKeyId", + }, + DependentActions: []string{ + "elasticache:AddTagsToResource", + "s3:DeleteObject", + "s3:GetBucketAcl", + "s3:PutObject", + }, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a user for Redis. Users are supported from Redis 6.0 onwards", + Privilege: "CreateUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticache:UserAuthenticationMode", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a user group for Redis. Groups are supported from Redis 6.0 onwards", + Privilege: "CreateUserGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "usergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to decrease the number of node groups in global replication groups", + Privilege: "DecreaseNodeGroupsInGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + { + ConditionKeys: []string{ + "elasticache:NumNodeGroups", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to decrease the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group", + Privilege: "DecreaseReplicaCount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:ReplicasPerNodeGroup", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a previously provisioned cluster", + Privilege: "DeleteCacheCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified cache parameter group", + Privilege: "DeleteCacheParameterGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a cache security group", + Privilege: "DeleteCacheSecurityGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a cache subnet group", + Privilege: "DeleteCacheSubnetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing global replication group", + Privilege: "DeleteGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing replication group", + Privilege: "DeleteReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a serverless cache", + Privilege: "DeleteServerlessCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:DescribeTags", + }, + ResourceType: "serverlesscache*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a serverless cache snapshot", + Privilege: "DeleteServerlessCacheSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing snapshot", + Privilege: "DeleteSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing user and thus remove it from all user groups and replication groups where it was assigned", + Privilege: "DeleteUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing user group", + Privilege: "DeleteUserGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about provisioned cache clusters", + Privilege: "DescribeCacheClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list available cache engines and their versions", + Privilege: "DescribeCacheEngineVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cache parameter group descriptions", + Privilege: "DescribeCacheParameterGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the detailed parameter list for a particular cache parameter group", + Privilege: "DescribeCacheParameters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cache security group descriptions", + Privilege: "DescribeCacheSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cache subnet group descriptions", + Privilege: "DescribeCacheSubnetGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the default engine and system parameter information for the specified cache engine", + Privilege: "DescribeEngineDefaultParameters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list events related to clusters, cache security groups, and cache parameter groups", + Privilege: "DescribeEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about global replication groups", + Privilege: "DescribeGlobalReplicationGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about provisioned replication groups", + Privilege: "DescribeReplicationGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about purchased reserved cache nodes", + Privilege: "DescribeReservedCacheNodes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reserved-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list available reserved cache node offerings", + Privilege: "DescribeReservedCacheNodesOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about serverless cache snapshots", + Privilege: "DescribeServerlessCacheSnapshots", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "serverlesscache", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list serverless caches", + Privilege: "DescribeServerlessCaches", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "serverlesscache*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list details of the service updates", + Privilege: "DescribeServiceUpdates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about cluster or replication group snapshots", + Privilege: "DescribeSnapshots", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list details of the update actions for a set of clusters or replication groups", + Privilege: "DescribeUpdateActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about Redis user groups", + Privilege: "DescribeUserGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about Redis users", + Privilege: "DescribeUsers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a secondary replication group from the global replication group", + Privilege: "DisassociateGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export a copy of a serverless cache at a specific moment in time to s3 bucket", + Privilege: "ExportServerlessCacheSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "s3:DeleteObject", + "s3:ListAllMyBuckets", + "s3:PutObject", + }, + ResourceType: "serverlesscachesnapshot*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to failover the primary region to a selected secondary region of a global replication group", + Privilege: "FailoverGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to increase the number of node groups in a global replication group", + Privilege: "IncreaseNodeGroupsInGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + { + ConditionKeys: []string{ + "elasticache:NumNodeGroups", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to increase the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group", + Privilege: "IncreaseReplicaCount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:ReplicasPerNodeGroup", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to test an AZ power interruption for an ElastiCache resource", + Privilege: "InterruptClusterAzPower", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list available node type that can be used to scale a particular Redis cluster or replication group", + Privilege: "ListAllowedNodeTypeModifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for an ElastiCache resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reserved-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify settings for a cluster", + Privilege: "ModifyCacheCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticache:CacheNodeType", + "elasticache:EngineVersion", + "elasticache:MultiAZEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:SnapshotRetentionLimit", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify parameters of a cache parameter group", + Privilege: "ModifyCacheParameterGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an existing cache subnet group", + Privilege: "ModifyCacheSubnetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify settings for a global replication group", + Privilege: "ModifyGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + { + ConditionKeys: []string{ + "elasticache:CacheNodeType", + "elasticache:EngineVersion", + "elasticache:AutomaticFailoverEnabled", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the settings for a replication group", + Privilege: "ModifyReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticache:CacheNodeType", + "elasticache:EngineVersion", + "elasticache:AutomaticFailoverEnabled", + "elasticache:MultiAZEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:SnapshotRetentionLimit", + "elasticache:CacheParameterGroupName", + "elasticache:TransitEncryptionEnabled", + "elasticache:ClusterModeEnabled", + }, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add shards, remove shards, or rebalance the keyspaces among existing shards of a replication group", + Privilege: "ModifyReplicationGroupShardConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:NumNodeGroups", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify parameters for a serverless cache", + Privilege: "ModifyServerlessCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:EngineVersion", + "elasticache:SnapshotRetentionLimit", + "elasticache:MinimumDataStorage", + "elasticache:MaximumDataStorage", + "elasticache:DataStorageUnit", + "elasticache:MinimumECPUPerSecond", + "elasticache:MaximumECPUPerSecond", + }, + DependentActions: []string{ + "ec2:DescribeSecurityGroups", + "ec2:DescribeTags", + }, + ResourceType: "serverlesscache*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change Redis user password(s) and/or access string", + Privilege: "ModifyUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:UserAuthenticationMode", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change list of users that belong to the user group", + Privilege: "ModifyUserGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase a reserved cache node offering", + Privilege: "PurchaseReservedCacheNodesOffering", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticache:AddTagsToResource", + }, + ResourceType: "reserved-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to perform a key space rebalance operation to redistribute slots and ensure uniform key distribution across existing shards in a global replication group", + Privilege: "RebalanceSlotsInGlobalReplicationGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "globalreplicationgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reboot some, or all, of the cache nodes within a provisioned cache cluster or replication group (cluster mode disabled)", + Privilege: "RebootCacheCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a ElastiCache resource", + Privilege: "RemoveTagsFromResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reserved-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "serverlesscachesnapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usergroup", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify parameters of a cache parameter group back to their default values", + Privilege: "ResetCacheParameterGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticache:CacheParameterGroupName", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an EC2 security group ingress from a ElastiCache security group", + Privilege: "RevokeCacheSecurityGroupIngress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securitygroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a migration of data from hosted Redis on Amazon EC2 to ElastiCache for Redis", + Privilege: "StartMigration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to test automatic failover on a specified node group in a replication group", + Privilege: "TestFailover", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to test a migration of data from hosted Redis on Amazon EC2 to ElastiCache for Redis", + Privilege: "TestMigration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicationgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:parametergroup:${CacheParameterGroupName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:CacheParameterGroupName", + }, + Resource: "parametergroup", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:securitygroup:${CacheSecurityGroupName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "securitygroup", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:subnetgroup:${CacheSubnetGroupName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "subnetgroup", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:replicationgroup:${ReplicationGroupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:AtRestEncryptionEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:AutomaticFailoverEnabled", + "elasticache:CacheNodeType", + "elasticache:CacheParameterGroupName", + "elasticache:ClusterModeEnabled", + "elasticache:EngineType", + "elasticache:EngineVersion", + "elasticache:KmsKeyId", + "elasticache:MultiAZEnabled", + "elasticache:NumNodeGroups", + "elasticache:ReplicasPerNodeGroup", + "elasticache:SnapshotRetentionLimit", + "elasticache:TransitEncryptionEnabled", + }, + Resource: "replicationgroup", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:cluster:${CacheClusterId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:AuthTokenEnabled", + "elasticache:CacheNodeType", + "elasticache:CacheParameterGroupName", + "elasticache:EngineType", + "elasticache:EngineVersion", + "elasticache:MultiAZEnabled", + "elasticache:SnapshotRetentionLimit", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:reserved-instance:${ReservedCacheNodeId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "reserved-instance", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:snapshot:${SnapshotName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:KmsKeyId", + }, + Resource: "snapshot", + }, + { + Arn: "arn:${Partition}:elasticache::${Account}:globalreplicationgroup:${GlobalReplicationGroupId}", + ConditionKeys: []string{ + "elasticache:AtRestEncryptionEnabled", + "elasticache:AuthTokenEnabled", + "elasticache:AutomaticFailoverEnabled", + "elasticache:CacheNodeType", + "elasticache:CacheParameterGroupName", + "elasticache:ClusterModeEnabled", + "elasticache:EngineType", + "elasticache:EngineVersion", + "elasticache:KmsKeyId", + "elasticache:MultiAZEnabled", + "elasticache:NumNodeGroups", + "elasticache:ReplicasPerNodeGroup", + "elasticache:SnapshotRetentionLimit", + "elasticache:TransitEncryptionEnabled", + }, + Resource: "globalreplicationgroup", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:user:${UserId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:UserAuthenticationMode", + }, + Resource: "user", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:usergroup:${UserGroupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "usergroup", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:serverlesscache:${ServerlessCacheName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:DataStorageUnit", + "elasticache:EngineType", + "elasticache:EngineVersion", + "elasticache:KmsKeyId", + "elasticache:MaximumDataStorage", + "elasticache:MaximumECPUPerSecond", + "elasticache:MinimumDataStorage", + "elasticache:MinimumECPUPerSecond", + "elasticache:SnapshotRetentionLimit", + }, + Resource: "serverlesscache", + }, + { + Arn: "arn:${Partition}:elasticache:${Region}:${Account}:serverlesscachesnapshot:${ServerlessCacheSnapshotName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "elasticache:KmsKeyId", + }, + Resource: "serverlesscachesnapshot", + }, + }, + ServiceName: "Amazon ElastiCache", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticbeanstalk:FromApplication", + Description: "Filters access by an application as a dependency or a constraint on an input parameter", + Type: "ARN", + }, + { + Condition: "elasticbeanstalk:FromApplicationVersion", + Description: "Filters access by an application version as a dependency or a constraint on an input parameter", + Type: "ARN", + }, + { + Condition: "elasticbeanstalk:FromConfigurationTemplate", + Description: "Filters access by a configuration template as a dependency or a constraint on an input parameter", + Type: "ARN", + }, + { + Condition: "elasticbeanstalk:FromEnvironment", + Description: "Filters access by an environment as a dependency or a constraint on an input parameter", + Type: "ARN", + }, + { + Condition: "elasticbeanstalk:FromPlatform", + Description: "Filters access by a platform as a dependency or a constraint on an input parameter", + Type: "ARN", + }, + { + Condition: "elasticbeanstalk:FromSolutionStack", + Description: "Filters access by a solution stack as a dependency or a constraint on an input parameter", + Type: "ARN", + }, + { + Condition: "elasticbeanstalk:InApplication", + Description: "Filters access by the application that contains the resource that the action operates on", + Type: "ARN", + }, + }, + Prefix: "elasticbeanstalk", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel in-progress environment configuration update or application version deployment", + Privilege: "AbortEnvironmentUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an Elastic Beanstalk resource and to update tag values", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applicationversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to apply a scheduled managed action immediately", + Privilege: "ApplyEnvironmentManagedAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate an operations role with an environment", + Privilege: "AssociateEnvironmentOperationsRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to check CNAME availability", + Privilege: "CheckDNSAvailability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update a group of environments, each running a separate component of a single application", + Privilege: "ComposeEnvironments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "applicationversion*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an application version for an application", + Privilege: "CreateApplicationVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "applicationversion*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a configuration template", + Privilege: "CreateConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:FromApplication", + "elasticbeanstalk:FromApplicationVersion", + "elasticbeanstalk:FromConfigurationTemplate", + "elasticbeanstalk:FromEnvironment", + "elasticbeanstalk:FromSolutionStack", + "elasticbeanstalk:FromPlatform", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to launch an environment for an application", + Privilege: "CreateEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:FromApplicationVersion", + "elasticbeanstalk:FromConfigurationTemplate", + "elasticbeanstalk:FromSolutionStack", + "elasticbeanstalk:FromPlatform", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new version of a custom platform", + Privilege: "CreatePlatformVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the Amazon S3 storage location for the account", + Privilege: "CreateStorageLocation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an application along with all associated versions and configurations", + Privilege: "DeleteApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an application version from an application", + Privilege: "DeleteApplicationVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "applicationversion*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a configuration template", + Privilege: "DeleteConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the draft configuration associated with the running environment", + Privilege: "DeleteEnvironmentConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a version of a custom platform", + Privilege: "DeletePlatformVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of account attributes, including resource quotas", + Privilege: "DescribeAccountAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of application versions stored in an AWS Elastic Beanstalk storage bucket", + Privilege: "DescribeApplicationVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "applicationversion", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the descriptions of existing applications", + Privilege: "DescribeApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve descriptions of environment configuration options", + Privilege: "DescribeConfigurationOptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "solutionstack", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a description of the settings for a configuration set", + Privilege: "DescribeConfigurationSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the overall health of an environment", + Privilege: "DescribeEnvironmentHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of an environment's completed and failed managed actions", + Privilege: "DescribeEnvironmentManagedActionHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of an environment's upcoming and in-progress managed actions", + Privilege: "DescribeEnvironmentManagedActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of AWS resources for an environment", + Privilege: "DescribeEnvironmentResources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve descriptions for existing environments", + Privilege: "DescribeEnvironments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of event descriptions matching a set of criteria", + Privilege: "DescribeEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "applicationversion", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve more detailed information about the health of environment instances", + Privilege: "DescribeInstancesHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a description of a managed platform version", + Privilege: "DescribePlatformVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an operations role with an environment", + Privilege: "DisassociateEnvironmentOperationsRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the available solution stack names", + Privilege: "ListAvailableSolutionStacks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "solutionstack", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the available platform branches", + Privilege: "ListPlatformBranches", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the available platforms", + Privilege: "ListPlatformVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of tags of an Elastic Beanstalk resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applicationversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to submit instance statistics for enhanced health", + Privilege: "PutInstanceStatistics", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete and recreate all of the AWS resources for an environment and to force a restart", + Privilege: "RebuildEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an Elastic Beanstalk resource", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applicationversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to initiate a request to compile information of the deployed environment", + Privilege: "RequestEnvironmentInfo", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to request an environment to restart the application container server running on each Amazon EC2 instance", + Privilege: "RestartAppServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the compiled information from a RequestEnvironmentInfo request", + Privilege: "RetrieveEnvironmentInfo", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to swap the CNAMEs of two environments", + Privilege: "SwapEnvironmentCNAMEs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:FromEnvironment", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to terminate an environment", + Privilege: "TerminateEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an application with specified properties", + Privilege: "UpdateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the application version lifecycle policy associated with the application", + Privilege: "UpdateApplicationResourceLifecycle", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an application version with specified properties", + Privilege: "UpdateApplicationVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "applicationversion*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a configuration template with specified properties or configuration option values", + Privilege: "UpdateConfigurationTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:FromApplication", + "elasticbeanstalk:FromApplicationVersion", + "elasticbeanstalk:FromConfigurationTemplate", + "elasticbeanstalk:FromEnvironment", + "elasticbeanstalk:FromSolutionStack", + "elasticbeanstalk:FromPlatform", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an environment", + Privilege: "UpdateEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:FromApplicationVersion", + "elasticbeanstalk:FromConfigurationTemplate", + "elasticbeanstalk:FromSolutionStack", + "elasticbeanstalk:FromPlatform", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Doesn't grant permission to update tags. To grant permission to add tags to an Elastic Beanstalk resource, remove tags, and to update tag values, specify elasticbeanstalk:AddTags and elasticbeanstalk:RemoveTags", + Privilege: "UpdateTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applicationversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "platform", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to check the validity of a set of configuration settings for a configuration template or an environment", + Privilege: "ValidateConfigurationSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "configurationtemplate", + }, + { + ConditionKeys: []string{ + "elasticbeanstalk:InApplication", + }, + DependentActions: []string{}, + ResourceType: "environment", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:application/${ApplicationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:applicationversion/${ApplicationName}/${VersionLabel}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticbeanstalk:InApplication", + }, + Resource: "applicationversion", + }, + { + Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:configurationtemplate/${ApplicationName}/${TemplateName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticbeanstalk:InApplication", + }, + Resource: "configurationtemplate", + }, + { + Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:environment/${ApplicationName}/${EnvironmentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticbeanstalk:InApplication", + }, + Resource: "environment", + }, + { + Arn: "arn:${Partition}:elasticbeanstalk:${Region}::solutionstack/${SolutionStackName}", + ConditionKeys: []string{}, + Resource: "solutionstack", + }, + { + Arn: "arn:${Partition}:elasticbeanstalk:${Region}::platform/${PlatformNameWithVersion}", + ConditionKeys: []string{}, + Resource: "platform", + }, + }, + ServiceName: "AWS Elastic Beanstalk", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticfilesystem:AccessPointArn", + Description: "Filters access by the ARN of the access point used to mount the file system", + Type: "ARN", + }, + { + Condition: "elasticfilesystem:AccessedViaMountTarget", + Description: "Filters access by whether the file system is accessed via mount targets", + Type: "Bool", + }, + { + Condition: "elasticfilesystem:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + { + Condition: "elasticfilesystem:Encrypted", + Description: "Filters access by whether users can create only encrypted or unencrypted file systems", + Type: "Bool", + }, + }, + Prefix: "elasticfilesystem", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to start a backup job for an existing file system", + Privilege: "Backup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to allow an NFS client read-access to a file system", + Privilege: "ClientMount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "elasticfilesystem:AccessPointArn", + "elasticfilesystem:AccessedViaMountTarget", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to allow an NFS client root-access to a file system", + Privilege: "ClientRootAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "elasticfilesystem:AccessPointArn", + "elasticfilesystem:AccessedViaMountTarget", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to allow an NFS client write-access to a file system", + Privilege: "ClientWrite", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "elasticfilesystem:AccessPointArn", + "elasticfilesystem:AccessedViaMountTarget", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an access point for the specified file system", + Privilege: "CreateAccessPoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticfilesystem:TagResource", + }, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new, empty file system", + Privilege: "CreateFileSystem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticfilesystem:Encrypted", + }, + DependentActions: []string{ + "elasticfilesystem:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a mount target for a file system", + Privilege: "CreateMountTarget", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new replication configuration", + Privilege: "CreateReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to create or overwrite tags associated with a file system; deprecated, see TagResource", + Privilege: "CreateTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified access point", + Privilege: "DeleteAccessPoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-point*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a file system, permanently severing access to its contents", + Privilege: "DeleteFileSystem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete the resource-level policy for a file system", + Privilege: "DeleteFileSystemPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified mount target", + Privilege: "DeleteMountTarget", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a replication configuration", + Privilege: "DeleteReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to delete the specified tags from a file system; deprecated, see UntagResource", + Privilege: "DeleteTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the descriptions of Amazon EFS access points", + Privilege: "DescribeAccessPoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-point", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the account preferences in effect for an account", + Privilege: "DescribeAccountPreferences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the BackupPolicy object for an Amazon EFS file system", + Privilege: "DescribeBackupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the resource-level policy for an Amazon EFS file system", + Privilege: "DescribeFileSystemPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the description of an Amazon EFS file system specified by file system CreationToken or FileSystemId; or to view the description of all file systems owned by the caller's AWS account in the AWS region of the endpoint that is being called", + Privilege: "DescribeFileSystems", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the LifecycleConfiguration object for an Amazon EFS file system", + Privilege: "DescribeLifecycleConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the security groups in effect for a mount target", + Privilege: "DescribeMountTargetSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the descriptions of all mount targets, or a specific mount target, for a file system", + Privilege: "DescribeMountTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-point", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the description of an Amazon EFS replication configuration specified by FileSystemId; or to view the description of all replication configurations owned by the caller's AWS account in the AWS region of the endpoint that is being called", + Privilege: "DescribeReplicationConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the tags associated with a file system", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the tags associated with the specified Amazon EFS resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-point", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the set of security groups in effect for a mount target", + Privilege: "ModifyMountTargetSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the account preferences of an account", + Privilege: "PutAccountPreferences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or disable automatic backups with AWS Backup by creating a new BackupPolicy object", + Privilege: "PutBackupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to apply a resource-level policy that defines the actions allowed or denied from given actors for the specified file system", + Privilege: "PutFileSystemPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable lifecycle management by creating a new LifecycleConfiguration object", + Privilege: "PutLifecycleConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read file system data for replication", + Privilege: "ReplicationRead", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replicate data to a file system", + Privilege: "ReplicationWrite", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a restore job for a backup of a file system", + Privilege: "Restore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to create or overwrite tags associated with the specified Amazon EFS resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-point", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticfilesystem:CreateAction", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to delete the specified tags from an Amazon EFS resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "access-point", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the throughput mode or the amount of provisioned throughput of an existing file system", + Privilege: "UpdateFileSystem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the file system protection of an existing file system", + Privilege: "UpdateFileSystemProtection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticfilesystem:${Region}:${Account}:file-system/${FileSystemId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "file-system", + }, + { + Arn: "arn:${Partition}:elasticfilesystem:${Region}:${Account}:access-point/${AccessPointId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "access-point", + }, + }, + ServiceName: "Amazon Elastic File System", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "A key that is present in the request the user makes to the ELB service", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Global tag key and value pair", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "The list of all the tag key names associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:ResourceTag/${TagKey}", + Description: "A tag key and value pair", + Type: "String", + }, + }, + Prefix: "elasticloadbalancing", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Adds the specified certificates to the specified secure listener", + Privilege: "AddListenerCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Adds the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a listener for the specified Application Load Balancer", + Privilege: "CreateListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a load balancer", + Privilege: "CreateLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a rule for the specified listener", + Privilege: "CreateRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a target group", + Privilege: "CreateTargetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified listener", + Privilege: "DeleteListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified load balancer", + Privilege: "DeleteLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified rule", + Privilege: "DeleteRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified target group", + Privilege: "DeleteTargetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deregisters the specified targets from the specified target group", + Privilege: "DeregisterTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the Elastic Load Balancing resource limits for the AWS account", + Privilege: "DescribeAccountLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the certificates for the specified secure listener", + Privilege: "DescribeListenerCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified listeners or the listeners for the specified Application Load Balancer", + Privilege: "DescribeListeners", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the attributes for the specified load balancer", + Privilege: "DescribeLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers", + Privilege: "DescribeLoadBalancers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified rules or the rules for the specified listener", + Privilege: "DescribeRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified policies or all policies used for SSL negotiation", + Privilege: "DescribeSSLPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the tags associated with the specified resource", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the attributes for the specified target group", + Privilege: "DescribeTargetGroupAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified target groups or all of your target groups", + Privilege: "DescribeTargetGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the health of the specified targets or all of your targets", + Privilege: "DescribeTargetHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Modifies the specified properties of the specified listener", + Privilege: "ModifyListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Modifies the attributes of the specified load balancer", + Privilege: "ModifyLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Modifies the specified rule", + Privilege: "ModifyRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Modifies the health checks used when evaluating the health state of the targets in the specified target group", + Privilege: "ModifyTargetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Modifies the specified attributes of the specified target group", + Privilege: "ModifyTargetGroupAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Registers the specified targets with the specified target group", + Privilege: "RegisterTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Removes the specified certificates of the specified secure listener", + Privilege: "RemoveListenerCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Removes one or more tags from the specified load balancer", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Not found", + Privilege: "SetIpAddressType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Sets the priorities of the specified rules", + Privilege: "SetRulePriorities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Associates the specified security groups with the specified load balancer", + Privilege: "SetSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Enables the Availability Zone for the specified subnets for the specified load balancer", + Privilege: "SetSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Gives WebAcl permission to WAF", + Privilege: "SetWebAcl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/app/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener/app", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener-rule/app/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}/${ListenerRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener-rule/app", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/net/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener/net", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener-rule/net/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}/${ListenerRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener-rule/net", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/app/${LoadBalancerName}/${LoadBalancerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer/app/", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/net/${LoadBalancerName}/${LoadBalancerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer/net/", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:targetgroup/${TargetGroupName}/${TargetGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "targetgroup", + }, + }, + ServiceName: "Elastic Load Balancing V2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + { + Condition: "elasticloadbalancing:ListenerProtocol", + Description: "Filters access by the listener protocols that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:ResourceTag/", + Description: "Filters access by the preface string for a tag key and value pair that are attached to a resource", + Type: "String", + }, + { + Condition: "elasticloadbalancing:ResourceTag/${TagKey}", + Description: "Filters access by the preface string for a tag key and value pair that are attached to a resource", + Type: "String", + }, + { + Condition: "elasticloadbalancing:Scheme", + Description: "Filters access by the load balancer scheme that are allowed in the request", + Type: "String", + }, + { + Condition: "elasticloadbalancing:SecurityGroup", + Description: "Filters access by the security-group IDs that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:SecurityPolicy", + Description: "Filters access by the SSL Security Policies that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:Subnet", + Description: "Filters access by the subnet IDs that are allowed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "elasticloadbalancing", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to add the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:CreateAction", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate one or more security groups with your load balancer in a virtual private cloud (VPC)", + Privilege: "ApplySecurityGroupsToLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityGroup", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add one or more subnets to the set of configured subnets for the specified load balancer", + Privilege: "AttachLoadBalancerToSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:Subnet", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to specify the health check settings to use when evaluating the health state of your back-end instances", + Privilege: "ConfigureHealthCheck", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a stickiness policy with sticky session lifetimes that follow that of an application-generated cookie", + Privilege: "CreateAppCookieStickinessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a stickiness policy with sticky session lifetimes controlled by the lifetime of the browser (user-agent) or a specified expiration period", + Privilege: "CreateLBCookieStickinessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a load balancer", + Privilege: "CreateLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + }, + ResourceType: "loadbalancer", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityGroup", + "elasticloadbalancing:Subnet", + "elasticloadbalancing:Scheme", + "elasticloadbalancing:ListenerProtocol", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create one or more listeners for the specified load balancer", + Privilege: "CreateLoadBalancerListeners", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:ListenerProtocol", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a policy with the specified attributes for the specified load balancer", + Privilege: "CreateLoadBalancerPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityPolicy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified load balancer", + Privilege: "DeleteLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified listeners from the specified load balancer", + Privilege: "DeleteLoadBalancerListeners", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified policy from the specified load balancer. This policy must not be enabled for any listeners", + Privilege: "DeleteLoadBalancerPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister the specified instances from the specified load balancer", + Privilege: "DeregisterInstancesFromLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the state of the specified instances with respect to the specified load balancer", + Privilege: "DescribeInstanceHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the attributes for the specified load balancer", + Privilege: "DescribeLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified policies", + Privilege: "DescribeLoadBalancerPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified load balancer policy types", + Privilege: "DescribeLoadBalancerPolicyTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers", + Privilege: "DescribeLoadBalancers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the tags associated with the specified load balancers", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the specified subnets from the set of configured subnets for the load balancer", + Privilege: "DetachLoadBalancerFromSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the specified Availability Zones from the set of Availability Zones for the specified load balancer", + Privilege: "DisableAvailabilityZonesForLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add the specified Availability Zones to the set of Availability Zones for the specified load balancer", + Privilege: "EnableAvailabilityZonesForLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the attributes of the specified load balancer", + Privilege: "ModifyLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add the specified instances to the specified load balancer", + Privilege: "RegisterInstancesWithLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified load balancer", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the certificate that terminates the specified listener's SSL connections", + Privilege: "SetLoadBalancerListenerSSLCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace the set of policies associated with the specified port on which the back-end server is listening with a new set of policies", + Privilege: "SetLoadBalancerPoliciesForBackendServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to replace the current set of policies for the specified load balancer port with the specified set of policies", + Privilege: "SetLoadBalancerPoliciesOfListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityPolicy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/${LoadBalancerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer", + }, + }, + ServiceName: "AWS Elastic Load Balancing", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + { + Condition: "elasticloadbalancing:ListenerProtocol", + Description: "Filters access by the listener protocol that is allowed in the request", + Type: "String", + }, + { + Condition: "elasticloadbalancing:ResourceTag/${TagKey}", + Description: "Filters access by the preface string for a tag key and value pair that are attached to a resource", + Type: "String", + }, + { + Condition: "elasticloadbalancing:Scheme", + Description: "Filters access by the load balancer scheme that is allowed in the request", + Type: "String", + }, + { + Condition: "elasticloadbalancing:SecurityGroup", + Description: "Filters access by the security-group IDs that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:SecurityPolicy", + Description: "Filters access by the SSL Security Policies that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "elasticloadbalancing:Subnet", + Description: "Filters access by the subnet IDs that are allowed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "elasticloadbalancing", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add the specified certificates to the specified secure listener", + Privilege: "AddListenerCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/gwy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:CreateAction", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add revocations to a trust store", + Privilege: "AddTrustStoreRevocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a listener for the specified Application Load Balancer", + Privilege: "CreateListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + }, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityPolicy", + "elasticloadbalancing:ListenerProtocol", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a load balancer", + Privilege: "CreateLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + }, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityGroup", + "elasticloadbalancing:Subnet", + "elasticloadbalancing:Scheme", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a rule for the specified listener", + Privilege: "CreateRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + }, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a target group", + Privilege: "CreateTargetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + }, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a trust store", + Privilege: "CreateTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + }, + ResourceType: "truststore", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified listener", + Privilege: "DeleteListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/gwy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified load balancer", + Privilege: "DeleteLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified rule", + Privilege: "DeleteRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified shared trust store association", + Privilege: "DeleteSharedTrustStoreAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified target group", + Privilege: "DeleteTargetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified trust store", + Privilege: "DeleteTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister the specified targets from the specified target group", + Privilege: "DeregisterTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the Elastic Load Balancing resource limits for the AWS account", + Privilege: "DescribeAccountLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the capacity reservation for a load balancer", + Privilege: "DescribeCapacityReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the attributes for the specified listener", + Privilege: "DescribeListenerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the certificates for the specified secure listener", + Privilege: "DescribeListenerCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified listeners or the listeners for the specified Application Load Balancer", + Privilege: "DescribeListeners", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the attributes for the specified load balancer", + Privilege: "DescribeLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers", + Privilege: "DescribeLoadBalancers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified rules or the rules for the specified listener", + Privilege: "DescribeRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified policies or all policies used for SSL negotiation", + Privilege: "DescribeSSLPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the tags associated with the specified resource", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the attributes for the specified target group", + Privilege: "DescribeTargetGroupAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified target groups or all of your target groups", + Privilege: "DescribeTargetGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the health of the specified targets or all of your targets", + Privilege: "DescribeTargetHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the associations with a trust store", + Privilege: "DescribeTrustStoreAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified trust stores revocations or all of your revocations related to a trust store", + Privilege: "DescribeTrustStoreRevocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified trust stores or all of your trust stores", + Privilege: "DescribeTrustStores", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the resource policy associated with the resource", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a trust store CA certificates bundle", + Privilege: "GetTrustStoreCaCertificatesBundle", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a trust store revocation content", + Privilege: "GetTrustStoreRevocationContent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the capacity reservation for a load balancer", + Privilege: "ModifyCapacityReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the ip pools for a load balancer", + Privilege: "ModifyIpPools", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified properties of the specified listener", + Privilege: "ModifyListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/gwy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityPolicy", + "elasticloadbalancing:ListenerProtocol", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the attributes of the specified listener", + Privilege: "ModifyListenerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/gwy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the attributes of the specified load balancer", + Privilege: "ModifyLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified rule", + Privilege: "ModifyRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the health checks used when evaluating the health state of the targets in the specified target group", + Privilege: "ModifyTargetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified attributes of the specified target group", + Privilege: "ModifyTargetGroupAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the specified trust store", + Privilege: "ModifyTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register the specified targets with the specified target group", + Privilege: "RegisterTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the specified certificates of the specified secure listener", + Privilege: "RemoveListenerCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified load balancer", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/gwy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener/net", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "targetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove revocations from a trust store", + Privilege: "RemoveTrustStoreRevocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "truststore*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the type of IP addresses used by the subnets of the specified load balancer", + Privilege: "SetIpAddressType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the priorities of the specified rules", + Privilege: "SetRulePriorities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/app*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener-rule/net*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate the specified security groups with the specified load balancer", + Privilege: "SetSecurityGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:SecurityGroup", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable the Availability Zone for the specified subnets for the specified load balancer", + Privilege: "SetSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/app/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/gwy/", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer/net/", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + "elasticloadbalancing:Subnet", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to give WebAcl permission to WAF", + Privilege: "SetWebAcl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/gwy/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener/gwy", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/app/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener/app", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener-rule/app/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}/${ListenerRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener-rule/app", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/net/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener/net", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener-rule/net/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}/${ListenerRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "listener-rule/net", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/gwy/${LoadBalancerName}/${LoadBalancerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer/gwy/", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/app/${LoadBalancerName}/${LoadBalancerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer/app/", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/net/${LoadBalancerName}/${LoadBalancerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer/net/", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:targetgroup/${TargetGroupName}/${TargetGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "targetgroup", + }, + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:truststore/${TrustStoreName}/${TrustStoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "truststore", + }, + }, + ServiceName: "AWS Elastic Load Balancing V2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "A key that is present in the request the user makes to the ELB service", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Global tag key and value pair", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "The list of all the tag key names associated with the resource in the request", + Type: "String", + }, + { + Condition: "elasticloadbalancing:ResourceTag/", + Description: "The preface string for a tag key and value pair attached to a resource", + Type: "String", + }, + { + Condition: "elasticloadbalancing:ResourceTag/${TagKey}", + Description: "A tag key and value pair", + Type: "String", + }, + }, + Prefix: "elasticloadbalancing", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Adds the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Associates one or more security groups with your load balancer in a virtual private cloud (VPC)", + Privilege: "ApplySecurityGroupsToLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Adds one or more subnets to the set of configured subnets for the specified load balancer", + Privilege: "AttachLoadBalancerToSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Specifies the health check settings to use when evaluating the health state of your back-end instances", + Privilege: "ConfigureHealthCheck", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Generates a stickiness policy with sticky session lifetimes that follow that of an application-generated cookie", + Privilege: "CreateAppCookieStickinessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Generates a stickiness policy with sticky session lifetimes controlled by the lifetime of the browser (user-agent) or a specified expiration period", + Privilege: "CreateLBCookieStickinessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a load balancer", + Privilege: "CreateLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates one or more listeners for the specified load balancer", + Privilege: "CreateLoadBalancerListeners", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a policy with the specified attributes for the specified load balancer", + Privilege: "CreateLoadBalancerPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified load balancer", + Privilege: "DeleteLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified listeners from the specified load balancer", + Privilege: "DeleteLoadBalancerListeners", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified policy from the specified load balancer. This policy must not be enabled for any listeners", + Privilege: "DeleteLoadBalancerPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deregisters the specified instances from the specified load balancer", + Privilege: "DeregisterInstancesFromLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the state of the specified instances with respect to the specified load balancer", + Privilege: "DescribeInstanceHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the attributes for the specified load balancer", + Privilege: "DescribeLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified policies", + Privilege: "DescribeLoadBalancerPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified load balancer policy types", + Privilege: "DescribeLoadBalancerPolicyTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Describes the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers", + Privilege: "DescribeLoadBalancers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the tags associated with the specified load balancers", + Privilege: "DescribeTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Removes the specified subnets from the set of configured subnets for the load balancer", + Privilege: "DetachLoadBalancerFromSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Removes the specified Availability Zones from the set of Availability Zones for the specified load balancer", + Privilege: "DisableAvailabilityZonesForLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Adds the specified Availability Zones to the set of Availability Zones for the specified load balancer", + Privilege: "EnableAvailabilityZonesForLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Modifies the attributes of the specified load balancer", + Privilege: "ModifyLoadBalancerAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Adds the specified instances to the specified load balancer", + Privilege: "RegisterInstancesWithLoadBalancer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Removes one or more tags from the specified load balancer", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Sets the certificate that terminates the specified listener's SSL connections", + Privilege: "SetLoadBalancerListenerSSLCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Replaces the set of policies associated with the specified port on which the back-end server is listening with a new set of policies", + Privilege: "SetLoadBalancerPoliciesForBackendServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Replaces the current set of policies for the specified load balancer port with the specified set of policies", + Privilege: "SetLoadBalancerPoliciesOfListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loadbalancer*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/${LoadBalancerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticloadbalancing:ResourceTag/${TagKey}", + }, + Resource: "loadbalancer", + }, + }, + ServiceName: "Elastic Load Balancing", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by whether the tag and value pair is provided with the action", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag and value pair associated with an Amazon EMR resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by whether the tag keys are provided with the action regardless of tag value", + Type: "ArrayOfString", + }, + { + Condition: "elasticmapreduce:ExecutionRoleArn", + Description: "Filters access by whether the execution role ARN is provided with the action", + Type: "ARN", + }, + { + Condition: "elasticmapreduce:RequestTag/${TagKey}", + Description: "Filters access by whether the tag and value pair is provided with the action", + Type: "String", + }, + { + Condition: "elasticmapreduce:ResourceTag/${TagKey}", + Description: "Filters access by the tag and value pair associated with an Amazon EMR resource", + Type: "String", + }, + }, + Prefix: "elasticmapreduce", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add an instance fleet to a running cluster", + Privilege: "AddInstanceFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add instance groups to a running cluster", + Privilege: "AddInstanceGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add new steps to a running cluster", + Privilege: "AddJobFlowSteps", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "elasticmapreduce:ExecutionRoleArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an Amazon EMR resource", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook-execution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticmapreduce:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach an EMR notebook to a compute engine", + Privilege: "AttachEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a pending step or steps in a running cluster", + Privilege: "CancelSteps", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an EMR notebook", + Privilege: "CreateEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticmapreduce:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a persistent application history server", + Privilege: "CreatePersistentAppUI", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an EMR notebook repository", + Privilege: "CreateRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a security configuration", + Privilege: "CreateSecurityConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an EMR Studio", + Privilege: "CreateStudio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticmapreduce:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to launch an EMR Studio using IAM authentication mode", + Privilege: "CreateStudioPresignedUrl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an EMR Studio session mapping", + Privilege: "CreateStudioSessionMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an EMR notebook", + Privilege: "DeleteEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an EMR notebook repository", + Privilege: "DeleteRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a security configuration", + Privilege: "DeleteSecurityConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an EMR Studio", + Privilege: "DeleteStudio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an EMR Studio session mapping", + Privilege: "DeleteStudioSessionMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to block an identity from opening a collaborative workspace", + Privilege: "DeleteWorkspaceAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about a cluster, including status, hardware and software configuration, VPC settings, and so on", + Privilege: "DescribeCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about a notebook, including status, user, role, tags, location, and more", + Privilege: "DescribeEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe details of clusters (job flows). This API is deprecated and will eventually be removed. We recommend you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and ListBootstrapActions instead", + Privilege: "DescribeJobFlows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about a notebook execution", + Privilege: "DescribeNotebookExecution", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook-execution*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a persistent application history server", + Privilege: "DescribePersistentAppUI", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about an EMR release, such as which applications are supported", + Privilege: "DescribeReleaseLabel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an EMR notebook repository", + Privilege: "DescribeRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of a security configuration", + Privilege: "DescribeSecurityConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about a cluster step", + Privilege: "DescribeStep", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about an EMR Studio", + Privilege: "DescribeStudio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach an EMR notebook from a compute engine", + Privilege: "DetachEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the auto-termination policy associated with a cluster", + Privilege: "GetAutoTerminationPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the EMR block public access configuration for the AWS account in the Region", + Privilege: "GetBlockPublicAccessConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to retrieve HTTP basic credentials associated with a given execution IAM Role for a fine-grained access control enabled EMR Cluster", + Privilege: "GetClusterSessionCredentials", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "elasticmapreduce:ExecutionRoleArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the managed scaling policy associated with a cluster", + Privilege: "GetManagedScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get a presigned URL for an application history server running on the cluster", + Privilege: "GetOnClusterAppUIPresignedURL", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get a presigned URL for a persistent application history server", + Privilege: "GetPersistentAppUIPresignedURL", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "elasticmapreduce:ExecutionRoleArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about an EMR Studio session mapping", + Privilege: "GetStudioSessionMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to link an EMR notebook repository to EMR notebooks", + Privilege: "LinkRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about the bootstrap actions associated with a cluster", + Privilege: "ListBootstrapActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get the status of accessible clusters", + Privilege: "ListClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list summary information for accessible EMR notebooks", + Privilege: "ListEditors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of instance fleets in a cluster", + Privilege: "ListInstanceFleets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of instance groups in a cluster", + Privilege: "ListInstanceGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about the Amazon EC2 instances in a cluster", + Privilege: "ListInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list summary information for notebook executions", + Privilege: "ListNotebookExecutions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list and filter the available EMR releases in the current region", + Privilege: "ListReleaseLabels", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list existing EMR notebook repositories", + Privilege: "ListRepositories", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list available security configurations in this account by name, along with creation dates and times", + Privilege: "ListSecurityConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list steps associated with a cluster", + Privilege: "ListSteps", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list summary information about EMR Studio session mappings", + Privilege: "ListStudioSessionMappings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list summary information about EMR Studios", + Privilege: "ListStudios", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EC2 instance types that an Amazon EMR release supports", + Privilege: "ListSupportedInstanceTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list identities that are granted access to a workspace", + Privilege: "ListWorkspaceAccessIdentities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change cluster settings such as number of steps that can be executed concurrently for a cluster", + Privilege: "ModifyCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the target On-Demand and target Spot capacities for a instance fleet", + Privilege: "ModifyInstanceFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the number and configuration of EC2 instances for an instance group", + Privilege: "ModifyInstanceGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to launch the Jupyter notebook editor for an EMR notebook from within the console", + Privilege: "OpenEditorInConsole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an automatic scaling policy for a core instance group or task instance group", + Privilege: "PutAutoScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update the auto-termination policy associated with a cluster", + Privilege: "PutAutoTerminationPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to create or update the EMR block public access configuration for the AWS account in the Region", + Privilege: "PutBlockPublicAccessConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update the managed scaling policy associated with a cluster", + Privilege: "PutManagedScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to allow an identity to open a collaborative workspace", + Privilege: "PutWorkspaceAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an automatic scaling policy from an instance group", + Privilege: "RemoveAutoScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the auto-termination policy associated with a cluster", + Privilege: "RemoveAutoTerminationPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the managed scaling policy associated with a cluster", + Privilege: "RemoveManagedScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an Amazon EMR resource", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook-execution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create and launch a cluster (job flow)", + Privilege: "RunJobFlow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticmapreduce:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add and remove auto terminate after step execution for a cluster", + Privilege: "SetKeepJobFlowAliveWhenNoSteps", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add and remove termination protection for a cluster", + Privilege: "SetTerminationProtection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or disable unhealthy node replacement for a cluster", + Privilege: "SetUnhealthyNodeReplacement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set whether all AWS Identity and Access Management (IAM) users in the AWS account can view a cluster. This API is deprecated and your cluster may be visible to all users in your account. To restrict cluster access using an IAM policy, see AWS Identity and Access Management for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-access-iam.html)", + Privilege: "SetVisibleToAllUsers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an EMR notebook", + Privilege: "StartEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an EMR notebook execution", + Privilege: "StartNotebookExecution", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "elasticmapreduce:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to shut down an EMR notebook", + Privilege: "StopEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop notebook execution", + Privilege: "StopNotebookExecution", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook-execution*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to terminate a cluster (job flow)", + Privilege: "TerminateJobFlows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to unlink an EMR notebook repository from EMR notebooks", + Privilege: "UnlinkRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an EMR notebook", + Privilege: "UpdateEditor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "editor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an EMR notebook repository", + Privilege: "UpdateRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update information about an EMR Studio", + Privilege: "UpdateStudio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an EMR Studio session mapping", + Privilege: "UpdateStudioSessionMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to use the EMR console to view events from all clusters", + Privilege: "ViewEventsFromAllClustersInConsole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:cluster/${ClusterId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticmapreduce:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:editor/${EditorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticmapreduce:ResourceTag/${TagKey}", + }, + Resource: "editor", + }, + { + Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:notebook-execution/${NotebookExecutionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticmapreduce:ResourceTag/${TagKey}", + }, + Resource: "notebook-execution", + }, + { + Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:studio/${StudioId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "elasticmapreduce:ResourceTag/${TagKey}", + }, + Resource: "studio", + }, + }, + ServiceName: "Amazon Elastic MapReduce", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elastictranscoder", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Cancel a job that Elastic Transcoder has not begun to process", + Privilege: "CancelJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Create a job", + Privilege: "CreateJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "preset*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Create a pipeline", + Privilege: "CreatePipeline", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Create a preset", + Privilege: "CreatePreset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Delete a pipeline", + Privilege: "DeletePipeline", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Delete a preset", + Privilege: "DeletePreset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "preset*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Get a list of the jobs that you assigned to a pipeline", + Privilege: "ListJobsByPipeline", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Get information about all of the jobs associated with the current AWS account that have a specified status", + Privilege: "ListJobsByStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Get a list of the pipelines associated with the current AWS account", + Privilege: "ListPipelines", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Get a list of all presets associated with the current AWS account", + Privilege: "ListPresets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Get detailed information about a job", + Privilege: "ReadJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Get detailed information about a pipeline", + Privilege: "ReadPipeline", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Get detailed information about a preset", + Privilege: "ReadPreset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "preset*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Test the settings for a pipeline to ensure that Elastic Transcoder can create and process jobs", + Privilege: "TestRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Update settings for a pipeline", + Privilege: "UpdatePipeline", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Update only Amazon Simple Notification Service (Amazon SNS) notifications for a pipeline", + Privilege: "UpdatePipelineNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Pause or reactivate a pipeline, so the pipeline stops or restarts processing jobs, update the status for the pipeline", + Privilege: "UpdatePipelineStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elastictranscoder:${Region}:${Account}:job/${JobId}", + ConditionKeys: []string{}, + Resource: "job", + }, + { + Arn: "arn:${Partition}:elastictranscoder:${Region}:${Account}:pipeline/${PipelineId}", + ConditionKeys: []string{}, + Resource: "pipeline", + }, + { + Arn: "arn:${Partition}:elastictranscoder:${Region}:${Account}:preset/${PresetId}", + ConditionKeys: []string{}, + Resource: "preset", + }, + }, + ServiceName: "Amazon Elastic Transcoder", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elemental-activations", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to complete the process of registering customer account for AWS Elemental Appliances and Software Purchases", + Privilege: "CompleteAccountRegistration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to complete the process of uploading a Software file for AWS Elemental Appliances and Software Purchases", + Privilege: "CompleteFileUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to confirm asset ownership", + Privilege: "ConfirmAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to download the kickstart files for AWS Elemental Appliances and Software purchases", + Privilege: "DownloadKickstart", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to download the Software files for AWS Elemental Appliances and Software Purchases", + Privilege: "DownloadSoftware", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a software license for an AWS Elemental Appliances and Software purchase", + Privilege: "GenerateLicense", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate Software Licenses for AWS Elemental Appliances and Software Purchases", + Privilege: "GenerateLicenses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the software version of an artifact group", + Privilege: "GetArtifactGroupSoftwareVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an asset", + Privilege: "GetAsset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe assets associated to the requesting account", + Privilege: "GetAssets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get all product advisories", + Privilege: "GetProductAdvisories", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe available software versions", + Privilege: "GetSoftwareVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the process of uploading a Software file for AWS Elemental Appliances and Software Purchases", + Privilege: "StartFileUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Elemental Appliances and Software Activation Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elemental-appliances-software", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to complete an upload of an attachment for a quote or order", + Privilege: "CompleteUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an order", + Privilege: "CreateOrderV1", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a quote", + Privilege: "CreateQuote", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quote*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to validate an address", + Privilege: "GetAvsCorrectAddress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the billing addresses in the AWS Account", + Privilege: "GetBillingAddresses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the delivery addresses in the AWS Account", + Privilege: "GetDeliveryAddressesV2", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an order", + Privilege: "GetOrder", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the orders in the AWS Account", + Privilege: "GetOrdersV2", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a quote", + Privilege: "GetQuote", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quote*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to calculate taxes for an order", + Privilege: "GetTaxes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the quotes in the AWS Account", + Privilege: "ListQuotes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an upload of an attachment for a quote or order", + Privilege: "StartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to submit an order", + Privilege: "SubmitOrderV1", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a quote", + Privilege: "UpdateQuote", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "quote*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elemental-appliances-software:${Region}:${Account}:quote/${ResourceId}", + ConditionKeys: []string{}, + Resource: "quote", + }, + }, + ServiceName: "AWS Elemental Appliances and Software", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elemental-support-cases", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Verify whether the caller has the permissions to perform support case operations", + Privilege: "CheckCasePermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grant the permission to create a support case", + Privilege: "CreateCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grant the permission to describe a support case in your account", + Privilege: "GetCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grant the permission to list the support cases in your account", + Privilege: "GetCases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grant the permission to update a support case", + Privilege: "UpdateCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Elemental Support Cases", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "elemental-support-cases", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add a comment to a support case", + Privilege: "AddCaseComment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to verify whether the caller has the permissions to perform support case operations", + Privilege: "CheckCasePermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to complete a multipart file upload to a support case", + Privilege: "CompleteMultipartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a support case", + Privilege: "CreateCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a cli command to allow a file upload to a support case", + Privilege: "CreateS3CLIUploadCommand", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to download a file from a support case", + Privilege: "CreateS3DownloadUrl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a support case in your account", + Privilege: "GetCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to verify whether the caller has the permissions to perform support case operations", + Privilege: "GetCasePermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the support cases in your account", + Privilege: "GetCases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve cached case user data for use in the Console", + Privilege: "GetUICache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags on a support case", + Privilege: "ListTagsForCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a multipart file upload to a support case", + Privilege: "StartMultipartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add a tag on a support case", + Privilege: "TagCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag on a support case", + Privilege: "UntagCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a support case", + Privilege: "UpdateCase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a support case status", + Privilege: "UpdateCaseStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a multipart file upload to a support case", + Privilege: "UpdateMultipartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "case*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:elemental-support-cases::${Account}:case/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "case", + }, + }, + ServiceName: "AWS Elemental Support Cases", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elemental-support-content", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to search support content", + Privilege: "Query", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Elemental Support Content", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "elemental-support-content", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grant the permission to search support content", + Privilege: "Query", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Elemental Support Content", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs present in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys present in the request", + Type: "ArrayOfString", + }, + { + Condition: "emr-containers:ExecutionRoleArn", + Description: "Filters access by the execution role arn present in the request", + Type: "ARN", + }, + { + Condition: "emr-containers:JobTemplateArn", + Description: "Filters access by the job template arn present in the request", + Type: "ARN", + }, + }, + Prefix: "emr-containers", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel a job run", + Privilege: "CancelJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a certificate", + Privilege: "CreateCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a job template", + Privilege: "CreateJobTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a managed endpoint", + Privilege: "CreateManagedEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "emr-containers:ExecutionRoleArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a security configuration", + Privilege: "CreateSecurityConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a virtual cluster", + Privilege: "CreateVirtualCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a job template", + Privilege: "DeleteJobTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobTemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a managed endpoint", + Privilege: "DeleteManagedEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managedEndpoint*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a virtual cluster", + Privilege: "DeleteVirtualCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a job run", + Privilege: "DescribeJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a job template", + Privilege: "DescribeJobTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobTemplate*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a managed endpoint", + Privilege: "DescribeManagedEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managedEndpoint*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a security configuration", + Privilege: "DescribeSecurityConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securityConfiguration*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a virtual cluster", + Privilege: "DescribeVirtualCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a session token used to connect to a managed endpoint", + Privilege: "GetManagedEndpointSessionCredentials", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managedEndpoint*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list job runs associated with a virtual cluster", + Privilege: "ListJobRuns", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list job templates", + Privilege: "ListJobTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list managed endpoints associated with a virtual cluster", + Privilege: "ListManagedEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list security configurations", + Privilege: "ListSecurityConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list tags for the specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobTemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managedEndpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list virtual clusters", + Privilege: "ListVirtualClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a job run", + Privilege: "StartJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "emr-containers:ExecutionRoleArn", + "emr-containers:JobTemplateArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag the specified resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobTemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managedEndpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobTemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managedEndpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "virtualCluster", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/virtualclusters/${VirtualClusterId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "virtualCluster", + }, + { + Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/virtualclusters/${VirtualClusterId}/jobruns/${JobRunId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "jobRun", + }, + { + Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/jobtemplates/${JobTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "jobTemplate", + }, + { + Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/virtualclusters/${VirtualClusterId}/endpoints/${EndpointId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "managedEndpoint", + }, + { + Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/securityconfigurations/${SecurityConfigurationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "securityConfiguration", + }, + { + Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/certificates/${CertificateId}", + ConditionKeys: []string{}, + Resource: "certificate", + }, + }, + ServiceName: "Amazon EMR on EKS (EMR Containers)", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "emr-serverless", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to execute interactive workloads on an application", + Privilege: "AccessInteractiveEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to execute interactive workloads on Livy Endpoint enabled on an EMR Serverless Application", + Privilege: "AccessLivyEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a job run", + Privilege: "CancelJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get application", + Privilege: "GetApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get job run dashboard", + Privilege: "GetDashboardForJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a job run", + Privilege: "GetJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list applications", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list job run attempts associated with a job run", + Privilege: "ListJobRunAttempts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list job runs associated with an application", + Privilege: "ListJobRuns", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for the specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to Start an application", + Privilege: "StartApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a job run", + Privilege: "StartJobRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to Stop an application", + Privilege: "StopApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag the specified resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobRun", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to Update an application", + Privilege: "UpdateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:emr-serverless:${Region}:${Account}:/applications/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:emr-serverless:${Region}:${Account}:/applications/${ApplicationId}/jobruns/${JobRunId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "jobRun", + }, + }, + ServiceName: "Amazon EMR Serverless", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a key that is present in the request the user makes to the entity resolution service", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names present in the request the user makes to the entity resolution service", + Type: "ArrayOfString", + }, + }, + Prefix: "entityresolution", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to give an AWS service or another account permission to use an AWS Entity Resolution resources", + Privilege: "AddPolicyStatement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to batch delete unique Id", + Privilege: "BatchDeleteUniqueId", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a idmapping workflow", + Privilege: "CreateIdMappingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a IdNamespace", + Privilege: "CreateIdNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a matching workflow", + Privilege: "CreateMatchingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a schema mapping", + Privilege: "CreateSchemaMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a idmapping workflow", + Privilege: "DeleteIdMappingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a IdNamespace", + Privilege: "DeleteIdNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdNamespace*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a matching workflow", + Privilege: "DeleteMatchingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete permission given to an AWS service or another account permission to use an AWS Entity Resolution resources", + Privilege: "DeletePolicyStatement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a schema mapping", + Privilege: "DeleteSchemaMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SchemaMapping*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a idmapping job", + Privilege: "GetIdMappingJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a idmapping workflow", + Privilege: "GetIdMappingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a IdNamespace", + Privilege: "GetIdNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdNamespace*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get match Id", + Privilege: "GetMatchId", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a matching job", + Privilege: "GetMatchingJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a matching workflow", + Privilege: "GetMatchingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a resource policy for an AWS Entity Resolution resources", + Privilege: "GetPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get provider service", + Privilege: "GetProviderService", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ProviderService*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a schema mapping", + Privilege: "GetSchemaMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SchemaMapping*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list idmapping jobs", + Privilege: "ListIdMappingJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list idmapping workflows", + Privilege: "ListIdMappingWorkflows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list IdNamespaces", + Privilege: "ListIdNamespaces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list matching jobs", + Privilege: "ListMatchingJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list matching workflows", + Privilege: "ListMatchingWorkflows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list provider service", + Privilege: "ListProviderServices", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ProviderService*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list schema mappings", + Privilege: "ListSchemaMappings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to List tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to put a resource policy for an AWS Entity Resolution resources", + Privilege: "PutPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a idmapping job", + Privilege: "StartIdMappingJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a matching job", + Privilege: "StartMatchingJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to adds tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdNamespace", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ProviderService", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SchemaMapping", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdNamespace", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ProviderService", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SchemaMapping", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a idmapping workflow", + Privilege: "UpdateIdMappingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdMappingWorkflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a IdNamespace", + Privilege: "UpdateIdNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "IdNamespace*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a matching workflow", + Privilege: "UpdateMatchingWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MatchingWorkflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a schema mapping", + Privilege: "UpdateSchemaMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SchemaMapping*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to give an AWS service or another account permission to use IdNamespace within a workflow", + Privilege: "UseIdNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to give an AWS service or another account permission to use workflow within a IdNamespace", + Privilege: "UseWorkflow", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:entityresolution:${Region}:${Account}:matchingworkflow/${WorkflowName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "MatchingWorkflow", + }, + { + Arn: "arn:${Partition}:entityresolution:${Region}:${Account}:schemamapping/${SchemaName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SchemaMapping", + }, + { + Arn: "arn:${Partition}:entityresolution:${Region}:${Account}:idmappingworkflow/${WorkflowName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "IdMappingWorkflow", + }, + { + Arn: "arn:${Partition}:entityresolution:${Region}:${Account}:providerservice/${ProviderName}/${ProviderServiceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ProviderService", + }, + { + Arn: "arn:${Partition}:entityresolution:${Region}:${Account}:idnamespace/${IdNamespaceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "IdNamespace", + }, + }, + ServiceName: "AWS Entity Resolution", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the tag keys that are passed in the request", + Type: "String", + }, + }, + Prefix: "es", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to accept an inbound cross-cluster search connection request", + Privilege: "AcceptInboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to accept an inbound cross-cluster search connection request. This permission is deprecated. Use AcceptInboundConnection instead", + Privilege: "AcceptInboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to attach resource tags to an OpenSearch Service domain", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a package with an OpenSearch Service domain", + Privilege: "AssociatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a service software update of a domain. This permission is deprecated. Use CancelServiceSoftwareUpdate instead", + Privilege: "CancelElasticsearchServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a service software update of a domain", + Privilege: "CancelServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon OpenSearch Service domain", + Privilege: "CreateDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an OpenSearch Service domain. This permission is deprecated. Use CreateDomain instead", + Privilege: "CreateElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the service-linked role required for OpenSearch Service domains that use VPC access. This permission is deprecated. OpenSearch Service creates the service-linked role for you", + Privilege: "CreateElasticsearchServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new cross-cluster search connection from a source domain to a destination domain", + Privilege: "CreateOutboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new cross-cluster search connection from a source domain to a destination domain. This permission is deprecated. Use CreateOutboundConnection instead", + Privilege: "CreateOutboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a package for use with OpenSearch Service domains", + Privilege: "CreatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the service-linked role required for Amazon OpenSearch Service domains that use VPC access", + Privilege: "CreateServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon OpenSearch Service domain and all of its data", + Privilege: "DeleteDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an OpenSearch Service domain and all of its data. This permission is deprecated. Use DeleteDomain instead", + Privilege: "DeleteElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the service-linked role required for OpenSearch Service domains that use VPC access. This permission is deprecated. Use the IAM API to delete service-linked roles", + Privilege: "DeleteElasticsearchServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to delete an existing inbound cross-cluster search connection", + Privilege: "DeleteInboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to delete an existing inbound cross-cluster search connection. This permission is deprecated. Use DeleteInboundConnection instead", + Privilege: "DeleteInboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the source domain owner to delete an existing outbound cross-cluster search connection", + Privilege: "DeleteOutboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the source domain owner to delete an existing outbound cross-cluster search connection. This permission is deprecated. Use DeleteOutboundConnection instead", + Privilege: "DeleteOutboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a package from OpenSearch Service. The package cannot be associated with any domains", + Privilege: "DeletePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the domain configuration for the specified OpenSearch Service domain, including the domain ID, service endpoint, and ARN", + Privilege: "DescribeDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the Auto-Tune configuration of the domain for the specified OpenSearch Service domain, including the Auto-Tune state and maintenance schedules", + Privilege: "DescribeDomainAutoTunes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view detail stage progress of an OpenSearch Service domain", + Privilege: "DescribeDomainChangeProgress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the configuration options and status of an OpenSearch Service domain", + Privilege: "DescribeDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view a description of the domain configuration for up to five specified OpenSearch Service domains", + Privilege: "DescribeDomains", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the domain configuration for the specified OpenSearch Service domain, including the domain ID, service endpoint, and ARN. This permission is deprecated. Use DescribeDomain instead", + Privilege: "DescribeElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the configuration and status of an OpenSearch Service domain. This permission is deprecated. Use DescribeDomainConfig instead", + Privilege: "DescribeElasticsearchDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view a description of the domain configuration for up to five specified Amazon OpenSearch domains. This permission is deprecated. Use DescribeDomains instead", + Privilege: "DescribeElasticsearchDomains", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the instance count, storage, and master node limits for a given OpenSearch version and instance type. This permission is deprecated. Use DescribeInstanceTypeLimits instead", + Privilege: "DescribeElasticsearchInstanceTypeLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the inbound cross-cluster search connections for a destination domain", + Privilege: "DescribeInboundConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the inbound cross-cluster search connections for a destination domain. This permission is deprecated. Use DescribeInboundConnections instead", + Privilege: "DescribeInboundCrossClusterSearchConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the instance count, storage, and master node limits for a given engine version and instance type", + Privilege: "DescribeInstanceTypeLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the outbound cross-cluster search connections for a source domain", + Privilege: "DescribeOutboundConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the outbound cross-cluster search connections for a source domain. This permission is deprecated. Use DescribeOutboundConnections instead", + Privilege: "DescribeOutboundCrossClusterSearchConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe all packages available to OpenSearch Service domains", + Privilege: "DescribePackages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch Reserved Instance offerings for Amazon OpenSearch Service. This permission is deprecated. Use DescribeReservedInstanceOfferings instead", + Privilege: "DescribeReservedElasticsearchInstanceOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch OpenSearch Service Reserved Instances that have already been purchased. This permission is deprecated. Use DescribeReservedInstances instead", + Privilege: "DescribeReservedElasticsearchInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch Reserved Instance offerings for OpenSearch Service", + Privilege: "DescribeReservedInstanceOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch OpenSearch Service Reserved Instances that have already been purchased", + Privilege: "DescribeReservedInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a package from the specified OpenSearch Service domain", + Privilege: "DissociatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to send cross-cluster requests to a destination domain", + Privilege: "ESCrossClusterGet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP DELETE requests to the OpenSearch APIs", + Privilege: "ESHttpDelete", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to send HTTP GET requests to the OpenSearch APIs", + Privilege: "ESHttpGet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to send HTTP HEAD requests to the OpenSearch APIs", + Privilege: "ESHttpHead", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP PATCH requests to the OpenSearch APIs", + Privilege: "ESHttpPatch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP POST requests to the OpenSearch APIs", + Privilege: "ESHttpPost", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP PUT requests to the OpenSearch APIs", + Privilege: "ESHttpPut", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch a list of compatible OpenSearch and Elasticsearch versions to which an OpenSearch Service domain can be upgraded. This permission is deprecated. Use GetCompatibleVersions instead", + Privilege: "GetCompatibleElasticsearchVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch list of compatible engine versions to which an OpenSearch Service domain can be upgraded", + Privilege: "GetCompatibleVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the version history for a package", + Privilege: "GetPackageVersionHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the upgrade history of a given OpenSearch Service domain", + Privilege: "GetUpgradeHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the upgrade status of a given OpenSearch Service domain", + Privilege: "GetUpgradeStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to display the names of all OpenSearch Service domains that the current user owns", + Privilege: "ListDomainNames", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all OpenSearch Service domains that a package is associated with", + Privilege: "ListDomainsForPackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all instance types and available features for a given OpenSearch version. This permission is deprecated. Use ListInstanceTypeDetails instead", + Privilege: "ListElasticsearchInstanceTypeDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all EC2 instance types that are supported for a given OpenSearch version", + Privilege: "ListElasticsearchInstanceTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all supported OpenSearch versions on Amazon OpenSearch Service. This permission is deprecated. Use ListVersions instead", + Privilege: "ListElasticsearchVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all instance types and available features for a given OpenSearch or Elasticsearch version", + Privilege: "ListInstanceTypeDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all packages associated with the OpenSearch Service domain", + Privilege: "ListPackagesForDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to display all resource tags for an OpenSearch Service domain", + Privilege: "ListTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all supported OpenSearch and Elasticsearch versions in Amazon OpenSearch Service", + Privilege: "ListVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase OpenSearch Service Reserved Instances. This permission is deprecated. Use PurchaseReservedInstanceOffering instead", + Privilege: "PurchaseReservedElasticsearchInstanceOffering", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase OpenSearch reserved instances", + Privilege: "PurchaseReservedInstanceOffering", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to reject an inbound cross-cluster search connection request", + Privilege: "RejectInboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to reject an inbound cross-cluster search connection request. This permission is deprecated. Use RejectInboundConnection instead", + Privilege: "RejectInboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove resource tags from an OpenSearch Service domain", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a service software update of a domain. This permission is deprecated. Use StartServiceSoftwareUpdate instead", + Privilege: "StartElasticsearchServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a service software update of a domain", + Privilege: "StartServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of an OpenSearch Service domain, such as the instance type or number of instances", + Privilege: "UpdateDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of an OpenSearch Service domain, such as the instance type or number of instances. This permission is deprecated. Use UpdateDomainConfig instead", + Privilege: "UpdateElasticsearchDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a package for use with OpenSearch Service domains", + Privilege: "UpdatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate upgrade of an OpenSearch Service domain to a given version", + Privilege: "UpgradeDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate upgrade of an OpenSearch Service domain to a specified version. This permission is deprecated. Use UpgradeDomain instead", + Privilege: "UpgradeElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:es:${Region}:${Account}:domain/${DomainName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "domain", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/aws-service-role/es.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "es_role", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/aws-service-role/opensearchservice.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "opensearchservice_role", + }, + }, + ServiceName: "Amazon OpenSearch Service (successor to Amazon Elasticsearch Service)", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "es", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to accept an inbound cross-cluster search connection request", + Privilege: "AcceptInboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to accept an inbound cross-cluster search connection request. This permission is deprecated. Use AcceptInboundConnection instead", + Privilege: "AcceptInboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add the data source for the OpenSearch Service domain", + Privilege: "AddDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add the data source for the provided OpenSearch arns", + Privilege: "AddDirectQueryDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to attach resource tags to an OpenSearch Service domain, data source, or application", + Privilege: "AddTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a package with an OpenSearch Service domain", + Privilege: "AssociatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate multiple packages with an OpenSearch Service domain", + Privilege: "AssociatePackages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provide access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint", + Privilege: "AuthorizeVpcEndpointAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a change on an OpenSearch Service domain", + Privilege: "CancelDomainConfigChange", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a service software update of a domain. This permission is deprecated. Use CancelServiceSoftwareUpdate instead", + Privilege: "CancelElasticsearchServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a service software update of a domain", + Privilege: "CancelServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an OpenSearch Application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon OpenSearch Service domain", + Privilege: "CreateDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an OpenSearch Service domain. This permission is deprecated. Use CreateDomain instead", + Privilege: "CreateElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the service-linked role required for OpenSearch Service domains that use VPC access. This permission is deprecated. OpenSearch Service creates the service-linked role for you", + Privilege: "CreateElasticsearchServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new cross-cluster search connection from a source domain to a destination domain", + Privilege: "CreateOutboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new cross-cluster search connection from a source domain to a destination domain. This permission is deprecated. Use CreateOutboundConnection instead", + Privilege: "CreateOutboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a package for use with OpenSearch Service domains", + Privilege: "CreatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the service-linked role required for Amazon OpenSearch Service domains that use VPC access", + Privilege: "CreateServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon OpenSearch Service-managed VPC endpoint", + Privilege: "CreateVpcEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an OpenSearch Application", + Privilege: "DeleteApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the data source for the OpenSearch Service domain", + Privilege: "DeleteDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the data source for the provided OpenSearch arns", + Privilege: "DeleteDirectQueryDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon OpenSearch Service domain and all of its data", + Privilege: "DeleteDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an OpenSearch Service domain and all of its data. This permission is deprecated. Use DeleteDomain instead", + Privilege: "DeleteElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the service-linked role required for OpenSearch Service domains that use VPC access. This permission is deprecated. Use the IAM API to delete service-linked roles", + Privilege: "DeleteElasticsearchServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to delete an existing inbound cross-cluster search connection", + Privilege: "DeleteInboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to delete an existing inbound cross-cluster search connection. This permission is deprecated. Use DeleteInboundConnection instead", + Privilege: "DeleteInboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the source domain owner to delete an existing outbound cross-cluster search connection", + Privilege: "DeleteOutboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the source domain owner to delete an existing outbound cross-cluster search connection. This permission is deprecated. Use DeleteOutboundConnection instead", + Privilege: "DeleteOutboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a package from OpenSearch Service. The package cannot be associated with any domains", + Privilege: "DeletePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon OpenSearch Service-managed interface VPC endpoint", + Privilege: "DeleteVpcEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the domain configuration for the specified OpenSearch Service domain, including the domain ID, service endpoint, and ARN", + Privilege: "DescribeDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the Auto-Tune configuration of the domain for the specified OpenSearch Service domain, including the Auto-Tune state and maintenance schedules", + Privilege: "DescribeDomainAutoTunes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view detail stage progress of an OpenSearch Service domain", + Privilege: "DescribeDomainChangeProgress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the configuration options and status of an OpenSearch Service domain", + Privilege: "DescribeDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about domain and node health, the standby Availability Zone, number of nodes per Availability Zone, and shard count per node", + Privilege: "DescribeDomainHealth", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about nodes configured for the domain and their configurations- the node id, type of node, status of node, Availability Zone, instance type and storage", + Privilege: "DescribeDomainNodes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view a description of the domain configuration for up to five specified OpenSearch Service domains", + Privilege: "DescribeDomains", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the status of a pre-update validation check on an OpenSearch Service domain", + Privilege: "DescribeDryRunProgress", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the domain configuration for the specified OpenSearch Service domain, including the domain ID, service endpoint, and ARN. This permission is deprecated. Use DescribeDomain instead", + Privilege: "DescribeElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a description of the configuration and status of an OpenSearch Service domain. This permission is deprecated. Use DescribeDomainConfig instead", + Privilege: "DescribeElasticsearchDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view a description of the domain configuration for up to five specified Amazon OpenSearch domains. This permission is deprecated. Use DescribeDomains instead", + Privilege: "DescribeElasticsearchDomains", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the instance count, storage, and master node limits for a given OpenSearch version and instance type. This permission is deprecated. Use DescribeInstanceTypeLimits instead", + Privilege: "DescribeElasticsearchInstanceTypeLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the inbound cross-cluster search connections for a destination domain", + Privilege: "DescribeInboundConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the inbound cross-cluster search connections for a destination domain. This permission is deprecated. Use DescribeInboundConnections instead", + Privilege: "DescribeInboundCrossClusterSearchConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view the instance count, storage, and master node limits for a given engine version and instance type", + Privilege: "DescribeInstanceTypeLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the outbound cross-cluster search connections for a source domain", + Privilege: "DescribeOutboundConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the outbound cross-cluster search connections for a source domain. This permission is deprecated. Use DescribeOutboundConnections instead", + Privilege: "DescribeOutboundCrossClusterSearchConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe all packages available to OpenSearch Service domains", + Privilege: "DescribePackages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch Reserved Instance offerings for Amazon OpenSearch Service. This permission is deprecated. Use DescribeReservedInstanceOfferings instead", + Privilege: "DescribeReservedElasticsearchInstanceOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch OpenSearch Service Reserved Instances that have already been purchased. This permission is deprecated. Use DescribeReservedInstances instead", + Privilege: "DescribeReservedElasticsearchInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch Reserved Instance offerings for OpenSearch Service", + Privilege: "DescribeReservedInstanceOfferings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch OpenSearch Service Reserved Instances that have already been purchased", + Privilege: "DescribeReservedInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe one or more Amazon OpenSearch Service-managed VPC endpoints", + Privilege: "DescribeVpcEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a package from the specified OpenSearch Service domain", + Privilege: "DissociatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate multiple packages from the specified OpenSearch Service domain", + Privilege: "DissociatePackages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to send cross-cluster requests to a destination domain", + Privilege: "ESCrossClusterGet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP DELETE requests to the OpenSearch APIs", + Privilege: "ESHttpDelete", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to send HTTP GET requests to the OpenSearch APIs", + Privilege: "ESHttpGet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to send HTTP HEAD requests to the OpenSearch APIs", + Privilege: "ESHttpHead", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP PATCH requests to the OpenSearch APIs", + Privilege: "ESHttpPatch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP POST requests to the OpenSearch APIs", + Privilege: "ESHttpPost", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send HTTP PUT requests to the OpenSearch APIs", + Privilege: "ESHttpPut", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about an OpenSearch Application", + Privilege: "GetApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch a list of compatible OpenSearch and Elasticsearch versions to which an OpenSearch Service domain can be upgraded. This permission is deprecated. Use GetCompatibleVersions instead", + Privilege: "GetCompatibleElasticsearchVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to fetch list of compatible engine versions to which an OpenSearch Service domain can be upgraded", + Privilege: "GetCompatibleVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the data source for the OpenSearch Service domain", + Privilege: "GetDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the data source for the provided OpenSearch arns", + Privilege: "GetDirectQueryDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the status of maintenance action for the node", + Privilege: "GetDomainMaintenanceStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the version history for a package", + Privilege: "GetPackageVersionHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the upgrade history of a given OpenSearch Service domain", + Privilege: "GetUpgradeHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the upgrade status of a given OpenSearch Service domain", + Privilege: "GetUpgradeStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list OpenSearch Applications", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of data source for the OpenSearch Service domain", + Privilege: "ListDataSources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of data source for the provided OpenSearch arns", + Privilege: "ListDirectQueryDataSources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of maintenance actions for the OpenSearch Service domain", + Privilege: "ListDomainMaintenances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to display the names of all OpenSearch Service domains that the current user owns", + Privilege: "ListDomainNames", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all OpenSearch Service domains that a package is associated with", + Privilege: "ListDomainsForPackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all instance types and available features for a given OpenSearch version. This permission is deprecated. Use ListInstanceTypeDetails instead", + Privilege: "ListElasticsearchInstanceTypeDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all EC2 instance types that are supported for a given OpenSearch version", + Privilege: "ListElasticsearchInstanceTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all supported OpenSearch versions on Amazon OpenSearch Service. This permission is deprecated. Use ListVersions instead", + Privilege: "ListElasticsearchVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all instance types and available features for a given OpenSearch or Elasticsearch version", + Privilege: "ListInstanceTypeDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all packages associated with the OpenSearch Service domain", + Privilege: "ListPackagesForDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of configuration changes that are scheduled for a OpenSearch Service domain", + Privilege: "ListScheduledActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to display all resource tags for an OpenSearch Service domain, data source, or application", + Privilege: "ListTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all supported OpenSearch and Elasticsearch versions in Amazon OpenSearch Service", + Privilege: "ListVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve information about each AWS principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint", + Privilege: "ListVpcEndpointAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all Amazon OpenSearch Service-managed VPC endpoints in the current AWS account and Region", + Privilege: "ListVpcEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all Amazon OpenSearch Service-managed VPC endpoints associated with a particular domain", + Privilege: "ListVpcEndpointsForDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase OpenSearch Service Reserved Instances. This permission is deprecated. Use PurchaseReservedInstanceOffering instead", + Privilege: "PurchaseReservedElasticsearchInstanceOffering", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to purchase OpenSearch reserved instances", + Privilege: "PurchaseReservedInstanceOffering", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to reject an inbound cross-cluster search connection request", + Privilege: "RejectInboundConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to the destination domain owner to reject an inbound cross-cluster search connection request. This permission is deprecated. Use RejectInboundConnection instead", + Privilege: "RejectInboundCrossClusterSearchConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove resource tags from an OpenSearch Service domain, data source, or application", + Privilege: "RemoveTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to revoke access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint", + Privilege: "RevokeVpcEndpointAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate the maintenance on the node", + Privilege: "StartDomainMaintenance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a service software update of a domain. This permission is deprecated. Use StartServiceSoftwareUpdate instead", + Privilege: "StartElasticsearchServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a service software update of a domain", + Privilege: "StartServiceSoftwareUpdate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an OpenSearch Application", + Privilege: "UpdateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the data source for the OpenSearch Service domain", + Privilege: "UpdateDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the data source for the provided OpenSearch arns", + Privilege: "UpdateDirectQueryDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of an OpenSearch Service domain, such as the instance type or number of instances", + Privilege: "UpdateDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the configuration of an OpenSearch Service domain, such as the instance type or number of instances. This permission is deprecated. Use UpdateDomainConfig instead", + Privilege: "UpdateElasticsearchDomainConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a package for use with OpenSearch Service domains", + Privilege: "UpdatePackage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update scope a package", + Privilege: "UpdatePackageScope", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reschedule a planned OpenSearch Service domain configuration change for a later time", + Privilege: "UpdateScheduledAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an Amazon OpenSearch Service-managed interface VPC endpoint", + Privilege: "UpdateVpcEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate upgrade of an OpenSearch Service domain to a given version", + Privilege: "UpgradeDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate upgrade of an OpenSearch Service domain to a specified version. This permission is deprecated. Use UpgradeDomain instead", + Privilege: "UpgradeElasticsearchDomain", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:es:${Region}:${Account}:domain/${DomainName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "domain", + }, + { + Arn: "arn:${Partition}:opensearch:${Region}:${Account}:application/${AppId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/aws-service-role/es.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "es_role", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/aws-service-role/opensearchservice.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "opensearchservice_role", + }, + { + Arn: "arn:${Partition}:opensearch:${Region}:${Account}:datasource/${DataSourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "datasource", + }, + }, + ServiceName: "Amazon OpenSearch Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the tags to event bus and rule actions", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource to event bus and rule actions", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tags in the request to event bus and rule actions", + Type: "ArrayOfString", + }, + { + Condition: "events:EventBusArn", + Description: "Filters access by the ARN of the event buses that can be associated with an endpoint to CreateEndpoint and UpdateEndpoint actions", + Type: "ArrayOfARN", + }, + { + Condition: "events:ManagedBy", + Description: "Filters access by AWS services. If a rule is created by an AWS service on your behalf, the value is the principal name of the service that created the rule", + Type: "String", + }, + { + Condition: "events:TargetArn", + Description: "Filters access by the ARN of a target that can be put to a rule to PutTargets actions. TargetARN doesn't include DeadLetterConfigArn", + Type: "ArrayOfARN", + }, + { + Condition: "events:creatorAccount", + Description: "Filters access by the account the rule was created in to rule actions", + Type: "String", + }, + { + Condition: "events:detail-type", + Description: "Filters access by the literal string of the detail-type of the event to PutEvents and PutRule actions", + Type: "String", + }, + { + Condition: "events:detail.eventTypeCode", + Description: "Filters access by the literal string for the detail.eventTypeCode field of the event to PutRule actions", + Type: "String", + }, + { + Condition: "events:detail.service", + Description: "Filters access by the literal string for the detail.service field of the event to PutRule actions", + Type: "String", + }, + { + Condition: "events:detail.userIdentity.principalId", + Description: "Filters access by the literal string for the detail.useridentity.principalid field of the event to PutRule actions", + Type: "String", + }, + { + Condition: "events:eventBusInvocation", + Description: "Filters access by whether the event was generated via API or cross-account bus invocation to PutEvents actions", + Type: "String", + }, + { + Condition: "events:source", + Description: "Filters access by the AWS service or AWS partner event source that generated the event to PutEvents and PutRule actions. Matches the literal string of the source field of the event", + Type: "ArrayOfString", + }, + }, + Prefix: "events", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to activate partner event sources", + Privilege: "ActivateEventSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a replay", + Privilege: "CancelReplay", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replay*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new api destination", + Privilege: "CreateApiDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-destination*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new archive", + Privilege: "CreateArchive", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "archive*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new connection", + Privilege: "CreateConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an endpoint", + Privilege: "CreateEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + { + ConditionKeys: []string{ + "events:EventBusArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create event buses", + Privilege: "CreateEventBus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create partner event sources", + Privilege: "CreatePartnerEventSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deactivate event sources", + Privilege: "DeactivateEventSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deauthorize a connection, deleting its stored authorization secrets", + Privilege: "DeauthorizeConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an api destination", + Privilege: "DeleteApiDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-destination*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an archive", + Privilege: "DeleteArchive", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "archive*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a connection", + Privilege: "DeleteConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an endpoint", + Privilege: "DeleteEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete event buses", + Privilege: "DeleteEventBus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete partner event sources", + Privilege: "DeletePartnerEventSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete rules", + Privilege: "DeleteRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + "events:ManagedBy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about an api destination", + Privilege: "DescribeApiDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-destination*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about an archive", + Privilege: "DescribeArchive", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "archive*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about a conection", + Privilege: "DescribeConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about an endpoint", + Privilege: "DescribeEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about event buses", + Privilege: "DescribeEventBus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about event sources", + Privilege: "DescribeEventSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about partner event sources", + Privilege: "DescribePartnerEventSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the details of a replay", + Privilege: "DescribeReplay", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replay*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about rules", + Privilege: "DescribeRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable rules", + Privilege: "DisableRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + "events:ManagedBy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable rules", + Privilege: "EnableRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + "events:ManagedBy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to invoke an api destination", + Privilege: "InvokeApiDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-destination*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of api destinations", + Privilege: "ListApiDestinations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of archives", + Privilege: "ListArchives", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of connections", + Privilege: "ListConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of endpoints", + Privilege: "ListEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the event buses in your account", + Privilege: "ListEventBuses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to to retrieve a list of event sources shared with this account", + Privilege: "ListEventSources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of AWS account IDs associated with an event source", + Privilege: "ListPartnerEventSourceAccounts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-source*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list partner event sources", + Privilege: "ListPartnerEventSources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of replays", + Privilege: "ListReplays", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the names of the rules associated with a target", + Privilege: "ListRuleNamesByTarget", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of the Amazon EventBridge rules in the account", + Privilege: "ListRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of tags associated with an Amazon EventBridge resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of targets defined for a rule", + Privilege: "ListTargetsByRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send custom events to Amazon EventBridge", + Privilege: "PutEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus*", + }, + { + ConditionKeys: []string{ + "events:detail-type", + "events:source", + "events:eventBusInvocation", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to sends custom events to Amazon EventBridge", + Privilege: "PutPartnerEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to use the PutPermission action to grants permission to another AWS account to put events to your default event bus", + Privilege: "PutPermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or updates rules", + Privilege: "PutRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:detail.userIdentity.principalId", + "events:detail-type", + "events:source", + "events:detail.service", + "events:detail.eventTypeCode", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "events:creatorAccount", + "events:ManagedBy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add targets to a rule", + Privilege: "PutTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:TargetArn", + "events:creatorAccount", + "events:ManagedBy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to revoke the permission of another AWS account to put events to your default event bus", + Privilege: "RemovePermission", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to removes targets from a rule", + Privilege: "RemoveTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "events:creatorAccount", + "events:ManagedBy", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to retrieve credentials from a connection", + Privilege: "RetrieveConnectionCredentials", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a replay of an archive", + Privilege: "StartReplay", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "archive*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replay*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add a tag to an Amazon EventBridge resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "events:creatorAccount", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to test whether an event pattern matches the provided event", + Privilege: "TestEventPattern", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from an Amazon EventBridge resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-custom-event-bus", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule-on-default-event-bus", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "events:creatorAccount", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an api destination", + Privilege: "UpdateApiDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-destination*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an archive", + Privilege: "UpdateArchive", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "archive*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a connection", + Privilege: "UpdateConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an endpoint", + Privilege: "UpdateEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + { + ConditionKeys: []string{ + "events:EventBusArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update event buses", + Privilege: "UpdateEventBus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-bus*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:events:${Region}::event-source/${EventSourceName}", + ConditionKeys: []string{}, + Resource: "event-source", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:event-bus/${EventBusName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "event-bus", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:rule/${RuleName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rule-on-default-event-bus", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:rule/${EventBusName}/${RuleName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rule-on-custom-event-bus", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:archive/${ArchiveName}", + ConditionKeys: []string{}, + Resource: "archive", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:replay/${ReplayName}", + ConditionKeys: []string{}, + Resource: "replay", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:connection/${ConnectionName}", + ConditionKeys: []string{}, + Resource: "connection", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:api-destination/${ApiDestinationName}", + ConditionKeys: []string{}, + Resource: "api-destination", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:endpoint/${EndpointName}", + ConditionKeys: []string{}, + Resource: "endpoint", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:target/create-snapshot", + ConditionKeys: []string{}, + Resource: "create-snapshot", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:target/reboot-instance", + ConditionKeys: []string{}, + Resource: "reboot-instance", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:target/stop-instance", + ConditionKeys: []string{}, + Resource: "stop-instance", + }, + { + Arn: "arn:${Partition}:events:${Region}:${Account}:target/terminate-instance", + ConditionKeys: []string{}, + Resource: "terminate-instance", + }, + }, + ServiceName: "Amazon EventBridge", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed the request on behalf of the IAM principal", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource that make the request on behalf of the IAM principal", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request on behalf of the IAM principal", + Type: "ArrayOfString", + }, + }, + Prefix: "evidently", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to send a batched evaluate feature request", + Privilege: "BatchEvaluateFeature", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an experiment", + Privilege: "CreateExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a feature", + Privilege: "CreateFeature", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a launch", + Privilege: "CreateLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a project", + Privilege: "CreateProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a segment", + Privilege: "CreateSegment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an experiment", + Privilege: "DeleteExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a feature", + Privilege: "DeleteFeature", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a launch", + Privilege: "DeleteLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a segment", + Privilege: "DeleteSegment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Segment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send an evaluate feature request", + Privilege: "EvaluateFeature", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get experiment details", + Privilege: "GetExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get experiment result", + Privilege: "GetExperimentResults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get feature details", + Privilege: "GetFeature", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get launch details", + Privilege: "GetLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get project details", + Privilege: "GetProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get segment details", + Privilege: "GetSegment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Segment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list experiments", + Privilege: "ListExperiments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list features", + Privilege: "ListFeatures", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list launches", + Privilege: "ListLaunches", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list projects", + Privilege: "ListProjects", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list resources referencing a segment", + Privilege: "ListSegmentReferences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list segments", + Privilege: "ListSegments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for resources", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send performance events", + Privilege: "PutProjectEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an experiment", + Privilege: "StartExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a launch", + Privilege: "StartLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an experiment", + Privilege: "StopExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a launch", + Privilege: "StopLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag resources", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Segment", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to test a segment pattern", + Privilege: "TestSegmentPattern", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag resources", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Segment", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update experiment", + Privilege: "UpdateExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Experiment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update feature", + Privilege: "UpdateFeature", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Feature*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a launch", + Privilege: "UpdateLaunch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Launch*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update project", + Privilege: "UpdateProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + }, + ResourceType: "Project*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update project data delivery", + Privilege: "UpdateProjectDataDelivery", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Project*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Project", + }, + { + Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}/feature/${FeatureName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Feature", + }, + { + Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}/experiment/${ExperimentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Experiment", + }, + { + Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}/launch/${LaunchName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Launch", + }, + { + Arn: "arn:${Partition}:evidently:${Region}:${Account}:segment/${SegmentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Segment", + }, + }, + ServiceName: "Amazon CloudWatch Evidently", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "execute-api:viaDomainArn", + Description: "Filters access by the domain name ARN the API is called from", + Type: "String", + }, + }, + Prefix: "execute-api", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Used to invalidate API cache upon a client request", + Privilege: "InvalidateCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "execute-api-general*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Used to invoke an API upon a client request", + Privilege: "Invoke", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "execute-api-domain", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "execute-api-general", + }, + }, + }, + { + AccessLevel: "Write", + Description: "ManageConnections controls access to the @connections API", + Privilege: "ManageConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "execute-api-general*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:execute-api:${Region}:${Account}:${ApiId}/${Stage}/${Method}/${ApiSpecificResourcePath}", + ConditionKeys: []string{ + "execute-api:viaDomainArn", + }, + Resource: "execute-api-general", + }, + { + Arn: "arn:${Partition}:execute-api:${Region}:${Account}:/domainnames/${DomainName}+${DomainIdentifier}", + ConditionKeys: []string{}, + Resource: "execute-api-domain", + }, + }, + ServiceName: "Amazon API Gateway", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "finspace", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to connect to a kdb cluster", + Privilege: "ConnectKxCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a FinSpace environment", + Privilege: "CreateEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a changeset for a kdb database", + Privilege: "CreateKxChangeset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a cluster in a managed kdb environment", + Privilege: "CreateKxCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeSubnets", + "finspace:MountKxDatabase", + }, + ResourceType: "kxCluster*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a kdb database in a managed kdb environment", + Privilege: "CreateKxDatabase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataview in a managed kdb environment", + Privilege: "CreateKxDataview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a managed kdb environment", + Privilege: "CreateKxEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a scaling group in a managed kdb environment", + Privilege: "CreateKxScalingGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxScalingGroup*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a user in a managed kdb environment", + Privilege: "CreateKxUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a volume in a managed kdb environment", + Privilege: "CreateKxVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a FinSpace user", + Privilege: "CreateUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a FinSpace environment", + Privilege: "DeleteEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a kdb cluster", + Privilege: "DeleteKxCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a node from a kdb cluster", + Privilege: "DeleteKxClusterNode", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a kdb database", + Privilege: "DeleteKxDatabase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataview in a managed kdb environment", + Privilege: "DeleteKxDataview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a managed kdb environment", + Privilege: "DeleteKxEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a scaling group in a managed kdb environment", + Privilege: "DeleteKxScalingGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxScalingGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a kdb user", + Privilege: "DeleteKxUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxUser*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a volume in a managed kdb environment", + Privilege: "DeleteKxVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a FinSpace environment", + Privilege: "GetEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a changeset for a kdb database", + Privilege: "GetKxChangeset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a cluster in a managed kdb environment", + Privilege: "GetKxCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a connection string for kdb clusters", + Privilege: "GetKxConnectionString", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "finspace:ConnectKxCluster", + }, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a kdb database", + Privilege: "GetKxDatabase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a databiew in a managed kdb environment", + Privilege: "GetKxDataview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a managed kdb environment", + Privilege: "GetKxEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a scaling group in a managed kdb environment", + Privilege: "GetKxScalingGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxScalingGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a kdb user", + Privilege: "GetKxUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxUser*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a volume in a managed kdb environment", + Privilege: "GetKxVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to request status of the loading of sample data bundle", + Privilege: "GetLoadSampleDataSetGroupIntoEnvironmentStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a FinSpace user", + Privilege: "GetUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list FinSpace environments in the AWS account", + Privilege: "ListEnvironments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list changesets for a kdb database", + Privilege: "ListKxChangesets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cluster nodes in a managed kdb environment", + Privilege: "ListKxClusterNodes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list clusters in a managed kdb environment", + Privilege: "ListKxClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list kdb databases in a managed kdb environment", + Privilege: "ListKxDatabases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list dataviews in a database", + Privilege: "ListKxDataviews", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list managed kdb environments", + Privilege: "ListKxEnvironments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list scaling groups in a managed kdb environment", + Privilege: "ListKxScalingGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list users in a managed kdb environment", + Privilege: "ListKxUsers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list volumes in a managed kdb environment", + Privilege: "ListKxVolumes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxScalingGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxUser*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list FinSpace users in an environment", + Privilege: "ListUsers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to load sample data bundle into your FinSpace environment", + Privilege: "LoadSampleDataSetGroupIntoEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to mount a database to a kdb cluster", + Privilege: "MountKxDatabase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reset the password for a FinSpace user", + Privilege: "ResetUserPassword", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxScalingGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxUser", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxScalingGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxUser", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a FinSpace environment", + Privilege: "UpdateEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update code configuration for a cluster in a managed kdb environment", + Privilege: "UpdateKxClusterCodeConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update databases for a cluster in a managed kdb environment", + Privilege: "UpdateKxClusterDatabases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxCluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a kdb database", + Privilege: "UpdateKxDatabase", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDatabase*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a dataview in a managed kdb environment", + Privilege: "UpdateKxDataview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxDataview*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a managed kdb environment", + Privilege: "UpdateKxEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the network for a managed kdb environment", + Privilege: "UpdateKxEnvironmentNetwork", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxEnvironment*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a kdb user", + Privilege: "UpdateKxUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxUser*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a volume in a managed kdb environment", + Privilege: "UpdateKxVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "kxVolume*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a FinSpace user", + Privilege: "UpdateUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:environment/${EnvironmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "environment", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:user/${UserId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "user", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxEnvironment", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxUser/${UserName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxUser", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxCluster/${KxCluster}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxCluster", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxDatabase/${KxDatabase}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxDatabase", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxScalingGroup/${KxScalingGroup}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxScalingGroup", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxDatabase/${KxDatabase}/kxDataview/${KxDataview}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxDataview", + }, + { + Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxVolume/${KxVolume}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "kxVolume", + }, + }, + ServiceName: "Amazon FinSpace", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "finspace-api", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to retrieve FinSpace programmatic access credentials", + Privilege: "GetProgrammaticAccessCredentials", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "credential*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:finspace-api:${Region}:${Account}:/credentials/programmatic", + ConditionKeys: []string{}, + Resource: "credential", + }, + }, + ServiceName: "Amazon FinSpace API", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "firehose", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a delivery stream", + Privilege: "CreateDeliveryStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a delivery stream and its data", + Privilege: "DeleteDeliveryStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified delivery stream and gets the status", + Privilege: "DescribeDeliveryStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list your delivery streams", + Privilege: "ListDeliveryStreams", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the tags for the specified delivery stream", + Privilege: "ListTagsForDeliveryStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to write a single data record into an Amazon Kinesis Firehose delivery stream", + Privilege: "PutRecord", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to write multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records", + Privilege: "PutRecordBatch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable server-side encryption (SSE) for the delivery stream", + Privilege: "StartDeliveryStreamEncryption", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable the specified destination of the specified delivery stream", + Privilege: "StopDeliveryStreamEncryption", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for the specified delivery stream", + Privilege: "TagDeliveryStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified delivery stream", + Privilege: "UntagDeliveryStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified destination of the specified delivery stream", + Privilege: "UpdateDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverystream*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:firehose:${Region}:${Account}:deliverystream/${DeliveryStreamName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deliverystream", + }, + }, + ServiceName: "Amazon Kinesis Firehose", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "fis:Operations", + Description: "Filters access by the list of operations on the AWS service that is being affected by the AWS FIS action", + Type: "ArrayOfString", + }, + { + Condition: "fis:Percentage", + Description: "Filters access by the percentage of calls being affected by the AWS FIS action", + Type: "Numeric", + }, + { + Condition: "fis:Service", + Description: "Filters access by the AWS service that is being affected by the AWS FIS action", + Type: "String", + }, + { + Condition: "fis:Targets", + Description: "Filters access by the list of resource ARNs being targeted by the AWS FIS action", + Type: "ArrayOfString", + }, + }, + Prefix: "fis", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS FIS experiment template", + Privilege: "CreateExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS FIS target account configuration", + Privilege: "CreateTargetAccountConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the AWS FIS experiment template", + Privilege: "DeleteExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS FIS target account configuration", + Privilege: "DeleteTargetAccountConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS action", + Privilege: "GetAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS experiment", + Privilege: "GetExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS target account configuration for an AWS FIS experiment", + Privilege: "GetExperimentTargetAccountConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS Experiment Template", + Privilege: "GetExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the safety lever", + Privilege: "GetSafetyLever", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "safety-lever*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS target account configuration for an AWS FIS experiment template", + Privilege: "GetTargetAccountConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the specified resource type", + Privilege: "GetTargetResourceType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inject an API internal error on the provided AWS service from an FIS Experiment", + Privilege: "InjectApiInternalError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "fis:Service", + "fis:Operations", + "fis:Percentage", + "fis:Targets", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inject an API throttle error on the provided AWS service from an FIS Experiment", + Privilege: "InjectApiThrottleError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "fis:Service", + "fis:Operations", + "fis:Percentage", + "fis:Targets", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inject an API unavailable error on the provided AWS service from an FIS Experiment", + Privilege: "InjectApiUnavailableError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "fis:Service", + "fis:Operations", + "fis:Percentage", + "fis:Targets", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available AWS FIS actions", + Privilege: "ListActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list resolved targets for AWS FIS experiments", + Privilege: "ListExperimentResolvedTargets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list target account configurations for AWS FIS experiments", + Privilege: "ListExperimentTargetAccountConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available AWS FIS experiment templates", + Privilege: "ListExperimentTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available AWS FIS experiments", + Privilege: "ListExperiments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for an AWS FIS resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list target account configurations for AWS FIS experiment templates", + Privilege: "ListTargetAccountConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the resource types", + Privilege: "ListTargetResourceTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to run an AWS FIS experiment", + Privilege: "StartExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an AWS FIS experiment", + Privilege: "StopExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag AWS FIS resources", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag AWS FIS resources", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified AWS FIS experiment template", + Privilege: "UpdateExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the state of the safety lever", + Privilege: "UpdateSafetyLeverState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "safety-lever*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an AWS FIS target account configuration", + Privilege: "UpdateTargetAccountConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:action/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "action", + }, + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:experiment/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "experiment", + }, + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:experiment-template/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "experiment-template", + }, + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:safety-lever/${Id}", + ConditionKeys: []string{}, + Resource: "safety-lever", + }, + }, + ServiceName: "AWS Fault Injection Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "fis:Operations", + Description: "Filters access by the list of operations on the AWS service that is being affected by the AWS FIS action", + Type: "ArrayOfString", + }, + { + Condition: "fis:Percentage", + Description: "Filters access by the percentage of calls being affected by the AWS FIS action", + Type: "Numeric", + }, + { + Condition: "fis:Service", + Description: "Filters access by the AWS service that is being affected by the AWS FIS action", + Type: "String", + }, + { + Condition: "fis:Targets", + Description: "Filters access by the list of resource ARNs being targeted by the AWS FIS action", + Type: "ArrayOfString", + }, + }, + Prefix: "fis", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS FIS experiment template", + Privilege: "CreateExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the AWS FIS experiment template", + Privilege: "DeleteExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS action", + Privilege: "GetAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS experiment", + Privilege: "GetExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS FIS Experiment Template", + Privilege: "GetExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the specified resource type", + Privilege: "GetTargetResourceType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inject an API internal error on the provided AWS service from an FIS Experiment", + Privilege: "InjectApiInternalError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "fis:Service", + "fis:Operations", + "fis:Percentage", + "fis:Targets", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inject an API throttle error on the provided AWS service from an FIS Experiment", + Privilege: "InjectApiThrottleError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "fis:Service", + "fis:Operations", + "fis:Percentage", + "fis:Targets", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to inject an API unavailable error on the provided AWS service from an FIS Experiment", + Privilege: "InjectApiUnavailableError", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{ + "fis:Service", + "fis:Operations", + "fis:Percentage", + "fis:Targets", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available AWS FIS actions", + Privilege: "ListActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available AWS FIS experiment templates", + Privilege: "ListExperimentTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available AWS FIS experiments", + Privilege: "ListExperiments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for an AWS FIS resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the resource types", + Privilege: "ListTargetResourceTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to run an AWS FIS experiment", + Privilege: "StartExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an AWS FIS experiment", + Privilege: "StopExperiment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag AWS FIS resources", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag AWS FIS resources", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the specified AWS FIS experiment template", + Privilege: "UpdateExperimentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-template*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "action", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:action/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "action", + }, + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:experiment/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "experiment", + }, + { + Arn: "arn:${Partition}:fis:${Region}:${Account}:experiment-template/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "experiment-template", + }, + }, + ServiceName: "AWS Fault Injection Simulator", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "fms", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to set the AWS Firewall Manager administrator account and enables the service in all organization accounts", + Privilege: "AssociateAdminAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the Firewall Manager administrator as a tenant administrator of a third-party firewall service", + Privilege: "AssociateThirdPartyFirewall", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate resources to an AWS Firewall Manager resource set", + Privilege: "BatchAssociateResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate resources from an AWS Firewall Manager resource set", + Privilege: "BatchDisassociateResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to permanently deletes an AWS Firewall Manager applications list", + Privilege: "DeleteAppsList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications-list*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Firewall Manager association with the IAM role and the Amazon Simple Notification Service (SNS) topic that is used to notify the FM administrator about major FM events and errors across the organization", + Privilege: "DeleteNotificationChannel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to permanently delete an AWS Firewall Manager policy", + Privilege: "DeletePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to permanently deletes an AWS Firewall Manager protocols list", + Privilege: "DeleteProtocolsList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protocols-list*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to permanently delete an AWS Firewall Manager resource set", + Privilege: "DeleteResourceSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate the account that has been set as the AWS Firewall Manager administrator account and and disables the service in all organization accounts", + Privilege: "DisassociateAdminAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a Firewall Manager administrator from a third-party firewall tenant", + Privilege: "DisassociateThirdPartyFirewall", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the AWS Organizations account that is associated with AWS Firewall Manager as the AWS Firewall Manager administrator", + Privilege: "GetAdminAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the specified account's administrative scope", + Privilege: "GetAdminScope", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the specified AWS Firewall Manager applications list", + Privilege: "GetAppsList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications-list*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve detailed compliance information about the specified member account. Details include resources that are in and out of compliance with the specified policy", + Privilege: "GetComplianceDetail", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the Amazon Simple Notification Service (SNS) topic that is used to record AWS Firewall Manager SNS logs", + Privilege: "GetNotificationChannel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified AWS Firewall Manager policy", + Privilege: "GetPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve policy-level attack summary information in the event of a potential DDoS attack", + Privilege: "GetProtectionStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the specified AWS Firewall Manager protocols list", + Privilege: "GetProtocolsList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protocols-list*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified AWS Firewall Manager resource set", + Privilege: "GetResourceSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the onboarding status of a Firewall Manager administrator account to third-party firewall vendor tenant", + Privilege: "GetThirdPartyFirewallAssociationStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve violations for a resource based on the specified AWS Firewall Manager policy and AWS account", + Privilege: "GetViolationDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a AdminAccounts object that lists the Firewall Manager administrators within the organization that are onboarded to Firewall Manager by AssociateAdminAccount", + Privilege: "ListAdminAccountsForOrganization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the accounts that are managing the specified AWS Organizations member account", + Privilege: "ListAdminsManagingAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return an array of AppsListDataSummary objects", + Privilege: "ListAppsLists", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve an array of PolicyComplianceStatus objects in the response. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy", + Privilege: "ListComplianceStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve an array of resources in the organization's accounts that are available to be associated with a resource set", + Privilege: "ListDiscoveredResources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve an array of member account ids if the caller is FMS admin account", + Privilege: "ListMemberAccounts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve an array of PolicySummary objects in the response", + Privilege: "ListPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return an array of ProtocolsListDataSummary objects", + Privilege: "ListProtocolsLists", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve an array of resources that are currently associated to a resource set", + Privilege: "ListResourceSetResources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve an array of ResourceSetSummary objects", + Privilege: "ListResourceSets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list Tags for a given resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all of the third-party firewall policies that are associated with the third-party firewall administrator's account", + Privilege: "ListThirdPartyFirewallFirewallPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an Firewall Manager administrator account", + Privilege: "PutAdminAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Firewall Manager applications list", + Privilege: "PutAppsList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications-list*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to designate the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager (FM) could use to notify the FM administrator about major FM events and errors across the organization", + Privilege: "PutNotificationChannel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Firewall Manager policy", + Privilege: "PutPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to creates an AWS Firewall Manager protocols list", + Privilege: "PutProtocolsList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protocols-list*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Firewall Manager resource set", + Privilege: "PutResourceSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add a Tag to a given resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications-list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protocols-list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a Tag from a given resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications-list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protocols-list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-set", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:fms:${Region}:${Account}:policy/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "policy", + }, + { + Arn: "arn:${Partition}:fms:${Region}:${Account}:applications-list/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "applications-list", + }, + { + Arn: "arn:${Partition}:fms:${Region}:${Account}:protocols-list/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "protocols-list", + }, + { + Arn: "arn:${Partition}:fms:${Region}:${Account}:resource-set/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "resource-set", + }, + }, + ServiceName: "AWS Firewall Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "forecast", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an auto predictor", + Privilege: "CreateAutoPredictor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataset", + Privilege: "CreateDataset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataset group", + Privilege: "CreateDatasetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataset import job", + Privilege: "CreateDatasetImportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an explainability", + Privilege: "CreateExplainability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an explainability export using an explainability resource", + Privilege: "CreateExplainabilityExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a forecast", + Privilege: "CreateForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an endpoint using a Predictor resource", + Privilege: "CreateForecastEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a forecast export job using a forecast resource", + Privilege: "CreateForecastExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an monitor using a Predictor resource", + Privilege: "CreateMonitor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a predictor", + Privilege: "CreatePredictor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a predictor backtest export job using a predictor", + Privilege: "CreatePredictorBacktestExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a what-if analysis", + Privilege: "CreateWhatIfAnalysis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a what-if forecast", + Privilege: "CreateWhatIfForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a what-if forecast export using what-if forecast resources", + Privilege: "CreateWhatIfForecastExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataset group", + Privilege: "DeleteDatasetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataset import job", + Privilege: "DeleteDatasetImportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an explainability", + Privilege: "DeleteExplainability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an explainability export", + Privilege: "DeleteExplainabilityExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a forecast", + Privilege: "DeleteForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an endpoint resource", + Privilege: "DeleteForecastEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a forecast export job", + Privilege: "DeleteForecastExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a monitor resource", + Privilege: "DeleteMonitor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a predictor", + Privilege: "DeletePredictor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a predictor backtest export job", + Privilege: "DeletePredictorBacktestExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a resource and its child resources", + Privilege: "DeleteResourceTree", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a what-if analysis", + Privilege: "DeleteWhatIfAnalysis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a what-if forecast", + Privilege: "DeleteWhatIfForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a what-if forecast export", + Privilege: "DeleteWhatIfForecastExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an auto predictor", + Privilege: "DescribeAutoPredictor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a dataset", + Privilege: "DescribeDataset", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a dataset group", + Privilege: "DescribeDatasetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a dataset import job", + Privilege: "DescribeDatasetImportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an explainability", + Privilege: "DescribeExplainability", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an explainability export", + Privilege: "DescribeExplainabilityExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a forecast", + Privilege: "DescribeForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an endpoint resource", + Privilege: "DescribeForecastEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a forecast export job", + Privilege: "DescribeForecastExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an monitor resource", + Privilege: "DescribeMonitor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a predictor", + Privilege: "DescribePredictor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a predictor backtest export job", + Privilege: "DescribePredictorBacktestExportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a what-if analysis", + Privilege: "DescribeWhatIfAnalysis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a what-if forecast", + Privilege: "DescribeWhatIfForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a what-if forecast export", + Privilege: "DescribeWhatIfForecastExport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the Accuracy Metrics for a predictor", + Privilege: "GetAccuracyMetrics", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the forecast context of a timeseries for an endpoint", + Privilege: "GetRecentForecastContext", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to invoke the endpoint to get forecast for a timeseries", + Privilege: "InvokeForecastEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the dataset groups", + Privilege: "ListDatasetGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the dataset import jobs", + Privilege: "ListDatasetImportJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the datasets", + Privilege: "ListDatasets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the explainabilities", + Privilege: "ListExplainabilities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the explainability exports", + Privilege: "ListExplainabilityExports", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the forecast export jobs", + Privilege: "ListForecastExportJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the forecasts", + Privilege: "ListForecasts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the monitor evaluation result for a monitor", + Privilege: "ListMonitorEvaluations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the monitor resources", + Privilege: "ListMonitors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the predictor backtest export jobs", + Privilege: "ListPredictorBacktestExportJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the predictors", + Privilege: "ListPredictors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for an Amazon Forecast resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the what-if analyses", + Privilege: "ListWhatIfAnalyses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the what-if forecast exports", + Privilege: "ListWhatIfForecastExports", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the what-if forecasts", + Privilege: "ListWhatIfForecasts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a forecast for a single item", + Privilege: "QueryForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a what-if forecast for a single item", + Privilege: "QueryWhatIfForecast", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to resume Amazon Forecast resource jobs", + Privilege: "ResumeResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop Amazon Forecast resource jobs", + Privilege: "StopResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to associate the specified tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to delete the specified tags for a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetImportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainability", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "explainabilityExport", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecast", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "forecastExport", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "predictorBacktestExportJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfAnalysis", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecast", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "whatIfForecastExport", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a dataset group", + Privilege: "UpdateDatasetGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasetGroup*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:dataset/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dataset", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:dataset-group/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "datasetGroup", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:dataset-import-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "datasetImportJob", + }, + { + Arn: "arn:${Partition}:forecast:::algorithm/${ResourceId}", + ConditionKeys: []string{}, + Resource: "algorithm", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:predictor/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "predictor", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:predictor-backtest-export-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "predictorBacktestExportJob", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:forecast/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "forecast", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:forecast-export-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "forecastExport", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:explainability/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "explainability", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:explainability-export/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "explainabilityExport", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:monitor/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "monitor", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:what-if-analysis/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "whatIfAnalysis", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:what-if-forecast/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "whatIfForecast", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:what-if-forecast-export/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "whatIfForecastExport", + }, + { + Arn: "arn:${Partition}:forecast:${Region}:${Account}:forecast-endpoint/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "endpoint", + }, + }, + ServiceName: "Amazon Forecast", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "frauddetector", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a batch of variables", + Privilege: "BatchCreateVariable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a batch of variables", + Privilege: "BatchGetVariable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel the specified batch import job", + Privilege: "CancelBatchImportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel the specified batch prediction job", + Privilege: "CancelBatchPredictionJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a batch import job", + Privilege: "CreateBatchImportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a batch prediction job", + Privilege: "CreateBatchPredictionJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a detector version. The detector version starts in a DRAFT status", + Privilege: "CreateDetectorVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a list", + Privilege: "CreateList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a model using the specified model type", + Privilege: "CreateModel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a version of the model using the specified model type and model id", + Privilege: "CreateModelVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a rule for use with the specified detector", + Privilege: "CreateRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a variable", + Privilege: "CreateVariable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a batch import job", + Privilege: "DeleteBatchImportJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a batch prediction job", + Privilege: "DeleteBatchPredictionJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the detector. Before deleting a detector, you must first delete all detector versions and rule versions associated with the detector", + Privilege: "DeleteDetector", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the detector version. You cannot delete detector versions that are in ACTIVE status", + Privilege: "DeleteDetectorVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an entity type. You cannot delete an entity type that is included in an event type", + Privilege: "DeleteEntityType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity-type*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deletes the specified event", + Privilege: "DeleteEvent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an event type. You cannot delete an event type that is used in a detector or a model", + Privilege: "DeleteEventType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete events for the specified event type", + Privilege: "DeleteEventsByEventType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a SageMaker model from Amazon Fraud Detector. You can remove an Amazon SageMaker model if it is not associated with a detector version", + Privilege: "DeleteExternalModel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID", + Privilege: "DeleteLabel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a list", + Privilege: "DeleteList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version", + Privilege: "DeleteModel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version", + Privilege: "DeleteModelVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an outcome. You cannot delete an outcome that is used in a rule version", + Privilege: "DeleteOutcome", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "outcome*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version", + Privilege: "DeleteRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a variable. You cannot delete variables that are included in an event type in Amazon Fraud Detector", + Privilege: "DeleteVariable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get all versions for a specified detector", + Privilege: "DescribeDetector", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get all of the model versions for the specified model type or for the specified model type and model ID. You can also get details for a single, specified model version", + Privilege: "DescribeModelVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the data validation report of a specific batch import job", + Privilege: "GetBatchImportJobValidationReport", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all batch import jobs or a specific job if you specify a job ID", + Privilege: "GetBatchImportJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all batch prediction jobs or a specific job if you specify a job ID. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 1 and 50. To get the next page results, provide the pagination token from the GetBatchPredictionJobsResponse as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetBatchPredictionJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a specific event type DeleteEventsByEventType API execution status", + Privilege: "GetDeleteEventsByEventTypeStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a particular detector version", + Privilege: "GetDetectorVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all detectors or a single detector if a detectorId is specified. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetDetectorsResponse as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetDetectors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all entity types or a specific entity type if a name is specified. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetEntityTypesResponse as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetEntityTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity-type", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the details of the specified event", + Privilege: "GetEvent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to evaluate an event against a detector version. If a version ID is not provided, the detector's (ACTIVE) version is used", + Privilege: "GetEventPrediction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get more details of a particular prediction", + Privilege: "GetEventPredictionMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all event types or a specific event type if name is provided. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetEventTypesResponse as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetEventTypes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get the details for one or more Amazon SageMaker models that have been imported into the service. This is a paginated API. If you provide a null maxResults, this actions retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetExternalModelsResult as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetExternalModels", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the encryption key if a Key Management Service (KMS) customer master key (CMK) has been specified to be used to encrypt content in Amazon Fraud Detector", + Privilege: "GetKMSEncryptionKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all labels or a specific label if name is provided. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 10 and 50. To get the next page results, provide the pagination token from the GetGetLabelsResponse as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetLabels", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get elements of a list", + Privilege: "GetListElements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get metadata about lists", + Privilege: "GetListsMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the details of the specified model version", + Privilege: "GetModelVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get one or more models. Gets all models for the AWS account if no model type and no model id provided. Gets all models for the AWS account and model type, if the model type is specified but model id is not provided. Gets a specific model if (model type, model id) tuple is specified", + Privilege: "GetModels", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get one or more outcomes. This is a paginated API. If you provide a null maxResults, this actions retrieves a maximum of 100 records per page. If you provide a maxResults, the value must be between 50 and 100. To get the next page results, provide the pagination token from the GetOutcomesResult as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "GetOutcomes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "outcome", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all rules for a detector (paginated) if ruleId and ruleVersion are not specified. Gets all rules for the detector and the ruleId if present (paginated). Gets a specific rule if both the ruleId and the ruleVersion are specified", + Privilege: "GetRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get all of the variables or the specific variable. This is a paginated API. Providing null maxSizePerPage results in retrieving maximum of 100 records per page. If you provide maxSizePerPage the value must be between 50 and 100. To get the next page result, a provide a pagination token from GetVariablesResult as part of your request. Null pagination token fetches the records from the beginning", + Privilege: "GetVariables", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of past predictions", + Privilege: "ListEventPredictions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all tags associated with the resource. This is a paginated API. To get the next page results, provide the pagination token from the response as part of your request. A null pagination token fetches the records from the beginning", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity-type", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "outcome", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update a detector", + Privilege: "PutDetector", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an entity type. An entity represents who is performing the event. As part of a fraud prediction, you pass the entity ID to indicate the specific entity who performed the event. An entity type classifies the entity. Example classifications include customer, merchant, or account", + Privilege: "PutEntityType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an event type. An event is a business activity that is evaluated for fraud risk. With Amazon Fraud Detector, you generate fraud predictions for events. An event type defines the structure for an event sent to Amazon Fraud Detector. This includes the variables sent as part of the event, the entity performing the event (such as a customer), and the labels that classify the event. Example event types include online payment transactions, account registrations, and authentications", + Privilege: "PutEventType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an Amazon SageMaker model endpoint. You can also use this action to update the configuration of the model endpoint, including the IAM role and/or the mapped variables", + Privilege: "PutExternalModel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to specify the Key Management Service (KMS) customer master key (CMK) to be used to encrypt content in Amazon Fraud Detector", + Privilege: "PutKMSEncryptionKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update label. A label classifies an event as fraudulent or legitimate. Labels are associated with event types and used to train supervised machine learning models in Amazon Fraud Detector", + Privilege: "PutLabel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update an outcome", + Privilege: "PutOutcome", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "outcome*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send event", + Privilege: "SendEvent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to assign tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity-type", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "outcome", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-import", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batch-prediction", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity-type", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "outcome", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a detector version. The detector version attributes that you can update include models, external model endpoints, rules, rule execution mode, and description. You can only update a DRAFT detector version", + Privilege: "UpdateDetectorVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "external-model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the detector version's description. You can update the metadata for any detector version (DRAFT, ACTIVE, or INACTIVE)", + Privilege: "UpdateDetectorVersionMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the detector version's status. You can perform the following promotions or demotions using UpdateDetectorVersionStatus: DRAFT to ACTIVE, ACTIVE to INACTIVE, and INACTIVE to ACTIVE", + Privilege: "UpdateDetectorVersionStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "detector-version*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing event record's label value", + Privilege: "UpdateEventLabel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-type*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a list", + Privilege: "UpdateList", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "list*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a model. You can update the description attribute using this action", + Privilege: "UpdateModel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a model version. Updating a model version retrains an existing model version using updated training data and produces a new minor version of the model. You can update the training data set location and data access role attributes using this action. This action creates and trains a new minor version of the model, for example version 1.01, 1.02, 1.03", + Privilege: "UpdateModelVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the status of a model version", + Privilege: "UpdateModelVersionStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a rule's metadata. The description attribute can be updated", + Privilege: "UpdateRuleMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a rule version resulting in a new rule version. Updates a rule version resulting in a new rule version (version 1, 2, 3 ...)", + Privilege: "UpdateRuleVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a variable", + Privilege: "UpdateVariable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "variable*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:batch-prediction/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "batch-prediction", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:detector/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "detector", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:detector-version/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "detector-version", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:entity-type/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "entity-type", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:external-model/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "external-model", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:event-type/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "event-type", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:label/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "label", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:model/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:model-version/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model-version", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:outcome/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "outcome", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:rule/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rule", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:variable/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "variable", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:batch-import/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "batch-import", + }, + { + Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:list/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "list", + }, + }, + ServiceName: "Amazon Fraud Detector", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tag key present in the request that the user makes to Amazon FreeRTOS", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key component attached to an Amazon FreeRTOS resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names associated with the resource in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "freertos", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a software configuration", + Privilege: "CreateSoftwareConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a subscription for FreeRTOS extended maintenance plan (EMP)", + Privilege: "CreateSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the software configuration", + Privilege: "DeleteSoftwareConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the hardware platform", + Privilege: "DescribeHardwarePlatform", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the software configuration", + Privilege: "DescribeSoftwareConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describes the subscription for FreeRTOS extended maintenance plan (EMP)", + Privilege: "DescribeSubscription", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subscription*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get URL for sotware patch-release, patch-diff and release notes under FreeRTOS extended maintenance plan (EMP)", + Privilege: "GetEmpPatchUrl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the URL for Amazon FreeRTOS software download", + Privilege: "GetSoftwareURL", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the URL for Amazon FreeRTOS software download based on the configuration", + Privilege: "GetSoftwareURLForConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the subscription billing amount for FreeRTOS extended maintenance plan (EMP)", + Privilege: "GetSubscriptionBillingAmount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to lists versions of AmazonFreeRTOS", + Privilege: "ListFreeRTOSVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the hardware platforms", + Privilege: "ListHardwarePlatforms", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the hardware vendors", + Privilege: "ListHardwareVendors", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to lists the software configurations", + Privilege: "ListSoftwareConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list software patches of subscription for FreeRTOS extended maintenance plan (EMP)", + Privilege: "ListSoftwarePatches", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the subscription emails for FreeRTOS extended maintenance plan (EMP)", + Privilege: "ListSubscriptionEmails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the subscriptions for FreeRTOS extended maintenance plan (EMP)", + Privilege: "ListSubscriptions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update list of subscription email address for FreeRTOS extended maintenance plan (EMP)", + Privilege: "UpdateEmailRecipients", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the software configuration", + Privilege: "UpdateSoftwareConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to verify the email for FreeRTOS extended maintenance plan (EMP)", + Privilege: "VerifyEmail", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:freertos:${Region}:${Account}:configuration/${ConfigurationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configuration", + }, + { + Arn: "arn:${Partition}:freertos:${Region}:${Account}:subscription/${SubscriptionID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "subscription", + }, + }, + ServiceName: "Amazon FreeRTOS", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "freetier", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to get free tier alert preference (email address)", + Privilege: "GetFreeTierAlertPreference", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get free tier usage limits and MTD usage status", + Privilege: "GetFreeTierUsage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set free tier alert preference (email address)", + Privilege: "PutFreeTierAlertPreference", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Free Tier", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "fsx:IsBackupCopyDestination", + Description: "Filters access by whether the backup is a destination backup for a CopyBackup operation", + Type: "Bool", + }, + { + Condition: "fsx:IsBackupCopySource", + Description: "Filters access by whether the backup is a source backup for a CopyBackup operation", + Type: "Bool", + }, + { + Condition: "fsx:NfsDataRepositoryAuthenticationEnabled", + Description: "Filters access by NFS data repositories which support authentication", + Type: "Bool", + }, + { + Condition: "fsx:NfsDataRepositoryEncryptionInTransitEnabled", + Description: "Filters access by NFS data repositories which support encryption-in-transit", + Type: "Bool", + }, + { + Condition: "fsx:ParentVolumeId", + Description: "Filters access by the containing parent volume for mutating volume operations", + Type: "String", + }, + { + Condition: "fsx:StorageVirtualMachineId", + Description: "Filters access by the containing storage virtual machine for a volume for mutating volume operations", + Type: "String", + }, + }, + Prefix: "fsx", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a File Gateway instance with an Amazon FSx for Windows File Server file system", + Privilege: "AssociateFileGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate DNS aliases with an Amazon FSx for Windows File Server file system", + Privilege: "AssociateFileSystemAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to allow deletion of an FSx for ONTAP SnapLock Enterprise volume that contains WORM (write once, read many) files with active retention periods", + Privilege: "BypassSnaplockEnterpriseRetention", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a data repository task", + Privilege: "CancelDataRepositoryTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to copy a backup", + Privilege: "CopyBackup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "backup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing volume by using a snapshot from another Amazon FSx for OpenZFS file system", + Privilege: "CopySnapshotAndUpdateVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new backup of an Amazon FSx file system or an Amazon FSx volume", + Privilege: "CreateBackup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "backup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new data respository association for an Amazon FSx for Lustre file system", + Privilege: "CreateDataRepositoryAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "association*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new data respository task for an Amazon FSx for Lustre file system", + Privilege: "CreateDataRepositoryTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new, empty, Amazon file cache", + Privilege: "CreateFileCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:GetSecurityGroupsForVpc", + "fsx:CreateDataRepositoryAssociation", + "fsx:TagResource", + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents", + "s3:ListBucket", + }, + ResourceType: "file-cache*", + }, + { + ConditionKeys: []string{ + "fsx:NfsDataRepositoryEncryptionInTransitEnabled", + "fsx:NfsDataRepositoryAuthenticationEnabled", + }, + DependentActions: []string{}, + ResourceType: "association", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new, empty, Amazon FSx file system", + Privilege: "CreateFileSystem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:GetSecurityGroupsForVpc", + "fsx:TagResource", + }, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Amazon FSx file system from an existing backup", + Privilege: "CreateFileSystemFromBackup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:GetSecurityGroupsForVpc", + "fsx:TagResource", + }, + ResourceType: "backup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new snapshot on a volume", + Privilege: "CreateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new storage virtual machine in an Amazon FSx for Ontap file system", + Privilege: "CreateStorageVirtualMachine", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new volume", + Privilege: "CreateVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "fsx:StorageVirtualMachineId", + "fsx:ParentVolumeId", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new volume from backup", + Privilege: "CreateVolumeFromBackup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "backup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "fsx:StorageVirtualMachineId", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a backup, deleting its contents. After deletion, the backup no longer exists, and its data is no longer available", + Privilege: "DeleteBackup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a data repository association", + Privilege: "DeleteDataRepositoryAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a file cache, deleting its contents", + Privilege: "DeleteFileCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:DeleteDataRepositoryAssociation", + }, + ResourceType: "file-cache*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a file system, deleting its contents and any existing automatic backups of the file system", + Privilege: "DeleteFileSystem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:CreateBackup", + "fsx:TagResource", + }, + ResourceType: "file-system*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Required to manage cross-account sharing of FSx volumes through AWS Resource Access Manager (RAM). PutResourcePolicy and GetResourcePolicy are also required", + Privilege: "DeleteResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot on a volume", + Privilege: "DeleteSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a storage virtual machine, deleting its contents", + Privilege: "DeleteStorageVirtualMachine", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a volume, deleting its contents and any existing automatic backups of the volume", + Privilege: "DeleteVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "fsx:TagResource", + }, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "fsx:StorageVirtualMachineId", + "fsx:ParentVolumeId", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the File Gateway instances associated with an Amazon FSx for Windows File Server file system", + Privilege: "DescribeAssociatedFileGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all backups owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeBackups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all data repository associations owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeDataRepositoryAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all data repository tasks owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeDataRepositoryTasks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all file caches owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeFileCaches", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the description of all DNS aliases owned by your Amazon FSx for Windows File Server file system", + Privilege: "DescribeFileSystemAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all file systems owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeFileSystems", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of whether FSx route table updates from participant accounts are allowed in your account", + Privilege: "DescribeSharedVpcConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all snapshots owned by your AWS account in the AWS Region of the endpoint you're calling", + Privilege: "DescribeSnapshots", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all storage virtual machines owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeStorageVirtualMachines", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the descriptions of all volumes owned by your AWS account in the AWS Region of the endpoint that you're calling", + Privilege: "DescribeVolumes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a File Gateway instance from an Amazon FSx for Windows File Server file system", + Privilege: "DisassociateFileGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate file system aliases with an Amazon FSx for Windows File Server file system", + Privilege: "DisassociateFileSystemAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Required to manage cross-account sharing of FSx volumes through AWS Resource Access Manager (RAM). PutResourcePolicy and DeleteResourcePolicy are also required", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for an Amazon FSx resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-cache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to manage backup principal associations through AWS Backup", + Privilege: "ManageBackupPrincipalAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Required to manage cross-account sharing of FSx volumes through AWS Resource Access Manager (RAM). DeleteResourcePolicy and GetResourcePolicy are also required", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to release file system NFS V3 locks", + Privilege: "ReleaseFileSystemNfsV3Locks", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore volume state from a snapshot", + Privilege: "RestoreVolumeFromSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start misconfigured state recovery", + Privilege: "StartMisconfiguredStateRecovery", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an Amazon FSx resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-cache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from an Amazon FSx resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "backup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-cache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update data repository association configuration", + Privilege: "UpdateDataRepositoryAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update file cache configuration", + Privilege: "UpdateFileCache", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-cache*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update file system configuration", + Privilege: "UpdateFileSystem", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "file-system*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or disable FSx route table updates from participant accounts in your account", + Privilege: "UpdateSharedVpcConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update snapshot configuration", + Privilege: "UpdateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update storage virtual machine configuration", + Privilege: "UpdateStorageVirtualMachine", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "storage-virtual-machine*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update volume configuration", + Privilege: "UpdateVolume", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "fsx:StorageVirtualMachineId", + "fsx:ParentVolumeId", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:file-system/${FileSystemId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "file-system", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:file-cache/${FileCacheId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "file-cache", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:backup/${BackupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "backup", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:storage-virtual-machine/${FileSystemId}/${StorageVirtualMachineId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "storage-virtual-machine", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:task/${TaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "task", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:association/${FileSystemIdOrFileCacheId}/${DataRepositoryAssociationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "association", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:volume/${FileSystemId}/${VolumeId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "volume", + }, + { + Arn: "arn:${Partition}:fsx:${Region}:${Account}:snapshot/${VolumeId}/${SnapshotId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "snapshot", + }, + }, + ServiceName: "Amazon FSx", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "gamelift", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to register player acceptance or rejection of a proposed FlexMatch match", + Privilege: "AcceptMatch", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to locate and reserve a game server to host a new game session", + Privilege: "ClaimGameServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to define a new alias for a fleet", + Privilege: "CreateAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new game build using files stored in an Amazon S3 bucket", + Privilege: "CreateBuild", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + "iam:PassRole", + "s3:GetObject", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new container fleet of computing resources to run your game servers", + Privilege: "CreateContainerFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:DescribeAvailabilityZones", + "ec2:DescribeRegions", + "gamelift:TagResource", + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new container group definition using images stored in an Amazon ECR repository", + Privilege: "CreateContainerGroupDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetAuthorizationToken", + "ecr:GetDownloadUrlForLayer", + "gamelift:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new fleet of computing resources to run your game servers", + Privilege: "CreateFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:DescribeAvailabilityZones", + "ec2:DescribeRegions", + "gamelift:TagResource", + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to specify additional locations for a fleet", + Privilege: "CreateFleetLocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeAvailabilityZones", + "ec2:DescribeRegions", + }, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new game server group, set up a corresponding Auto Scaling group, and launche instances to host game servers", + Privilege: "CreateGameServerGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "autoscaling:CreateAutoScalingGroup", + "autoscaling:DescribeAutoScalingGroups", + "autoscaling:PutLifecycleHook", + "autoscaling:PutScalingPolicy", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSubnets", + "events:PutRule", + "events:PutTargets", + "gamelift:TagResource", + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a new game session on a specified fleet", + Privilege: "CreateGameSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set up a new queue for processing game session placement requests", + Privilege: "CreateGameSessionQueue", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to define a new location for a fleet", + Privilege: "CreateLocation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new FlexMatch matchmaker", + Privilege: "CreateMatchmakingConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new matchmaking rule set for FlexMatch", + Privilege: "CreateMatchmakingRuleSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reserve an available game session slot for a player", + Privilege: "CreatePlayerSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reserve available game session slots for multiple players", + Privilege: "CreatePlayerSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Realtime Servers script", + Privilege: "CreateScript", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gamelift:TagResource", + "iam:PassRole", + "s3:GetObject", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to allow GameLift to create or delete a peering connection between a GameLift fleet VPC and a VPC on another AWS account", + Privilege: "CreateVpcPeeringAuthorization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AcceptVpcPeeringConnection", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateRoute", + "ec2:DeleteRoute", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroups", + "ec2:RevokeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to establish a peering connection between your GameLift fleet VPC and a VPC on another account", + Privilege: "CreateVpcPeeringConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an alias", + Privilege: "DeleteAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a game build", + Privilege: "DeleteBuild", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a container fleet", + Privilege: "DeleteContainerFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a container group definition", + Privilege: "DeleteContainerGroupDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerGroupDefinition*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an empty fleet", + Privilege: "DeleteFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete locations for a fleet", + Privilege: "DeleteFleetLocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to permanently delete a game server group and terminate FleetIQ activity for the corresponding Auto Scaling group", + Privilege: "DeleteGameServerGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "autoscaling:DeleteAutoScalingGroup", + "autoscaling:DescribeAutoScalingGroups", + "autoscaling:ExitStandby", + "autoscaling:ResumeProcesses", + "autoscaling:SetInstanceProtection", + "autoscaling:UpdateAutoScalingGroup", + }, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing game session queue", + Privilege: "DeleteGameSessionQueue", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameSessionQueue*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a location", + Privilege: "DeleteLocation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "location*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing FlexMatch matchmaker", + Privilege: "DeleteMatchmakingConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingConfiguration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing FlexMatch matchmaking rule set", + Privilege: "DeleteMatchmakingRuleSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingRuleSet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a set of auto-scaling rules", + Privilege: "DeleteScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a Realtime Servers script", + Privilege: "DeleteScript", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "script*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a VPC peering authorization", + Privilege: "DeleteVpcPeeringAuthorization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a peering connection between VPCs", + Privilege: "DeleteVpcPeeringConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister a compute against a fleet", + Privilege: "DeregisterCompute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a game server from a game server group", + Privilege: "DeregisterGameServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for an alias", + Privilege: "DescribeAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for a game build", + Privilege: "DescribeBuild", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information for a compute in a fleet", + Privilege: "DescribeCompute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the properties of an existing container fleet", + Privilege: "DescribeContainerFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the properties of an existing container group definition", + Privilege: "DescribeContainerGroupDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerGroupDefinition*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the maximum allowed and current usage for EC2 instance types", + Privilege: "DescribeEC2InstanceLimits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve general properties, including status, for fleets", + Privilege: "DescribeFleetAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the current capacity settings for managed fleets", + Privilege: "DescribeFleetCapacity", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the properties of an existing fleet deployment", + Privilege: "DescribeFleetDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve entries from a fleet's event log", + Privilege: "DescribeFleetEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve general properties, including statuses, for a fleet's locations", + Privilege: "DescribeFleetLocationAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the current capacity setting for a fleet's location", + Privilege: "DescribeFleetLocationCapacity", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve utilization statistics for fleet's location", + Privilege: "DescribeFleetLocationUtilization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the inbound connection permissions for a fleet", + Privilege: "DescribeFleetPortSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve utilization statistics for fleets", + Privilege: "DescribeFleetUtilization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for a game server", + Privilege: "DescribeGameServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for a game server group", + Privilege: "DescribeGameServerGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the status of EC2 instances in a game server group", + Privilege: "DescribeGameServerInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for game sessions in a fleet, including the protection policy", + Privilege: "DescribeGameSessionDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details of a game session placement request", + Privilege: "DescribeGameSessionPlacement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for game session queues", + Privilege: "DescribeGameSessionQueues", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for game sessions in a fleet", + Privilege: "DescribeGameSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about instances in a managed fleet", + Privilege: "DescribeInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details of matchmaking tickets", + Privilege: "DescribeMatchmaking", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for FlexMatch matchmakers", + Privilege: "DescribeMatchmakingConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for FlexMatch matchmaking rule sets", + Privilege: "DescribeMatchmakingRuleSets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for player sessions in a game session", + Privilege: "DescribePlayerSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the current runtime configuration for a fleet", + Privilege: "DescribeRuntimeConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all scaling policies that are applied to a fleet", + Privilege: "DescribeScalingPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve properties for a Realtime Servers script", + Privilege: "DescribeScript", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "script*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve valid VPC peering authorizations", + Privilege: "DescribeVpcPeeringAuthorizations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details on active or pending VPC peering connections", + Privilege: "DescribeVpcPeeringConnections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve credentials to remotely access a compute in a managed fleet", + Privilege: "GetComputeAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an authentication token that allows processes on a compute to send requests to the Amazon GameLift service", + Privilege: "GetComputeAuthToken", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the location of stored logs for a game session", + Privilege: "GetGameSessionLogUrl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to request remote access to a specified fleet instance", + Privilege: "GetInstanceAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all aliases that are defined in the current Region", + Privilege: "ListAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all game build in the current Region", + Privilege: "ListBuilds", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all compute resources in the current Region", + Privilege: "ListCompute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the properties of all existing container fleets in the current Region", + Privilege: "ListContainerFleets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the properties of all versions of an existing container group definition", + Privilege: "ListContainerGroupDefinitionVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerGroupDefinition*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the properties of all existing container group definitions in the current Region", + Privilege: "ListContainerGroupDefinitions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the properties of all existing fleet deployments in the current Region", + Privilege: "ListFleetDeployments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of fleet IDs for all fleets in the current Region", + Privilege: "ListFleets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all game server groups that are defined in the current Region", + Privilege: "ListGameServerGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all game servers that are currently running in a game server group", + Privilege: "ListGameServers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all locations in this account", + Privilege: "ListLocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve properties for all Realtime Servers scripts in the current region", + Privilege: "ListScripts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve tags for GameLift resources", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerGroupDefinition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameSessionQueue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "location", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingRuleSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "script", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update a fleet auto-scaling policy", + Privilege: "PutScalingPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register a compute against a fleet", + Privilege: "RegisterCompute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to notify GameLift FleetIQ when a new game server is ready to host gameplay", + Privilege: "RegisterGameServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve fresh upload credentials to use when uploading a new game build", + Privilege: "RequestUploadCredentials", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the fleet ID associated with an alias", + Privilege: "ResolveAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reinstate suspended FleetIQ activity for a game server group", + Privilege: "ResumeGameServerGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve game sessions that match a set of search criteria", + Privilege: "SearchGameSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to resume auto-scaling activity on a fleet after it was suspended with StopFleetActions()", + Privilege: "StartFleetActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a game session placement request to a game session queue", + Privilege: "StartGameSessionPlacement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameSessionQueue*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to request FlexMatch matchmaking to fill available player slots in an existing game session", + Privilege: "StartMatchBackfill", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to request FlexMatch matchmaking for one or a group of players and initiate game session placement", + Privilege: "StartMatchmaking", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to suspend auto-scaling activity on a fleet", + Privilege: "StopFleetActions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a game session placement request that is in progress", + Privilege: "StopGameSessionPlacement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a matchmaking or match backfill request that is in progress", + Privilege: "StopMatchmaking", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to temporarily stop FleetIQ activity for a game server group", + Privilege: "SuspendGameServerGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag GameLift resources", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerGroupDefinition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameSessionQueue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "location", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingRuleSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "script", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to shut down an existing game session", + Privilege: "TerminateGameSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag GameLift resources", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerGroupDefinition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameSessionQueue", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "location", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingRuleSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "script", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the properties of an existing alias", + Privilege: "UpdateAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing build's metadata", + Privilege: "UpdateBuild", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "build*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing container fleet", + Privilege: "UpdateContainerFleet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the properties of an existing container group definition", + Privilege: "UpdateContainerGroupDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ecr:BatchGetImage", + "ecr:DescribeImages", + "ecr:GetAuthorizationToken", + "ecr:GetDownloadUrlForLayer", + }, + ResourceType: "containerGroupDefinition*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the general properties of an existing fleet", + Privilege: "UpdateFleetAttributes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to adjust a managed fleet's capacity settings", + Privilege: "UpdateFleetCapacity", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "containerFleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to adjust a fleet's port settings", + Privilege: "UpdateFleetPortSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change game server properties, health status, or utilization status", + Privilege: "UpdateGameServer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties for game server group, including allowed instance types", + Privilege: "UpdateGameServerGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "gameServerGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the properties of an existing game session", + Privilege: "UpdateGameSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of an existing game session queue", + Privilege: "UpdateGameSessionQueue", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gameSessionQueue*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of an existing FlexMatch matchmaking configuration", + Privilege: "UpdateMatchmakingConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "matchmakingConfiguration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update how server processes are configured on instances in an existing fleet", + Privilege: "UpdateRuntimeConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the metadata and content of an existing Realtime Servers script", + Privilege: "UpdateScript", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "s3:GetObject", + }, + ResourceType: "script*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to validate the syntax of a FlexMatch matchmaking rule set", + Privilege: "ValidateMatchmakingRuleSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:gamelift:${Region}::alias/${AliasId}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:AllocationId", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Domain", - "ec2:PublicIpAddress", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "elastic-ip", + Resource: "alias", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:build/${BuildId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "build", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:containergroupdefinition/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "containerGroupDefinition", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:containerfleet/${FleetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "containerFleet", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:fleet/${FleetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "fleet", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:gameservergroup/${GameServerGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "gameServerGroup", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:gamesessionqueue/${GameSessionQueueName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "gameSessionQueue", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:location/${LocationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "location", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:matchmakingconfiguration/${MatchmakingConfigurationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "matchmakingConfiguration", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:matchmakingruleset/${MatchmakingRuleSetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "matchmakingRuleSet", + }, + { + Arn: "arn:${Partition}:gamelift:${Region}:${Account}:script/${ScriptId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "script", + }, + }, + ServiceName: "Amazon GameLift", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "gameliftstreams", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to attach a StreamGroup remote location", + Privilege: "AddStreamGroupLocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate Applications to a StreamGroup", + Privilege: "AssociateApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gameliftstreams:TagResource", + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a StreamGroup", + Privilege: "CreateStreamGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "gameliftstreams:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a stream session connection", + Privilege: "CreateStreamSessionConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a StreamGroup", + Privilege: "DeleteStreamGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate Applications from a StreamGroup", + Privilege: "DisassociateApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export stream session files that your application generates", + Privilege: "ExportStreamSessionFiles", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:PutObject", + }, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an application", + Privilege: "GetApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants `permission` to get a StreamGroup", + Privilege: "GetStreamGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a stream session", + Privilege: "GetStreamSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list applications", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list StreamGroups", + Privilege: "ListStreamGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list stream sessions", + Privilege: "ListStreamSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list stream sessions", + Privilege: "ListStreamSessionsByAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach a StreamGroup remote location", + Privilege: "RemoveStreamGroupLocations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a stream session", + Privilege: "StartStreamSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to terminate a stream session", + Privilege: "TerminateStreamSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a StreamGroup", + Privilege: "UpdateStreamGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream group*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:gameliftstreams:${Region}:${Account}:application/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:gameliftstreams:${Region}:${Account}:streamgroup/${StreamGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "stream group", + }, + }, + ServiceName: "Amazon GameLift Streams", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the tag keys that are passed in the request", + Type: "String", + }, + }, + Prefix: "gamesparks", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a game", + Privilege: "CreateGame", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a snapshot of a game", + Privilege: "CreateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a stage in a game", + Privilege: "CreateStage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a game", + Privilege: "DeleteGame", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a stage from a game", + Privilege: "DeleteStage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disconnect a player from the game runtime", + Privilege: "DisconnectPlayer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to export a snapshot of the game configuration", + Privilege: "ExportSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about an extension", + Privilege: "GetExtension", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about an extension version", + Privilege: "GetExtensionVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about a game", + Privilege: "GetGame", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the configuration for the game", + Privilege: "GetGameConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about a job that is generating code for a snapshot", + Privilege: "GetGeneratedCodeJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the status of a player connection", + Privilege: "GetPlayerConnectionStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a snapshot of the game", + Privilege: "GetSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to gets information about a stage", + Privilege: "GetStage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a stage deployment", + Privilege: "GetStageDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a snapshot of a game configuration", + Privilege: "ImportGameConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to invoke backend services for a specific game", + Privilege: "InvokeBackend", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the extension versions", + Privilege: "ListExtensionVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the extensions", + Privilege: "ListExtensions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the games", + Privilege: "ListGames", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of code generation jobs for a snapshot", + Privilege: "ListGeneratedCodeJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of snapshot summaries for a game", + Privilege: "ListSnapshots", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of stage deployment summaries for a game", + Privilege: "ListStageDeployments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of stage summaries for a game", + Privilege: "ListStages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags associated with a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage", + }, + }, }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation-fleet/${CapacityReservationFleetId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to start an asynchronous process that generates client code for system-defined and custom messages", + Privilege: "StartGeneratedCodeJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "capacity-reservation-fleet", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:capacity-reservation/${CapacityReservationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:CapacityReservationFleet", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to deploy a snapshot to a stage and creates a new game runtime", + Privilege: "StartStageDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "capacity-reservation", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:carrier-gateway/${CarrierGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:Vpc", + AccessLevel: "Tagging", + Description: "Grants permission to adds tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "carrier-gateway", }, { - Arn: "arn:${Partition}:acm:${Region}:${Account}:certificate/${CertificateId}", - ConditionKeys: []string{}, - Resource: "certificate", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage", + }, + }, }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:client-vpn-endpoint/${ClientVpnEndpointId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ClientRootCertificateChainArn", - "ec2:CloudwatchLogGroupArn", - "ec2:CloudwatchLogStreamArn", - "ec2:DirectoryArn", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:SamlProviderArn", - "ec2:ServerCertificateArn", + AccessLevel: "Write", + Description: "Grants permission to change the metadata of a game", + Privilege: "UpdateGame", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "client-vpn-endpoint", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:customer-gateway/${CustomerGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to change the working copy of the game configuration", + Privilege: "UpdateGameConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "customer-gateway", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:dedicated-host/${DedicatedHostId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AutoPlacement", - "ec2:AvailabilityZone", - "ec2:HostRecovery", - "ec2:InstanceType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Quantity", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update the metadata of a snapshot", + Privilege: "UpdateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "dedicated-host", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:dhcp-options/${DhcpOptionsId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:DhcpOptionsID", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update the metadata of a stage", + Privilege: "UpdateStage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "game*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stage*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "dhcp-options", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:egress-only-internet-gateway/${EgressOnlyInternetGatewayId}", + Arn: "arn:${Partition}:gamesparks:${Region}:${Account}:game/${GameId}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "egress-only-internet-gateway", + Resource: "game", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:elastic-gpu/${ElasticGpuId}", + Arn: "arn:${Partition}:gamesparks:${Region}:${Account}:game/${GameId}/stage/${StageName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:ElasticGpuType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "elastic-gpu", + Resource: "stage", }, + }, + ServiceName: "Amazon GameSparks", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:elastic-inference:${Region}:${Account}:elastic-inference-accelerator/${AcceleratorId}", - ConditionKeys: []string{}, - Resource: "elastic-inference", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", + Type: "String", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:export-image-task/${ExportImageTaskId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in a request", + Type: "ArrayOfString", + }, + { + Condition: "geo:DeviceIds", + Description: "Filters access by the presence of device ids in the request", + Type: "ArrayOfString", + }, + { + Condition: "geo:GeofenceIds", + Description: "Filters access by the presence of geofence ids in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "geo", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an association between a geofence-collection and a tracker resource", + Privilege: "AssociateTrackerConsumer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, }, - Resource: "export-image-task", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:export-instance-task/${ExportTaskId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to delete a batch of device position histories from a tracker resource", + Privilege: "BatchDeleteDevicePositionHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "geo:DeviceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "export-instance-task", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:fleet/${FleetId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to delete a batch of geofences from a geofence collection", + Privilege: "BatchDeleteGeofence", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + { + ConditionKeys: []string{ + "geo:GeofenceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "fleet", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:fpga-image/${FpgaImageId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Owner", - "ec2:Public", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to evaluate device positions against the position of geofences in a given geofence collection", + Privilege: "BatchEvaluateGeofences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, }, - Resource: "fpga-image", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:host-reservation/${HostReservationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to send a batch request to retrieve device positions", + Privilege: "BatchGetDevicePosition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "geo:DeviceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a batch request for adding geofences into a given geofence collection", + Privilege: "BatchPutGeofence", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + { + ConditionKeys: []string{ + "geo:GeofenceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upload a position update for one or more devices to a tracker resource", + Privilege: "BatchUpdateDevicePosition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "geo:DeviceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to calculate routes using a given route calculator resource", + Privilege: "CalculateRoute", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to calculate a route matrix using a given route calculator resource", + Privilege: "CalculateRouteMatrix", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a geofence-collection", + Privilege: "CreateGeofenceCollection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an API key resource", + Privilege: "CreateKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a map resource", + Privilege: "CreateMap", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a place index resource", + Privilege: "CreatePlaceIndex", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a route calculator resource", + Privilege: "CreateRouteCalculator", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a tracker resource", + Privilege: "CreateTracker", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a geofence-collection", + Privilege: "DeleteGeofenceCollection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an API key resource", + Privilege: "DeleteKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a map resource", + Privilege: "DeleteMap", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a place index resource", + Privilege: "DeletePlaceIndex", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a route calculator resource", + Privilege: "DeleteRouteCalculator", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a tracker resource", + Privilege: "DeleteTracker", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve geofence collection details", + Privilege: "DescribeGeofenceCollection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve API key resource details and secret", + Privilege: "DescribeKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve map resource details", + Privilege: "DescribeMap", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve place-index resource details", + Privilege: "DescribePlaceIndex", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve route calculator resource details", + Privilege: "DescribeRouteCalculator", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a tracker resource details", + Privilege: "DescribeTracker", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the association between a tracker resource and a geofence-collection", + Privilege: "DisassociateTrackerConsumer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to forecast events for geofences stored in a given geofence collection", + Privilege: "ForecastGeofenceEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the latest device position", + Privilege: "GetDevicePosition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "geo:DeviceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the device position history", + Privilege: "GetDevicePositionHistory", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "geo:DeviceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the geofence details from a geofence-collection", + Privilege: "GetGeofence", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + { + ConditionKeys: []string{ + "geo:GeofenceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the glyph file for a map resource", + Privilege: "GetMapGlyphs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the sprite file for a map resource", + Privilege: "GetMapSprites", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the map style descriptor from a map resource", + Privilege: "GetMapStyleDescriptor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the map tile from the map resource", + Privilege: "GetMapTile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to find a place by its unique ID", + Privilege: "GetPlace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of devices and their latest positions from the given tracker resource", + Privilege: "ListDevicePositions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to lists geofence-collections", + Privilege: "ListGeofenceCollections", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list geofences stored in a given geofence collection", + Privilege: "ListGeofences", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list API key resources", + Privilege: "ListKeys", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list map resources", + Privilege: "ListMaps", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of place index resources", + Privilege: "ListPlaceIndexes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of route calculator resources", + Privilege: "ListRouteCalculators", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags (metadata) which you have assigned to the resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of geofence collections currently associated to the given tracker resource", + Privilege: "ListTrackerConsumers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of tracker resources", + Privilege: "ListTrackers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a new geofence or update an existing geofence to a given geofence-collection", + Privilege: "PutGeofence", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, + { + ConditionKeys: []string{ + "geo:GeofenceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to reverse geocodes a given coordinate", + Privilege: "SearchPlaceIndexForPosition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, }, - Resource: "host-reservation", }, { - Arn: "arn:${Partition}:ec2:${Region}::image/${ImageId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:ImageID", - "ec2:ImageType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Owner", - "ec2:Public", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", + AccessLevel: "Read", + Description: "Grants permission to generate suggestions for addresses and points of interest based on partial or misspelled free-form text", + Privilege: "SearchPlaceIndexForSuggestions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, }, - Resource: "image", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:import-image-task/${ImportImageTaskId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to geocode free-form text, such as an address, name, city or region", + Privilege: "SearchPlaceIndexForText", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, }, - Resource: "import-image-task", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:import-snapshot-task/${ImportSnapshotTaskId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Tagging", + Description: "Grants permission to adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "import-snapshot-task", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance-connect-endpoint/${InstanceConnectEndpointId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", + AccessLevel: "Tagging", + Description: "Grants permission to remove the given tags (metadata) from the resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "instance-connect-endpoint", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance-event-window/${InstanceEventWindowId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a geofence collection", + Privilege: "UpdateGeofenceCollection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "geofence-collection*", + }, }, - Resource: "instance-event-window", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:EbsOptimized", - "ec2:InstanceAutoRecovery", - "ec2:InstanceID", - "ec2:InstanceMarketType", - "ec2:InstanceMetadataTags", - "ec2:InstanceProfile", - "ec2:InstanceType", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:MetadataHttpEndpoint", - "ec2:MetadataHttpPutResponseHopLimit", - "ec2:MetadataHttpTokens", - "ec2:NewInstanceProfile", - "ec2:PlacementGroup", - "ec2:ProductCode", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:RootDeviceType", - "ec2:Tenancy", + AccessLevel: "Write", + Description: "Grants permission to update an API key resource", + Privilege: "UpdateKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "api-key*", + }, }, - Resource: "instance", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:internet-gateway/${InternetGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:InternetGatewayID", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a map resource", + Privilege: "UpdateMap", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "map*", + }, }, - Resource: "internet-gateway", }, { - Arn: "arn:${Partition}:ec2::${Account}:ipam/${IpamId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a place index resource", + Privilege: "UpdatePlaceIndex", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "place-index*", + }, }, - Resource: "ipam", }, { - Arn: "arn:${Partition}:ec2::${Account}:ipam-pool/${IpamPoolId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a route calculator resource", + Privilege: "UpdateRouteCalculator", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "route-calculator*", + }, }, - Resource: "ipam-pool", }, { - Arn: "arn:${Partition}:ec2::${Account}:ipam-resource-discovery-association/${IpamResourceDiscoveryAssociationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a tracker resource", + Privilege: "UpdateTracker", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, }, - Resource: "ipam-resource-discovery-association", }, { - Arn: "arn:${Partition}:ec2::${Account}:ipam-resource-discovery/${IpamResourceDiscoveryId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to verify a device position", + Privilege: "VerifyDevicePosition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tracker*", + }, + { + ConditionKeys: []string{ + "geo:DeviceIds", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "ipam-resource-discovery", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2::${Account}:ipam-scope/${IpamScopeId}", + Arn: "arn:${Partition}:geo:${Region}:${Account}:api-key/${KeyName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "ipam-scope", + Resource: "api-key", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:coip-pool/${Ipv4PoolCoipId}", + Arn: "arn:${Partition}:geo:${Region}:${Account}:geofence-collection/${GeofenceCollectionName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + "geo:GeofenceIds", }, - Resource: "coip-pool", + Resource: "geofence-collection", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:ipv4pool-ec2/${Ipv4PoolEc2Id}", + Arn: "arn:${Partition}:geo:${Region}:${Account}:map/${MapName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "ipv4pool-ec2", + Resource: "map", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:ipv6pool-ec2/${Ipv6PoolEc2Id}", + Arn: "arn:${Partition}:geo:${Region}:${Account}:place-index/${IndexName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "ipv6pool-ec2", + Resource: "place-index", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:key-pair/${KeyPairName}", + Arn: "arn:${Partition}:geo:${Region}:${Account}:route-calculator/${CalculatorName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:IsLaunchTemplateResource", - "ec2:KeyPairName", - "ec2:KeyPairType", - "ec2:LaunchTemplate", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", }, - Resource: "key-pair", + Resource: "route-calculator", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:launch-template/${LaunchTemplateId}", + Arn: "arn:${Partition}:geo:${Region}:${Account}:tracker/${TrackerName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + "geo:DeviceIds", }, - Resource: "launch-template", + Resource: "tracker", }, + }, + ServiceName: "Amazon Location", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "geo-maps", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:license-manager:${Region}:${Account}:license-configuration:${LicenseConfigurationId}", - ConditionKeys: []string{}, - Resource: "license-configuration", + AccessLevel: "Read", + Description: "Grants permission to retrieve the static map", + Privilege: "GetStaticMap", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, + }, }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway/${LocalGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve the map tile", + Privilege: "GetTile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "local-gateway", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table-virtual-interface-group-association/${LocalGatewayRouteTableVirtualInterfaceGroupAssociationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - }, - Resource: "local-gateway-route-table-virtual-interface-group-association", + Arn: "arn:${Partition}:geo-maps:${Region}::provider/default", + ConditionKeys: []string{}, + Resource: "provider", }, + }, + ServiceName: "Amazon Location Service Maps", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "geo-places", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table-vpc-association/${LocalGatewayRouteTableVpcAssociationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to autocomplete text input with potential places and addresses as the user types", + Privilege: "Autocomplete", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "local-gateway-route-table-vpc-association", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-route-table/${LocalGatewayRoutetableId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to geocode a textual address or place into geographic coordinates", + Privilege: "Geocode", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "local-gateway-route-table", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface-group/${LocalGatewayVirtualInterfaceGroupId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to query a place by it's unqiue place ID", + Privilege: "GetPlace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "local-gateway-virtual-interface-group", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:local-gateway-virtual-interface/${LocalGatewayVirtualInterfaceId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to convert geographic coordinates into a human-readable address or place", + Privilege: "ReverseGeocode", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "local-gateway-virtual-interface", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:natgateway/${NatGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve places near a position which match to a set of user defined restrictions such as category or food type offered by the place", + Privilege: "SearchNearby", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "natgateway", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-acl/${NaclId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:NetworkAclID", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:Vpc", + AccessLevel: "Read", + Description: "Grants permission to query for places using a single free-form text input", + Privilege: "SearchText", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "network-acl", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope-analysis/${NetworkInsightsAccessScopeAnalysisId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to suggest potential places based on the user's input", + Privilege: "Suggest", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "network-insights-access-scope-analysis", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-access-scope/${NetworkInsightsAccessScopeId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - }, - Resource: "network-insights-access-scope", + Arn: "arn:${Partition}:geo-places:${Region}::provider/default", + ConditionKeys: []string{}, + Resource: "provider", }, + }, + ServiceName: "Amazon Location Service Places", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "geo-routes", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-analysis/${NetworkInsightsAnalysisId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to determine destinations or service areas reachable within a specified time", + Privilege: "CalculateIsolines", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "network-insights-analysis", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-insights-path/${NetworkInsightsPathId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to calculate routing matrice which providing travel time and distances between sets of origins and destinations", + Privilege: "CalculateRouteMatrix", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "network-insights-path", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:network-interface/${NetworkInterfaceId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:AssociatePublicIpAddress", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AuthorizedService", - "ec2:AuthorizedUser", - "ec2:AvailabilityZone", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:NetworkInterfaceID", - "ec2:Permission", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:Subnet", - "ec2:Vpc", + AccessLevel: "Read", + Description: "Grants permission to calculates routes between two or more locations", + Privilege: "CalculateRoutes", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "network-interface", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:placement-group/${PlacementGroupName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:PlacementGroupName", - "ec2:PlacementGroupStrategy", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to calculate the most efficient sequence for visiting multiple waypoints or locations along a route", + Privilege: "OptimizeWaypoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "placement-group", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:prefix-list/${PrefixListId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to enhances the accuracy of geographic positioning by aligning GPS coordinates to the nearest road segments on a digital map", + Privilege: "SnapToRoads", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "provider*", + }, }, - Resource: "prefix-list", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:replace-root-volume-task/${ReplaceRootVolumeTaskId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - }, - Resource: "replace-root-volume-task", + Arn: "arn:${Partition}:geo-routes:${Region}::provider/default", + ConditionKeys: []string{}, + Resource: "provider", }, + }, + ServiceName: "Amazon Location Service Routes", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:reserved-instances/${ReservationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:InstanceType", - "ec2:Region", - "ec2:ReservedInstancesOfferingType", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - }, - Resource: "reserved-instances", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", }, { - Arn: "arn:${Partition}:resource-groups:${Region}:${Account}:group/${GroupName}", - ConditionKeys: []string{}, - Resource: "group", + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, { - Arn: "arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}", - ConditionKeys: []string{}, - Resource: "role", + Condition: "glacier:ArchiveAgeInDays", + Description: "Filters access by how long an archive has been stored in the vault, in days", + Type: "String", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:route-table/${RouteTableId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:RouteTableID", - "ec2:Vpc", - }, - Resource: "route-table", + Condition: "glacier:ResourceTag/", + Description: "Filters access by a customer-defined tag", + Type: "String", }, + }, + Prefix: "glacier", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:security-group/${SecurityGroupId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:SecurityGroupID", - "ec2:Vpc", + AccessLevel: "Write", + Description: "Grants permission to abort a multipart upload identified by the upload ID", + Privilege: "AbortMultipartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "security-group", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:security-group-rule/${SecurityGroupRuleId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Permissions management", + Description: "Grants permission to abort the vault locking process if the vault lock is not in the Locked state", + Privilege: "AbortVaultLock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "security-group-rule", }, { - Arn: "arn:${Partition}:ec2:${Region}::snapshot/${SnapshotId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Add/group", - "ec2:Add/userId", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:OutpostArn", - "ec2:Owner", - "ec2:ParentVolume", - "ec2:Region", - "ec2:Remove/group", - "ec2:Remove/userId", - "ec2:ResourceTag/${TagKey}", - "ec2:SnapshotCoolOffPeriod", - "ec2:SnapshotID", - "ec2:SnapshotLockDuration", - "ec2:SnapshotTime", - "ec2:SourceOutpostArn", - "ec2:VolumeSize", + AccessLevel: "Tagging", + Description: "Grants permission to add the specified tags to a vault", + Privilege: "AddTagsToVault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "snapshot", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:spot-fleet-request/${SpotFleetRequestId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to complete a multipart upload process", + Privilege: "CompleteMultipartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "spot-fleet-request", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:spot-instances-request/${SpotInstanceRequestId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Permissions management", + Description: "Grants permission to complete the vault locking process", + Privilege: "CompleteVaultLock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "spot-instances-request", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:subnet-cidr-reservation/${SubnetCidrReservationId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create a new vault with the specified name", + Privilege: "CreateVault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "subnet-cidr-reservation", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:subnet/${SubnetId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:IsLaunchTemplateResource", - "ec2:LaunchTemplate", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:SubnetID", - "ec2:Vpc", + AccessLevel: "Write", + Description: "Grants permission to delete an archive from a vault", + Privilege: "DeleteArchive", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, + { + ConditionKeys: []string{ + "glacier:ArchiveAgeInDays", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "subnet", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-filter/${TrafficMirrorFilterId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to delete a vault", + Privilege: "DeleteVault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "traffic-mirror-filter", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-filter-rule/${TrafficMirrorFilterRuleId}", - ConditionKeys: []string{ - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the access policy associated with the specified vault", + Privilege: "DeleteVaultAccessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "traffic-mirror-filter-rule", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-session/${TrafficMirrorSessionId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to delete the notification configuration set for a vault", + Privilege: "DeleteVaultNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "traffic-mirror-session", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:traffic-mirror-target/${TrafficMirrorTargetId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get information about a job previously initiated", + Privilege: "DescribeJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "traffic-mirror-target", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-attachment/${TransitGatewayAttachmentId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayAttachmentId", + AccessLevel: "Read", + Description: "Grants permission to get information about a vault", + Privilege: "DescribeVault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "transit-gateway-attachment", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-connect-peer/${TransitGatewayConnectPeerId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayConnectPeerId", + AccessLevel: "Read", + Description: "Grants permission to get the data retrieval policy", + Privilege: "GetDataRetrievalPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "transit-gateway-connect-peer", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway/${TransitGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayId", + AccessLevel: "Read", + Description: "Grants permission to download the output of the job specified", + Privilege: "GetJobOutput", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "transit-gateway", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-multicast-domain/${TransitGatewayMulticastDomainId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayMulticastDomainId", + AccessLevel: "Read", + Description: "Grants permission to retrieve the access-policy subresource set on the vault", + Privilege: "GetVaultAccessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "transit-gateway-multicast-domain", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-policy-table/${TransitGatewayPolicyTableId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayPolicyTableId", + AccessLevel: "Read", + Description: "Grants permission to retrieve attributes from the lock-policy subresource set on the specified vault", + Privilege: "GetVaultLock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "transit-gateway-policy-table", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-route-table-announcement/${TransitGatewayRouteTableAnnouncementId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableAnnouncementId", + AccessLevel: "Read", + Description: "Grants permission to retrieve the notification-configuration subresource set on the vault", + Privilege: "GetVaultNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "transit-gateway-route-table-announcement", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:transit-gateway-route-table/${TransitGatewayRouteTableId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:transitGatewayRouteTableId", + AccessLevel: "Write", + Description: "Grants permission to initiate a job of the specified type", + Privilege: "InitiateJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, + { + ConditionKeys: []string{ + "glacier:ArchiveAgeInDays", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "transit-gateway-route-table", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-endpoint/${VerifiedAccessEndpointId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to initiate a multipart upload", + Privilege: "InitiateMultipartUpload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "verified-access-endpoint", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-group/${VerifiedAccessGroupId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Permissions management", + Description: "Grants permission to initiate the vault locking process", + Privilege: "InitiateVaultLock", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "verified-access-group", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-instance/${VerifiedAccessInstanceId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list jobs for a vault that are in-progress and jobs that have recently finished", + Privilege: "ListJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "verified-access-instance", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-policy/${VerifiedAccessPolicyId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list in-progress multipart uploads for the specified vault", + Privilege: "ListMultipartUploads", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "verified-access-policy", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:verified-access-trust-provider/${VerifiedAccessTrustProviderId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the parts of an archive that have been uploaded in a specific multipart upload", + Privilege: "ListParts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "verified-access-trust-provider", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:volume/${VolumeId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AvailabilityZone", - "ec2:Encrypted", - "ec2:IsLaunchTemplateResource", - "ec2:KmsKeyId", - "ec2:LaunchTemplate", - "ec2:ParentSnapshot", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:VolumeID", - "ec2:VolumeIops", - "ec2:VolumeSize", - "ec2:VolumeThroughput", - "ec2:VolumeType", + AccessLevel: "List", + Description: "Grants permission to list the provisioned capacity for the specified AWS account", + Privilege: "ListProvisionedCapacity", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "volume", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint-connection/${VpcEndpointConnectionId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list all the tags attached to a vault", + Privilege: "ListTagsForVault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "vpc-endpoint-connection", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint/${VpcEndpointId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:VpceServiceName", - "ec2:VpceServiceOwner", + AccessLevel: "List", + Description: "Grants permission to list all vaults", + Privilege: "ListVaults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "vpc-endpoint", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint-service/${VpcEndpointServiceId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:VpceServicePrivateDnsName", + AccessLevel: "Write", + Description: "Grants permission to purchases a provisioned capacity unit for an AWS account", + Privilege: "PurchaseProvisionedCapacity", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "vpc-endpoint-service", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-endpoint-service-permission/${VpcEndpointServicePermissionId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the set of tags attached to a vault", + Privilege: "RemoveTagsFromVault", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "vpc-endpoint-service-permission", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-flow-log/${VpcFlowLogId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Permissions management", + Description: "Grants permission to set and then enacts a data retrieval policy in the region specified in the PUT request", + Privilege: "SetDataRetrievalPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "vpc-flow-log", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc/${VpcId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Ipv4IpamPoolId", - "ec2:Ipv6IpamPoolId", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - "ec2:Tenancy", - "ec2:VpcID", + AccessLevel: "Permissions management", + Description: "Grants permission to configure an access policy for a vault; will overwrite an existing policy", + Privilege: "SetVaultAccessPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "vpc", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc-peering-connection/${VpcPeeringConnectionId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:AccepterVpc", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:Region", - "ec2:RequesterVpc", - "ec2:ResourceTag/${TagKey}", - "ec2:VpcPeeringConnectionID", + AccessLevel: "Write", + Description: "Grants permission to configure vault notifications", + Privilege: "SetVaultNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "vpc-peering-connection", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpn-connection-device-type/${VpnConnectionDeviceTypeId}", - ConditionKeys: []string{ - "ec2:Region", + AccessLevel: "Write", + Description: "Grants permission to upload an archive to a vault", + Privilege: "UploadArchive", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "vpn-connection-device-type", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpn-connection/${VpnConnectionId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Attribute", - "ec2:Attribute/${AttributeName}", - "ec2:AuthenticationType", - "ec2:DPDTimeoutSeconds", - "ec2:GatewayType", - "ec2:IKEVersions", - "ec2:InsideTunnelCidr", - "ec2:InsideTunnelIpv6Cidr", - "ec2:Phase1DHGroup", - "ec2:Phase1EncryptionAlgorithms", - "ec2:Phase1IntegrityAlgorithms", - "ec2:Phase1LifetimeSeconds", - "ec2:Phase2DHGroup", - "ec2:Phase2EncryptionAlgorithms", - "ec2:Phase2IntegrityAlgorithms", - "ec2:Phase2LifetimeSeconds", - "ec2:Region", - "ec2:RekeyFuzzPercentage", - "ec2:RekeyMarginTimeSeconds", - "ec2:ReplayWindowSizePackets", - "ec2:ResourceTag/${TagKey}", - "ec2:RoutingType", + AccessLevel: "Write", + Description: "Grants permission to upload a part of an archive", + Privilege: "UploadMultipartPart", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vault*", + }, }, - Resource: "vpn-connection", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpn-gateway/${VpnGatewayId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "ec2:Region", - "ec2:ResourceTag/${TagKey}", - }, - Resource: "vpn-gateway", + Arn: "arn:${Partition}:glacier:${Region}:${Account}:vaults/${VaultName}", + ConditionKeys: []string{}, + Resource: "vault", }, }, - ServiceName: "Amazon EC2", + ServiceName: "Amazon S3 Glacier", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { - Condition: "ec2-instance-connect:maxTunnelDuration", - Description: "Filters access by maximum session duration associated with the instance", - Type: "Numeric", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", }, { - Condition: "ec2-instance-connect:privateIpAddress", - Description: "Filters access by private IP Address associated with the instance", - Type: "IPAddress", + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", }, + }, + Prefix: "globalaccelerator", + Privileges: []ParliamentPrivilege{ { - Condition: "ec2-instance-connect:remotePort", - Description: "Filters access by port number associated with the instance", - Type: "Numeric", + AccessLevel: "Write", + Description: "Grants permission to add a virtual private cloud (VPC) subnet endpoint to a custom routing accelerator endpoint group", + Privilege: "AddCustomRoutingEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpointgroup*", + }, + }, }, { - Condition: "ec2:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to add an endpoint to a standard accelerator endpoint group", + Privilege: "AddEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "globalaccelerator:UpdateEndpointGroup", + }, + ResourceType: "endpointgroup*", + }, + }, }, { - Condition: "ec2:osuser", - Description: "Filters access by specifying the default user name for the AMI that you used to launch your instance", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to advertises an IPv4 address range that is provisioned for use with your accelerator through bring your own IP addresses (BYOIP)", + Privilege: "AdvertiseByoipCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - Prefix: "ec2-instance-connect", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to establish SSH connection to an EC2 instance using EC2 Instance Connect Endpoint", - Privilege: "OpenTunnel", + Description: "Grants permission to allows custom routing of user traffic to a private destination IP:PORT in a specific VPC subnet", + Privilege: "AllowCustomRoutingTraffic", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-connect-endpoint*", + ResourceType: "endpointgroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a standard accelerator", + Privilege: "CreateAccelerator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", - "ec2-instance-connect:remotePort", - "ec2-instance-connect:privateIpAddress", - "ec2-instance-connect:MaxTunnelDuration", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "instance-connect-endpoint", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to push an SSH public key to the specified EC2 instance to be used for standard SSH", - Privilege: "SendSSHPublicKey", + Description: "Grants permission to create a CrossAccountAttachment", + Privilege: "CreateCrossAccountAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Custom Routing accelerator", + Privilege: "CreateCustomRoutingAccelerator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ec2:osuser", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -104447,293 +147597,296 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to push an SSH public key to the specified EC2 instance to be used for serial console SSH", - Privilege: "SendSerialConsoleSSHPublicKey", + Description: "Grants permission to create an endpoint group for the specified listener for a custom routing accelerator", + Privilege: "CreateCustomRoutingEndpointGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "listener*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create a listener to process inbound connections from clients to a custom routing accelerator", + Privilege: "CreateCustomRoutingListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accelerator*", + }, }, - Resource: "instance", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance-connect-endpoint/${InstanceConnectEndpointId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ec2:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to add an endpoint group to a standard accelerator listener", + Privilege: "CreateEndpointGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener*", + }, }, - Resource: "instance-connect-endpoint", - }, - }, - ServiceName: "Amazon EC2 Instance Connect", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "ec2:SourceInstanceARN", - Description: "Filters access by the ARN of the instance from which the request originated", - Type: "ARN", }, { - Condition: "ssm:SourceInstanceARN", - Description: "Filters access by verifying the Amazon Resource Name (ARN) of the AWS Systems Manager's managed instance from which the request is made. This key is not present when the request comes from the managed instance authenticated with an IAM role associated with EC2 instance profile", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to add a listener to a standard accelerator", + Privilege: "CreateListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accelerator*", + }, + }, }, - }, - Prefix: "ec2messages", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to acknowledge a message, ensuring it will not be delivered again", - Privilege: "AcknowledgeMessage", + Description: "Grants permission to delete a standard accelerator", + Privilege: "DeleteAccelerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accelerator*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a message", - Privilege: "DeleteMessage", + Description: "Grants permission to delete a CrossAccountAttachment", + Privilege: "DeleteCrossAccountAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to fail a message, signifying the message could not be processed successfully, ensuring it cannot be replied to or delivered again", - Privilege: "FailMessage", + Description: "Grants permission to delete a custom routing accelerator", + Privilege: "DeleteCustomRoutingAccelerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to route traffic to the correct endpoint based on the given destination for the messages", - Privilege: "GetEndpoint", + AccessLevel: "Write", + Description: "Grants permission to delete an endpoint group from a listener for a custom routing accelerator", + Privilege: "DeleteCustomRoutingEndpointGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpointgroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to deliver messages to clients/instances using long polling", - Privilege: "GetMessages", + AccessLevel: "Write", + Description: "Grants permission to delete a listener for a custom routing accelerator", + Privilege: "DeleteCustomRoutingListener", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "listener*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send replies from clients/instances to upstream service", - Privilege: "SendReply", + Description: "Grants permission to delete an endpoint group associated with a standard accelerator listener", + Privilege: "DeleteEndpointGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpointgroup*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Message Delivery Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the allowed set of values for each of the tags", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to delete a listener from a standard accelerator", + Privilege: "DeleteListener", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener*", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to disallows custom routing of user traffic to a private destination IP:PORT in a specific VPC subnet", + Privilege: "DenyCustomRoutingTraffic", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpointgroup*", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to releases the specified address range that you provisioned for use with your accelerator through bring your own IP addresses (BYOIP)", + Privilege: "DeprovisionByoipCidr", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ecr:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", - Type: "String", + AccessLevel: "Read", + Description: "Grants permissions to describe a standard accelerator", + Privilege: "DescribeAccelerator", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accelerator*", + }, + }, }, - }, - Prefix: "ecr", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to check the availability of multiple image layers in a specified registry and repository", - Privilege: "BatchCheckLayerAvailability", + Description: "Grants permission to describe a standard accelerator attributes", + Privilege: "DescribeAcceleratorAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a list of specified images within a specified repository", - Privilege: "BatchDeleteImage", + AccessLevel: "Read", + Description: "Grants permissions to describe a CrossAccountAttachment", + Privilege: "DescribeCrossAccountAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get detailed information for specified images within a specified repository", - Privilege: "BatchGetImage", + Description: "Grants permission to describe a custom routing accelerator", + Privilege: "DescribeCustomRoutingAccelerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve repository scanning configuration for a list of repositories", - Privilege: "BatchGetRepositoryScanningConfiguration", + Description: "Grants permission to describe the attributes of a custom routing accelerator", + Privilege: "DescribeCustomRoutingAcceleratorAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to retrieve the image from the upstream registry and import it to your private registry", - Privilege: "BatchImportUpstreamImage", + AccessLevel: "Read", + Description: "Grants permission to describe an endpoint group for a custom routing accelerator", + Privilege: "DescribeCustomRoutingEndpointGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpointgroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to inform Amazon ECR that the image layer upload for a specified registry, repository name, and upload ID, has completed", - Privilege: "CompleteLayerUpload", + AccessLevel: "Read", + Description: "Grants permission to describe a listener for a custom routing accelerator", + Privilege: "DescribeCustomRoutingListener", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "listener*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create new pull-through cache rule", - Privilege: "CreatePullThroughCacheRule", + AccessLevel: "Read", + Description: "Grants permission to describe a standard accelerator endpoint group", + Privilege: "DescribeEndpointGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpointgroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an image repository", - Privilege: "CreateRepository", + AccessLevel: "Read", + Description: "Grants permission to describe a standard accelerator listener", + Privilege: "DescribeListener", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ecr:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "listener*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create the repository creation template", - Privilege: "CreateRepositoryCreationTemplate", + AccessLevel: "List", + Description: "Grants permission to list all standard accelerators", + Privilege: "ListAccelerators", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ecr:PutLifecyclePolicy", - "ecr:SetRepositoryPolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified lifecycle policy", - Privilege: "DeleteLifecyclePolicy", + AccessLevel: "List", + Description: "Grants permission to list the BYOIP cidrs", + Privilege: "ListByoipCidrs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the pull-through cache rule", - Privilege: "DeletePullThroughCacheRule", + AccessLevel: "List", + Description: "Grants permission to list all CrossAccountAttachments", + Privilege: "ListCrossAccountAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -104743,9 +147896,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the registry policy", - Privilege: "DeleteRegistryPolicy", + AccessLevel: "List", + Description: "Grants permission to list accounts with CrossAccountAttachments listing caller as a principal", + Privilege: "ListCrossAccountResourceAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -104755,21 +147908,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing image repository", - Privilege: "DeleteRepository", + AccessLevel: "List", + Description: "Grants permission to list all CrossAccountAttachment resources usable by caller", + Privilege: "ListCrossAccountResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the repository creation template", - Privilege: "DeleteRepositoryCreationTemplate", + AccessLevel: "List", + Description: "Grants permission to list the custom routing accelerators for an AWS account", + Privilege: "ListCustomRoutingAccelerators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -104779,93 +147932,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the repository policy from a specified repository", - Privilege: "DeleteRepositoryPolicy", + AccessLevel: "List", + Description: "Grants permission to list the endpoint groups that are associated with a listener for a custom routing accelerator", + Privilege: "ListCustomRoutingEndpointGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "listener*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve replication status about an image in a registry, including failure reason if replication fails", - Privilege: "DescribeImageReplicationStatus", + AccessLevel: "List", + Description: "Grants permission to list the listeners for a custom routing accelerator", + Privilege: "ListCustomRoutingListeners", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the image scan findings for the specified image", - Privilege: "DescribeImageScanFindings", + AccessLevel: "List", + Description: "Grants permission to list the port mappings for a custom routing accelerator", + Privilege: "ListCustomRoutingPortMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get metadata about the images in a repository, including image size, image tags, and creation date", - Privilege: "DescribeImages", + Description: "Grants permission to list the port mappings for a specific endpoint IP address (a destination address) in a subnet", + Privilege: "ListCustomRoutingPortMappingsByDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe the pull-through cache rules", - Privilege: "DescribePullThroughCacheRules", + Description: "Grants permission to list all endpoint groups associated with a standard accelerator listener", + Privilege: "ListEndpointGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "listener*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the registry settings", - Privilege: "DescribeRegistry", + AccessLevel: "List", + Description: "Grants permission to list all listeners associated with a standard accelerator", + Privilege: "ListListeners", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accelerator*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe image repositories in a registry", - Privilege: "DescribeRepositories", + Description: "Grants permission to list tags for a globalaccelerator resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository", + ResourceType: "accelerator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "attachment", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the repository creation template", - Privilege: "DescribeRepositoryCreationTemplate", + AccessLevel: "Write", + Description: "Grants permission to provisions an address range for use with your accelerator through bring your own IP addresses (BYOIP)", + Privilege: "ProvisionByoipCidr", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -104875,637 +148033,663 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a token that is valid for a specified registry for 12 hours", - Privilege: "GetAuthorizationToken", + AccessLevel: "Write", + Description: "Grants permission to remove virtual private cloud (VPC) subnet endpoints from a custom routing accelerator endpoint group", + Privilege: "RemoveCustomRoutingEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpointgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an endpoint from a standard accelerator endpoint group", + Privilege: "RemoveEndpoints", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "globalaccelerator:UpdateEndpointGroup", + }, + ResourceType: "endpointgroup*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a globalaccelerator resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "accelerator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "attachment", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the download URL corresponding to an image layer", - Privilege: "GetDownloadUrlForLayer", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a globalaccelerator resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "attachment", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified lifecycle policy", - Privilege: "GetLifecyclePolicy", + AccessLevel: "Write", + Description: "Grants permission to update a standard accelerator", + Privilege: "UpdateAccelerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the results of the specified lifecycle policy preview request", - Privilege: "GetLifecyclePolicyPreview", + AccessLevel: "Write", + Description: "Grants permission to update a standard accelerator attributes", + Privilege: "UpdateAcceleratorAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the registry policy", - Privilege: "GetRegistryPolicy", + AccessLevel: "Write", + Description: "Grants permission to update a CrossAccountAttachment", + Privilege: "UpdateCrossAccountAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve registry scanning configuration", - Privilege: "GetRegistryScanningConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update a custom routing accelerator", + Privilege: "UpdateCustomRoutingAccelerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accelerator*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the repository policy for a specified repository", - Privilege: "GetRepositoryPolicy", + AccessLevel: "Write", + Description: "Grants permission to update the attributes for a custom routing accelerator", + Privilege: "UpdateCustomRoutingAcceleratorAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "accelerator*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify Amazon ECR that you intend to upload an image layer", - Privilege: "InitiateLayerUpload", + Description: "Grants permission to update a listener for a custom routing accelerator", + Privilege: "UpdateCustomRoutingListener", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "listener*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the image IDs for a given repository", - Privilege: "ListImages", + AccessLevel: "Write", + Description: "Grants permission to update an endpoint group on a standard accelerator listener", + Privilege: "UpdateEndpointGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "endpointgroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for an Amazon ECR resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a listener on a standard accelerator", + Privilege: "UpdateListener", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "listener*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stops advertising a BYOIP IPv4 address", + Privilege: "WithdrawByoipCidr", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:globalaccelerator::${Account}:accelerator/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "accelerator", + }, + { + Arn: "arn:${Partition}:globalaccelerator::${Account}:accelerator/${ResourceId}/listener/${ListenerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "listener", + }, + { + Arn: "arn:${Partition}:globalaccelerator::${Account}:accelerator/${ResourceId}/listener/${ListenerId}/endpoint-group/${EndpointGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "endpointgroup", + }, + { + Arn: "arn:${Partition}:globalaccelerator::${Account}:attachment/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "attachment", + }, + }, + ServiceName: "AWS Global Accelerator", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "glue:CredentialIssuingService", + Description: "Filters access by the service from which the credentials of the request is issued", + Type: "String", + }, + { + Condition: "glue:EnabledForRedshiftAutoDiscovery", + Description: "Filters access by the presence of the key configured for role's identity-based policy", + Type: "Bool", + }, + { + Condition: "glue:RoleAssumedBy", + Description: "Filters access by the service from which the credentials of the request is obtained by assuming the customer role", + Type: "String", + }, + { + Condition: "glue:SecurityGroupIds", + Description: "Filters access by the ID of security groups configured for the Glue job", + Type: "ArrayOfString", + }, + { + Condition: "glue:SubnetIds", + Description: "Filters access by the ID of subnets configured for the Glue job", + Type: "ArrayOfString", + }, + { + Condition: "glue:VpcIds", + Description: "Filters access by the ID of the VPC configured for the Glue job", + Type: "ArrayOfString", + }, + }, + Prefix: "glue", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create or update the image manifest associated with an image", - Privilege: "PutImage", + Description: "Grants permission to Glue to continuously validate that the target Arn can receive data replicated from the source ARN", + Privilege: "AuthorizeInboundIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "integration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the image scanning configuration for a repository", - Privilege: "PutImageScanningConfiguration", + Description: "Grants permission to create one or more partitions", + Privilege: "BatchCreatePartition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the image tag mutability settings for a repository", - Privilege: "PutImageTagMutability", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create or update a lifecycle policy", - Privilege: "PutLifecyclePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "table*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to update the registry policy", - Privilege: "PutRegistryPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update registry scanning configuration", - Privilege: "PutRegistryScanningConfiguration", + Description: "Grants permission to delete one or more connections", + Privilege: "BatchDeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the replication configuration for the registry", - Privilege: "PutReplicationConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to replicate images to the destination registry", - Privilege: "ReplicateImage", + Description: "Grants permission to delete one or more partitions", + Privilege: "BatchDeletePartition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to apply a repository policy on a specified repository to control access permissions", - Privilege: "SetRepositoryPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start an image scan", - Privilege: "StartImageScan", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "table*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a preview of the specified lifecycle policy", - Privilege: "StartLifecyclePolicyPreview", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Amazon ECR resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete one or more tables", + Privilege: "BatchDeleteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to untag an Amazon ECR resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the pull-through cache rule", - Privilege: "UpdatePullThroughCacheRule", + Description: "Grants permission to delete one or more versions of a table", + Privilege: "BatchDeleteTableVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload an image layer part to Amazon ECR", - Privilege: "UploadLayerPart", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more blueprints", + Privilege: "BatchGetBlueprints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "blueprint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to validate the pull-through cache rule", - Privilege: "ValidatePullThroughCacheRule", + Description: "Grants permission to retrieve one or more crawlers", + Privilege: "BatchGetCrawlers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crawler*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ecr:${Region}:${Account}:repository/${RepositoryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecr:ResourceTag/${TagKey}", - }, - Resource: "repository", - }, - }, - ServiceName: "Amazon Elastic Container Registry", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters create requests based on the allowed set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag-value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters create requests based on the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - { - Condition: "ecr-public:ResourceTag/${TagKey}", - Description: "Filters actions based on tag-value associated with the resource", - Type: "String", - }, - }, - Prefix: "ecr-public", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to check the availability of multiple image layers in a specified registry and repository", - Privilege: "BatchCheckLayerAvailability", + Description: "Grants permission to retrieve one or more Custom Entity Types", + Privilege: "BatchGetCustomEntityTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a list of specified images within a specified repository", - Privilege: "BatchDeleteImage", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more development endpoints", + Privilege: "BatchGetDevEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "devendpoint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to inform Amazon ECR that the image layer upload for a specified registry, repository name, and upload ID, has completed", - Privilege: "CompleteLayerUpload", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more jobs", + Privilege: "BatchGetJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an image repository", - Privilege: "CreateRepository", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more partitions", + Privilege: "BatchGetPartition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ecr-public:TagResource", - }, - ResourceType: "repository*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an existing image repository", - Privilege: "DeleteRepository", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "table*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the repository policy from a specified repository", - Privilege: "DeleteRepositoryPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "catalog", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe all the image tags for a given repository", - Privilege: "DescribeImageTags", + AccessLevel: "Permissions management", + Description: "Grants permission to batch get stage files for SparkUI", + Privilege: "BatchGetStageFiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get metadata about the images in a repository, including image size, image tags, and creation date", - Privilege: "DescribeImages", + Description: "Grants permission to return the configuration for the specified table optimizers", + Privilege: "BatchGetTableOptimizer", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:GetTable", + }, + ResourceType: "database*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve the catalog data associated with a registry", - Privilege: "DescribeRegistries", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "table*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe image repositories in a registry", - Privilege: "DescribeRepositories", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more triggers", + Privilege: "BatchGetTriggers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository", + ResourceType: "trigger*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a token that is valid for a specified registry for 12 hours", - Privilege: "GetAuthorizationToken", + Description: "Grants permission to retrieve one or more workflows", + Privilege: "BatchGetWorkflows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the catalog data associated with a registry", - Privilege: "GetRegistryCatalogData", + AccessLevel: "Write", + Description: "Grants permission to stop one or more job runs for a job", + Privilege: "BatchStopJobRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the catalog data associated with a repository", - Privilege: "GetRepositoryCatalogData", + AccessLevel: "Write", + Description: "Grants permission to update one or more partitions", + Privilege: "BatchUpdatePartition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the repository policy for a specified repository", - Privilege: "GetRepositoryPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to notify Amazon ECR that you intend to upload an image layer", - Privilege: "InitiateLayerUpload", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for an Amazon ECR resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to stop a running Data Quality rule recommendation run", + Privilege: "CancelDataQualityRuleRecommendationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update the image manifest associated with an image", - Privilege: "PutImage", + Description: "Grants permission to stop a running Data Quality ruleset evaluation run", + Privilege: "CancelDataQualityRulesetEvaluationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and update the catalog data associated with a registry", - Privilege: "PutRegistryCatalogData", + Description: "Grants permission to stop a running ML Task Run", + Privilege: "CancelMLTaskRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "mlTransform*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the catalog data associated with a repository", - Privilege: "PutRepositoryCatalogData", + Description: "Grants permission to cancel a statement in an interactive session", + Privilege: "CancelStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "session*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to apply a repository policy on a specified repository to control access permissions", - Privilege: "SetRepositoryPolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve a check the validity of schema version", + Privilege: "CheckSchemaVersionValidity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Amazon ECR resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a blueprint", + Privilege: "CreateBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "blueprint*", }, { ConditionKeys: []string{ @@ -105518,180 +148702,70 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag an Amazon ECR resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a catalog", + Privilege: "CreateCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "catalog*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload an image layer part to Amazon ECR Public", - Privilege: "UploadLayerPart", + Description: "Grants permission to create a classifier", + Privilege: "CreateClassifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ecr-public::${Account}:repository/${RepositoryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecr-public:ResourceTag/${TagKey}", - }, - Resource: "repository", - }, - { - Arn: "arn:${Partition}:ecr-public::${Account}:registry/${RegistryId}", - ConditionKeys: []string{}, - Resource: "registry", - }, - }, - ServiceName: "Amazon Elastic Container Registry Public", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "ecs:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", - }, - { - Condition: "ecs:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "ecs:account-setting", - Description: "Filters access by the Amazon ECS account setting name", - Type: "String", - }, - { - Condition: "ecs:capacity-provider", - Description: "Filters access by the ARN of an Amazon ECS capacity provider", - Type: "ARN", - }, - { - Condition: "ecs:cluster", - Description: "Filters access by the ARN of an Amazon ECS cluster", - Type: "ARN", - }, - { - Condition: "ecs:container-instances", - Description: "Filters access by the ARN of an Amazon ECS container instance", - Type: "ARN", - }, - { - Condition: "ecs:container-name", - Description: "Filters access by the name of an Amazon ECS container which is defined in the ECS task definition", - Type: "String", - }, - { - Condition: "ecs:enable-ebs-volumes", - Description: "Filters access by the Amazon ECS managed Amazon EBS volume capability of your ECS task or service", - Type: "String", - }, - { - Condition: "ecs:enable-execute-command", - Description: "Filters access by the execute-command capability of your Amazon ECS task or Amazon ECS service", - Type: "String", - }, - { - Condition: "ecs:enable-service-connect", - Description: "Filters access by the enable field value in the Service Connect configuration", - Type: "String", - }, - { - Condition: "ecs:fargate-ephemeral-storage-kms-key", - Description: "Filters access by the AWS KMS key id provided in the request", - Type: "String", - }, - { - Condition: "ecs:namespace", - Description: "Filters access by the ARN of AWS Cloud Map namespace which is defined in the Service Connect Configuration", - Type: "ARN", - }, - { - Condition: "ecs:service", - Description: "Filters access by the ARN of an Amazon ECS service", - Type: "ARN", - }, - { - Condition: "ecs:task", - Description: "Filters access by the ARN of an Amazon ECS task", - Type: "ARN", - }, - { - Condition: "ecs:task-definition", - Description: "Filters access by the ARN of an Amazon ECS task definition", - Type: "ARN", - }, - }, - Prefix: "ecs", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a new capacity provider. Capacity providers are associated with an Amazon ECS cluster and are used in capacity provider strategies to facilitate cluster auto scaling", - Privilege: "CreateCapacityProvider", + Description: "Grants permission to create settings for a column statistics task", + Privilege: "CreateColumnStatisticsTaskSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new Amazon ECS cluster", - Privilege: "CreateCluster", + Description: "Grants permission to create a connection", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "ecs:capacity-provider", - "ecs:fargate-ephemeral-storage-kms-key", }, DependentActions: []string{}, ResourceType: "", @@ -105700,26 +148774,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to run and maintain a desired number of tasks from a specified task definition via service creation", - Privilege: "CreateService", + Description: "Grants permission to create a crawler", + Privilege: "CreateCrawler", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "ecs:cluster", - "ecs:capacity-provider", - "ecs:task-definition", - "ecs:enable-ebs-volumes", - "ecs:enable-execute-command", - "ecs:enable-service-connect", - "ecs:namespace", }, DependentActions: []string{}, ResourceType: "", @@ -105728,17 +148789,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new Amazon ECS task set", - Privilege: "CreateTaskSet", + Description: "Grants permission to create a Custom Entity Type", + Privilege: "CreateCustomEntityType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "ecs:cluster", - "ecs:capacity-provider", - "ecs:service", - "ecs:task-definition", }, DependentActions: []string{}, ResourceType: "", @@ -105747,12 +148804,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the ARN and resource ID format of a resource for a specified IAM user, IAM role, or the root user for an account. You can specify whether the new ARN and resource ID format are disabled for new resources that are created", - Privilege: "DeleteAccountSetting", + Description: "Grants permission to create a Data Quality ruleset", + Privilege: "CreateDataQualityRuleset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ecs:account-setting", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -105761,37 +148819,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete one or more custom attributes from an Amazon ECS resource", - Privilege: "DeleteAttributes", + Description: "Grants permission to create a database", + Privilege: "CreateDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified capacity provider", - Privilege: "DeleteCapacityProvider", + Description: "Grants permission to create a development endpoint", + Privilege: "CreateDevEndpoint", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "capacity-provider*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -105800,37 +148856,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified cluster", - Privilege: "DeleteCluster", + Description: "Grants permission to the source principal to create an inbound integration for data to be replicated from the source into the target", + Privilege: "CreateInboundIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified service within a cluster", - Privilege: "DeleteService", + Description: "Grants permission to create an integration", + Privilege: "CreateIntegration", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:DescribeKey", + }, + ResourceType: "catalog*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -105839,57 +148906,65 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified task definitions by family and revision", - Privilege: "DeleteTaskDefinitions", + Description: "Grants permission to create integration resource property", + Privilege: "CreateIntegrationResourceProperty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-definition*", + ResourceType: "catalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified task set", - Privilege: "DeleteTaskSet", + Description: "Grants permission to create integration table properties", + Privilege: "CreateIntegrationTableProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-set*", + ResourceType: "catalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - "ecs:service", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an Amazon ECS container instance from the specified cluster", - Privilege: "DeregisterContainerInstance", + Description: "Grants permission to create a job", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "job*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "glue:VpcIds", + "glue:SubnetIds", + "glue:SecurityGroupIds", }, DependentActions: []string{}, ResourceType: "", @@ -105898,68 +148973,87 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister the specified task definition by family and revision", - Privilege: "DeregisterTaskDefinition", + Description: "Grants permission to create an ML Transform", + Privilege: "CreateMLTransform", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe one or more Amazon ECS capacity providers", - Privilege: "DescribeCapacityProviders", + AccessLevel: "Write", + Description: "Grants permission to create a partition", + Privilege: "CreatePartition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-provider*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describes one or more of your clusters", - Privilege: "DescribeClusters", + AccessLevel: "Write", + Description: "Grants permission to create a specified partition index in an existing table", + Privilege: "CreatePartitionIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describes Amazon ECS container instances", - Privilege: "DescribeContainerInstances", + AccessLevel: "Write", + Description: "Grants permission to create a new schema registry", + Privilege: "CreateRegistry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "registry*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -105967,19 +149061,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified services running in your cluster", - Privilege: "DescribeServices", + AccessLevel: "Write", + Description: "Grants permission to create a new schema container", + Privilege: "CreateSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "registry*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "schema*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -105987,9 +149086,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a task definition. You can specify a family and revision to find information about a specific task definition, or you can simply specify the family to find the latest ACTIVE revision in that family", - Privilege: "DescribeTaskDefinition", + AccessLevel: "Write", + Description: "Grants permission to create a script", + Privilege: "CreateScript", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -105999,40 +149098,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe Amazon ECS task sets", - Privilege: "DescribeTaskSets", + AccessLevel: "Write", + Description: "Grants permission to create a security configuration", + Privilege: "CreateSecurityConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-set*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - "ecs:service", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a specified task or tasks", - Privilege: "DescribeTasks", + AccessLevel: "Write", + Description: "Grants permission to create an interactive session", + Privilege: "CreateSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "session*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "glue:VpcIds", + "glue:SubnetIds", + "glue:SecurityGroupIds", }, DependentActions: []string{}, ResourceType: "", @@ -106041,37 +149134,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to get an endpoint for the Amazon ECS agent to poll for updates", - Privilege: "DiscoverPollEndpoint", + Description: "Grants permission to create a table", + Privilege: "CreateTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run a command remotely on an Amazon ECS container", - Privilege: "ExecuteCommand", + Description: "Grants permission to create a new table optimizer for a specific function. Compaction is the only currently supported optimizer type", + Privilege: "CreateTableOptimizer", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:GetTable", + }, + ResourceType: "database*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "table*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a trigger", + Privilege: "CreateTrigger", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trigger*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - "ecs:container-name", - "ecs:task", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -106079,19 +149204,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the protection status of tasks in an Amazon ECS service", - Privilege: "GetTaskProtection", + AccessLevel: "Write", + Description: "Grants permission to create a usage profile", + Privilege: "CreateUsageProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "usageProfile*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -106099,30 +149224,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the account settings for an Amazon ECS resource for a specified principal", - Privilege: "ListAccountSettings", + AccessLevel: "Write", + Description: "Grants permission to create a function definition", + Privilege: "CreateUserDefinedFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to lists the attributes for Amazon ECS resources within a specified target type and cluster", - Privilege: "ListAttributes", + AccessLevel: "Write", + Description: "Grants permission to create a workflow", + Privilege: "CreateWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "workflow*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -106130,129 +149266,155 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of existing clusters", - Privilege: "ListClusters", + AccessLevel: "Write", + Description: "Grants permission to delete a blueprint", + Privilege: "DeleteBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of container instances in a specified cluster", - Privilege: "ListContainerInstances", + AccessLevel: "Write", + Description: "Grants permission to delete a catalog", + Privilege: "DeleteCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of services that are running in a specified cluster", - Privilege: "ListServices", + AccessLevel: "Write", + Description: "Grants permission to delete a classifier", + Privilege: "DeleteClassifier", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of services that are running in a specified AWS Cloud Map Namespace", - Privilege: "ListServicesByNamespace", + AccessLevel: "Write", + Description: "Grants permission to delete the partition column statistics of a column", + Privilege: "DeleteColumnStatisticsForPartition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ecs:namespace", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of tags for the specified resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete the table statistics of columns", + Privilege: "DeleteColumnStatisticsForTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-provider", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance", + ResourceType: "table*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service", + ResourceType: "catalog", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete settings for a column statistics task", + Privilege: "DeleteColumnStatisticsTaskSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-definition", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-set", + ResourceType: "table*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a connection", + Privilege: "DeleteConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of task definition families that are registered to your account (which may include task definition families that no longer have any ACTIVE task definitions)", - Privilege: "ListTaskDefinitionFamilies", + AccessLevel: "Write", + Description: "Grants permission to delete a crawler", + Privilege: "DeleteCrawler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crawler*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of task definitions that are registered to your account", - Privilege: "ListTaskDefinitions", + AccessLevel: "Write", + Description: "Grants permission to delete a Custom Entity Type", + Privilege: "DeleteCustomEntityType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -106262,86 +149424,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of tasks for a specified cluster", - Privilege: "ListTasks", + AccessLevel: "Write", + Description: "Grants permission to delete a Data Quality ruleset", + Privilege: "DeleteDataQualityRuleset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to an agent to connect with the Amazon ECS service to report status and get commands", - Privilege: "Poll", + Description: "Grants permission to delete a database", + Privilege: "DeleteDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userdefinedfunction*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the ARN and resource ID format of a resource for a specified IAM user, IAM role, or the root user for an account. You can specify whether the new ARN and resource ID format are enabled for new resources that are created. Enabling this setting is required to use new Amazon ECS features such as resource tagging", - Privilege: "PutAccountSetting", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ecs:account-setting", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the ARN and resource ID format of a resource type for all IAM users on an account for which no individual account setting has been set. Enabling this setting is required to use new Amazon ECS features such as resource tagging", - Privilege: "PutAccountSettingDefault", + Description: "Grants permission to delete a development endpoint", + Privilege: "DeleteDevEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ecs:account-setting", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "devendpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an attribute on an Amazon ECS resource", - Privilege: "PutAttributes", + Description: "Grants permission to delete an integration", + Privilege: "DeleteIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "integration*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ecs:cluster", }, DependentActions: []string{}, ResourceType: "", @@ -106350,699 +149500,453 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the available capacity providers and the default capacity provider strategy for a cluster", - Privilege: "PutClusterCapacityProviders", + Description: "Grants permission to delete integration table properties", + Privilege: "DeleteIntegrationTableProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:capacity-provider", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register an EC2 instance into the specified cluster", - Privilege: "RegisterContainerInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "connection*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a new task definition from the supplied family and containerDefinitions", - Privilege: "RegisterTaskDefinition", + Description: "Grants permission to delete a job", + Privilege: "DeleteJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a task using random placement and the default Amazon ECS scheduler", - Privilege: "RunTask", + Description: "Grants permission to delete an ML Transform", + Privilege: "DeleteMLTransform", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "task-definition*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ecs:cluster", - "ecs:capacity-provider", - "ecs:enable-ebs-volumes", - "ecs:enable-execute-command", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlTransform*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a new task from the specified task definition on the specified container instance or instances", - Privilege: "StartTask", + Description: "Grants permission to delete a partition", + Privilege: "DeletePartition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "task-definition*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ecs:cluster", - "ecs:container-instances", - "ecs:enable-ebs-volumes", - "ecs:enable-execute-command", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a telemetry session", - Privilege: "StartTelemetrySession", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running task", - Privilege: "StopTask", + Description: "Grants permission to delete a specified partition index from an existing table", + Privilege: "DeletePartitionIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send an acknowledgement that attachments changed states", - Privilege: "SubmitAttachmentStateChanges", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an acknowledgement that a container changed states", - Privilege: "SubmitContainerStateChange", + Description: "Grants permission to delete a schema registry", + Privilege: "DeleteRegistry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "registry*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete a resource policy", + Privilege: "DeleteResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an acknowledgement that a task changed states", - Privilege: "SubmitTaskStateChange", + Description: "Grants permission to delete a schema container", + Privilege: "DeleteSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "registry*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag the specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a range of schema versions", + Privilege: "DeleteSchemaVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-provider", + ResourceType: "registry*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a security configuration", + Privilege: "DeleteSecurityConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an interactive session after stopping the session if not already stopped", + Privilege: "DeleteSession", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service", + ResourceType: "session*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a table", + Privilege: "DeleteTable", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-definition", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-set", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "ecs:CreateAction", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete an optimizer and all associated metadata for a table. The optimization will no longer be performed on the table", + Privilege: "DeleteTableOptimizer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "capacity-provider", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:GetTable", + }, + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a version of a table", + Privilege: "DeleteTableVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-definition", + ResourceType: "table*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-set", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the specified capacity provider", - Privilege: "UpdateCapacityProvider", + Description: "Grants permission to delete a trigger", + Privilege: "DeleteTrigger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "capacity-provider*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "trigger*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the configuration or settings to use for a cluster", - Privilege: "UpdateCluster", + Description: "Grants permission to delete a usage profile", + Privilege: "DeleteUsageProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:fargate-ephemeral-storage-kms-key", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "usageProfile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the settings to use for a cluster", - Privilege: "UpdateClusterSettings", + Description: "Grants permission to delete a function definition", + Privilege: "DeleteUserDefinedFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the Amazon ECS container agent on a specified container instance", - Privilege: "UpdateContainerAgent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "userdefinedfunction*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the user to modify the status of an Amazon ECS container instance", - Privilege: "UpdateContainerInstancesState", + Description: "Grants permission to delete a workflow", + Privilege: "DeleteWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container-instance*", + ResourceType: "workflow*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to terminate Glue Studio Notebook session", + Privilege: "DeregisterDataPreview", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a service", - Privilege: "UpdateService", + AccessLevel: "Permissions management", + Description: "Grants permission to describe connection type in glue studio", + Privilege: "DescribeConnectionType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - "ecs:capacity-provider", - "ecs:enable-ebs-volumes", - "ecs:enable-execute-command", - "ecs:enable-service-connect", - "ecs:namespace", - "ecs:task-definition", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the primary task set used in a service", - Privilege: "UpdateServicePrimaryTaskSet", + AccessLevel: "Permissions management", + Description: "Grants permission to describe entity in glue studio", + Privilege: "DescribeEntity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "connection*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the protection status of a task", - Privilege: "UpdateTaskProtection", + AccessLevel: "List", + Description: "Grants permission to list the inbound integrations", + Privilege: "DescribeInboundIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:cluster", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified task set", - Privilege: "UpdateTaskSet", + AccessLevel: "List", + Description: "Grants permission to describe zero-ETL integrations", + Privilege: "DescribeIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task-set*", + ResourceType: "integration*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ecs:cluster", - "ecs:service", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:cluster/${ClusterName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:container-instance/${ClusterName}/${ContainerInstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "container-instance", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:service/${ClusterName}/${ServiceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "service", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:task/${ClusterName}/${TaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "task", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:task-definition/${TaskDefinitionFamilyName}:${TaskDefinitionRevisionNumber}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "task-definition", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:capacity-provider/${CapacityProviderName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "capacity-provider", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:task-set/${ClusterName}/${ServiceName}/${TaskSetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ecs:ResourceTag/${TagKey}", - }, - Resource: "task-set", - }, - }, - ServiceName: "Amazon Elastic Container Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a key that is present in the request the user makes to the EKS service", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names present in the request the user makes to the EKS service", - Type: "ArrayOfString", - }, - { - Condition: "eks:accessEntryType", - Description: "Filters access by the access entry type present in the access entry requests the user makes to the EKS service", - Type: "String", - }, - { - Condition: "eks:accessScope", - Description: "Filters access by the accessScope present in the associate / disassociate access policy requests the user makes to the EKS service", - Type: "String", - }, - { - Condition: "eks:bootstrapClusterCreatorAdminPermissions", - Description: "Filters access by the bootstrapClusterCreatorAdminPermissions present in the create cluster request", - Type: "Bool", - }, - { - Condition: "eks:bootstrapSelfManagedAddons", - Description: "Filters access by the bootstrapSelfManagedAddons present in the create cluster request", - Type: "Bool", - }, - { - Condition: "eks:clientId", - Description: "Filters access by the clientId present in the associateIdentityProviderConfig request the user makes to the EKS service", - Type: "String", - }, - { - Condition: "eks:clusterName", - Description: "Filters access by the clusterName present in the access entry requests the user makes to the EKS service", - Type: "String", - }, - { - Condition: "eks:issuerUrl", - Description: "Filters access by the issuerUrl present in the associateIdentityProviderConfig request the user makes to the EKS service", - Type: "String", - }, - { - Condition: "eks:kubernetesGroups", - Description: "Filters access by the kubernetesGroups present in the access entry requests the user makes to the EKS service", - Type: "ArrayOfString", - }, - { - Condition: "eks:namespaces", - Description: "Filters access by the namespaces present in the associate / disassociate access policy requests the user makes to the EKS service", - Type: "ArrayOfString", - }, - { - Condition: "eks:policyArn", - Description: "Filters access by the policyArn present in the access entry requests the user makes to the EKS service", - Type: "ARN", - }, - { - Condition: "eks:principalArn", - Description: "Filters access by the principalArn present in the access entry requests requests the user makes to the EKS service", - Type: "ARN", - }, - { - Condition: "eks:username", - Description: "Filters access by the Kubernetes username present in the access entry requests the user makes to the EKS service", - Type: "String", - }, - }, - Prefix: "eks", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to view Kubernetes objects via AWS EKS console", - Privilege: "AccessKubernetesApi", + Description: "Grants permission to retrieve a blueprint", + Privilege: "GetBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "blueprint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an Amazon EKS access policy to an Amazon EKS access entry", - Privilege: "AssociateAccessPolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve a blueprint run", + Privilege: "GetBlueprintRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry*", - }, - { - ConditionKeys: []string{ - "eks:policyArn", - "eks:namespaces", - "eks:accessScope", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate encryption configuration to a cluster", - Privilege: "AssociateEncryptionConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve all runs of a blueprint", + Privilege: "GetBlueprintRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "blueprint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate an identity provider configuration to a cluster", - Privilege: "AssociateIdentityProviderConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve a catalog", + Privilege: "GetCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "eks:clientId", - "eks:issuerUrl", + "glue:EnabledForRedshiftAutoDiscovery", }, DependentActions: []string{}, ResourceType: "", @@ -107050,48 +149954,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon EKS access entry", - Privilege: "CreateAccessEntry", + AccessLevel: "Read", + Description: "Grants permission to retrieve the catalog import status", + Privilege: "GetCatalogImportStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "eks:principalArn", - "eks:kubernetesGroups", - "eks:username", - "eks:accessEntryType", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon EKS add-on", - Privilege: "CreateAddon", + AccessLevel: "Read", + Description: "Grants permission to retrieve all catalogs", + Privilege: "GetCatalogs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation", + ResourceType: "catalog", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "glue:EnabledForRedshiftAutoDiscovery", }, DependentActions: []string{}, ResourceType: "", @@ -107099,401 +149990,403 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon EKS cluster", - Privilege: "CreateCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve a classifier", + Privilege: "GetClassifier", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "eks:bootstrapClusterCreatorAdminPermissions", - "eks:bootstrapSelfManagedAddons", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an EKS Anywhere subscription", - Privilege: "CreateEksAnywhereSubscription", + AccessLevel: "Read", + Description: "Grants permission to list all classifiers", + Privilege: "GetClassifiers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Fargate profile", - Privilege: "CreateFargateProfile", + AccessLevel: "Read", + Description: "Grants permission to retrieve partition statistics of columns", + Privilege: "GetColumnStatisticsForPartition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon EKS Nodegroup", - Privilege: "CreateNodegroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an EKS Pod Identity association", - Privilege: "CreatePodIdentityAssociation", + AccessLevel: "Read", + Description: "Grants permission to retrieve table statistics of columns", + Privilege: "GetColumnStatisticsForTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon EKS access entry", - Privilege: "DeleteAccessEntry", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry*", + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon EKS add-on", - Privilege: "DeleteAddon", + AccessLevel: "Read", + Description: "Grants permission to retrieve Column Statistics run information for the table based on run-id", + Privilege: "GetColumnStatisticsTaskRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve Column Statistics run information for the table based on run-ids", + Privilege: "GetColumnStatisticsTaskRuns", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon EKS cluster", - Privilege: "DeleteCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve settings for a column statistics task", + Privilege: "GetColumnStatisticsTaskSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to describe an EKS Anywhere subscription", - Privilege: "DeleteEksAnywhereSubscription", + AccessLevel: "Read", + Description: "Grants permission to get generated response for a completion request in Glue from AWS Q", + Privilege: "GetCompletion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eks-anywhere-subscription*", + ResourceType: "completion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Fargate profile", - Privilege: "DeleteFargateProfile", + AccessLevel: "Read", + Description: "Grants permission to retrieve a connection", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fargateprofile*", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon EKS Nodegroup", - Privilege: "DeleteNodegroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of connections", + Privilege: "GetConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup*", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an EKS Pod Identity association", - Privilege: "DeletePodIdentityAssociation", + AccessLevel: "Read", + Description: "Grants permission to retrieve a crawler", + Privilege: "GetCrawler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation*", + ResourceType: "crawler*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister an External cluster", - Privilege: "DeregisterCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve metrics about crawlers", + Privilege: "GetCrawlerMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an Amazon EKS access entry", - Privilege: "DescribeAccessEntry", + Description: "Grants permission to retrieve all crawlers", + Privilege: "GetCrawlers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive information about an Amazon EKS add-on", - Privilege: "DescribeAddon", + Description: "Grants permission to read a Custom Entity Type", + Privilege: "GetCustomEntityType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list configuration options about an Amazon EKS add-on", - Privilege: "DescribeAddonConfiguration", + Description: "Grants permission to generate presigned url for accessing spark live UI", + Privilege: "GetDashboardUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive version information about the add-ons that Amazon EKS Add-ons supports", - Privilege: "DescribeAddonVersions", + Description: "Grants permission to retrieve catalog encryption settings", + Privilege: "GetDataCatalogEncryptionSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive information about an Amazon EKS cluster", - Privilege: "DescribeCluster", + AccessLevel: "Permissions management", + Description: "Grants permission to get Data Preview Statement", + Privilege: "GetDataPreviewStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an EKS Anywhere subscription", - Privilege: "DescribeEksAnywhereSubscription", + Description: "Grants permission to retrieve the training status of the prediction model for a statistic", + Privilege: "GetDataQualityModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eks-anywhere-subscription*", + ResourceType: "dataQualityRuleset*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive information about an AWS Fargate profile associated with a cluster", - Privilege: "DescribeFargateProfile", + Description: "Grants permission to retrieve the predictions for a statistic from the latest model", + Privilege: "GetDataQualityModelResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fargateprofile*", + ResourceType: "dataQualityRuleset*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive information about an Idp config associated with a cluster", - Privilege: "DescribeIdentityProviderConfig", + Description: "Grants permission to retrieve a Data Quality result", + Privilege: "GetDataQualityResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identityproviderconfig*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive information of a detected insight for a specified cluster", - Privilege: "DescribeInsight", + Description: "Grants permission to retrieve a Data Quality rule recommendation run", + Privilege: "GetDataQualityRuleRecommendationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve descriptive information about an Amazon EKS nodegroup", - Privilege: "DescribeNodegroup", + Description: "Grants permission to retrieve a Data Quality ruleset", + Privilege: "GetDataQualityRuleset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an EKS Pod Identity association", - Privilege: "DescribePodIdentityAssociation", + Description: "Grants permission to retrieve a Data Quality rule recommendation run", + Privilege: "GetDataQualityRulesetEvaluationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a given update for a given Amazon EKS cluster/nodegroup/add-on (in the specified or default region)", - Privilege: "DescribeUpdate", + Description: "Grants permission to retrieve a database", + Privilege: "GetDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an Amazon EKS access policy from an Amazon EKS acces entry", - Privilege: "DisassociateAccessPolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve all databases", + Privilege: "GetDatabases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "eks:policyArn", - "eks:namespaces", - "eks:accessScope", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an asssociated Idp config", - Privilege: "DisassociateIdentityProviderConfig", + AccessLevel: "Read", + Description: "Grants permission to transform a script into a directed acyclic graph (DAG)", + Privilege: "GetDataflowGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identityproviderconfig*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Amazon EKS access entries", - Privilege: "ListAccessEntries", + AccessLevel: "Read", + Description: "Grants permission to retrieve a development endpoint", + Privilege: "GetDevEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "devendpoint*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Amazon EKS access policies", - Privilege: "ListAccessPolicies", + AccessLevel: "Read", + Description: "Grants permission to retrieve all development endpoints", + Privilege: "GetDevEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -107503,33 +150396,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon EKS add-ons in your AWS account (in the specified or default region) for a given cluster", - Privilege: "ListAddons", + AccessLevel: "Read", + Description: "Grants permission to preview entity records in glue", + Privilege: "GetEntityRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "catalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list associated access policy on and Amazon EKS access entry", - Privilege: "ListAssociatedAccessPolicies", + AccessLevel: "Permissions management", + Description: "Grants permission to get environment details for SparkUI", + Privilege: "GetEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon EKS clusters in your AWS account (in the specified or default region)", - Privilege: "ListClusters", + AccessLevel: "Permissions management", + Description: "Grants permission to get executors for SparkUI", + Privilege: "GetExecutors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -107539,9 +150437,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list EKS Anywhere subscriptions", - Privilege: "ListEksAnywhereSubscriptions", + AccessLevel: "Permissions management", + Description: "Grants permission to get executor threads for SparkUI", + Privilege: "GetExecutorsThreads", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -107551,474 +150449,514 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the AWS Fargate profiles in your AWS account (in the specified or default region) associated with a given cluster", - Privilege: "ListFargateProfiles", + AccessLevel: "Read", + Description: "Transforms a directed acyclic graph (DAG) into code", + Privilege: "GetGeneratedCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Idp configs in your AWS account (in the specified or default region) associated with a given cluster", - Privilege: "ListIdentityProviderConfigs", + AccessLevel: "Read", + Description: "Grants permission to retrieve the integration resource property", + Privilege: "GetIntegrationResourceProperty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "catalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all detected insights for a specified cluster", - Privilege: "ListInsights", + AccessLevel: "Read", + Description: "Grants permission to retrieve the integration table properties", + Privilege: "GetIntegrationTableProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "catalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon EKS nodegroups in your AWS account (in the specified or default region) attached to given cluster", - Privilege: "ListNodegroups", + AccessLevel: "Read", + Description: "Grants permission to retrieve a job", + Privilege: "GetJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list EKS Pod Identity associations", - Privilege: "ListPodIdentityAssociations", + AccessLevel: "Read", + Description: "Grants permission to retrieve a job bookmark", + Privilege: "GetJobBookmark", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for the specified resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve a job run", + Privilege: "GetJobRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon", + ResourceType: "job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all job runs of a job", + Privilege: "GetJobRuns", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an upgrade analysis for a job", + Privilege: "GetJobUpgradeAnalysis", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eks-anywhere-subscription", + ResourceType: "job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all current jobs", + Privilege: "GetJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fargateprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to get log parsing status for SparkUI", + Privilege: "GetLogParsingStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identityproviderconfig", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an ML Task Run", + Privilege: "GetMLTaskRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup", + ResourceType: "mlTransform*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the updates for a given Amazon EKS cluster/nodegroup/add-on (in the specified or default region)", - Privilege: "ListUpdates", + Description: "Grants permission to retrieve all ML Task Runs", + Privilege: "GetMLTaskRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "mlTransform*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an ML Transform", + Privilege: "GetMLTransform", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon", + ResourceType: "mlTransform*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all ML Transforms", + Privilege: "GetMLTransforms", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup", + ResourceType: "mlTransform*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register an External cluster", - Privilege: "RegisterCluster", + AccessLevel: "Read", + Description: "Grants permission to create a mapping", + Privilege: "GetMapping", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag the specified resource", - Privilege: "TagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to retrieve Glue Studio Notebooks session status", + Privilege: "GetNotebookInstanceStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a partition", + Privilege: "GetPartition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eks-anywhere-subscription", + ResourceType: "table*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fargateprofile", + ResourceType: "catalog", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve partition indexes for a table", + Privilege: "GetPartitionIndexes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identityproviderconfig", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve the partitions of a table", + Privilege: "GetPartitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "table*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eks-anywhere-subscription", + ResourceType: "catalog", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a mapping for a script", + Privilege: "GetPlan", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fargateprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to get queries for SparkUI", + Privilege: "GetQueries", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identityproviderconfig", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to get a specific query for SparkUI", + Privilege: "GetQuery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to get the result of a Data Preparation Recipe statement", + Privilege: "GetRecipeAction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an Amazon EKS access entry", - Privilege: "UpdateAccessEntry", + AccessLevel: "Read", + Description: "Grants permission to retrieve a schema registry", + Privilege: "GetRegistry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-entry*", + ResourceType: "registry*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Amazon EKS add-on configurations, such as the VPC-CNI version", - Privilege: "UpdateAddon", + AccessLevel: "Read", + Description: "Grants permission to retrieve resource policies", + Privilege: "GetResourcePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon*", + ResourceType: "rootcatalog*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a resource policy", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Amazon EKS cluster configurations (eg: API server endpoint access)", - Privilege: "UpdateClusterConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve a schema container", + Privilege: "GetSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "registry*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "schema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the Kubernetes version of an Amazon EKS cluster", - Privilege: "UpdateClusterVersion", + AccessLevel: "Read", + Description: "Grants permission to retrieve a schema version based on schema definition", + Privilege: "GetSchemaByDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "registry*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "schema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an EKS Anywhere subscription", - Privilege: "UpdateEksAnywhereSubscription", + AccessLevel: "Read", + Description: "Grants permission to retrieve a schema version", + Privilege: "GetSchemaVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eks-anywhere-subscription*", + ResourceType: "registry", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "schema", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Amazon EKS nodegroup configurations (eg: min/max/desired capacity or labels)", - Privilege: "UpdateNodegroupConfig", + AccessLevel: "Read", + Description: "Grants permission to compare two schema versions in schema registry", + Privilege: "GetSchemaVersionsDiff", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup*", + ResourceType: "registry*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "schema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the Kubernetes version of an Amazon EKS nodegroup", - Privilege: "UpdateNodegroupVersion", + AccessLevel: "Read", + Description: "Grants permission to retrieve a security configuration", + Privilege: "GetSecurityConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "nodegroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an EKS Pod Identity association", - Privilege: "UpdatePodIdentityAssociation", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more security configurations", + Privilege: "GetSecurityConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "podidentityassociation*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:cluster/${ClusterName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:nodegroup/${ClusterName}/${NodegroupName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "nodegroup", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:addon/${ClusterName}/${AddonName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "addon", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:fargateprofile/${ClusterName}/${FargateProfileName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "fargateprofile", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:identityproviderconfig/${ClusterName}/${IdentityProviderType}/${IdentityProviderConfigName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "identityproviderconfig", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:eks-anywhere-subscription/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "eks-anywhere-subscription", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:podidentityassociation/${ClusterName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "podidentityassociation", - }, - { - Arn: "arn:${Partition}:eks:${Region}:${Account}:access-entry/${ClusterName}/${IamIdentityType}/${IamIdentityAccountID}/${IamIdentityName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "eks:accessEntryType", - "eks:clusterName", - "eks:kubernetesGroups", - "eks:principalArn", - "eks:username", - }, - Resource: "access-entry", - }, - { - Arn: "arn:${Partition}:eks::aws:cluster-access-policy/${AccessPolicyName}", - ConditionKeys: []string{}, - Resource: "access-policy", - }, - }, - ServiceName: "Amazon Elastic Kubernetes Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", - Type: "String", - }, - }, - Prefix: "eks-auth", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to exchange a Kubernetes service account token for temporary AWS credentials", - Privilege: "AssumeRoleForPodIdentity", + Description: "Grants permission to retrieve an interactive session", + Privilege: "GetSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "session*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:eks:${Region}:${Account}:cluster/${ClusterName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Permissions management", + Description: "Grants permission to get a stage for SparkUI", + Privilege: "GetStage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "cluster", }, - }, - ServiceName: "Amazon EKS Auth", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "elastic-inference", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to customer for connecting to Elastic Inference accelerator", - Privilege: "Connect", + AccessLevel: "Permissions management", + Description: "Grants permission to get a stage attempt for SparkUI", + Privilege: "GetStageAttempt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the locations in which a given accelerator type or set of types is present in a given region", - Privilege: "DescribeAcceleratorOfferings", + AccessLevel: "Permissions management", + Description: "Grants permission to get the task list for a stage attempt for SparkUI", + Privilege: "GetStageAttemptTaskList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -108028,9 +150966,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the accelerator types available in a given region, as well as their characteristics, such as memory and throughput", - Privilege: "DescribeAcceleratorTypes", + AccessLevel: "Permissions management", + Description: "Grants permission to get the task summary for a stage attempt for SparkUI", + Privilege: "GetStageAttemptTaskSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -108040,9 +150978,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to describe information over a provided set of accelerators belonging to an account", - Privilege: "DescribeAccelerators", + AccessLevel: "Permissions management", + Description: "Grants permission to get stage files for SparkUI", + Privilege: "GetStageFiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -108052,9 +150990,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags on an Amazon RDS resource", - Privilege: "ListTagsForResource", + AccessLevel: "Permissions management", + Description: "Grants permission to get stages for SparkUI", + Privilege: "GetStages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -108064,21 +151002,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to assign one or more tags (key-value pairs) to the specified QuickSight resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve result and information about a statement in an interactive session", + Privilege: "GetStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag or tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to get storage details for SparkUI", + Privilege: "GetStorage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -108087,537 +151025,354 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:elastic-inference:${Region}:${Account}:elastic-inference-accelerator/${AcceleratorId}", - ConditionKeys: []string{}, - Resource: "accelerator", - }, - }, - ServiceName: "Amazon Elastic Inference", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticache:AtRestEncryptionEnabled", - Description: "Filters access by the AtRestEncryptionEnabled parameter present in the request or default false value if parameter is not present", - Type: "Bool", - }, - { - Condition: "elasticache:AuthTokenEnabled", - Description: "Filters access by the presence of non empty AuthToken parameter in the request", - Type: "Bool", - }, - { - Condition: "elasticache:AutomaticFailoverEnabled", - Description: "Filters access by the AutomaticFailoverEnabled parameter in the request", - Type: "Bool", - }, - { - Condition: "elasticache:CacheNodeType", - Description: "Filters access by the cacheNodeType parameter present in the request. This key can be used to restrict which cache node types can be used on cluster creation or scaling operations", - Type: "String", - }, - { - Condition: "elasticache:CacheParameterGroupName", - Description: "Filters access by the CacheParameterGroupName parameter in the request", - Type: "String", - }, - { - Condition: "elasticache:ClusterModeEnabled", - Description: "Filters access by the cluster mode parameter present in the request. Default value for single node group (shard) creations is false", - Type: "Bool", - }, - { - Condition: "elasticache:DataStorageUnit", - Description: "Filters access by the CacheUsageLimits.DataStorage.Unit parameter in the CreateServerlessCache and ModifyServerlessCache request", - Type: "String", - }, - { - Condition: "elasticache:EngineType", - Description: "Filters access by the engine type present in creation requests. For replication group creations, default engine 'redis' is used as key if parameter is not present", - Type: "String", - }, { - Condition: "elasticache:EngineVersion", - Description: "Filters access by the engineVersion parameter present in creation or cluster modification requests", - Type: "String", - }, - { - Condition: "elasticache:KmsKeyId", - Description: "Filters access by the KmsKeyId parameter in the request", - Type: "String", - }, - { - Condition: "elasticache:MaximumDataStorage", - Description: "Filters access by the CacheUsageLimits.DataStorage.Maximum parameter in the CreateServerlessCache and ModifyServerlessCache request", - Type: "Numeric", - }, - { - Condition: "elasticache:MaximumECPUPerSecond", - Description: "Filters access by the CacheUsageLimits.ECPUPerSecond.Maximum parameter in the CreateServerlessCache and ModifyServerlessCache request", - Type: "Numeric", - }, - { - Condition: "elasticache:MultiAZEnabled", - Description: "Filters access by the AZMode parameter, MultiAZEnabled parameter or the number of availability zones that the cluster or replication group can be placed in", - Type: "Bool", - }, - { - Condition: "elasticache:NumNodeGroups", - Description: "Filters access by the NumNodeGroups or NodeGroupCount parameter specified in the request. This key can be used to restrict the number of node groups (shards) clusters can have after creation or scaling operations", - Type: "Numeric", - }, - { - Condition: "elasticache:ReplicasPerNodeGroup", - Description: "Filters access by the number of replicas per node group (shards) specified in creations or scaling requests", - Type: "Numeric", - }, - { - Condition: "elasticache:SnapshotRetentionLimit", - Description: "Filters access by the SnapshotRetentionLimit parameter in the request", - Type: "Numeric", - }, - { - Condition: "elasticache:TransitEncryptionEnabled", - Description: "Filters access by the TransitEncryptionEnabled parameter present in the request. For replication group creations, default value 'false' is used as key if parameter is not present", - Type: "Bool", - }, - { - Condition: "elasticache:UserAuthenticationMode", - Description: "Filters access by the UserAuthenticationMode parameter in the request", - Type: "String", - }, - }, - Prefix: "elasticache", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an ElastiCache resource", - Privilege: "AddTagsToResource", + AccessLevel: "Permissions management", + Description: "Grants permission to get storage unit details for SparkUI", + Privilege: "GetStorageUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a table", + Privilege: "GetTable", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reserved-instance", + ResourceType: "table*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "catalog", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the configuration of all optimizers associated with a specified table", + Privilege: "GetTableOptimizer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "serverlesscache", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:GetTable", + }, + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a version of a table", + Privilege: "GetTableVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to authorize an EC2 security group on a ElastiCache security group", - Privilege: "AuthorizeCacheSecurityGroupIngress", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of versions of a table", + Privilege: "GetTableVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:AuthorizeSecurityGroupIngress", - }, - ResourceType: "securitygroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to apply ElastiCache service updates to sets of clusters and replication groups", - Privilege: "BatchApplyUpdateAction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "s3:GetObject", - }, - ResourceType: "cluster", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop ElastiCache service updates from being executed on a set of clusters", - Privilege: "BatchStopUpdateAction", + AccessLevel: "Read", + Description: "Grants permission to retrieve the tables in a database", + Privilege: "GetTables", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to complete an online migration of data from hosted Redis on Amazon EC2 to ElastiCache", - Privilege: "CompleteMigration", + AccessLevel: "Read", + Description: "Grants permission to retrieve all tags associated with a resource", + Privilege: "GetTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "blueprint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "crawler", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customEntityType", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to connect as a specified ElastiCache user to an ElastiCache Replication Group or ElastiCache serverless cache", - Privilege: "Connect", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "devendpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscache", + ResourceType: "trigger", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "usageProfile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workflow", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to make a copy of an existing serverless cache snapshot", - Privilege: "CopyServerlessCacheSnapshot", + AccessLevel: "Read", + Description: "Grants permission to retrieve a trigger", + Privilege: "GetTrigger", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:KmsKeyId", - }, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "serverlesscachesnapshot*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trigger*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the triggers associated with a job", + Privilege: "GetTriggers", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to make a copy of an existing snapshot", - Privilege: "CopySnapshot", + AccessLevel: "Read", + Description: "Grants permission to retrieve a usage profile", + Privilege: "GetUsageProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - "s3:DeleteObject", - "s3:GetBucketAcl", - "s3:PutObject", - }, - ResourceType: "snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticache:KmsKeyId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "usageProfile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a cache cluster", - Privilege: "CreateCacheCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve a function definition", + Privilege: "GetUserDefinedFunction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "elasticache:AddTagsToResource", - "s3:GetObject", - }, - ResourceType: "parametergroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticache:CacheNodeType", - "elasticache:EngineVersion", - "elasticache:EngineType", - "elasticache:MultiAZEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:SnapshotRetentionLimit", - "elasticache:CacheParameterGroupName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "elasticache:CacheNodeType", - "elasticache:EngineVersion", - "elasticache:EngineType", - "elasticache:MultiAZEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:SnapshotRetentionLimit", - "elasticache:CacheParameterGroupName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "userdefinedfunction*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "catalog", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve multiple function definitions", + Privilege: "GetUserDefinedFunctions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "userdefinedfunction*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a parameter group", - Privilege: "CreateCacheParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve a workflow", + Privilege: "GetWorkflow", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticache:CacheParameterGroupName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a cache security group", - Privilege: "CreateCacheSecurityGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve a workflow run", + Privilege: "GetWorkflowRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "securitygroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a cache subnet group", - Privilege: "CreateCacheSubnetGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve workflow run properties", + Privilege: "GetWorkflowRunProperties", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "subnetgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a global replication group", - Privilege: "CreateGlobalReplicationGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve all runs of a workflow", + Privilege: "GetWorkflowRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "workflow*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to access Glue Studio Notebooks", + Privilege: "GlueNotebookAuthorize", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to refresh Glue Studio Notebooks credentials", + Privilege: "GlueNotebookRefreshCredentials", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -108625,386 +151380,321 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a replication group", - Privilege: "CreateReplicationGroup", + Description: "Grants permission to import an Athena data catalog into AWS Glue", + Privilege: "ImportCatalogToGlue", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "elasticache:AddTagsToResource", - "s3:GetObject", - }, - ResourceType: "parametergroup*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{ - "elasticache:NumNodeGroups", - "elasticache:CacheNodeType", - "elasticache:ReplicasPerNodeGroup", - "elasticache:EngineVersion", - "elasticache:EngineType", - "elasticache:AtRestEncryptionEnabled", - "elasticache:TransitEncryptionEnabled", - "elasticache:AutomaticFailoverEnabled", - "elasticache:MultiAZEnabled", - "elasticache:ClusterModeEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:SnapshotRetentionLimit", - "elasticache:KmsKeyId", - "elasticache:CacheParameterGroupName", - }, - DependentActions: []string{}, - ResourceType: "globalreplicationgroup", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticache:NumNodeGroups", - "elasticache:CacheNodeType", - "elasticache:ReplicasPerNodeGroup", - "elasticache:EngineVersion", - "elasticache:EngineType", - "elasticache:AtRestEncryptionEnabled", - "elasticache:TransitEncryptionEnabled", - "elasticache:AutomaticFailoverEnabled", - "elasticache:MultiAZEnabled", - "elasticache:ClusterModeEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:SnapshotRetentionLimit", - "elasticache:KmsKeyId", - "elasticache:CacheParameterGroupName", - }, - DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "rootcatalog*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all blueprints", + Privilege: "ListBlueprints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all Column Statistics run-ids that have been executed for the account", + Privilege: "ListColumnStatisticsTaskRuns", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to list connection types in glue studio", + Privilege: "ListConnectionTypes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all crawlers", + Privilege: "ListCrawlers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a serverless cache", - Privilege: "CreateServerlessCache", + AccessLevel: "List", + Description: "Grants permission to retrieve crawl run history for a crawler", + Privilege: "ListCrawls", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:EngineType", - "elasticache:EngineVersion", - "elasticache:SnapshotRetentionLimit", - "elasticache:KmsKeyId", - "elasticache:MaximumDataStorage", - "elasticache:DataStorageUnit", - "elasticache:MaximumECPUPerSecond", - }, - DependentActions: []string{ - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "ec2:DeleteVpcEndpoints", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeTags", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "elasticache:AddTagsToResource", - "s3:GetObject", - }, - ResourceType: "serverlesscache*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot", + ResourceType: "crawler*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all Custom Entity Types", + Privilege: "ListCustomEntityTypes", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all Data Quality results", + Privilege: "ListDataQualityResults", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", + ResourceType: "dataQualityRuleset*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all Data Quality rule recommendation runs", + Privilege: "ListDataQualityRuleRecommendationRuns", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataQualityRuleset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a copy of a serverless cache at a specific moment in time", - Privilege: "CreateServerlessCacheSnapshot", + AccessLevel: "List", + Description: "Grants permission to retrieve all Data Quality rule recommendation runs", + Privilege: "ListDataQualityRulesetEvaluationRuns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "serverlesscache*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataQualityRuleset*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of Data Quality rulesets", + Privilege: "ListDataQualityRulesets", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:KmsKeyId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot*", + ResourceType: "dataQualityRuleset*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all development endpoints", + Privilege: "ListDevEndpoints", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a copy of an entire Redis cluster at a specific moment in time", - Privilege: "CreateSnapshot", + AccessLevel: "Permissions management", + Description: "Grants permission to list entities in glue studio", + Privilege: "ListEntities", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticache:KmsKeyId", - }, - DependentActions: []string{ - "elasticache:AddTagsToResource", - "s3:DeleteObject", - "s3:GetBucketAcl", - "s3:PutObject", - }, - ResourceType: "snapshot*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "rootcatalog*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list upgrade analyses for a job", + Privilege: "ListJobUpgradeAnalyses", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "job*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all current jobs", + Privilege: "ListJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a user for Redis. Users are supported from Redis 6.0 onwards", - Privilege: "CreateUser", + AccessLevel: "List", + Description: "Grants permission to retrieve all ML Transforms", + Privilege: "ListMLTransforms", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "user*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlTransform*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of schema registries", + Privilege: "ListRegistries", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticache:UserAuthenticationMode", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a user group for Redis. Groups are supported from Redis 6.0 onwards", - Privilege: "CreateUserGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of schema versions", + Privilege: "ListSchemaVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup*", + ResourceType: "registry*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to decrease the number of node groups in global replication groups", - Privilege: "DecreaseNodeGroupsInGlobalReplicationGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of schema containers", + Privilege: "ListSchemas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "registry", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of interactive session", + Privilege: "ListSessions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticache:NumNodeGroups", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to decrease the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group", - Privilege: "DecreaseReplicaCount", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of statements in an interactive session", + Privilege: "ListStatements", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "replicationgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:ReplicasPerNodeGroup", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a previously provisioned cluster", - Privilege: "DeleteCacheCluster", + AccessLevel: "List", + Description: "Grants permission to list the history of previous optimizer runs for a specific table", + Privilege: "ListTableOptimizerRuns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", + "glue:GetTable", }, - ResourceType: "cluster*", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified cache parameter group", - Privilege: "DeleteCacheParameterGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve all triggers", + Privilege: "ListTriggers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:CacheParameterGroupName", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a cache security group", - Privilege: "DeleteCacheSecurityGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of usage profiles", + Privilege: "ListUsageProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all workflows", + Privilege: "ListWorkflows", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -109012,19 +151702,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a cache subnet group", - Privilege: "DeleteCacheSubnetGroup", + Description: "Grants permission to modify a zero-ETL integration", + Privilege: "ModifyIntegration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "subnetgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration*", }, { ConditionKeys: []string{ @@ -109037,244 +151721,199 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing global replication group", - Privilege: "DeleteGlobalReplicationGroup", + Description: "Grants permission to notify an event to the event-driven workflow", + Privilege: "NotifyEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing replication group", - Privilege: "DeleteReplicationGroup", + Description: "Grants permission to pass glue connection name in input for APIs that require them", + Privilege: "PassConnection", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "replicationgroup*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "connection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a serverless cache", - Privilege: "DeleteServerlessCache", + Description: "Grants permission to publish Data Quality results", + Privilege: "PublishDataQuality", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:DescribeTags", - }, - ResourceType: "serverlesscache*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a serverless cache snapshot", - Privilege: "DeleteServerlessCacheSnapshot", + Description: "Grants permission to update catalog encryption settings", + Privilege: "PutDataCatalogEncryptionSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot*", + ResourceType: "rootcatalog*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing snapshot", - Privilege: "DeleteSnapshot", + Description: "Grants permission to annotate all datapoints for a profile", + Privilege: "PutDataQualityProfileAnnotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "dataQualityRuleset*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing user and thus remove it from all user groups and replication groups where it was assigned", - Privilege: "DeleteUser", + Description: "Grants permission to annotate datapoints over time for a specific data quality statistic", + Privilege: "PutDataQualityStatisticAnnotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "dataQualityRuleset*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing user group", - Privilege: "DeleteUserGroup", + AccessLevel: "Permissions management", + Description: "Grants permission to update a resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about provisioned cache clusters", - Privilege: "DescribeCacheClusters", + AccessLevel: "Write", + Description: "Grants permission to add metadata to schema version", + Privilege: "PutSchemaVersionMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "registry", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "schema", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available cache engines and their versions", - Privilege: "DescribeCacheEngineVersions", + AccessLevel: "Write", + Description: "Grants permission to update workflow run properties", + Privilege: "PutWorkflowRunProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list cache parameter group descriptions", - Privilege: "DescribeCacheParameterGroups", + Description: "Grants permission to fetch metadata for a schema version", + Privilege: "QuerySchemaVersionMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "registry", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "schema", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the detailed parameter list for a particular cache parameter group", - Privilege: "DescribeCacheParameters", + AccessLevel: "Permissions management", + Description: "Grants permission to refresh the oauth2 tokens for connection during job execution", + Privilege: "RefreshOAuth2Tokens", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "connection*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list cache security group descriptions", - Privilege: "DescribeCacheSecurityGroups", + AccessLevel: "Write", + Description: "Grants permission to create a new schema version", + Privilege: "RegisterSchemaVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", + ResourceType: "registry*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "schema*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list cache subnet group descriptions", - Privilege: "DescribeCacheSubnetGroups", + AccessLevel: "Write", + Description: "Grants permission to remove metadata from schema version", + Privilege: "RemoveSchemaVersionMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup*", + ResourceType: "registry", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "schema", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the default engine and system parameter information for the specified cache engine", - Privilege: "DescribeEngineDefaultParameters", + AccessLevel: "Permissions management", + Description: "Grants permission to request log parsing for SparkUI", + Privilege: "RequestLogParsing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -109284,9 +151923,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list events related to clusters, cache security groups, and cache parameter groups", - Privilege: "DescribeEvents", + AccessLevel: "Write", + Description: "Grants permission to reset a job bookmark", + Privilege: "ResetJobBookmark", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -109296,106 +151935,84 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about global replication groups", - Privilege: "DescribeGlobalReplicationGroups", + AccessLevel: "Write", + Description: "Grants permission to resume a workflow run", + Privilege: "ResumeWorkflowRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about provisioned replication groups", - Privilege: "DescribeReplicationGroups", + AccessLevel: "Permissions management", + Description: "Grants permission to run Data Preview Statement", + Privilege: "RunDataPreviewStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about purchased reserved cache nodes", - Privilege: "DescribeReservedCacheNodes", + AccessLevel: "Write", + Description: "Grants permission to run a code or statement in an interactive session", + Privilege: "RunStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reserved-instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available reserved cache node offerings", - Privilege: "DescribeReservedCacheNodesOfferings", + AccessLevel: "Read", + Description: "Grants permission to retrieve the tables in the catalog", + Privilege: "SearchTables", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list information about serverless cache snapshots", - Privilege: "DescribeServerlessCacheSnapshots", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot*", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscache", + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list serverless caches", - Privilege: "DescribeServerlessCaches", + AccessLevel: "Write", + Description: "Grants permission to provide feedback about a glue completion experience in AWS Q", + Privilege: "SendFeedback", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscache*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list details of the service updates", - Privilege: "DescribeServiceUpdates", + AccessLevel: "Permissions management", + Description: "Grants permission to execute a Data Preparation Recipe statement in data preview", + Privilege: "SendRecipeAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -109405,81 +152022,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about cluster or replication group snapshots", - Privilege: "DescribeSnapshots", + AccessLevel: "Write", + Description: "Grants permission to start running a blueprint", + Privilege: "StartBlueprintRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "blueprint*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a run for generating Column Statistics for the table", + Privilege: "StartColumnStatisticsTaskRun", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:GetSecurityConfiguration", + "glue:GetTable", }, + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list details of the update actions for a set of clusters or replication groups", - Privilege: "DescribeUpdateActions", + AccessLevel: "Write", + Description: "Grants permission to start a column statistics task run schedule", + Privilege: "StartColumnStatisticsTaskRunSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about Redis user groups", - Privilege: "DescribeUserGroups", + AccessLevel: "Write", + Description: "Grants permission to create a completion request in Glue for AWS Q experience", + Privilege: "StartCompletion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about Redis users", - Privilege: "DescribeUsers", + AccessLevel: "Write", + Description: "Grants permission to start a crawler", + Privilege: "StartCrawler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "crawler*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the schedule state of a crawler to SCHEDULED", + Privilege: "StartCrawlerSchedule", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -109487,442 +152118,336 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove a secondary replication group from the global replication group", - Privilege: "DisassociateGlobalReplicationGroup", + Description: "Grants permission to start a Data Quality rule recommendation run", + Privilege: "StartDataQualityRuleRecommendationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export a copy of a serverless cache at a specific moment in time to s3 bucket", - Privilege: "ExportServerlessCacheSnapshot", + Description: "Grants permission to start a Data Quality rule recommendation run", + Privilege: "StartDataQualityRulesetEvaluationRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{ - "s3:DeleteObject", - "s3:ListAllMyBuckets", - "s3:PutObject", - }, - ResourceType: "serverlesscachesnapshot*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to failover the primary region to a selected secondary region of a global replication group", - Privilege: "FailoverGlobalReplicationGroup", + Description: "Grants permission to start an Export Labels ML Task Run", + Privilege: "StartExportLabelsTaskRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "mlTransform*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to increase the number of node groups in a global replication group", - Privilege: "IncreaseNodeGroupsInGlobalReplicationGroup", + Description: "Grants permission to start an Import Labels ML Task Run", + Privilege: "StartImportLabelsTaskRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", - }, - { - ConditionKeys: []string{ - "elasticache:NumNodeGroups", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlTransform*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to increase the number of replicas in a Redis (cluster mode disabled) replication group or the number of replica nodes in one or more node groups (shards) of a Redis (cluster mode enabled) replication group", - Privilege: "IncreaseReplicaCount", + Description: "Grants permission to start running a job", + Privilege: "StartJobRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "replicationgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:ReplicasPerNodeGroup", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to test an AZ power interruption for an ElastiCache resource", - Privilege: "InterruptClusterAzPower", + Description: "Grants permission to start running upgrade analysis for a job", + Privilege: "StartJobUpgradeAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available node type that can be used to scale a particular Redis cluster or replication group", - Privilege: "ListAllowedNodeTypeModifications", + AccessLevel: "Write", + Description: "Grants permission to start an Evaluation ML Task Run", + Privilege: "StartMLEvaluationTaskRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "mlTransform*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a Labeling Set Generation ML Task Run", + Privilege: "StartMLLabelingSetGenerationTaskRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlTransform*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for an ElastiCache resource", - Privilege: "ListTagsForResource", + AccessLevel: "Permissions management", + Description: "Grants permission to start Glue Studio Notebooks", + Privilege: "StartNotebook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a trigger", + Privilege: "StartTrigger", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "trigger*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start running a workflow", + Privilege: "StartWorkflowRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "workflow*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop execution for Column Statistics run", + Privilege: "StopColumnStatisticsTaskRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reserved-instance", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscache", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a column statistics task run schedule", + Privilege: "StopColumnStatisticsTaskRunSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a running crawler", + Privilege: "StopCrawler", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "crawler*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the schedule state of a crawler to NOT_SCHEDULED", + Privilege: "StopCrawlerSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify settings for a cluster", - Privilege: "ModifyCacheCluster", + Description: "Grants permission to stop an on-going upgrade analysis for a job", + Privilege: "StopJobUpgradeAnalysis", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "elasticache:CacheNodeType", - "elasticache:EngineVersion", - "elasticache:MultiAZEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:SnapshotRetentionLimit", - "elasticache:CacheParameterGroupName", - }, - DependentActions: []string{}, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an interactive session", + Privilege: "StopSession", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "session*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify parameters of a cache parameter group", - Privilege: "ModifyCacheParameterGroup", + Description: "Grants permission to stop a trigger", + Privilege: "StopTrigger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:CacheParameterGroupName", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "trigger*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an existing cache subnet group", - Privilege: "ModifyCacheSubnetGroup", + Description: "Grants permission to stop a workflow run", + Privilege: "StopWorkflowRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify settings for a global replication group", - Privilege: "ModifyGlobalReplicationGroup", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "blueprint", }, { - ConditionKeys: []string{ - "elasticache:CacheNodeType", - "elasticache:EngineVersion", - "elasticache:AutomaticFailoverEnabled", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the settings for a replication group", - Privilege: "ModifyReplicationGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticache:CacheNodeType", - "elasticache:EngineVersion", - "elasticache:AutomaticFailoverEnabled", - "elasticache:MultiAZEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:SnapshotRetentionLimit", - "elasticache:CacheParameterGroupName", - "elasticache:TransitEncryptionEnabled", - "elasticache:ClusterModeEnabled", - }, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "replicationgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "crawler", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "customEntityType", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "dataQualityRuleset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", + ResourceType: "devendpoint", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "integration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add shards, remove shards, or rebalance the keyspaces among existing shards of a replication group", - Privilege: "ModifyReplicationGroupShardConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "replicationgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:NumNodeGroups", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlTransform", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify parameters for a serverless cache", - Privilege: "ModifyServerlessCache", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:EngineVersion", - "elasticache:SnapshotRetentionLimit", - "elasticache:MaximumDataStorage", - "elasticache:DataStorageUnit", - "elasticache:MaximumECPUPerSecond", - }, - DependentActions: []string{ - "ec2:DescribeSecurityGroups", - "ec2:DescribeTags", - }, - ResourceType: "serverlesscache*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "registry", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", + ResourceType: "schema", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to change Redis user password(s) and/or access string", - Privilege: "ModifyUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "session", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:UserAuthenticationMode", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trigger", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to change list of users that belong to the user group", - Privilege: "ModifyUserGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "usageProfile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup*", + ResourceType: "workflow", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -109930,123 +152455,112 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to purchase a reserved cache node offering", - Privilege: "PurchaseReservedCacheNodesOffering", + AccessLevel: "Permissions management", + Description: "Grants permission to terminate Glue Studio Notebooks", + Privilege: "TerminateNotebook", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticache:AddTagsToResource", - }, - ResourceType: "reserved-instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to perform a key space rebalance operation to redistribute slots and ensure uniform key distribution across existing shards in a global replication group", - Privilege: "RebalanceSlotsInGlobalReplicationGroup", + AccessLevel: "Permissions management", + Description: "Grants permission to test connection in Glue Studio", + Privilege: "TestConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "globalreplicationgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reboot some, or all, of the cache nodes within a provisioned cache cluster or replication group (cluster mode disabled)", - Privilege: "RebootCacheCluster", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "blueprint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crawler", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a ElastiCache resource", - Privilege: "RemoveTagsFromResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "customEntityType", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "dataQualityRuleset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup", + ResourceType: "devendpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reserved-instance", + ResourceType: "integration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscache", + ResourceType: "mlTransform", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "serverlesscachesnapshot", + ResourceType: "registry", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "schema", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "session", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "trigger", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usergroup", + ResourceType: "usageProfile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workflow", }, { ConditionKeys: []string{ "aws:TagKeys", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -110055,401 +152569,154 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify parameters of a cache parameter group back to their default values", - Privilege: "ResetCacheParameterGroup", + Description: "Grants permission to update a blueprint", + Privilege: "UpdateBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticache:CacheParameterGroupName", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "blueprint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove an EC2 security group ingress from a ElastiCache security group", - Privilege: "RevokeCacheSecurityGroupIngress", + Description: "Grants permission to update a catalog", + Privilege: "UpdateCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a migration of data from hosted Redis on Amazon EC2 to ElastiCache for Redis", - Privilege: "StartMigration", + Description: "Grants permission to update a classifier", + Privilege: "UpdateClassifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to test automatic failover on a specified node group in a replication group", - Privilege: "TestFailover", + Description: "Grants permission to update partition statistics of columns", + Privilege: "UpdateColumnStatisticsForPartition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "replicationgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to test a migration of data from hosted Redis on Amazon EC2 to ElastiCache for Redis", - Privilege: "TestMigration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicationgroup*", + ResourceType: "table*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:parametergroup:${CacheParameterGroupName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:CacheParameterGroupName", - }, - Resource: "parametergroup", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:securitygroup:${CacheSecurityGroupName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - Resource: "securitygroup", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:subnetgroup:${CacheSubnetGroupName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - Resource: "subnetgroup", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:replicationgroup:${ReplicationGroupId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:AtRestEncryptionEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:AutomaticFailoverEnabled", - "elasticache:CacheNodeType", - "elasticache:CacheParameterGroupName", - "elasticache:ClusterModeEnabled", - "elasticache:EngineType", - "elasticache:EngineVersion", - "elasticache:KmsKeyId", - "elasticache:MultiAZEnabled", - "elasticache:NumNodeGroups", - "elasticache:ReplicasPerNodeGroup", - "elasticache:SnapshotRetentionLimit", - "elasticache:TransitEncryptionEnabled", - }, - Resource: "replicationgroup", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:cluster:${CacheClusterId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:AuthTokenEnabled", - "elasticache:CacheNodeType", - "elasticache:CacheParameterGroupName", - "elasticache:EngineType", - "elasticache:EngineVersion", - "elasticache:MultiAZEnabled", - "elasticache:SnapshotRetentionLimit", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:reserved-instance:${ReservedCacheNodeId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - Resource: "reserved-instance", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:snapshot:${SnapshotName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:KmsKeyId", - }, - Resource: "snapshot", - }, - { - Arn: "arn:${Partition}:elasticache::${Account}:globalreplicationgroup:${GlobalReplicationGroupId}", - ConditionKeys: []string{ - "elasticache:AtRestEncryptionEnabled", - "elasticache:AuthTokenEnabled", - "elasticache:AutomaticFailoverEnabled", - "elasticache:CacheNodeType", - "elasticache:CacheParameterGroupName", - "elasticache:ClusterModeEnabled", - "elasticache:EngineType", - "elasticache:EngineVersion", - "elasticache:KmsKeyId", - "elasticache:MultiAZEnabled", - "elasticache:NumNodeGroups", - "elasticache:ReplicasPerNodeGroup", - "elasticache:SnapshotRetentionLimit", - "elasticache:TransitEncryptionEnabled", - }, - Resource: "globalreplicationgroup", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:user:${UserId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:UserAuthenticationMode", - }, - Resource: "user", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:usergroup:${UserGroupId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - Resource: "usergroup", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:serverlesscache:${ServerlessCacheName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:DataStorageUnit", - "elasticache:EngineType", - "elasticache:EngineVersion", - "elasticache:KmsKeyId", - "elasticache:MaximumDataStorage", - "elasticache:MaximumECPUPerSecond", - "elasticache:SnapshotRetentionLimit", - }, - Resource: "serverlesscache", - }, - { - Arn: "arn:${Partition}:elasticache:${Region}:${Account}:serverlesscachesnapshot:${ServerlessCacheSnapshotName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "elasticache:KmsKeyId", - }, - Resource: "serverlesscachesnapshot", - }, - }, - ServiceName: "Amazon ElastiCache", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticbeanstalk:FromApplication", - Description: "Filters access by an application as a dependency or a constraint on an input parameter", - Type: "ARN", - }, - { - Condition: "elasticbeanstalk:FromApplicationVersion", - Description: "Filters access by an application version as a dependency or a constraint on an input parameter", - Type: "ARN", - }, - { - Condition: "elasticbeanstalk:FromConfigurationTemplate", - Description: "Filters access by a configuration template as a dependency or a constraint on an input parameter", - Type: "ARN", - }, - { - Condition: "elasticbeanstalk:FromEnvironment", - Description: "Filters access by an environment as a dependency or a constraint on an input parameter", - Type: "ARN", - }, - { - Condition: "elasticbeanstalk:FromPlatform", - Description: "Filters access by a platform as a dependency or a constraint on an input parameter", - Type: "ARN", - }, - { - Condition: "elasticbeanstalk:FromSolutionStack", - Description: "Filters access by a solution stack as a dependency or a constraint on an input parameter", - Type: "ARN", - }, - { - Condition: "elasticbeanstalk:InApplication", - Description: "Filters access by the application that contains the resource that the action operates on", - Type: "ARN", - }, - }, - Prefix: "elasticbeanstalk", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel in-progress environment configuration update or application version deployment", - Privilege: "AbortEnvironmentUpdate", + Description: "Grants permission to update table statistics of columns", + Privilege: "UpdateColumnStatisticsForTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an Elastic Beanstalk resource and to update tag values", - Privilege: "AddTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "rootcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationversion", + ResourceType: "table*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurationtemplate", + ResourceType: "catalog", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update settings for a column statistics task", + Privilege: "UpdateColumnStatisticsTaskSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "platform", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to apply a scheduled managed action immediately", - Privilege: "ApplyEnvironmentManagedAction", + Description: "Grants permission to update a connection", + Privilege: "UpdateConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rootcatalog*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an operations role with an environment", - Privilege: "AssociateEnvironmentOperationsRole", + Description: "Grants permission to update a crawler", + Privilege: "UpdateCrawler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "crawler*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check CNAME availability", - Privilege: "CheckDNSAvailability", + AccessLevel: "Write", + Description: "Grants permission to update the schedule of a crawler", + Privilege: "UpdateCrawlerSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -110460,132 +152727,109 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update a group of environments, each running a separate component of a single application", - Privilege: "ComposeEnvironments", + Description: "Grants permission to update a Data Quality ruleset", + Privilege: "UpdateDataQualityRuleset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, - DependentActions: []string{}, - ResourceType: "applicationversion*", + ResourceType: "dataQualityRuleset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new application", - Privilege: "CreateApplication", + Description: "Grants permission to update a database", + Privilege: "UpdateDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rootcatalog*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an application version for an application", - Privilege: "CreateApplicationVersion", + Description: "Grants permission to update a development endpoint", + Privilege: "UpdateDevEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "applicationversion*", + ResourceType: "devendpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a configuration template", - Privilege: "CreateConfigurationTemplate", + Description: "Grants permission to update the integration resource property", + Privilege: "UpdateIntegrationResourceProperty", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurationtemplate*", + ResourceType: "catalog*", }, { - ConditionKeys: []string{ - "elasticbeanstalk:FromApplication", - "elasticbeanstalk:FromApplicationVersion", - "elasticbeanstalk:FromConfigurationTemplate", - "elasticbeanstalk:FromEnvironment", - "elasticbeanstalk:FromSolutionStack", - "elasticbeanstalk:FromPlatform", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to launch an environment for an application", - Privilege: "CreateEnvironment", + Description: "Grants permission to update the integration table properties", + Privilege: "UpdateIntegrationTableProperties", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "catalog*", }, { - ConditionKeys: []string{ - "elasticbeanstalk:FromApplicationVersion", - "elasticbeanstalk:FromConfigurationTemplate", - "elasticbeanstalk:FromSolutionStack", - "elasticbeanstalk:FromPlatform", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new version of a custom platform", - Privilege: "CreatePlatformVersion", + Description: "Grants permission to update a job", + Privilege: "UpdateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "platform*", + ResourceType: "job*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "glue:VpcIds", + "glue:SubnetIds", + "glue:SecurityGroupIds", }, DependentActions: []string{}, ResourceType: "", @@ -110594,601 +152838,669 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create the Amazon S3 storage location for the account", - Privilege: "CreateStorageLocation", + Description: "Grants permission to update a job from source control provider", + Privilege: "UpdateJobFromSourceControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application along with all associated versions and configurations", - Privilege: "DeleteApplication", + Description: "Grants permission to update an ML Transform", + Privilege: "UpdateMLTransform", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "mlTransform*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application version from an application", - Privilege: "DeleteApplicationVersion", + Description: "Grants permission to update a partition", + Privilege: "UpdatePartition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationversion*", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a configuration template", - Privilege: "DeleteConfigurationTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurationtemplate*", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the draft configuration associated with the running environment", - Privilege: "DeleteEnvironmentConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "table*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "catalog", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a version of a custom platform", - Privilege: "DeletePlatformVersion", + Description: "Grants permission to update a schema registry", + Privilege: "UpdateRegistry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "platform*", + ResourceType: "registry*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of account attributes, including resource quotas", - Privilege: "DescribeAccountAttributes", + AccessLevel: "Write", + Description: "Grants permission to update a schema container", + Privilege: "UpdateSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "registry*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of application versions stored in an AWS Elastic Beanstalk storage bucket", - Privilege: "DescribeApplicationVersions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationversion", + ResourceType: "schema*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the descriptions of existing applications", - Privilege: "DescribeApplications", + AccessLevel: "Write", + Description: "Grants permission to update source control provider from a job", + Privilege: "UpdateSourceControlFromJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve descriptions of environment configuration options", - Privilege: "DescribeConfigurationOptions", + AccessLevel: "Write", + Description: "Grants permission to update a table", + Privilege: "UpdateTable", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, - DependentActions: []string{}, - ResourceType: "configurationtemplate", - }, - { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, - DependentActions: []string{}, - ResourceType: "environment", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solutionstack", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a description of the settings for a configuration set", - Privilege: "DescribeConfigurationSettings", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurationtemplate", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "table*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the overall health of an environment", - Privilege: "DescribeEnvironmentHealth", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of an environment's completed and failed managed actions", - Privilege: "DescribeEnvironmentManagedActionHistory", + AccessLevel: "Write", + Description: "Grants permission to update the configuration for an existing table optimizer", + Privilege: "UpdateTableOptimizer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:GetTable", }, + ResourceType: "database*", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "rootcatalog*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of an environment's upcoming and in-progress managed actions", - Privilege: "DescribeEnvironmentManagedActions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "table*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of AWS resources for an environment", - Privilege: "DescribeEnvironmentResources", + AccessLevel: "Write", + Description: "Grants permission to update a trigger", + Privilege: "UpdateTrigger", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "trigger*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve descriptions for existing environments", - Privilege: "DescribeEnvironments", + AccessLevel: "Write", + Description: "Grants permission to update a usage profile", + Privilege: "UpdateUsageProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "usageProfile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of event descriptions matching a set of criteria", - Privilege: "DescribeEvents", + AccessLevel: "Write", + Description: "Grants permission to update a function definition", + Privilege: "UpdateUserDefinedFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "database*", }, { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationversion", + ResourceType: "rootcatalog*", }, { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurationtemplate", + ResourceType: "userdefinedfunction*", }, { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "catalog", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve more detailed information about the health of environment instances", - Privilege: "DescribeInstancesHealth", + AccessLevel: "Write", + Description: "Grants permission to update a workflow", + Privilege: "UpdateWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a description of a managed platform version", - Privilege: "DescribePlatformVersion", + AccessLevel: "Write", + Description: "Grants permission to upgrade a job to the latest version", + Privilege: "UpgradeJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "platform", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an operations role with an environment", - Privilege: "DisassociateEnvironmentOperationsRole", + AccessLevel: "Permissions management", + Description: "Grants permission to use Glue Studio and access its internal APIs", + Privilege: "UseGlueStudio", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of the available solution stack names", - Privilege: "ListAvailableSolutionStacks", + AccessLevel: "Write", + Description: "Grants permission to use an ML Transform from within a Glue ETL Script", + Privilege: "UseMLTransforms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solutionstack", + ResourceType: "mlTransform*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of the available platform branches", - Privilege: "ListPlatformBranches", + Arn: "arn:${Partition}:glue:${Region}:${Account}:catalog", + ConditionKeys: []string{}, + Resource: "rootcatalog", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:catalog/${CatalogName}", + ConditionKeys: []string{}, + Resource: "catalog", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:database/${DatabaseName}", + ConditionKeys: []string{}, + Resource: "database", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:table/${DatabaseName}/${TableName}", + ConditionKeys: []string{}, + Resource: "table", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:tableVersion/${DatabaseName}/${TableName}/${TableVersionName}", + ConditionKeys: []string{}, + Resource: "tableversion", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:connection/${ConnectionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connection", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:userDefinedFunction/${DatabaseName}/${UserDefinedFunctionName}", + ConditionKeys: []string{}, + Resource: "userdefinedfunction", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:devEndpoint/${DevEndpointName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "devendpoint", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:job/${JobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "job", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:trigger/${TriggerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "trigger", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:crawler/${CrawlerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "crawler", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:workflow/${WorkflowName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "workflow", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:blueprint/${BlueprintName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "blueprint", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:mlTransform/${TransformId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mlTransform", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:registry/${RegistryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "registry", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:schema/${SchemaName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "schema", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:session/${SessionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "session", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:usageProfile/${UsageProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "usageProfile", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:dataQualityRuleset/${RulesetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dataQualityRuleset", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:customEntityType/${CustomEntityTypeId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "customEntityType", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:completion/${CompletionId}", + ConditionKeys: []string{}, + Resource: "completion", + }, + { + Arn: "arn:${Partition}:glue:${Region}:${Account}:integration:${IntegrationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "integration", + }, + }, + ServiceName: "AWS Glue", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "grafana", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to upgrade a workspace with a license", + Privilege: "AssociateLicense", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "aws-marketplace:ViewSubscriptions", + }, + ResourceType: "workspace*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of the available platforms", - Privilege: "ListPlatformVersions", + AccessLevel: "Write", + Description: "Grants permission to create a workspace", + Privilege: "CreateWorkspace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "platform", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:GetManagedPrefixListEntries", + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions", + "sso:GetSharedSsoConfiguration", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of tags of an Elastic Beanstalk resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create API keys for a workspace", + Privilege: "CreateWorkspaceApiKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "applicationversion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configurationtemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "platform", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to submit instance statistics for enhanced health", - Privilege: "PutInstanceStatistics", + Description: "Grants permission to create service accounts for a workspace", + Privilege: "CreateWorkspaceServiceAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "workspace*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create service account tokens for a workspace", + Privilege: "CreateWorkspaceServiceAccountToken", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete and recreate all of the AWS resources for an environment and to force a restart", - Privilege: "RebuildEnvironment", + Description: "Grants permission to delete a workspace", + Privilege: "DeleteWorkspace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteManagedApplicationInstance", }, - DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Elastic Beanstalk resource", - Privilege: "RemoveTags", + AccessLevel: "Write", + Description: "Grants permission to delete API keys from a workspace", + Privilege: "DeleteWorkspaceApiKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "applicationversion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configurationtemplate", + ResourceType: "workspace*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete service accounts for a workspace", + Privilege: "DeleteWorkspaceServiceAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "workspace*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete service account tokens for a workspace", + Privilege: "DeleteWorkspaceServiceAccountToken", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "platform", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to initiate a request to compile information of the deployed environment", - Privilege: "RequestEnvironmentInfo", + Description: "Grants permission to describe a workspace", + Privilege: "DescribeWorkspace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to request an environment to restart the application container server running on each Amazon EC2 instance", - Privilege: "RestartAppServer", + AccessLevel: "Read", + Description: "Grants permission to describe authentication providers on a workspace", + Privilege: "DescribeWorkspaceAuthentication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the compiled information from a RequestEnvironmentInfo request", - Privilege: "RetrieveEnvironmentInfo", + Description: "Grants permission to describe the current configuration string for the given workspace", + Privilege: "DescribeWorkspaceConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to swap the CNAMEs of two environments", - Privilege: "SwapEnvironmentCNAMEs", + Description: "Grants permission to remove a license from a workspace", + Privilege: "DisassociateLicense", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, - DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{ - "elasticbeanstalk:FromEnvironment", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate an environment", - Privilege: "TerminateEnvironment", + AccessLevel: "List", + Description: "Grants permission to list the permissions on a wokspace", + Privilege: "ListPermissions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an application with specified properties", - Privilege: "UpdateApplication", + AccessLevel: "Read", + Description: "Grants permission to list tags associated with a workspace", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "workspace", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the application version lifecycle policy associated with the application", - Privilege: "UpdateApplicationResourceLifecycle", + AccessLevel: "List", + Description: "Grants permission to list all available supported Grafana versions. Optionally, include a workspace to list the versions to which it can be upgraded", + Privilege: "ListVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "workspace", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an application version with specified properties", - Privilege: "UpdateApplicationVersion", + AccessLevel: "Read", + Description: "Grants permission to list service account tokens for a workspace", + Privilege: "ListWorkspaceServiceAccountTokens", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationversion*", + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a configuration template with specified properties or configuration option values", - Privilege: "UpdateConfigurationTemplate", + AccessLevel: "Read", + Description: "Grants permission to list service accounts for a workspace", + Privilege: "ListWorkspaceServiceAccounts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurationtemplate*", + ResourceType: "workspace*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list workspaces", + Privilege: "ListWorkspaces", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:FromApplication", - "elasticbeanstalk:FromApplicationVersion", - "elasticbeanstalk:FromConfigurationTemplate", - "elasticbeanstalk:FromEnvironment", - "elasticbeanstalk:FromSolutionStack", - "elasticbeanstalk:FromPlatform", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an environment", - Privilege: "UpdateEnvironment", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to, or update tag values of, a workspace", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "workspace*", }, { ConditionKeys: []string{ - "elasticbeanstalk:FromApplicationVersion", - "elasticbeanstalk:FromConfigurationTemplate", - "elasticbeanstalk:FromSolutionStack", - "elasticbeanstalk:FromPlatform", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -111197,37 +153509,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to add tags to an Elastic Beanstalk resource, remove tags, and to update tag values", - Privilege: "UpdateTagsForResource", + Description: "Grants permission to remove tags from a workspace", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "applicationversion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configurationtemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "platform", + ResourceType: "workspace*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -111236,200 +153527,163 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the validity of a set of configuration settings for a configuration template or an environment", - Privilege: "ValidateConfigurationSettings", + AccessLevel: "Permissions management", + Description: "Grants permission to modify the permissions on a workspace", + Privilege: "UpdatePermissions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, - DependentActions: []string{}, - ResourceType: "configurationtemplate", - }, - { - ConditionKeys: []string{ - "elasticbeanstalk:InApplication", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "workspace*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:application/${ApplicationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to modify a workspace", + Privilege: "UpdateWorkspace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:GetManagedPrefixListEntries", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "workspace*", + }, }, - Resource: "application", }, { - Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:applicationversion/${ApplicationName}/${VersionLabel}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticbeanstalk:InApplication", + AccessLevel: "Write", + Description: "Grants permission to modify authentication providers on a workspace", + Privilege: "UpdateWorkspaceAuthentication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, }, - Resource: "applicationversion", }, { - Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:configurationtemplate/${ApplicationName}/${TemplateName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticbeanstalk:InApplication", + AccessLevel: "Write", + Description: "Grants permission to update the configuration string for the given workspace", + Privilege: "UpdateWorkspaceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, }, - Resource: "configurationtemplate", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:elasticbeanstalk:${Region}:${Account}:environment/${ApplicationName}/${EnvironmentName}", + Arn: "arn:${Partition}:grafana:${Region}:${Account}:/workspaces/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticbeanstalk:InApplication", }, - Resource: "environment", - }, - { - Arn: "arn:${Partition}:elasticbeanstalk:${Region}::solutionstack/${SolutionStackName}", - ConditionKeys: []string{}, - Resource: "solutionstack", - }, - { - Arn: "arn:${Partition}:elasticbeanstalk:${Region}::platform/${PlatformNameWithVersion}", - ConditionKeys: []string{}, - Resource: "platform", + Resource: "workspace", }, }, - ServiceName: "AWS Elastic Beanstalk", + ServiceName: "Amazon Managed Grafana", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", + Description: "Filters access by checking tag key/value pairs included in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", + Description: "Filters access by checking tag key/value pairs associated with a specific resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", + Description: "Filters access by checking tag keys passed in the request", Type: "ArrayOfString", }, - { - Condition: "elasticfilesystem:AccessPointArn", - Description: "Filters access by the ARN of the access point used to mount the file system", - Type: "ARN", - }, - { - Condition: "elasticfilesystem:AccessedViaMountTarget", - Description: "Filters access by whether the file system is accessed via mount targets", - Type: "Bool", - }, - { - Condition: "elasticfilesystem:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", - }, - { - Condition: "elasticfilesystem:Encrypted", - Description: "Filters access by whether users can create only encrypted or unencrypted file systems", - Type: "Bool", - }, }, - Prefix: "elasticfilesystem", + Prefix: "greengrass", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to start a backup job for an existing file system", - Privilege: "Backup", + AccessLevel: "Permissions management", + Description: "Grants permission to associate a role with your account. AWS IoT Greengrass uses this role to access your Lambda functions and AWS IoT resources", + Privilege: "AssociateServiceRoleToAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to allow an NFS client read-access to a file system", - Privilege: "ClientMount", + AccessLevel: "Write", + Description: "Grants permission to associate a list of client devices with a core device", + Privilege: "BatchAssociateClientDeviceWithCoreDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{ - "elasticfilesystem:AccessPointArn", - "elasticfilesystem:AccessedViaMountTarget", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow an NFS client root-access to a file system", - Privilege: "ClientRootAccess", + Description: "Grants permission to disassociate a list of client devices from a core device", + Privilege: "BatchDisassociateClientDeviceFromCoreDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{ - "elasticfilesystem:AccessPointArn", - "elasticfilesystem:AccessedViaMountTarget", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow an NFS client write-access to a file system", - Privilege: "ClientWrite", + Description: "Grants permission to cancel a deployment", + Privilege: "CancelDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{ - "elasticfilesystem:AccessPointArn", - "elasticfilesystem:AccessedViaMountTarget", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:CancelJob", + "iot:DeleteThingShadow", + "iot:DescribeJob", + "iot:DescribeThing", + "iot:DescribeThingGroup", + "iot:GetThingShadow", + "iot:UpdateJob", + "iot:UpdateThingShadow", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an access point for the specified file system", - Privilege: "CreateAccessPoint", + Description: "Grants permission to create a component", + Privilege: "CreateComponentVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticfilesystem:TagResource", - }, - ResourceType: "file-system*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "component*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -111438,17 +153692,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new, empty file system", - Privilege: "CreateFileSystem", + Description: "Grants permission to create a deployment", + Privilege: "CreateDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "elasticfilesystem:Encrypted", }, DependentActions: []string{ - "elasticfilesystem:TagResource", + "iot:CancelJob", + "iot:CreateJob", + "iot:DeleteThingShadow", + "iot:DescribeJob", + "iot:DescribeThing", + "iot:DescribeThingGroup", + "iot:GetThingShadow", + "iot:UpdateJob", + "iot:UpdateThingShadow", }, ResourceType: "", }, @@ -111456,366 +153717,318 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a mount target for a file system", - Privilege: "CreateMountTarget", + Description: "Grants permission to delete a component", + Privilege: "DeleteComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "componentVersion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new replication configuration", - Privilege: "CreateReplicationConfiguration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", - }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to create or overwrite tags associated with a file system; deprecated, see TagResource", - Privilege: "CreateTags", + Description: "Grants permission to delete a AWS IoT Greengrass core device, which is an AWS IoT thing. This operation removes the core device from the list of core devices. This operation doesn't delete the AWS IoT thing", + Privilege: "DeleteCoreDevice", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeJobExecution", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified access point", - Privilege: "DeleteAccessPoint", + Description: "Grants permission to delete a deployment. To delete an active deployment, it needs to be cancelled first", + Privilege: "DeleteDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "access-point*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DeleteJob", + }, + ResourceType: "deployment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a file system, permanently severing access to its contents", - Privilege: "DeleteFileSystem", + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata for a version of a component", + Privilege: "DescribeComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "componentVersion*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the resource-level policy for a file system", - Privilege: "DeleteFileSystemPolicy", + AccessLevel: "Write", + Description: "Grants permission to disassociate the service role from an account. Without a service role, deployments will not work", + Privilege: "DisassociateServiceRoleFromAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified mount target", - Privilege: "DeleteMountTarget", + AccessLevel: "Read", + Description: "Grants permission to get the recipe for a version of a component", + Privilege: "GetComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "componentVersion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a replication configuration", - Privilege: "DeleteReplicationConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get the pre-signed URL to download a public component artifact", + Privilege: "GetComponentVersionArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "componentVersion*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete the specified tags from a file system; deprecated, see UntagResource", - Privilege: "DeleteTags", + AccessLevel: "Read", + Description: "Grants permission to retrieve the connectivity information for a Greengrass core device", + Privilege: "GetConnectivityInfo", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:GetThingShadow", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectivityInfo*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the descriptions of Amazon EFS access points", - Privilege: "DescribeAccessPoints", + AccessLevel: "Read", + Description: "Grants permission to retrieves metadata for a AWS IoT Greengrass core device", + Privilege: "GetCoreDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-point", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "coreDevice*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the account preferences in effect for an account", - Privilege: "DescribeAccountPreferences", + AccessLevel: "Read", + Description: "Grants permission to get a deployment", + Privilege: "GetDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeJob", + "iot:DescribeThing", + "iot:DescribeThingGroup", + "iot:GetThingShadow", + }, + ResourceType: "deployment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the BackupPolicy object for an Amazon EFS file system", - Privilege: "DescribeBackupPolicy", + Description: "Grants permission to retrieve the service role that is attached to an account", + Privilege: "GetServiceRoleForAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the resource-level policy for an Amazon EFS file system", - Privilege: "DescribeFileSystemPolicy", + AccessLevel: "List", + Description: "Grants permission to retrieve a paginated list of client devices associated to a AWS IoT Greengrass core device", + Privilege: "ListClientDevicesAssociatedWithCoreDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "coreDevice*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view the description of an Amazon EFS file system specified by file system CreationToken or FileSystemId; or to view the description of all file systems owned by the caller's AWS account in the AWS region of the endpoint that is being called", - Privilege: "DescribeFileSystems", + Description: "Grants permission to retrieve a paginated list of all versions for a component", + Privilege: "ListComponentVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "component*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the LifecycleConfiguration object for an Amazon EFS file system", - Privilege: "DescribeLifecycleConfiguration", + AccessLevel: "List", + Description: "Grants permission to retrieve a paginated list of component summaries", + Privilege: "ListComponents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the security groups in effect for a mount target", - Privilege: "DescribeMountTargetSecurityGroups", + AccessLevel: "List", + Description: "Grants permission to retrieve a paginated list of AWS IoT Greengrass core devices", + Privilege: "ListCoreDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the descriptions of all mount targets, or a specific mount target, for a file system", - Privilege: "DescribeMountTargets", + AccessLevel: "List", + Description: "Grants permission to retrieves a paginated list of deployments", + Privilege: "ListDeployments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "access-point", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeJob", + "iot:DescribeThing", + "iot:DescribeThingGroup", + "iot:GetThingShadow", + }, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view the description of an Amazon EFS replication configuration specified by FileSystemId; or to view the description of all replication configurations owned by the caller's AWS account in the AWS region of the endpoint that is being called", - Privilege: "DescribeReplicationConfigurations", + Description: "Grants permission to retrieves a paginated list of deployment jobs that AWS IoT Greengrass sends to AWS IoT Greengrass core devices", + Privilege: "ListEffectiveDeployments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeJob", + "iot:DescribeJobExecution", + "iot:DescribeThing", + "iot:DescribeThingGroup", + "iot:GetThingShadow", + }, + ResourceType: "coreDevice*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the tags associated with a file system", - Privilege: "DescribeTags", + AccessLevel: "List", + Description: "Grants permission to retrieve a paginated list of the components that a AWS IoT Greengrass core device runs", + Privilege: "ListInstalledComponents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "coreDevice*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the tags associated with the specified Amazon EFS resource", + Description: "Grants permission to list the tags for a resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-point", + ResourceType: "component", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "componentVersion", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the set of security groups in effect for a mount target", - Privilege: "ModifyMountTargetSecurityGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "coreDevice", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the account preferences of an account", - Privilege: "PutAccountPreferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable or disable automatic backups with AWS Backup by creating a new BackupPolicy object", - Privilege: "PutBackupPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to apply a resource-level policy that defines the actions allowed or denied from given actors for the specified file system", - Privilege: "PutFileSystemPolicy", + AccessLevel: "List", + Description: "Grants permission to list components that meet the component, version, and platform requirements of a deployment", + Privilege: "ResolveComponentCandidates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "componentVersion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable lifecycle management by creating a new LifecycleConfiguration object", - Privilege: "PutLifecycleConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "component", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a restore job for a backup of a file system", - Privilege: "Restore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "componentVersion", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to create or overwrite tags associated with the specified Amazon EFS resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-point", + ResourceType: "coreDevice", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "deployment", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "elasticfilesystem:CreateAction", }, DependentActions: []string{}, ResourceType: "", @@ -111824,21 +154037,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to delete the specified tags from an Amazon EFS resource", + Description: "Grants permission to remove tags from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-point", + ResourceType: "component", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "componentVersion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "coreDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deployment", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -111848,125 +154072,96 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the throughput mode or the amount of provisioned throughput of an existing file system", - Privilege: "UpdateFileSystem", + Description: "Grants permission to update the connectivity information for a Greengrass core. Any devices that belong to the group that has this core will receive this information in order to find the location of the core and connect to it", + Privilege: "UpdateConnectivityInfo", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:GetThingShadow", + "iot:UpdateThingShadow", + }, + ResourceType: "connectivityInfo*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update the file system protection of an existing file system", - Privilege: "UpdateFileSystemProtection", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system*", - }, + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo", + ConditionKeys: []string{}, + Resource: "connectivityInfo", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:components:${ComponentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "component", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:elasticfilesystem:${Region}:${Account}:file-system/${FileSystemId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:components:${ComponentName}:versions:${ComponentVersion}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "file-system", + Resource: "componentVersion", }, { - Arn: "arn:${Partition}:elasticfilesystem:${Region}:${Account}:access-point/${AccessPointId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:coreDevices:${CoreDeviceThingName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "access-point", + Resource: "coreDevice", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:deployments:${DeploymentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deployment", }, }, - ServiceName: "Amazon Elastic File System", + ServiceName: "AWS IoT Greengrass V2", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", + Description: "Filters access by the allowed set of values for each of the mandatory tags", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", + Description: "Filters access by the tag value associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", - }, - { - Condition: "elasticloadbalancing:ListenerProtocol", - Description: "Filters access by the listener protocols that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:ResourceTag/", - Description: "Filters access by the preface string for a tag key and value pair that are attached to a resource", - Type: "String", - }, - { - Condition: "elasticloadbalancing:ResourceTag/${TagKey}", - Description: "Filters access by the preface string for a tag key and value pair that are attached to a resource", - Type: "String", - }, - { - Condition: "elasticloadbalancing:Scheme", - Description: "Filters access by the load balancer scheme that are allowed in the request", - Type: "String", - }, - { - Condition: "elasticloadbalancing:SecurityGroup", - Description: "Filters access by the security-group IDs that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:SecurityPolicy", - Description: "Filters access by the SSL Security Policies that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:Subnet", - Description: "Filters access by the subnet IDs that are allowed in the request", + Description: "Filters access by the presence of mandatory tags in the request", Type: "ArrayOfString", }, }, - Prefix: "elasticloadbalancing", + Prefix: "greengrass", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Grants permission to add the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags", - Privilege: "AddTags", + AccessLevel: "Write", + Description: "Grants permission to associate a role with a group. The role's permissions must allow Greengrass core Lambda functions and connectors to perform actions in other AWS services", + Privilege: "AssociateRoleToGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to associate a role with your account. AWS IoT Greengrass uses this role to access your Lambda functions and AWS IoT resources", + Privilege: "AssociateServiceRoleToAccount", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:CreateAction", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -111974,19 +154169,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate one or more security groups with your load balancer in a virtual private cloud (VPC)", - Privilege: "ApplySecurityGroupsToLoadBalancer", + Description: "Grants permission to create a connector definition", + Privilege: "CreateConnectorDefinition", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityGroup", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -111995,19 +154184,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add one or more subnets to the set of configured subnets for the specified load balancer", - Privilege: "AttachLoadBalancerToSubnets", + Description: "Grants permission to create a version of an existing connector definition", + Privilege: "CreateConnectorDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "connectorDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a core definition", + Privilege: "CreateCoreDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:Subnet", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -112016,38 +154211,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to specify the health check settings to use when evaluating the health state of your back-end instances", - Privilege: "ConfigureHealthCheck", + Description: "Grants permission to create a version of an existing core definition. Greengrass groups must each contain exactly one Greengrass core", + Privilege: "CreateCoreDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate a stickiness policy with sticky session lifetimes that follow that of an application-generated cookie", - Privilege: "CreateAppCookieStickinessPolicy", + Description: "Grants permission to create a deployment", + Privilege: "CreateDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a device definition", + Privilege: "CreateDeviceDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -112056,18 +154250,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to generate a stickiness policy with sticky session lifetimes controlled by the lifetime of the browser (user-agent) or a specified expiration period", - Privilege: "CreateLBCookieStickinessPolicy", + Description: "Grants permission to create a version of an existing device definition", + Privilege: "CreateDeviceDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "deviceDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Lambda function definition to be used in a group that contains a list of Lambda functions and their configurations", + Privilege: "CreateFunctionDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -112076,26 +154277,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a load balancer", - Privilege: "CreateLoadBalancer", + Description: "Grants permission to create a version of an existing Lambda function definition", + Privilege: "CreateFunctionDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - }, - ResourceType: "loadbalancer", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "functionDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a group", + Privilege: "CreateGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityGroup", - "elasticloadbalancing:Subnet", - "elasticloadbalancing:Scheme", - "elasticloadbalancing:ListenerProtocol", }, DependentActions: []string{}, ResourceType: "", @@ -112104,40 +154304,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create one or more listeners for the specified load balancer", - Privilege: "CreateLoadBalancerListeners", + Description: "Grants permission to create a CA for the group, or rotate the existing CA", + Privilege: "CreateGroupCertificateAuthority", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:ListenerProtocol", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a policy with the specified attributes for the specified load balancer", - Privilege: "CreateLoadBalancerPolicy", + Description: "Grants permission to create a version of a group that has already been defined", + Privilege: "CreateGroupVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a logger definition", + Privilege: "CreateLoggerDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityPolicy", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -112146,18 +154343,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified load balancer", - Privilege: "DeleteLoadBalancer", + Description: "Grants permission to create a version of an existing logger definition", + Privilege: "CreateLoggerDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "loggerDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a resource definition that contains a list of resources to be used in a group", + Privilege: "CreateResourceDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -112166,38 +154370,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified listeners from the specified load balancer", - Privilege: "DeleteLoadBalancerListeners", + Description: "Grants permission to create a version of an existing resource definition", + Privilege: "CreateResourceDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourceDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified policy from the specified load balancer. This policy must not be enabled for any listeners", - Privilege: "DeleteLoadBalancerPolicy", + Description: "Grants permission to create an AWS IoT job that will trigger your Greengrass cores to update the software they are running", + Privilege: "CreateSoftwareUpdateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a subscription definition", + Privilege: "CreateSubscriptionDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -112206,753 +154409,586 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister the specified instances from the specified load balancer", - Privilege: "DeregisterInstancesFromLoadBalancer", + Description: "Grants permission to create a version of an existing subscription definition", + Privilege: "CreateSubscriptionDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "subscriptionDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the state of the specified instances with respect to the specified load balancer", - Privilege: "DescribeInstanceHealth", + AccessLevel: "Write", + Description: "Grants permission to delete a connector definition", + Privilege: "DeleteConnectorDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectorDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the attributes for the specified load balancer", - Privilege: "DescribeLoadBalancerAttributes", + AccessLevel: "Write", + Description: "Grants permission to delete a core definition. Deleting a definition that is currently in use in a deployment affects future deployments", + Privilege: "DeleteCoreDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified policies", - Privilege: "DescribeLoadBalancerPolicies", + AccessLevel: "Write", + Description: "Grants permission to delete a device definition. Deleting a definition that is currently in use in a deployment affects future deployments", + Privilege: "DeleteDeviceDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deviceDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified load balancer policy types", - Privilege: "DescribeLoadBalancerPolicyTypes", + AccessLevel: "Write", + Description: "Grants permission to delete a Lambda function definition. Deleting a definition that is currently in use in a deployment affects future deployments", + Privilege: "DeleteFunctionDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "functionDefinition*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers", - Privilege: "DescribeLoadBalancers", + AccessLevel: "Write", + Description: "Grants permission to delete a group that is not currently in use in a deployment", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the tags associated with the specified load balancers", - Privilege: "DescribeTags", + AccessLevel: "Write", + Description: "Grants permission to delete a logger definition. Deleting a definition that is currently in use in a deployment affects future deployments", + Privilege: "DeleteLoggerDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "loggerDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the specified subnets from the set of configured subnets for the load balancer", - Privilege: "DetachLoadBalancerFromSubnets", + Description: "Grants permission to delete a resource definition", + Privilege: "DeleteResourceDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourceDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the specified Availability Zones from the set of Availability Zones for the specified load balancer", - Privilege: "DisableAvailabilityZonesForLoadBalancer", + Description: "Grants permission to delete a subscription definition. Deleting a definition that is currently in use in a deployment affects future deployments", + Privilege: "DeleteSubscriptionDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "subscriptionDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add the specified Availability Zones to the set of Availability Zones for the specified load balancer", - Privilege: "EnableAvailabilityZonesForLoadBalancer", + Description: "Grants permission to disassociate the role from a group", + Privilege: "DisassociateRoleFromGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the attributes of the specified load balancer", - Privilege: "ModifyLoadBalancerAttributes", + Description: "Grants permission to disassociate the service role from an account. Without a service role, deployments will not work", + Privilege: "DisassociateServiceRoleFromAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add the specified instances to the specified load balancer", - Privilege: "RegisterInstancesWithLoadBalancer", + AccessLevel: "Read", + Description: "Grants permission to retrieve information required to connect to a Greengrass core", + Privilege: "Discover", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the specified load balancer", - Privilege: "RemoveTags", + AccessLevel: "Read", + Description: "Grants permission to retrieve the role associated with a group", + Privilege: "GetAssociatedRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the certificate that terminates the specified listener's SSL connections", - Privilege: "SetLoadBalancerListenerSSLCertificate", + AccessLevel: "Read", + Description: "Grants permission to return the status of a bulk deployment", + Privilege: "GetBulkDeploymentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bulkDeployment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to replace the set of policies associated with the specified port on which the back-end server is listening with a new set of policies", - Privilege: "SetLoadBalancerPoliciesForBackendServer", + AccessLevel: "Read", + Description: "Grants permission to retrieve the connectivity information for a core", + Privilege: "GetConnectivityInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "connectivityInfo*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a connector definition", + Privilege: "GetConnectorDefinition", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectorDefinition*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to replace the current set of policies for the specified load balancer port with the specified set of policies", - Privilege: "SetLoadBalancerPoliciesOfListener", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a connector definition version", + Privilege: "GetConnectorDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer*", + ResourceType: "connectorDefinition*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityPolicy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectorDefinitionVersion*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/${LoadBalancerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - Resource: "loadbalancer", - }, - }, - ServiceName: "AWS Elastic Load Balancing", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", - }, - { - Condition: "elasticloadbalancing:ListenerProtocol", - Description: "Filters access by the listener protocol that is allowed in the request", - Type: "String", - }, - { - Condition: "elasticloadbalancing:ResourceTag/${TagKey}", - Description: "Filters access by the preface string for a tag key and value pair that are attached to a resource", - Type: "String", - }, - { - Condition: "elasticloadbalancing:Scheme", - Description: "Filters access by the load balancer scheme that is allowed in the request", - Type: "String", - }, - { - Condition: "elasticloadbalancing:SecurityGroup", - Description: "Filters access by the security-group IDs that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:SecurityPolicy", - Description: "Filters access by the SSL Security Policies that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "elasticloadbalancing:Subnet", - Description: "Filters access by the subnet IDs that are allowed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "elasticloadbalancing", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add the specified certificates to the specified secure listener", - Privilege: "AddListenerCertificates", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a core definition", + Privilege: "GetCoreDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/app*", + ResourceType: "coreDefinition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a core definition version", + Privilege: "GetCoreDefinitionVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net*", + ResourceType: "coreDefinition*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDefinitionVersion*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add the specified tags to the specified load balancer. Each load balancer can have a maximum of 10 tags", - Privilege: "AddTags", + AccessLevel: "Read", + Description: "Grants permission to return the status of a deployment", + Privilege: "GetDeploymentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/app", + ResourceType: "deployment*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/net", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a device definition", + Privilege: "GetDeviceDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/app", + ResourceType: "deviceDefinition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a device definition version", + Privilege: "GetDeviceDefinitionVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net", + ResourceType: "deviceDefinition*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "deviceDefinitionVersion*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a Lambda function definition, such as its creation time and latest version", + Privilege: "GetFunctionDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", + ResourceType: "functionDefinition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a Lambda function definition version, such as which Lambda functions are included in the version and their configurations", + Privilege: "GetFunctionDefinitionVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup", + ResourceType: "functionDefinition*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore", + ResourceType: "functionDefinitionVersion*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a group", + Privilege: "GetGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:CreateAction", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add revocations to a trust store", - Privilege: "AddTrustStoreRevocations", + AccessLevel: "Read", + Description: "Grants permission to return the public key of the CA associated with a group", + Privilege: "GetGroupCertificateAuthority", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore*", + ResourceType: "certificateAuthority*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a listener for the specified Application Load Balancer", - Privilege: "CreateListener", + AccessLevel: "Read", + Description: "Grants permission to retrieve the current configuration for the CA used by a group", + Privilege: "GetGroupCertificateConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - }, - ResourceType: "loadbalancer/app/", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityPolicy", - "elasticloadbalancing:ListenerProtocol", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a load balancer", - Privilege: "CreateLoadBalancer", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a group version", + Privilege: "GetGroupVersion", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - }, - ResourceType: "loadbalancer/app/", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", + ResourceType: "group*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityGroup", - "elasticloadbalancing:Subnet", - "elasticloadbalancing:Scheme", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "groupVersion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a rule for the specified listener", - Privilege: "CreateRule", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a logger definition", + Privilege: "GetLoggerDefinition", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - }, - ResourceType: "listener/app*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "loggerDefinition*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a target group", - Privilege: "CreateTargetGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a logger definition version", + Privilege: "GetLoggerDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - }, - ResourceType: "targetgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "loggerDefinition*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "loggerDefinitionVersion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a trust store", - Privilege: "CreateTrustStore", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a resource definition, such as its creation time and latest version", + Privilege: "GetResourceDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - }, - ResourceType: "truststore", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourceDefinition*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified listener", - Privilege: "DeleteListener", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a resource definition version, such as which resources are included in the version", + Privilege: "GetResourceDefinitionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/app*", + ResourceType: "resourceDefinition*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net*", + ResourceType: "resourceDefinitionVersion*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the service role that is attached to an account", + Privilege: "GetServiceRoleForAccount", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified load balancer", - Privilege: "DeleteLoadBalancer", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a subscription definition", + Privilege: "GetSubscriptionDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "subscriptionDefinition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a subscription definition version", + Privilege: "GetSubscriptionDefinitionVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", + ResourceType: "subscriptionDefinition*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subscriptionDefinitionVersion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified rule", - Privilege: "DeleteRule", + AccessLevel: "Read", + Description: "Grants permission to retrieve runtime configuration of a thing", + Privilege: "GetThingRuntimeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/app*", + ResourceType: "thingRuntimeConfig*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a paginated list of the deployments that have been started in a bulk deployment operation and their current deployment status", + Privilege: "ListBulkDeploymentDetailedReports", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/net*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bulkDeployment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified target group", - Privilege: "DeleteTargetGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of bulk deployments", + Privilege: "ListBulkDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified trust store", - Privilege: "DeleteTrustStore", + AccessLevel: "List", + Description: "Grants permission to list the versions of a connector definition", + Privilege: "ListConnectorDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore*", + ResourceType: "connectorDefinition*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of connector definitions", + Privilege: "ListConnectorDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister the specified targets from the specified target group", - Privilege: "DeregisterTargets", + AccessLevel: "List", + Description: "Grants permission to list the versions of a core definition", + Privilege: "ListCoreDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup*", + ResourceType: "coreDefinition*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of core definitions", + Privilege: "ListCoreDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the Elastic Load Balancing resource limits for the AWS account", - Privilege: "DescribeAccountLimits", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all deployments for a group", + Privilege: "ListDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the certificates for the specified secure listener", - Privilege: "DescribeListenerCertificates", + AccessLevel: "List", + Description: "Grants permission to list the versions of a device definition", + Privilege: "ListDeviceDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deviceDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified listeners or the listeners for the specified Application Load Balancer", - Privilege: "DescribeListeners", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of device definitions", + Privilege: "ListDeviceDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -112962,21 +154998,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the attributes for the specified load balancer", - Privilege: "DescribeLoadBalancerAttributes", + AccessLevel: "List", + Description: "Grants permission to list the versions of a Lambda function definition", + Privilege: "ListFunctionDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "functionDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified the load balancers. If no load balancers are specified, the call describes all of your load balancers", - Privilege: "DescribeLoadBalancers", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of Lambda function definitions", + Privilege: "ListFunctionDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -112986,33 +155022,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified rules or the rules for the specified listener", - Privilege: "DescribeRules", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of current CAs for a group", + Privilege: "ListGroupCertificateAuthorities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified policies or all policies used for SSL negotiation", - Privilege: "DescribeSSLPolicies", + AccessLevel: "List", + Description: "Grants permission to list the versions of a group", + Privilege: "ListGroupVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the tags associated with the specified resource", - Privilege: "DescribeTags", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of groups", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -113022,21 +155058,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the attributes for the specified target group", - Privilege: "DescribeTargetGroupAttributes", + AccessLevel: "List", + Description: "Grants permission to list the versions of a logger definition", + Privilege: "ListLoggerDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "loggerDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified target groups or all of your target groups", - Privilege: "DescribeTargetGroups", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of logger definitions", + Privilege: "ListLoggerDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -113046,21 +155082,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the health of the specified targets or all of your targets", - Privilege: "DescribeTargetHealth", + AccessLevel: "List", + Description: "Grants permission to list the versions of a resource definition", + Privilege: "ListResourceDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourceDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the associations with a trust store", - Privilege: "DescribeTrustStoreAssociations", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of resource definitions", + Privilege: "ListResourceDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -113070,21 +155106,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified trust stores revocations or all of your revocations related to a trust store", - Privilege: "DescribeTrustStoreRevocations", + AccessLevel: "List", + Description: "Grants permission to list the versions of a subscription definition", + Privilege: "ListSubscriptionDefinitionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subscriptionDefinition*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified trust stores or all of your trust stores", - Privilege: "DescribeTrustStores", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of subscription definitions", + Privilege: "ListSubscriptionDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -113095,90 +155131,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a trust store CA certificates bundle", - Privilege: "GetTrustStoreCaCertificatesBundle", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore*", + ResourceType: "bulkDeployment", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectorDefinition", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a trust store revocation content", - Privilege: "GetTrustStoreRevocationContent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore*", + ResourceType: "coreDefinition", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deviceDefinition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the specified properties of the specified listener", - Privilege: "ModifyListener", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/app*", + ResourceType: "functionDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net*", + ResourceType: "group", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityPolicy", - "elasticloadbalancing:ListenerProtocol", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "loggerDefinition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the attributes of the specified load balancer", - Privilege: "ModifyLoadBalancerAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "resourceDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", + ResourceType: "subscriptionDefinition", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -113187,23 +155191,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the specified rule", - Privilege: "ModifyRule", + Description: "Grants permission to reset a group's deployments", + Privilege: "ResetDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/app*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "listener-rule/net*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deploy multiple groups in one operation", + Privilege: "StartBulkDeployment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -113212,103 +155218,70 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the health checks used when evaluating the health state of the targets in the specified target group", - Privilege: "ModifyTargetGroup", + Description: "Grants permission to stop the execution of a bulk deployment", + Privilege: "StopBulkDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bulkDeployment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the specified attributes of the specified target group", - Privilege: "ModifyTargetGroupAttributes", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup*", + ResourceType: "bulkDeployment", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectorDefinition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify the specified trust store", - Privilege: "ModifyTrustStore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore*", + ResourceType: "coreDefinition", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deviceDefinition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register the specified targets with the specified target group", - Privilege: "RegisterTargets", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup*", + ResourceType: "functionDefinition", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove the specified certificates of the specified secure listener", - Privilege: "RemoveListenerCertificates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/app*", + ResourceType: "loggerDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net*", + ResourceType: "resourceDefinition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subscriptionDefinition", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -113317,55 +155290,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the specified load balancer", - Privilege: "RemoveTags", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/app", + ResourceType: "bulkDeployment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/net", + ResourceType: "connectorDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/app", + ResourceType: "coreDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener/net", + ResourceType: "deviceDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "functionDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", + ResourceType: "group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "targetgroup", + ResourceType: "loggerDefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore", + ResourceType: "resourceDefinition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subscriptionDefinition", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -113374,271 +155349,370 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove revocations from a trust store", - Privilege: "RemoveTrustStoreRevocations", + Description: "Grants permission to update the connectivity information for a Greengrass core. Any devices that belong to the group that has this core will receive this information in order to find the location of the core and connect to it", + Privilege: "UpdateConnectivityInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "truststore*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "connectivityInfo*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the type of IP addresses used by the subnets of the specified load balancer", - Privilege: "SetIpAddressType", + Description: "Grants permission to update a connector definition", + Privilege: "UpdateConnectorDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "connectorDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a core definition", + Privilege: "UpdateCoreDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "coreDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the priorities of the specified rules", - Privilege: "SetRulePriorities", + Description: "Grants permission to update a device definition", + Privilege: "UpdateDeviceDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/app*", + ResourceType: "deviceDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a Lambda function definition", + Privilege: "UpdateFunctionDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener-rule/net*", + ResourceType: "functionDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the specified security groups with the specified load balancer", - Privilege: "SetSecurityGroups", + Description: "Grants permission to update a group", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the certificate expiry time for a group", + Privilege: "UpdateGroupCertificateConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:SecurityGroup", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable the Availability Zone for the specified subnets for the specified load balancer", - Privilege: "SetSubnets", + Description: "Grants permission to update a logger definition", + Privilege: "UpdateLoggerDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/app/", + ResourceType: "loggerDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a resource definition", + Privilege: "UpdateResourceDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loadbalancer/net/", + ResourceType: "resourceDefinition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a subscription definition", + Privilege: "UpdateSubscriptionDefinition", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", - "elasticloadbalancing:Subnet", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subscriptionDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to give WebAcl permission to WAF", - Privilege: "SetWebAcl", + Description: "Grants permission to update runtime configuration of a thing", + Privilege: "UpdateThingRuntimeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thingRuntimeConfig*", }, }, }, - }, - Resources: []ParliamentResource{ + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo", + ConditionKeys: []string{}, + Resource: "connectivityInfo", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}", + ConditionKeys: []string{}, + Resource: "certificateAuthority", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}", + ConditionKeys: []string{}, + Resource: "deployment", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "bulkDeployment", + }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/app/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "listener/app", + Resource: "group", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener-rule/app/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}/${ListenerRuleId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "groupVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "listener-rule/app", + Resource: "coreDefinition", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener/net/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "coreDefinitionVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "listener/net", + Resource: "deviceDefinition", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:listener-rule/net/${LoadBalancerName}/${LoadBalancerId}/${ListenerId}/${ListenerRuleId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "deviceDefinitionVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "listener-rule/net", + Resource: "functionDefinition", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/app/${LoadBalancerName}/${LoadBalancerId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "functionDefinitionVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "loadbalancer/app/", + Resource: "subscriptionDefinition", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:loadbalancer/net/${LoadBalancerName}/${LoadBalancerId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "subscriptionDefinitionVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "loadbalancer/net/", + Resource: "loggerDefinition", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:targetgroup/${TargetGroupName}/${TargetGroupId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "loggerDefinitionVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "targetgroup", + Resource: "resourceDefinition", }, { - Arn: "arn:${Partition}:elasticloadbalancing:${Region}:${Account}:truststore/${TrustStoreName}/${TrustStoreId}", + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "resourceDefinitionVersion", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "elasticloadbalancing:ResourceTag/${TagKey}", }, - Resource: "truststore", + Resource: "connectorDefinition", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}", + ConditionKeys: []string{}, + Resource: "connectorDefinitionVersion", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", + ConditionKeys: []string{}, + Resource: "thing", + }, + { + Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/runtimeconfig", + ConditionKeys: []string{}, + Resource: "thingRuntimeConfig", }, }, - ServiceName: "AWS Elastic Load Balancing V2", + ServiceName: "AWS IoT Greengrass", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by whether the tag and value pair is provided with the action", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag and value pair associated with an Amazon EMR resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by whether the tag keys are provided with the action regardless of tag value", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, { - Condition: "elasticmapreduce:ExecutionRoleArn", - Description: "Filters access by whether the execution role ARN is provided with the action", - Type: "ARN", + Condition: "groundstation:AgentId", + Description: "Filters access by the ID of an agent", + Type: "String", }, { - Condition: "elasticmapreduce:RequestTag/${TagKey}", - Description: "Filters access by whether the tag and value pair is provided with the action", + Condition: "groundstation:ConfigId", + Description: "Filters access by the ID of a config", Type: "String", }, { - Condition: "elasticmapreduce:ResourceTag/${TagKey}", - Description: "Filters access by the tag and value pair associated with an Amazon EMR resource", + Condition: "groundstation:ConfigType", + Description: "Filters access by the type of a config", + Type: "String", + }, + { + Condition: "groundstation:ContactId", + Description: "Filters access by the ID of a contact", + Type: "String", + }, + { + Condition: "groundstation:DataflowEndpointGroupId", + Description: "Filters access by the ID of a dataflow endpoint group", + Type: "String", + }, + { + Condition: "groundstation:EphemerisId", + Description: "Filters access by the ID of an ephemeris", + Type: "String", + }, + { + Condition: "groundstation:GroundStationId", + Description: "Filters access by the ID of a ground station", + Type: "String", + }, + { + Condition: "groundstation:MissionProfileId", + Description: "Filters access by the ID of a mission profile", + Type: "String", + }, + { + Condition: "groundstation:SatelliteId", + Description: "Filters access by the ID of a satellite", Type: "String", }, }, - Prefix: "elasticmapreduce", + Prefix: "groundstation", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add an instance fleet to a running cluster", - Privilege: "AddInstanceFleet", + Description: "Grants permission to cancel a contact", + Privilege: "CancelContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Contact*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add instance groups to a running cluster", - Privilege: "AddInstanceGroups", + Description: "Grants permission to create a configuration", + Privilege: "CreateConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add new steps to a running cluster", - Privilege: "AddJobFlowSteps", + Description: "Grants permission to create a data flow endpoint group", + Privilege: "CreateDataflowEndpointGroup", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "elasticmapreduce:ExecutionRoleArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -113646,35 +155720,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an Amazon EMR resource", - Privilege: "AddTags", + AccessLevel: "Write", + Description: "Grants permission to create an ephemeris item", + Privilege: "CreateEphemeris", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "editor", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook-execution", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "studio", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "elasticmapreduce:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -113683,141 +155736,131 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to attach an EMR notebook to a compute engine", - Privilege: "AttachEditor", + Description: "Grants permission to create a mission profile", + Privilege: "CreateMissionProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a pending step or steps in a running cluster", - Privilege: "CancelSteps", + Description: "Grants permission to delete a config", + Privilege: "DeleteConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an EMR notebook", - Privilege: "CreateEditor", + Description: "Grants permission to delete a data flow endpoint group", + Privilege: "DeleteDataflowEndpointGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticmapreduce:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataflowEndpointGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a persistent application history server", - Privilege: "CreatePersistentAppUI", + Description: "Grants permission to delete an ephemeris item", + Privilege: "DeleteEphemeris", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "EphemerisItem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an EMR notebook repository", - Privilege: "CreateRepository", + Description: "Grants permission to delete a mission profile", + Privilege: "DeleteMissionProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MissionProfile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a security configuration", - Privilege: "CreateSecurityConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe a contact", + Privilege: "DescribeContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Contact*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an EMR Studio", - Privilege: "CreateStudio", + AccessLevel: "Read", + Description: "Grants permission to describe an ephemeris item", + Privilege: "DescribeEphemeris", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "elasticmapreduce:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "EphemerisItem*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to launch an EMR Studio using IAM authentication mode", - Privilege: "CreateStudioPresignedUrl", + AccessLevel: "Read", + Description: "Grants permission to get the configuration of an agent", + Privilege: "GetAgentConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "Agent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an EMR Studio session mapping", - Privilege: "CreateStudioSessionMapping", + AccessLevel: "Read", + Description: "Grants permission to return a configuration", + Privilege: "GetConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "Config*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an EMR notebook", - Privilege: "DeleteEditor", + AccessLevel: "Read", + Description: "Grants permission to return a data flow endpoint group", + Privilege: "GetDataflowEndpointGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "DataflowEndpointGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an EMR notebook repository", - Privilege: "DeleteRepository", + AccessLevel: "Read", + Description: "Grants permission to return minutes usage", + Privilege: "GetMinuteUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -113827,222 +155870,201 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a security configuration", - Privilege: "DeleteSecurityConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve a mission profile", + Privilege: "GetMissionProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MissionProfile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an EMR Studio", - Privilege: "DeleteStudio", + AccessLevel: "Read", + Description: "Grants permission to return information about a satellite", + Privilege: "GetSatellite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "Satellite*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an EMR Studio session mapping", - Privilege: "DeleteStudioSessionMapping", + AccessLevel: "List", + Description: "Grants permission to return a list of past configurations", + Privilege: "ListConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to block an identity from opening a collaborative workspace", - Privilege: "DeleteWorkspaceAccess", + AccessLevel: "List", + Description: "Grants permission to return a list of contacts", + Privilege: "ListContacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a cluster, including status, hardware and software configuration, VPC settings, and so on", - Privilege: "DescribeCluster", + AccessLevel: "List", + Description: "Grants permission to list data flow endpoint groups", + Privilege: "ListDataflowEndpointGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about a notebook, including status, user, role, tags, location, and more", - Privilege: "DescribeEditor", + AccessLevel: "List", + Description: "Grants permission to list ephemerides", + Privilege: "ListEphemerides", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe details of clusters (job flows). This API is deprecated and will eventually be removed. We recommend you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and ListBootstrapActions instead", - Privilege: "DescribeJobFlows", + AccessLevel: "List", + Description: "Grants permission to list ground stations", + Privilege: "ListGroundStations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about a notebook execution", - Privilege: "DescribeNotebookExecution", + AccessLevel: "List", + Description: "Grants permission to return a list of mission profiles", + Privilege: "ListMissionProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-execution*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a persistent application history server", - Privilege: "DescribePersistentAppUI", + AccessLevel: "List", + Description: "Grants permission to list satellites", + Privilege: "ListSatellites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about an EMR release, such as which applications are supported", - Privilege: "DescribeReleaseLabel", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Config", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an EMR notebook repository", - Privilege: "DescribeRepository", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Contact", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details of a security configuration", - Privilege: "DescribeSecurityConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DataflowEndpointGroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a cluster step", - Privilege: "DescribeStep", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "MissionProfile", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about an EMR Studio", - Privilege: "DescribeStudio", + AccessLevel: "Write", + Description: "Grants permission to register an agent", + Privilege: "RegisterAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach an EMR notebook from a compute engine", - Privilege: "DetachEditor", + Description: "Grants permission to reserve a contact", + Privilege: "ReserveContact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the auto-termination policy associated with a cluster", - Privilege: "GetAutoTerminationPolicy", + AccessLevel: "Tagging", + Description: "Grants permission to assign a resource tag", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Config", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the EMR block public access configuration for the AWS account in the Region", - Privilege: "GetBlockPublicAccessConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Contact", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to retrieve HTTP basic credentials associated with a given execution IAM Role for a fine-grained access control enabled EMR Cluster", - Privilege: "GetClusterSessionCredentials", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "DataflowEndpointGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EphemerisItem", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MissionProfile", }, { ConditionKeys: []string{ - "elasticmapreduce:ExecutionRoleArn", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -114050,153 +156072,167 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the managed scaling policy associated with a cluster", - Privilege: "GetManagedScalingPolicy", + AccessLevel: "Tagging", + Description: "Grants permission to unassign a resource tag", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to get a presigned URL for an application history server running on the cluster", - Privilege: "GetOnClusterAppUIPresignedURL", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Contact", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to get a presigned URL for a persistent application history server", - Privilege: "GetPersistentAppUIPresignedURL", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "DataflowEndpointGroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view information about an EMR Studio session mapping", - Privilege: "GetStudioSessionMapping", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "EphemerisItem", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to link an EMR notebook repository to EMR notebooks", - Privilege: "LinkRepository", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "MissionProfile", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about the bootstrap actions associated with a cluster", - Privilege: "ListBootstrapActions", + AccessLevel: "Write", + Description: "Grants permission to update the status of an agent", + Privilege: "UpdateAgentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Agent*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the status of accessible clusters", - Privilege: "ListClusters", + AccessLevel: "Write", + Description: "Grants permission to update a configuration", + Privilege: "UpdateConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Config*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list summary information for accessible EMR notebooks", - Privilege: "ListEditors", + AccessLevel: "Write", + Description: "Grants permission to update an ephemeris item", + Privilege: "UpdateEphemeris", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "EphemerisItem*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of instance fleets in a cluster", - Privilege: "ListInstanceFleets", + AccessLevel: "Write", + Description: "Grants permission to update a mission profile", + Privilege: "UpdateMissionProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "MissionProfile*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get details of instance groups in a cluster", - Privilege: "ListInstanceGroups", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:config/${ConfigType}/${ConfigId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "groundstation:ConfigId", + "groundstation:ConfigType", }, + Resource: "Config", }, { - AccessLevel: "Read", - Description: "Grants permission to get details about the Amazon EC2 instances in a cluster", - Privilege: "ListInstances", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:contact/${ContactId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "groundstation:ContactId", }, + Resource: "Contact", }, { - AccessLevel: "List", - Description: "Grants permission to list summary information for notebook executions", - Privilege: "ListNotebookExecutions", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:dataflow-endpoint-group/${DataflowEndpointGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "groundstation:DataflowEndpointGroupId", }, + Resource: "DataflowEndpointGroup", }, { - AccessLevel: "List", - Description: "Grants permission to list and filter the available EMR releases in the current region", - Privilege: "ListReleaseLabels", + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:ephemeris/${EphemerisId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "groundstation:EphemerisId", + }, + Resource: "EphemerisItem", + }, + { + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:groundstation:${GroundStationId}", + ConditionKeys: []string{ + "groundstation:GroundStationId", + }, + Resource: "GroundStationResource", + }, + { + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:mission-profile/${MissionProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "groundstation:MissionProfileId", + }, + Resource: "MissionProfile", + }, + { + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:satellite/${SatelliteId}", + ConditionKeys: []string{ + "groundstation:SatelliteId", + }, + Resource: "Satellite", + }, + { + Arn: "arn:${Partition}:groundstation:${Region}:${Account}:agent/${AgentId}", + ConditionKeys: []string{ + "groundstation:AgentId", + }, + Resource: "Agent", + }, + }, + ServiceName: "AWS Ground Station", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "groundtruthlabeling", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a patch file with the manifest file to update the manifest file", + Privilege: "AssociatePatchToManifestJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114206,9 +156242,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list existing EMR notebook repositories", - Privilege: "ListRepositories", + AccessLevel: "Write", + Description: "Grants permission to create a GT+ Batch", + Privilege: "CreateBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114218,9 +156254,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list available security configurations in this account by name, along with creation dates and times", - Privilege: "ListSecurityConfigurations", + AccessLevel: "Write", + Description: "Grants permission to create intake form", + Privilege: "CreateIntakeForm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114230,21 +156266,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list steps associated with a cluster", - Privilege: "ListSteps", + AccessLevel: "Write", + Description: "Grants permission to create a GT+ Project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list summary information about EMR Studio session mappings", - Privilege: "ListStudioSessionMappings", + AccessLevel: "Write", + Description: "Grants permission to create a GT+ Workflow Definition", + Privilege: "CreateWorkflowDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114254,9 +156290,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list summary information about EMR Studios", - Privilege: "ListStudios", + AccessLevel: "Read", + Description: "Grants permission to get status of GroundTruthLabeling Jobs", + Privilege: "DescribeConsoleJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114266,9 +156302,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon EC2 instance types that an Amazon EMR release supports", - Privilege: "ListSupportedInstanceTypes", + AccessLevel: "Write", + Description: "Grants permission to generate LiDAR Preview Task", + Privilege: "GenerateLIDARPreviewTaskConfigJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114278,98 +156314,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list identities that are granted access to a workspace", - Privilege: "ListWorkspaceAccessIdentities", + AccessLevel: "Read", + Description: "Grants permission to get a GT+ Batch", + Privilege: "GetBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change cluster settings such as number of steps that can be executed concurrently for a cluster", - Privilege: "ModifyCluster", + AccessLevel: "Read", + Description: "Grants permission to get a intake forms", + Privilege: "GetIntakeFormStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the target On-Demand and target Spot capacities for a instance fleet", - Privilege: "ModifyInstanceFleet", + AccessLevel: "Read", + Description: "Grants permission to list a GT+ Batchs", + Privilege: "ListBatches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the number and configuration of EC2 instances for an instance group", - Privilege: "ModifyInstanceGroups", + AccessLevel: "Read", + Description: "Grants permission to list dataset objects in a manifest file", + Privilege: "ListDatasetObjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to launch the Jupyter notebook editor for an EMR notebook from within the console", - Privilege: "OpenEditorInConsole", + AccessLevel: "Read", + Description: "Grants permission to list a GT+ Projects", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an automatic scaling policy for a core instance group or task instance group", - Privilege: "PutAutoScalingPolicy", + Description: "Grants permission to filter records from a manifest file using S3 select. Get sample entries based on random sampling", + Privilege: "RunFilterOrSampleDatasetJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update the auto-termination policy associated with a cluster", - Privilege: "PutAutoTerminationPolicy", + Description: "Grants permission to list a S3 prefix and create manifest files from objects in that location", + Privilege: "RunGenerateManifestByCrawlingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update the EMR block public access configuration for the AWS account in the Region", - Privilege: "PutBlockPublicAccessConfiguration", + AccessLevel: "Write", + Description: "Grants permission to generate metrics from objects in manifest", + Privilege: "RunGenerateManifestMetricsJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114380,91 +156411,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update the managed scaling policy associated with a cluster", - Privilege: "PutManagedScalingPolicy", + Description: "Grants permission to update a GT+ Batch", + Privilege: "UpdateBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon GroundTruth Labeling", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tag key-value pairs in the request", + Type: "String", + }, { - AccessLevel: "Permissions management", - Description: "Grants permission to allow an identity to open a collaborative workspace", - Privilege: "PutWorkspaceAccess", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "guardduty", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept invitations to become a GuardDuty member account", + Privilege: "AcceptAdministratorInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove an automatic scaling policy from an instance group", - Privilege: "RemoveAutoScalingPolicy", + Description: "Grants permission to accept invitations to become a GuardDuty member account", + Privilege: "AcceptInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the auto-termination policy associated with a cluster", - Privilege: "RemoveAutoTerminationPolicy", + Description: "Grants permission to archive GuardDuty findings", + Privilege: "ArchiveFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the managed scaling policy associated with a cluster", - Privilege: "RemoveManagedScalingPolicy", + Description: "Grants permission to create a detector", + Privilege: "CreateDetector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Amazon EMR resource", - Privilege: "RemoveTags", + AccessLevel: "Write", + Description: "Grants permission to create GuardDuty filters. A filters defines finding attributes and conditions used to filter findings", + Privilege: "CreateFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "editor", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook-execution", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "studio", + ResourceType: "filter*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -114474,17 +156519,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create and launch a cluster (job flow)", - Privilege: "RunJobFlow", + Description: "Grants permission to create an IPSet", + Privilege: "CreateIPSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "elasticmapreduce:RequestTag/${TagKey}", }, DependentActions: []string{ - "iam:PassRole", + "iam:DeleteRolePolicy", + "iam:PutRolePolicy", }, ResourceType: "", }, @@ -114492,89 +156538,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add and remove auto terminate after step execution for a cluster", - Privilege: "SetKeepJobFlowAliveWhenNoSteps", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add and remove termination protection for a cluster", - Privilege: "SetTerminationProtection", + Description: "Grants permission to create a new Malware Protection plan", + Privilege: "CreateMalwareProtectionPlan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable unhealthy node replacement for a cluster", - Privilege: "SetUnhealthyNodeReplacement", + Description: "Grants permission to create GuardDuty member accounts, where the account used to create a member becomes the GuardDuty administrator account", + Privilege: "CreateMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set whether all AWS Identity and Access Management (IAM) users in the AWS account can view a cluster. This API is deprecated and your cluster may be visible to all users in your account. To restrict cluster access using an IAM policy, see AWS Identity and Access Management for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-access-iam.html)", - Privilege: "SetVisibleToAllUsers", + Description: "Grants permission to create a publishing destination", + Privilege: "CreatePublishingDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an EMR notebook", - Privilege: "StartEditor", + Description: "Grants permission to create sample findings", + Privilege: "CreateSampleFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an EMR notebook execution", - Privilege: "StartNotebookExecution", + Description: "Grants permission to create GuardDuty ThreatIntelSets, where a ThreatIntelSet consists of known malicious IP addresses used by GuardDuty to generate findings", + Privilege: "CreateThreatIntelSet", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "editor*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "elasticmapreduce:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -114583,198 +156608,152 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to shut down an EMR notebook", - Privilege: "StopEditor", + Description: "Grants permission to decline invitations to become a GuardDuty member account", + Privilege: "DeclineInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop notebook execution", - Privilege: "StopNotebookExecution", + Description: "Grants permission to delete GuardDuty detectors", + Privilege: "DeleteDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-execution*", + ResourceType: "detector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to terminate a cluster (job flow)", - Privilege: "TerminateJobFlows", + Description: "Grants permission to delete GuardDuty filters", + Privilege: "DeleteFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "filter*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unlink an EMR notebook repository from EMR notebooks", - Privilege: "UnlinkRepository", + Description: "Grants permission to delete GuardDuty IPSets", + Privilege: "DeleteIPSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ipset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an EMR notebook", - Privilege: "UpdateEditor", + Description: "Grants permission to delete invitations to become a GuardDuty member account", + Privilege: "DeleteInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "editor*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an EMR notebook repository", - Privilege: "UpdateRepository", + Description: "Grants permission to delete a Malware Protection plan", + Privilege: "DeleteMalwareProtectionPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "malwareprotectionplan*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update information about an EMR Studio", - Privilege: "UpdateStudio", + Description: "Grants permission to delete GuardDuty member accounts", + Privilege: "DeleteMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an EMR Studio session mapping", - Privilege: "UpdateStudioSessionMapping", + Description: "Grants permission to delete a publishing destination", + Privilege: "DeletePublishingDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "publishingDestination*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to use the EMR console to view events from all clusters", - Privilege: "ViewEventsFromAllClustersInConsole", + AccessLevel: "Write", + Description: "Grants permission to delete GuardDuty ThreatIntelSets", + Privilege: "DeleteThreatIntelSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "threatintelset*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:cluster/${ClusterId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticmapreduce:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:editor/${EditorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticmapreduce:ResourceTag/${TagKey}", - }, - Resource: "editor", - }, - { - Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:notebook-execution/${NotebookExecutionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticmapreduce:ResourceTag/${TagKey}", - }, - Resource: "notebook-execution", - }, - { - Arn: "arn:${Partition}:elasticmapreduce:${Region}:${Account}:studio/${StudioId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "elasticmapreduce:ResourceTag/${TagKey}", - }, - Resource: "studio", - }, - }, - ServiceName: "Amazon Elastic MapReduce", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "elastictranscoder", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Cancel a job that Elastic Transcoder has not begun to process", - Privilege: "CancelJob", + AccessLevel: "Read", + Description: "Grants permission to retrieve details about malware scans", + Privilege: "DescribeMalwareScans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Create a job", - Privilege: "CreateJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pipeline*", - }, + AccessLevel: "Read", + Description: "Grants permission to retrieve details about the delegated administrator associated with a GuardDuty detector", + Privilege: "DescribeOrganizationConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "preset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Create a pipeline", - Privilege: "CreatePipeline", + AccessLevel: "Read", + Description: "Grants permission to retrieve details about a publishing destination", + Privilege: "DescribePublishingDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "publishingDestination*", }, }, }, { AccessLevel: "Write", - Description: "Create a preset", - Privilege: "CreatePreset", + Description: "Grants permission to disable the organization delegated administrator for GuardDuty", + Privilege: "DisableOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114785,44 +156764,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Delete a pipeline", - Privilege: "DeletePipeline", + Description: "Grants permission to disassociate a GuardDuty member account from its GuardDuty administrator account", + Privilege: "DisassociateFromAdministratorAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Delete a preset", - Privilege: "DeletePreset", + Description: "Grants permission to disassociate a GuardDuty member account from its GuardDuty administrator account", + Privilege: "DisassociateFromMasterAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "preset*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Get a list of the jobs that you assigned to a pipeline", - Privilege: "ListJobsByPipeline", + AccessLevel: "Write", + Description: "Grants permission to disassociate GuardDuty member accounts from their administrator GuardDuty account", + Privilege: "DisassociateMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Get information about all of the jobs associated with the current AWS account that have a specified status", - Privilege: "ListJobsByStatus", + AccessLevel: "Write", + Description: "Grants permission to enable an organization delegated administrator for GuardDuty", + Privilege: "EnableOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114832,9 +156811,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Get a list of the pipelines associated with the current AWS account", - Privilege: "ListPipelines", + AccessLevel: "Read", + Description: "Grants permission to retrieve details of the GuardDuty administrator account associated with a member account", + Privilege: "GetAdministratorAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114844,57 +156823,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Get a list of all presets associated with the current AWS account", - Privilege: "ListPresets", + AccessLevel: "Read", + Description: "Grants permission to list Amazon GuardDuty coverage statistics for the specified GuardDuty account in a Region", + Privilege: "GetCoverageStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "detector*", }, }, }, { AccessLevel: "Read", - Description: "Get detailed information about a job", - Privilege: "ReadJob", + Description: "Grants permission to retrieve GuardDuty detectors", + Privilege: "GetDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "detector*", }, }, }, { AccessLevel: "Read", - Description: "Get detailed information about a pipeline", - Privilege: "ReadPipeline", + Description: "Grants permission to retrieve GuardDuty filters", + Privilege: "GetFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "filter*", }, }, }, { AccessLevel: "Read", - Description: "Get detailed information about a preset", - Privilege: "ReadPreset", + Description: "Grants permission to retrieve GuardDuty findings", + Privilege: "GetFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "preset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Test the settings for a pipeline to ensure that Elastic Transcoder can create and process jobs", - Privilege: "TestRole", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of GuardDuty finding statistics", + Privilege: "GetFindingsStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114904,85 +156883,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Update settings for a pipeline", - Privilege: "UpdatePipeline", + AccessLevel: "Read", + Description: "Grants permission to retrieve GuardDuty IPSets", + Privilege: "GetIPSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "ipset*", }, }, }, { - AccessLevel: "Write", - Description: "Update only Amazon Simple Notification Service (Amazon SNS) notifications for a pipeline", - Privilege: "UpdatePipelineNotifications", + AccessLevel: "Read", + Description: "Grants permission to retrieve the count of all GuardDuty invitations sent to a specified account, which does not include the accepted invitation", + Privilege: "GetInvitationsCount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Pause or reactivate a pipeline, so the pipeline stops or restarts processing jobs, update the status for the pipeline", - Privilege: "UpdatePipelineStatus", + AccessLevel: "Read", + Description: "Grants permission to retrieve a Malware Protection plan details", + Privilege: "GetMalwareProtectionPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "malwareprotectionplan*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:elastictranscoder:${Region}:${Account}:job/${JobId}", - ConditionKeys: []string{}, - Resource: "job", - }, - { - Arn: "arn:${Partition}:elastictranscoder:${Region}:${Account}:pipeline/${PipelineId}", - ConditionKeys: []string{}, - Resource: "pipeline", - }, - { - Arn: "arn:${Partition}:elastictranscoder:${Region}:${Account}:preset/${PresetId}", - ConditionKeys: []string{}, - Resource: "preset", - }, - }, - ServiceName: "Amazon Elastic Transcoder", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "elemental-activations", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to complete the process of registering customer account for AWS Elemental Appliances and Software Purchases", - Privilege: "CompleteAccountRegistration", + Description: "Grants permission to retrieve the malware scan settings", + Privilege: "GetMalwareScanSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -114993,8 +156932,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to complete the process of uploading a Software file for AWS Elemental Appliances and Software Purchases", - Privilege: "CompleteFileUpload", + Description: "Grants permission to retrieve details of the GuardDuty administrator account associated with a member account", + Privilege: "GetMasterAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115005,8 +156944,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to download the Software files for AWS Elemental Appliances and Software Purchases", - Privilege: "DownloadSoftware", + Description: "Grants permission to describe which data sources are enabled for member accounts detectors", + Privilege: "GetMemberDetectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115017,8 +156956,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to generate Software Licenses for AWS Elemental Appliances and Software Purchases", - Privilege: "GenerateLicenses", + Description: "Grants permission to retrieve the member accounts associated with an administrator account", + Privilege: "GetMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115029,44 +156968,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe an activation", - Privilege: "GetActivation", + Description: "Grants permission to retrieve GuardDuty protection plan coverage statistics for member accounts in a Region", + Privilege: "GetOrganizationStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activation*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for an AWS Elemental Activations resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to provide the number of days left for each data source used in the free trial period", + Privilege: "GetRemainingFreeTrialDays", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activation", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to start the process of registering customer account for AWS Elemental Appliances and Software Purchases", - Privilege: "StartAccountRegistration", + Description: "Grants permission to retrieve GuardDuty ThreatIntelSets", + Privilege: "GetThreatIntelSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "threatintelset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to start the process of uploading a Software file for AWS Elemental Appliances and Software Purchases", - Privilege: "StartFileUpload", + Description: "Grants permission to list Amazon GuardDuty usage statistics over the last 30 days for the specified detector ID", + Privilege: "GetUsageStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115076,92 +157015,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add a tag for an AWS Elemental Activations resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to invite other AWS accounts to enable GuardDuty and become GuardDuty member accounts", + Privilege: "InviteMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activation*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "activation", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from an AWS Elemental Activations resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list all the resource details for a given account in a Region", + Privilege: "ListCoverage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activation*", + ResourceType: "detector*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of GuardDuty detectors", + Privilege: "ListDetectors", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activation", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:elemental-activations:${Region}:${Account}:activation/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "activation", - }, - }, - ServiceName: "AWS Elemental Appliances and Software Activation Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by request tag", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by resource tag", - Type: "String", - }, { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys", - Type: "ArrayOfString", - }, - }, - Prefix: "elemental-appliances-software", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to complete an upload of an attachment for a quote or order", - Privilege: "CompleteUpload", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of GuardDuty filters", + Privilege: "ListFilters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115171,9 +157063,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an order", - Privilege: "CreateOrderV1", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of GuardDuty findings", + Privilege: "ListFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115183,29 +157075,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to create a quote", - Privilege: "CreateQuote", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of GuardDuty IPSets", + Privilege: "ListIPSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to validate an address", - Privilege: "GetAvsCorrectAddress", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all of the GuardDuty membership invitations that were sent to an AWS account", + Privilege: "ListInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115215,9 +157099,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the billing addresses in the AWS Account", - Privilege: "GetBillingAddresses", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of Malware Protection plans", + Privilege: "ListMalwareProtectionPlans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115227,9 +157111,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the delivery addresses in the AWS Account", - Privilege: "GetDeliveryAddressesV2", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of GuardDuty member accounts associated with an administrator account", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115239,9 +157123,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an order", - Privilege: "GetOrder", + AccessLevel: "List", + Description: "Grants permission to list details about the organization delegated administrator for GuardDuty", + Privilege: "ListOrganizationAdminAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115251,9 +157135,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the orders in the AWS Account", - Privilege: "GetOrdersV2", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of publishing destinations", + Privilege: "ListPublishingDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115264,20 +157148,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a quote", - Privilege: "GetQuote", + Description: "Grants permission to retrieve a list of tags associated with a GuardDuty resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote*", + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "filter", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ipset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "malwareprotectionplan", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "threatintelset", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to calculate taxes for an order", - Privilege: "GetTaxes", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of GuardDuty ThreatIntelSets", + Privilege: "ListThreatIntelSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115287,9 +157191,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the quotes in the AWS Account", - Privilege: "ListQuotes", + AccessLevel: "Write", + Description: "Grants permission to send security telemetry for a specific GuardDuty account in a Region", + Privilege: "SendSecurityTelemetry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115299,21 +157203,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists tags for an AWS Elemental Appliances and Software resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to initiate a new malware scan", + Privilege: "StartMalwareScan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an upload of an attachment for a quote or order", - Privilege: "StartUpload", + Description: "Grants permission to a GuardDuty administrator account to monitor findings from GuardDuty member accounts", + Privilege: "StartMonitoringMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115324,8 +157228,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to submit an order", - Privilege: "SubmitOrderV1", + Description: "Grants permission to disable monitoring findings from member accounts", + Privilege: "StopMonitoringMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115336,43 +157240,85 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to tag an AWS Elemental Appliances and Software resource", + Description: "Grants permission to add tags to a GuardDuty resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote*", + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "filter", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ipset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote", + ResourceType: "malwareprotectionplan", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "threatintelset", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to unarchive GuardDuty findings", + Privilege: "UnarchiveFindings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from an AWS Elemental Appliances and Software resource", + Description: "Grants permission to remove tags from a GuardDuty resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote*", + ResourceType: "detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "filter", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ipset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "malwareprotectionplan", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote", + ResourceType: "threatintelset", }, { ConditionKeys: []string{ @@ -115385,36 +157331,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify a quote", - Privilege: "UpdateQuote", + Description: "Grants permission to update GuardDuty detectors", + Privilege: "UpdateDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quote*", + ResourceType: "detector*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:elemental-appliances-software:${Region}:${Account}:quote/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to updates GuardDuty filters", + Privilege: "UpdateFilter", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "filter*", + }, }, - Resource: "quote", }, - }, - ServiceName: "AWS Elemental Appliances and Software", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "elemental-support-cases", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to verify whether the caller has the permissions to perform support case operations", - Privilege: "CheckCasePermission", + Description: "Grants permission to update findings feedback to mark GuardDuty findings as useful or not useful", + Privilege: "UpdateFindingsFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115425,32 +157367,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a support case", - Privilege: "CreateCase", + Description: "Grants permission to update GuardDuty IPSets", + Privilege: "UpdateIPSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:DeleteRolePolicy", + "iam:PutRolePolicy", + }, + ResourceType: "ipset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a support case in your account", - Privilege: "GetCase", + AccessLevel: "Write", + Description: "Grants permission to update the Malware Protection plan", + Privilege: "UpdateMalwareProtectionPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "malwareprotectionplan*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the support cases in your account", - Privilege: "GetCases", + AccessLevel: "Write", + Description: "Grants permission to update the malware scan settings", + Privilege: "UpdateMalwareScanSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115461,8 +157406,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a support case", - Privilege: "UpdateCase", + Description: "Grants permission to update which data sources are enabled for member accounts detectors", + Privilege: "UpdateMemberDetectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115471,18 +157416,10 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Elemental Support Cases", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "elemental-support-content", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to search support content", - Privilege: "Query", + AccessLevel: "Write", + Description: "Grants permission to update the delegated administrator configuration associated with a GuardDuty detector", + Privilege: "UpdateOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -115491,82 +157428,124 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update a publishing destination", + Privilege: "UpdatePublishingDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "publishingDestination*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to updates the GuardDuty ThreatIntelSets", + Privilege: "UpdateThreatIntelSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:DeleteRolePolicy", + "iam:PutRolePolicy", + }, + ResourceType: "threatintelset*", + }, + }, + }, }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Elemental Support Content", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ + Resources: []ParliamentResource{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs present in the request", - Type: "String", + Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "detector", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", + Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/filter/${FilterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "filter", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys present in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/ipset/${IPSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ipset", }, { - Condition: "emr-containers:ExecutionRoleArn", - Description: "Filters access by the execution role arn present in the request", - Type: "ARN", + Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/threatintelset/${ThreatIntelSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "threatintelset", }, { - Condition: "emr-containers:JobTemplateArn", - Description: "Filters access by the job template arn present in the request", - Type: "ARN", + Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/publishingDestination/${PublishingDestinationId}", + ConditionKeys: []string{}, + Resource: "publishingDestination", }, - }, - Prefix: "emr-containers", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to cancel a job run", - Privilege: "CancelJobRun", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobRun*", - }, + Arn: "arn:${Partition}:guardduty:${Region}:${Account}:malware-protection-plan/${MalwareProtectionPlanId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "malwareprotectionplan", }, + }, + ServiceName: "Amazon GuardDuty", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to create a job template", - Privilege: "CreateJobTemplate", + Condition: "health:eventTypeCode", + Description: "Filters access by event type", + Type: "String", + }, + { + Condition: "health:service", + Description: "Filters access by impacted service", + Type: "String", + }, + }, + Prefix: "health", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of accounts that have been affected by the specified events in organization", + Privilege: "DescribeAffectedAccountsForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:ListAccounts", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a managed endpoint", - Privilege: "CreateManagedEndpoint", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of entities that have been affected by the specified events", + Privilege: "DescribeAffectedEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "virtualCluster*", + ResourceType: "event*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "emr-containers:ExecutionRoleArn", + "health:eventTypeCode", + "health:service", }, DependentActions: []string{}, ResourceType: "", @@ -115574,602 +157553,522 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a security configuration", - Privilege: "CreateSecurityConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of entities that have been affected by the specified events and accounts in organization", + Privilege: "DescribeAffectedEntitiesForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:ListAccounts", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a virtual cluster", - Privilege: "CreateVirtualCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve the number of entities that are affected by each of the specified events", + Privilege: "DescribeEntityAggregates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a job template", - Privilege: "DeleteJobTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve the number of entities that are affected by each of the specified events in an organization", + Privilege: "DescribeEntityAggregatesForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobTemplate*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:ListAccounts", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a managed endpoint", - Privilege: "DeleteManagedEndpoint", + AccessLevel: "Read", + Description: "Grants permission to retrieve the number of events of each event type (issue, scheduled change, and account notification)", + Privilege: "DescribeEventAggregates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managedEndpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a virtual cluster", - Privilege: "DeleteVirtualCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve detailed information about one or more specified events", + Privilege: "DescribeEventDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "virtualCluster*", + ResourceType: "event*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a job run", - Privilege: "DescribeJobRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "health:eventTypeCode", + "health:service", + }, DependentActions: []string{}, - ResourceType: "jobRun*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a job template", - Privilege: "DescribeJobTemplate", + Description: "Grants permission to retrieve detailed information about one or more specified events for provided accounts in organization", + Privilege: "DescribeEventDetailsForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobTemplate*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:ListAccounts", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a managed endpoint", - Privilege: "DescribeManagedEndpoint", + Description: "Grants permission to retrieve the event types that meet the specified filter criteria", + Privilege: "DescribeEventTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managedEndpoint*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a security configuration", - Privilege: "DescribeSecurityConfiguration", + Description: "Grants permission to retrieve information about events that meet the specified filter criteria", + Privilege: "DescribeEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityConfiguration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a virtual cluster", - Privilege: "DescribeVirtualCluster", + Description: "Grants permission to retrieve information about events that meet the specified filter criteria in organization", + Privilege: "DescribeEventsForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "virtualCluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:ListAccounts", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to generate a session token used to connect to a managed endpoint", - Privilege: "GetManagedEndpointSessionCredentials", + AccessLevel: "Read", + Description: "Grants permission to retrieve the status of enabling or disabling the Organizational View feature", + Privilege: "DescribeHealthServiceStatusForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managedEndpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:ListAccounts", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list job runs associated with a virtual cluster", - Privilege: "ListJobRuns", + AccessLevel: "Permissions management", + Description: "Grants permission to disable the Organizational View feature", + Privilege: "DisableHealthServiceAccessForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "virtualCluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DisableAWSServiceAccess", + "organizations:ListAccounts", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list job templates", - Privilege: "ListJobTemplates", + AccessLevel: "Permissions management", + Description: "Grants permission to enable the Organizational View feature", + Privilege: "EnableHealthServiceAccessForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:EnableAWSServiceAccess", + "organizations:ListAccounts", + }, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list managed endpoints associated with a virtual cluster", - Privilege: "ListManagedEndpoints", + Arn: "arn:${Partition}:health:*::event/${Service}/${EventTypeCode}/*", + ConditionKeys: []string{}, + Resource: "event", + }, + }, + ServiceName: "AWS Health APIs and Notifications", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "healthlake", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel an on going FHIR Export job with Delete", + Privilege: "CancelFHIRExportJobWithDelete", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "virtualCluster*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list security configurations", - Privilege: "ListSecurityConfigurations", + AccessLevel: "Write", + Description: "Grants permission to create a datastore that can ingest and export FHIR data", + Privilege: "CreateFHIRDatastore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for the specified resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create resource", + Privilege: "CreateResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobTemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managedEndpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "virtualCluster", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list virtual clusters", - Privilege: "ListVirtualClusters", + AccessLevel: "Write", + Description: "Grants permission to delete a datastore", + Privilege: "DeleteFHIRDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a job run", - Privilege: "StartJobRun", + Description: "Grants permission to delete resource", + Privilege: "DeleteResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "virtualCluster*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "emr-containers:ExecutionRoleArn", - "emr-containers:JobTemplateArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag the specified resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with the FHIR datastore, including the datastore ID, datastore ARN, datastore name, datastore status, created at, datastore type version, and datastore endpoint", + Privilege: "DescribeFHIRDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobTemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managedEndpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "virtualCluster", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to display the properties of a FHIR export job, including the ID, ARN, name, and the status of the datastore", + Privilege: "DescribeFHIRExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobTemplate", + ResourceType: "datastore*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to display the properties of a FHIR export job, including the ID, ARN, name, and the status of the datastore with Get", + Privilege: "DescribeFHIRExportJobWithGet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managedEndpoint", + ResourceType: "datastore*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to display the properties of a FHIR import job, including the ID, ARN, name, and the status of the datastore", + Privilege: "DescribeFHIRImportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "virtualCluster", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/virtualclusters/${VirtualClusterId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "virtualCluster", - }, - { - Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/virtualclusters/${VirtualClusterId}/jobruns/${JobRunId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "jobRun", - }, - { - Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/jobtemplates/${JobTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "jobTemplate", - }, - { - Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/virtualclusters/${VirtualClusterId}/endpoints/${EndpointId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "managedEndpoint", - }, - { - Arn: "arn:${Partition}:emr-containers:${Region}:${Account}:/securityconfigurations/${SecurityConfigurationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "securityConfiguration", - }, - }, - ServiceName: "Amazon EMR on EKS (EMR Containers)", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "emr-serverless", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to execute interactive workloads on an application", - Privilege: "AccessInteractiveEndpoints", + AccessLevel: "Read", + Description: "Grants permission to get the capabilities of a FHIR datastore", + Privilege: "GetCapabilities", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to execute interactive workloads on Livy Endpoint enabled on an EMR Serverless Application", - Privilege: "AccessLivyEndpoints", + AccessLevel: "Read", + Description: "Grants permission to access exported files from a FHIR Export job initiated with Get", + Privilege: "GetExportedFile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a job run", - Privilege: "CancelJobRun", + AccessLevel: "Read", + Description: "Grants permission to read resource history", + Privilege: "GetHistoryByResourceId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Application", - Privilege: "CreateApplication", + AccessLevel: "List", + Description: "Grants permission to list all FHIR datastores that are in the user's account, regardless of datastore status", + Privilege: "ListFHIRDatastores", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApplication", + AccessLevel: "List", + Description: "Grants permission to get a list of export jobs for the specified datastore", + Privilege: "ListFHIRExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get application", - Privilege: "GetApplication", + AccessLevel: "List", + Description: "Grants permission to get a list of import jobs for the specified datastore", + Privilege: "ListFHIRImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get job run dashboard", - Privilege: "GetDashboardForJobRun", + AccessLevel: "List", + Description: "Grants permission to get a list of tags for the specified datastore", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun*", + ResourceType: "datastore", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a job run", - Privilege: "GetJobRun", + AccessLevel: "Write", + Description: "Grants permission to bundle multiple resource operations", + Privilege: "ProcessBundle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list applications", - Privilege: "ListApplications", + AccessLevel: "Read", + Description: "Grants permission to read resource", + Privilege: "ReadResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list job run attempts associated with a job run", - Privilege: "ListJobRunAttempts", + AccessLevel: "Read", + Description: "Grants permission to search all resources related to a patient", + Privilege: "SearchEverything", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list job runs associated with an application", - Privilege: "ListJobRuns", + AccessLevel: "Read", + Description: "Grants permission to search resources with GET method", + Privilege: "SearchWithGet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for the specified resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to search resources with POST method", + Privilege: "SearchWithPost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "datastore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to begin a FHIR Export job", + Privilege: "StartFHIRExportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobRun", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to Start an application", - Privilege: "StartApplication", + Description: "Grants permission to begin a FHIR Export job with Get", + Privilege: "StartFHIRExportJobWithGet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a job run", - Privilege: "StartJobRun", + Description: "Grants permission to begin a FHIR Export job with Post", + Privilege: "StartFHIRExportJobWithPost", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to Stop an application", - Privilege: "StopApplication", + Description: "Grants permission to begin a FHIR Import job", + Privilege: "StartFHIRImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag the specified resource", + Description: "Grants permission to add tags to a datastore", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobRun", + ResourceType: "datastore", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -116178,18 +158077,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag the specified resource", + Description: "Grants permission to remove tags associated with a datastore", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobRun", + ResourceType: "datastore", }, { ConditionKeys: []string{ @@ -116202,83 +158096,64 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to Update an application", - Privilege: "UpdateApplication", + Description: "Grants permission to update resource", + Privilege: "UpdateResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "datastore*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:emr-serverless:${Region}:${Account}:/applications/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to read version of a resource", + Privilege: "VersionReadResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datastore*", + }, }, - Resource: "application", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:emr-serverless:${Region}:${Account}:/applications/${ApplicationId}/jobruns/${JobRunId}", + Arn: "arn:${Partition}:healthlake:${Region}:${Account}:datastore/fhir/${DatastoreId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "jobRun", + Resource: "datastore", }, }, - ServiceName: "Amazon EMR Serverless", + ServiceName: "AWS HealthLake", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a key that is present in the request the user makes to the entity resolution service", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names present in the request the user makes to the entity resolution service", + Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, }, - Prefix: "entityresolution", + Prefix: "healthlake", Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Permissions management", - Description: "Grants permission to give an AWS service or another account permission to use an AWS Entity Resolution resources", - Privilege: "AddPolicyStatement", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to batch delete unique Id", - Privilege: "BatchDeleteUniqueId", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", - }, - }, - }, { AccessLevel: "Write", - Description: "Grants permission to create a idmapping workflow", - Privilege: "CreateIdMappingWorkflow", + Description: "Grants permission to create a datastore that can ingest and export FHIR data", + Privilege: "CreateFHIRDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -116292,269 +158167,268 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a IdNamespace", - Privilege: "CreateIdNamespace", + Description: "Grants permission to create resource", + Privilege: "CreateResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a matching workflow", - Privilege: "CreateMatchingWorkflow", + Description: "Grants permission to delete a datastore", + Privilege: "DeleteFHIRDatastore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a schema mapping", - Privilege: "CreateSchemaMapping", + Description: "Grants permission to delete resource", + Privilege: "DeleteResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a idmapping workflow", - Privilege: "DeleteIdMappingWorkflow", + AccessLevel: "Read", + Description: "Grants permission to get the properties associated with the FHIR datastore, including the datastore ID, datastore ARN, datastore name, datastore status, created at, datastore type version, and datastore endpoint", + Privilege: "DescribeFHIRDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdMappingWorkflow*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a IdNamespace", - Privilege: "DeleteIdNamespace", + AccessLevel: "Read", + Description: "Grants permission to display the properties of a FHIR export job, including the ID, ARN, name, and the status of the datastore", + Privilege: "DescribeFHIRExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdNamespace*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a matching workflow", - Privilege: "DeleteMatchingWorkflow", + AccessLevel: "Read", + Description: "Grants permission to display the properties of a FHIR import job, including the ID, ARN, name, and the status of the datastore", + Privilege: "DescribeFHIRImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Delete permission given to an AWS service or another account permission to use an AWS Entity Resolution resources", - Privilege: "DeletePolicyStatement", + AccessLevel: "Read", + Description: "Grants permission to get the capabilities of a FHIR datastore", + Privilege: "GetCapabilities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a schema mapping", - Privilege: "DeleteSchemaMapping", + AccessLevel: "List", + Description: "Grants permission to list all FHIR datastores that are in the user’s account, regardless of datastore status", + Privilege: "ListFHIRDatastores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SchemaMapping*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a idmapping job", - Privilege: "GetIdMappingJob", + AccessLevel: "List", + Description: "Grants permission to get a list of export jobs for the specified datastore", + Privilege: "ListFHIRExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdMappingWorkflow*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a idmapping workflow", - Privilege: "GetIdMappingWorkflow", + AccessLevel: "List", + Description: "Grants permission to get a list of import jobs for the specified datastore", + Privilege: "ListFHIRImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdMappingWorkflow*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a IdNamespace", - Privilege: "GetIdNamespace", + Description: "Grants permission to get a list of tags for the specified datastore", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdNamespace*", + ResourceType: "datastore", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get match Id", - Privilege: "GetMatchId", + Description: "Grants permission to read resource", + Privilege: "ReadResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a matching job", - Privilege: "GetMatchingJob", + Description: "Grants permission to search resources with GET method", + Privilege: "SearchWithGet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a matching workflow", - Privilege: "GetMatchingWorkflow", + Description: "Grants permission to search resources with POST method", + Privilege: "SearchWithPost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Get a resource policy for an AWS Entity Resolution resources", - Privilege: "GetPolicy", + AccessLevel: "Write", + Description: "Grants permission to begin a FHIR Export job", + Privilege: "StartFHIRExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get provider service", - Privilege: "GetProviderService", + AccessLevel: "Write", + Description: "Grants permission to begin a FHIR Import job", + Privilege: "StartFHIRImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProviderService*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a schema mapping", - Privilege: "GetSchemaMapping", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a datastore", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SchemaMapping*", + ResourceType: "datastore", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list idmapping jobs", - Privilege: "ListIdMappingJobs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "IdMappingWorkflow*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list idmapping workflows", - Privilege: "ListIdMappingWorkflows", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with a datastore", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list IdNamespaces", - Privilege: "ListIdNamespaces", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list matching jobs", - Privilege: "ListMatchingJobs", + AccessLevel: "Write", + Description: "Grants permission to update resource", + Privilege: "UpdateResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "datastore*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list matching workflows", - Privilege: "ListMatchingWorkflows", + Arn: "arn:${Partition}:healthlake:${Region}:${AccountId}:datastore/fhir/${DatastoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "datastore", + }, + }, + ServiceName: "Amazon HealthLake", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "honeycode", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to approve a team association request for your AWS Account", + Privilege: "ApproveTeamAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -116564,158 +158438,153 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list provider service", - Privilege: "ListProviderServices", + AccessLevel: "Write", + Description: "Grants permission to create new rows in a table", + Privilege: "BatchCreateTableRows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProviderService*", + ResourceType: "table*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list schema mappings", - Privilege: "ListSchemaMappings", + AccessLevel: "Write", + Description: "Grants permission to delete rows from a table", + Privilege: "BatchDeleteTableRows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to List tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update rows in a table", + Privilege: "BatchUpdateTableRows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Put a resource policy for an AWS Entity Resolution resources", - Privilege: "PutPolicy", + AccessLevel: "Write", + Description: "Grants permission to upsert rows in a table", + Privilege: "BatchUpsertTableRows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a idmapping job", - Privilege: "StartIdMappingJob", + Description: "Grants permission to create a new Amazon Honeycode team for your AWS Account", + Privilege: "CreateTeam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdMappingWorkflow*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a matching job", - Privilege: "StartMatchingJob", + Description: "Grants permission to create a new tenant within Amazon Honeycode for your AWS Account", + Privilege: "CreateTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to adds tags to a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete Amazon Honeycode domains for your AWS Account", + Privilege: "DeleteDomains", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to remove groups from an Amazon Honeycode team for your AWS Account", + Privilege: "DeregisterGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a idmapping workflow", - Privilege: "UpdateIdMappingWorkflow", + AccessLevel: "Read", + Description: "Grants permission to get details about a table data import job", + Privilege: "DescribeTableDataImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdMappingWorkflow*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a IdNamespace", - Privilege: "UpdateIdNamespace", + AccessLevel: "Read", + Description: "Grants permission to get details about Amazon Honeycode teams for your AWS Account", + Privilege: "DescribeTeam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "IdNamespace*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a matching workflow", - Privilege: "UpdateMatchingWorkflow", + AccessLevel: "Read", + Description: "Grants permission to load the data from a screen", + Privilege: "GetScreenData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MatchingWorkflow*", + ResourceType: "screen*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a schema mapping", - Privilege: "UpdateSchemaMapping", + Description: "Grants permission to invoke a screen automation", + Privilege: "InvokeScreenAutomation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SchemaMapping*", + ResourceType: "screen-automation*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to give an AWS service or another account permission to use IdNamespace within a workflow", - Privilege: "UseIdNamespace", + AccessLevel: "List", + Description: "Grants permission to list all Amazon Honeycode domains and their verification status for your AWS Account", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -116724,70 +158593,10 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:entityresolution::${Account}:matchingworkflow/${WorkflowName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "MatchingWorkflow", - }, - { - Arn: "arn:${Partition}:entityresolution::${Account}:schemamapping/${SchemaName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "SchemaMapping", - }, - { - Arn: "arn:${Partition}:entityresolution::${Account}:idmappingworkflow/${WorkflowName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "IdMappingWorkflow", - }, - { - Arn: "arn:${Partition}:entityresolution::${Account}:providerservice/${ProviderName}/${ProviderServiceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ProviderService", - }, - { - Arn: "arn:${Partition}:entityresolution::${Account}:idnamespace/${IdNamespaceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "IdNamespace", - }, - }, - ServiceName: "AWS Entity Resolution", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "es", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to the destination domain owner to accept an inbound cross-cluster search connection request", - Privilege: "AcceptInboundConnection", + AccessLevel: "List", + Description: "Grants permission to list all groups in an Amazon Honeycode team for your AWS Account", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -116797,65 +158606,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to the destination domain owner to accept an inbound cross-cluster search connection request. This permission is deprecated. Use AcceptInboundConnection instead", - Privilege: "AcceptInboundCrossClusterSearchConnection", + AccessLevel: "List", + Description: "Grants permission to list the columns in a table", + Privilege: "ListTableColumns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add the data source for the OpenSearch Service domain", - Privilege: "AddDataSource", + AccessLevel: "List", + Description: "Grants permission to list the rows in a table", + Privilege: "ListTableRows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to attach resource tags to an OpenSearch Service domain", - Privilege: "AddTags", + AccessLevel: "List", + Description: "Grants permission to list the tables in a workbook", + Privilege: "ListTables", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workbook*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a package with an OpenSearch Service domain", - Privilege: "AssociatePackage", + AccessLevel: "Tagging", + Description: "Grants permission to list all tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provide access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint", - Privilege: "AuthorizeVpcEndpointAccess", + AccessLevel: "List", + Description: "Grants permission to list all pending and approved team associations with your AWS Account", + Privilege: "ListTeamAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -116865,85 +158666,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a change on an OpenSearch Service domain", - Privilege: "CancelDomainConfigChange", + AccessLevel: "List", + Description: "Grants permission to list all tenants of Amazon Honeycode for your AWS Account", + Privilege: "ListTenants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a service software update of a domain. This permission is deprecated. Use CancelServiceSoftwareUpdate instead", - Privilege: "CancelElasticsearchServiceSoftwareUpdate", + AccessLevel: "Read", + Description: "Grants permission to query the rows of a table using a filter", + Privilege: "QueryTableRows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a service software update of a domain", - Privilege: "CancelServiceSoftwareUpdate", + Description: "Grants permission to request verification of the Amazon Honeycode domains for your AWS Account", + Privilege: "RegisterDomainForVerification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon OpenSearch Service domain", - Privilege: "CreateDomain", + Description: "Grants permission to add groups to an Amazon Honeycode team for your AWS Account", + Privilege: "RegisterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an OpenSearch Service domain. This permission is deprecated. Use CreateDomain instead", - Privilege: "CreateElasticsearchDomain", + Description: "Grants permission to reject a team association request for your AWS Account", + Privilege: "RejectTeamAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create the service-linked role required for OpenSearch Service domains that use VPC access. This permission is deprecated. OpenSearch Service creates the service-linked role for you", - Privilege: "CreateElasticsearchServiceRole", + Description: "Grants permission to restart verification of the Amazon Honeycode domains for your AWS Account", + Privilege: "RestartDomainVerification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -116954,32 +158739,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new cross-cluster search connection from a source domain to a destination domain", - Privilege: "CreateOutboundConnection", + Description: "Grants permission to start a table data import job", + Privilege: "StartTableDataImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new cross-cluster search connection from a source domain to a destination domain. This permission is deprecated. Use CreateOutboundConnection instead", - Privilege: "CreateOutboundCrossClusterSearchConnection", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a package for use with OpenSearch Service domains", - Privilege: "CreatePackage", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -116990,8 +158775,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create the service-linked role required for Amazon OpenSearch Service domains that use VPC access", - Privilege: "CreateServiceRole", + Description: "Grants permission to update an Amazon Honeycode team for your AWS Account", + Privilege: "UpdateTeam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117000,106 +158785,231 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:honeycode:${Region}:${Account}:workbook:workbook/${WorkbookId}", + ConditionKeys: []string{}, + Resource: "workbook", + }, + { + Arn: "arn:${Partition}:honeycode:${Region}:${Account}:table:workbook/${WorkbookId}/table/${TableId}", + ConditionKeys: []string{}, + Resource: "table", + }, + { + Arn: "arn:${Partition}:honeycode:${Region}:${Account}:screen:workbook/${WorkbookId}/app/${AppId}/screen/${ScreenId}", + ConditionKeys: []string{}, + Resource: "screen", + }, + { + Arn: "arn:${Partition}:honeycode:${Region}:${Account}:screen-automation:workbook/${WorkbookId}/app/${AppId}/screen/${ScreenId}/automation/${AutomationId}", + ConditionKeys: []string{}, + Resource: "screen-automation", + }, + }, + ServiceName: "Amazon Honeycode", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "iam:AWSServiceName", + Description: "Filters access by the AWS service to which this role is attached", + Type: "String", + }, + { + Condition: "iam:AssociatedResourceArn", + Description: "Filters access by the resource that the role will be used on behalf of", + Type: "ARN", + }, + { + Condition: "iam:FIDO-FIPS-140-2-certification", + Description: "Filters access by the MFA device FIPS-140-2 validation certification level at the time of registration of a FIDO security key", + Type: "String", + }, + { + Condition: "iam:FIDO-FIPS-140-3-certification", + Description: "Filters access by the MFA device FIPS-140-3 validation certification level at the time of registration of a FIDO security key", + Type: "String", + }, + { + Condition: "iam:FIDO-certification", + Description: "Filters access by the MFA device FIDO certification level at the time of registration of a FIDO security key", + Type: "String", + }, + { + Condition: "iam:OrganizationsPolicyId", + Description: "Filters access by the ID of an AWS Organizations policy", + Type: "String", + }, + { + Condition: "iam:PassedToService", + Description: "Filters access by the AWS service to which this role is passed", + Type: "String", + }, + { + Condition: "iam:PermissionsBoundary", + Description: "Filters access if the specified policy is set as the permissions boundary on the IAM entity (user or role)", + Type: "ARN", + }, + { + Condition: "iam:PolicyARN", + Description: "Filters access by the ARN of an IAM policy", + Type: "ARN", + }, + { + Condition: "iam:RegisterSecurityKey", + Description: "Filters access by the current state of MFA device enablement", + Type: "String", + }, + { + Condition: "iam:ResourceTag/${TagKey}", + Description: "Filters access by the tags attached to an IAM entity (user or role)", + Type: "String", + }, + }, + Prefix: "iam", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an Amazon OpenSearch Service-managed VPC endpoint", - Privilege: "CreateVpcEndpoint", + Description: "Grants permission to add a new client ID (audience) to the list of registered IDs for the specified IAM OpenID Connect (OIDC) provider resource", + Privilege: "AddClientIDToOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "oidc-provider*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the data source for the OpenSearch Service domain", - Privilege: "DeleteDataSource", + Description: "Grants permission to add an IAM role to the specified instance profile", + Privilege: "AddRoleToInstanceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domain*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "instance-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon OpenSearch Service domain and all of its data", - Privilege: "DeleteDomain", + Description: "Grants permission to add an IAM user to the specified IAM group", + Privilege: "AddUserToGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an OpenSearch Service domain and all of its data. This permission is deprecated. Use DeleteDomain instead", - Privilege: "DeleteElasticsearchDomain", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a managed policy to the specified IAM group", + Privilege: "AttachGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the service-linked role required for OpenSearch Service domains that use VPC access. This permission is deprecated. Use the IAM API to delete service-linked roles", - Privilege: "DeleteElasticsearchServiceRole", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a managed policy to the specified IAM role", + Privilege: "AttachRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to the destination domain owner to delete an existing inbound cross-cluster search connection", - Privilege: "DeleteInboundConnection", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a managed policy to the specified IAM user", + Privilege: "AttachUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the destination domain owner to delete an existing inbound cross-cluster search connection. This permission is deprecated. Use DeleteInboundConnection instead", - Privilege: "DeleteInboundCrossClusterSearchConnection", + Description: "Grants permission to an IAM user to change their own password", + Privilege: "ChangePassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the source domain owner to delete an existing outbound cross-cluster search connection", - Privilege: "DeleteOutboundConnection", + Description: "Grants permission to create access key and secret access key for the specified IAM user", + Privilege: "CreateAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the source domain owner to delete an existing outbound cross-cluster search connection. This permission is deprecated. Use DeleteOutboundConnection instead", - Privilege: "DeleteOutboundCrossClusterSearchConnection", + Description: "Grants permission to create an alias for your AWS account", + Privilege: "CreateAccountAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117110,212 +159020,241 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a package from OpenSearch Service. The package cannot be associated with any domains", - Privilege: "DeletePackage", + Description: "Grants permission to create a new group", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon OpenSearch Service-managed interface VPC endpoint", - Privilege: "DeleteVpcEndpoint", + Description: "Grants permission to create a new instance profile", + Privilege: "CreateInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance-profile*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a description of the domain configuration for the specified OpenSearch Service domain, including the domain ID, service endpoint, and ARN", - Privilege: "DescribeDomain", + AccessLevel: "Write", + Description: "Grants permission to create a password for the specified IAM user", + Privilege: "CreateLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the Auto-Tune configuration of the domain for the specified OpenSearch Service domain, including the Auto-Tune state and maintenance schedules", - Privilege: "DescribeDomainAutoTunes", + AccessLevel: "Write", + Description: "Grants permission to create an IAM resource that describes an identity provider (IdP) that supports OpenID Connect (OIDC)", + Privilege: "CreateOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "oidc-provider*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view detail stage progress of an OpenSearch Service domain", - Privilege: "DescribeDomainChangeProgress", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a description of the configuration options and status of an OpenSearch Service domain", - Privilege: "DescribeDomainConfig", + AccessLevel: "Permissions management", + Description: "Grants permission to create a new managed policy", + Privilege: "CreatePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "policy*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view information about domain and node health, the standby Availability Zone, number of nodes per Availability Zone, and shard count per node", - Privilege: "DescribeDomainHealth", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about nodes configured for the domain and their configurations- the node id, type of node, status of node, Availability Zone, instance type and storage", - Privilege: "DescribeDomainNodes", + AccessLevel: "Permissions management", + Description: "Grants permission to create a new version of the specified managed policy", + Privilege: "CreatePolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a description of the domain configuration for up to five specified OpenSearch Service domains", - Privilege: "DescribeDomains", + AccessLevel: "Write", + Description: "Grants permission to create a new role", + Privilege: "CreateRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "role*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the status of a pre-update validation check on an OpenSearch Service domain", - Privilege: "DescribeDryRunProgress", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "iam:PermissionsBoundary", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a description of the domain configuration for the specified OpenSearch Service domain, including the domain ID, service endpoint, and ARN. This permission is deprecated. Use DescribeDomain instead", - Privilege: "DescribeElasticsearchDomain", + AccessLevel: "Write", + Description: "Grants permission to create an IAM resource that describes an identity provider (IdP) that supports SAML 2.0", + Privilege: "CreateSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "saml-provider*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a description of the configuration and status of an OpenSearch Service domain. This permission is deprecated. Use DescribeDomainConfig instead", - Privilege: "DescribeElasticsearchDomainConfig", + AccessLevel: "Write", + Description: "Grants permission to create an IAM role that allows an AWS service to perform actions on your behalf", + Privilege: "CreateServiceLinkedRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:AWSServiceName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a description of the domain configuration for up to five specified Amazon OpenSearch domains. This permission is deprecated. Use DescribeDomains instead", - Privilege: "DescribeElasticsearchDomains", + AccessLevel: "Write", + Description: "Grants permission to create a new service-specific credential for an IAM user", + Privilege: "CreateServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the instance count, storage, and master node limits for a given OpenSearch version and instance type. This permission is deprecated. Use DescribeInstanceTypeLimits instead", - Privilege: "DescribeElasticsearchInstanceTypeLimits", + AccessLevel: "Write", + Description: "Grants permission to create a new IAM user", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the inbound cross-cluster search connections for a destination domain", - Privilege: "DescribeInboundConnections", + AccessLevel: "Write", + Description: "Grants permission to create a new virtual MFA device", + Privilege: "CreateVirtualMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "mfa*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the inbound cross-cluster search connections for a destination domain. This permission is deprecated. Use DescribeInboundConnections instead", - Privilege: "DescribeInboundCrossClusterSearchConnections", + AccessLevel: "Write", + Description: "Grants permission to deactivate the specified MFA device and remove its association with the IAM user for which it was originally enabled", + Privilege: "DeactivateMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the instance count, storage, and master node limits for a given engine version and instance type", - Privilege: "DescribeInstanceTypeLimits", + AccessLevel: "Write", + Description: "Grants permission to delete the access key pair that is associated with the specified IAM user", + Privilege: "DeleteAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the outbound cross-cluster search connections for a source domain", - Privilege: "DescribeOutboundConnections", + AccessLevel: "Write", + Description: "Grants permission to delete the specified AWS account alias", + Privilege: "DeleteAccountAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117325,9 +159264,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the outbound cross-cluster search connections for a source domain. This permission is deprecated. Use DescribeOutboundConnections instead", - Privilege: "DescribeOutboundCrossClusterSearchConnections", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the password policy for the AWS account", + Privilege: "DeleteAccountPasswordPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117337,9 +159276,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe all packages available to OpenSearch Service domains", - Privilege: "DescribePackages", + AccessLevel: "Write", + Description: "Grants permission to delete an existing CloudFront public key", + Privilege: "DeleteCloudFrontPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117349,285 +159288,341 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch Reserved Instance offerings for Amazon OpenSearch Service. This permission is deprecated. Use DescribeReservedInstanceOfferings instead", - Privilege: "DescribeReservedElasticsearchInstanceOfferings", + AccessLevel: "Write", + Description: "Grants permission to delete the specified IAM group", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch OpenSearch Service Reserved Instances that have already been purchased. This permission is deprecated. Use DescribeReservedInstances instead", - Privilege: "DescribeReservedElasticsearchInstances", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified inline policy from its group", + Privilege: "DeleteGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch Reserved Instance offerings for OpenSearch Service", - Privilege: "DescribeReservedInstanceOfferings", + AccessLevel: "Write", + Description: "Grants permission to delete the specified instance profile", + Privilege: "DeleteInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance-profile*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch OpenSearch Service Reserved Instances that have already been purchased", - Privilege: "DescribeReservedInstances", + AccessLevel: "Write", + Description: "Grants permission to delete the password for the specified IAM user", + Privilege: "DeleteLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe one or more Amazon OpenSearch Service-managed VPC endpoints", - Privilege: "DescribeVpcEndpoints", + AccessLevel: "Write", + Description: "Grants permission to delete an OpenID Connect identity provider (IdP) resource object in IAM", + Privilege: "DeleteOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a package from the specified OpenSearch Service domain", - Privilege: "DissociatePackage", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified managed policy and remove it from any IAM entities (users, groups, or roles) to which it is attached", + Privilege: "DeletePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to send cross-cluster requests to a destination domain", - Privilege: "ESCrossClusterGet", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a version from the specified managed policy", + Privilege: "DeletePolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send HTTP DELETE requests to the OpenSearch APIs", - Privilege: "ESHttpDelete", + Description: "Grants permission to delete the specified role", + Privilege: "DeleteRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to send HTTP GET requests to the OpenSearch APIs", - Privilege: "ESHttpGet", + AccessLevel: "Permissions management", + Description: "Grants permission to remove the permissions boundary from a role", + Privilege: "DeleteRolePermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to send HTTP HEAD requests to the OpenSearch APIs", - Privilege: "ESHttpHead", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified inline policy from the specified role", + Privilege: "DeleteRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send HTTP PATCH requests to the OpenSearch APIs", - Privilege: "ESHttpPatch", + Description: "Grants permission to delete a SAML provider resource in IAM", + Privilege: "DeleteSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "saml-provider*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send HTTP POST requests to the OpenSearch APIs", - Privilege: "ESHttpPost", + Description: "Grants permission to delete the specified SSH public key", + Privilege: "DeleteSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send HTTP PUT requests to the OpenSearch APIs", - Privilege: "ESHttpPut", + Description: "Grants permission to delete the specified server certificate", + Privilege: "DeleteServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "server-certificate*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch a list of compatible OpenSearch and Elasticsearch versions to which an OpenSearch Service domain can be upgraded. This permission is deprecated. Use GetCompatibleVersions instead", - Privilege: "GetCompatibleElasticsearchVersions", + AccessLevel: "Write", + Description: "Grants permission to delete an IAM role that is linked to a specific AWS service, if the service is no longer using it", + Privilege: "DeleteServiceLinkedRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "role*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch list of compatible engine versions to which an OpenSearch Service domain can be upgraded", - Privilege: "GetCompatibleVersions", + AccessLevel: "Write", + Description: "Grants permission to delete the specified service-specific credential for an IAM user", + Privilege: "DeleteServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the data source for the OpenSearch Service domain", - Privilege: "GetDataSource", + AccessLevel: "Write", + Description: "Grants permission to delete a signing certificate that is associated with the specified IAM user", + Privilege: "DeleteSigningCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the status of maintenance action for the node", - Privilege: "GetDomainMaintenanceStatus", + AccessLevel: "Write", + Description: "Grants permission to delete the specified IAM user", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the version history for a package", - Privilege: "GetPackageVersionHistory", + AccessLevel: "Permissions management", + Description: "Grants permission to remove the permissions boundary from the specified IAM user", + Privilege: "DeleteUserPermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the upgrade history of a given OpenSearch Service domain", - Privilege: "GetUpgradeHistory", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified inline policy from an IAM user", + Privilege: "DeleteUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the upgrade status of a given OpenSearch Service domain", - Privilege: "GetUpgradeStatus", + AccessLevel: "Write", + Description: "Grants permission to delete a virtual MFA device", + Privilege: "DeleteVirtualMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "mfa", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "sms-mfa", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of data source for the OpenSearch Service domain", - Privilege: "ListDataSources", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a managed policy from the specified IAM group", + Privilege: "DetachGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of maintenance actions for the OpenSearch Service domain", - Privilege: "ListDomainMaintenances", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a managed policy from the specified role", + Privilege: "DetachRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to display the names of all OpenSearch Service domains that the current user owns", - Privilege: "ListDomainNames", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a managed policy from the specified IAM user", + Privilege: "DetachUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all OpenSearch Service domains that a package is associated with", - Privilege: "ListDomainsForPackage", + AccessLevel: "Write", + Description: "Grants permission to disable the management of member account root user credentials for an organization managed under the current account", + Privilege: "DisableOrganizationsRootCredentialsManagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117637,9 +159632,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all instance types and available features for a given OpenSearch version. This permission is deprecated. Use ListInstanceTypeDetails instead", - Privilege: "ListElasticsearchInstanceTypeDetails", + AccessLevel: "Write", + Description: "Grants permission to disable privileged root actions in member accounts for an organization managed under the current account", + Privilege: "DisableOrganizationsRootSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117649,21 +159644,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all EC2 instance types that are supported for a given OpenSearch version", - Privilege: "ListElasticsearchInstanceTypes", + AccessLevel: "Write", + Description: "Grants permission to enable an MFA device and associate it with the specified IAM user", + Privilege: "EnableMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:RegisterSecurityKey", + "iam:FIDO-FIPS-140-2-certification", + "iam:FIDO-FIPS-140-3-certification", + "iam:FIDO-certification", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all supported OpenSearch versions on Amazon OpenSearch Service. This permission is deprecated. Use ListVersions instead", - Privilege: "ListElasticsearchVersions", + AccessLevel: "Write", + Description: "Grants permission to enable the management of member account root user credentials for an organization managed under the current account", + Privilege: "EnableOrganizationsRootCredentialsManagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117673,9 +159678,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all instance types and available features for a given OpenSearch or Elasticsearch version", - Privilege: "ListInstanceTypeDetails", + AccessLevel: "Write", + Description: "Grants permission to enable privileged root actions in member accounts for an organization managed under the current account", + Privilege: "EnableOrganizationsRootSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117685,57 +159690,86 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all packages associated with the OpenSearch Service domain", - Privilege: "ListPackagesForDomain", + AccessLevel: "Read", + Description: "Grants permission to generate a credential report for the AWS account", + Privilege: "GenerateCredentialReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of configuration changes that are scheduled for a OpenSearch Service domain", - Privilege: "ListScheduledActions", + AccessLevel: "Read", + Description: "Grants permission to generate an access report for an AWS Organizations entity", + Privilege: "GenerateOrganizationsAccessReport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribePolicy", + "organizations:ListChildren", + "organizations:ListParents", + "organizations:ListPoliciesForTarget", + "organizations:ListRoots", + "organizations:ListTargetsForPolicy", + }, + ResourceType: "access-report*", + }, + { + ConditionKeys: []string{ + "iam:OrganizationsPolicyId", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to display all resource tags for an OpenSearch Service domain", - Privilege: "ListTags", + Description: "Grants permission to generate a service last accessed data report for an IAM resource", + Privilege: "GenerateServiceLastAccessedDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all supported OpenSearch and Elasticsearch versions in Amazon OpenSearch Service", - Privilege: "ListVersions", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about when the specified access key was last used", + Privilege: "GetAccessKeyLastUsed", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about each AWS principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint", - Privilege: "ListVpcEndpointAccess", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about all IAM users, groups, roles, and policies in your AWS account, including their relationships to one another", + Privilege: "GetAccountAuthorizationDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117745,9 +159779,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all Amazon OpenSearch Service-managed VPC endpoints in the current AWS account and Region", - Privilege: "ListVpcEndpoints", + AccessLevel: "Read", + Description: "Grants permission to retrieve the email address that is associated with the account", + Privilege: "GetAccountEmailAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117757,9 +159791,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all Amazon OpenSearch Service-managed VPC endpoints associated with a particular domain", - Privilege: "ListVpcEndpointsForDomain", + AccessLevel: "Read", + Description: "Grants permission to retrieve the account name that is associated with the account", + Privilege: "GetAccountName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117769,9 +159803,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to purchase OpenSearch Service Reserved Instances. This permission is deprecated. Use PurchaseReservedInstanceOffering instead", - Privilege: "PurchaseReservedElasticsearchInstanceOffering", + AccessLevel: "Read", + Description: "Grants permission to retrieve the password policy for the AWS account", + Privilege: "GetAccountPasswordPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117781,9 +159815,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to purchase OpenSearch reserved instances", - Privilege: "PurchaseReservedInstanceOffering", + AccessLevel: "List", + Description: "Grants permission to retrieve information about IAM entity usage and IAM quotas in the AWS account", + Privilege: "GetAccountSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117793,9 +159827,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to the destination domain owner to reject an inbound cross-cluster search connection request", - Privilege: "RejectInboundConnection", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified CloudFront public key", + Privilege: "GetCloudFrontPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117805,9 +159839,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to the destination domain owner to reject an inbound cross-cluster search connection request. This permission is deprecated. Use RejectInboundConnection instead", - Privilege: "RejectInboundCrossClusterSearchConnection", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of all of the context keys that are referenced in the specified policy", + Privilege: "GetContextKeysForCustomPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117817,28 +159851,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove resource tags from an OpenSearch Service domain", - Privilege: "RemoveTags", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of all context keys that are referenced in all IAM policies that are attached to the specified IAM identity (user, group, or role)", + Privilege: "GetContextKeysForPrincipalPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "role", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint", - Privilege: "RevokeVpcEndpointAccess", + AccessLevel: "Read", + Description: "Grants permission to retrieve a credential report for the AWS account", + Privilege: "GetCredentialReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117848,81 +159885,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate the maintenance on the node", - Privilege: "StartDomainMaintenance", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of IAM users in the specified IAM group", + Privilege: "GetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a service software update of a domain. This permission is deprecated. Use StartServiceSoftwareUpdate instead", - Privilege: "StartElasticsearchServiceSoftwareUpdate", + AccessLevel: "Read", + Description: "Grants permission to retrieve an inline policy document that is embedded in the specified IAM group", + Privilege: "GetGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a service software update of a domain", - Privilege: "StartServiceSoftwareUpdate", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified instance profile, including the instance profile's path, GUID, ARN, and role", + Privilege: "GetInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "instance-profile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the data source for the OpenSearch Service domain", - Privilege: "UpdateDataSource", + AccessLevel: "List", + Description: "Grants permission to retrieve the user name and password creation date for the specified IAM user", + Privilege: "GetLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the configuration of an OpenSearch Service domain, such as the instance type or number of instances", - Privilege: "UpdateDomainConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an MFA device for the specified user", + Privilege: "GetMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the configuration of an OpenSearch Service domain, such as the instance type or number of instances. This permission is deprecated. Use UpdateDomainConfig instead", - Privilege: "UpdateElasticsearchDomainConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified OpenID Connect (OIDC) provider resource in IAM", + Privilege: "GetOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a package for use with OpenSearch Service domains", - Privilege: "UpdatePackage", + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS Organizations access report", + Privilege: "GetOrganizationsAccessReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -117932,594 +159969,499 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to reschedule a planned OpenSearch Service domain configuration change for a later time", - Privilege: "UpdateScheduledAction", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified managed policy, including the policy's default version and the total number of identities to which the policy is attached", + Privilege: "GetPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an Amazon OpenSearch Service-managed interface VPC endpoint", - Privilege: "UpdateVpcEndpoint", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a version of the specified managed policy, including the policy document", + Privilege: "GetPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate upgrade of an OpenSearch Service domain to a given version", - Privilege: "UpgradeDomain", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified role, including the role's path, GUID, ARN, and the role's trust policy", + Privilege: "GetRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate upgrade of an OpenSearch Service domain to a specified version. This permission is deprecated. Use UpgradeDomain instead", - Privilege: "UpgradeElasticsearchDomain", + AccessLevel: "Read", + Description: "Grants permission to retrieve an inline policy document that is embedded with the specified IAM role", + Privilege: "GetRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "role*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:es:${Region}:${Account}:domain/${DomainName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "domain", - }, - { - Arn: "arn:${Partition}:iam::${Account}:role/aws-service-role/es.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "es_role", - }, - { - Arn: "arn:${Partition}:iam::${Account}:role/aws-service-role/opensearchservice.amazonaws.com/AWSServiceRoleForAmazonOpenSearchService", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "opensearchservice_role", - }, - }, - ServiceName: "Amazon OpenSearch Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the allowed set of values for each of the tags to event bus and rule actions", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource to event bus and rule actions", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tags in the request to event bus and rule actions", - Type: "ArrayOfString", - }, - { - Condition: "events:EventBusArn", - Description: "Filters access by the ARN of the event buses that can be associated with an endpoint to CreateEndpoint and UpdateEndpoint actions", - Type: "ArrayOfARN", - }, - { - Condition: "events:ManagedBy", - Description: "Filters access by AWS services. If a rule is created by an AWS service on your behalf, the value is the principal name of the service that created the rule", - Type: "String", - }, - { - Condition: "events:TargetArn", - Description: "Filters access by the ARN of a target that can be put to a rule to PutTargets actions. TargetARN doesn't include DeadLetterConfigArn", - Type: "ArrayOfARN", - }, - { - Condition: "events:creatorAccount", - Description: "Filters access by the account the rule was created in to rule actions", - Type: "String", - }, - { - Condition: "events:detail-type", - Description: "Filters access by the literal string of the detail-type of the event to PutEvents and PutRule actions", - Type: "String", - }, - { - Condition: "events:detail.eventTypeCode", - Description: "Filters access by the literal string for the detail.eventTypeCode field of the event to PutRule actions", - Type: "String", - }, - { - Condition: "events:detail.service", - Description: "Filters access by the literal string for the detail.service field of the event to PutRule actions", - Type: "String", - }, - { - Condition: "events:detail.userIdentity.principalId", - Description: "Filters access by the literal string for the detail.useridentity.principalid field of the event to PutRule actions", - Type: "String", - }, { - Condition: "events:eventBusInvocation", - Description: "Filters access by whether the event was generated via API or cross-account bus invocation to PutEvents actions", - Type: "String", - }, - { - Condition: "events:source", - Description: "Filters access by the AWS service or AWS partner event source that generated the event to PutEvents and PutRule actions. Matches the literal string of the source field of the event", - Type: "ArrayOfString", - }, - }, - Prefix: "events", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to activate partner event sources", - Privilege: "ActivateEventSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve the SAML provider metadocument that was uploaded when the IAM SAML provider resource was created or updated", + Privilege: "GetSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "saml-provider*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a replay", - Privilege: "CancelReplay", + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified SSH public key, including metadata about the key", + Privilege: "GetSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replay*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new api destination", - Privilege: "CreateApiDestination", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified server certificate stored in IAM", + Privilege: "GetServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-destination*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "server-certificate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new archive", - Privilege: "CreateArchive", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the service last accessed data report", + Privilege: "GetServiceLastAccessedDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "archive*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-bus*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new connection", - Privilege: "CreateConnection", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the entities from the service last accessed data report", + Privilege: "GetServiceLastAccessedDetailsWithEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint", - Privilege: "CreateEndpoint", + AccessLevel: "Read", + Description: "Grants permission to retrieve an IAM service-linked role deletion status", + Privilege: "GetServiceLinkedRoleDeletionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", - }, - { - ConditionKeys: []string{ - "events:EventBusArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "role*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create event buses", - Privilege: "CreateEventBus", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified IAM user, including the user's creation date, path, unique ID, and ARN", + Privilege: "GetUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create partner event sources", - Privilege: "CreatePartnerEventSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve an inline policy document that is embedded in the specified IAM user", + Privilege: "GetUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate event sources", - Privilege: "DeactivateEventSource", + AccessLevel: "List", + Description: "Grants permission to list information about the access key IDs that are associated with the specified IAM user", + Privilege: "ListAccessKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deauthorize a connection, deleting its stored authorization secrets", - Privilege: "DeauthorizeConnection", + AccessLevel: "List", + Description: "Grants permission to list the account alias that is associated with the AWS account", + Privilege: "ListAccountAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an api destination", - Privilege: "DeleteApiDestination", + AccessLevel: "List", + Description: "Grants permission to list all managed policies that are attached to the specified IAM group", + Privilege: "ListAttachedGroupPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-destination*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an archive", - Privilege: "DeleteArchive", + AccessLevel: "List", + Description: "Grants permission to list all managed policies that are attached to the specified IAM role", + Privilege: "ListAttachedRolePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "archive*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a connection", - Privilege: "DeleteConnection", + AccessLevel: "List", + Description: "Grants permission to list all managed policies that are attached to the specified IAM user", + Privilege: "ListAttachedUserPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an endpoint", - Privilege: "DeleteEndpoint", + AccessLevel: "List", + Description: "Grants permission to list all current CloudFront public keys for the account", + Privilege: "ListCloudFrontPublicKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete event buses", - Privilege: "DeleteEventBus", + AccessLevel: "List", + Description: "Grants permission to list all IAM identities to which the specified managed policy is attached", + Privilege: "ListEntitiesForPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete partner event sources", - Privilege: "DeletePartnerEventSource", + AccessLevel: "List", + Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM group", + Privilege: "ListGroupPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete rules", - Privilege: "DeleteRule", + AccessLevel: "List", + Description: "Grants permission to list the IAM groups that have the specified path prefix", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the IAM groups that the specified IAM user belongs to", + Privilege: "ListGroupsForUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", - }, - { - ConditionKeys: []string{ - "events:creatorAccount", - "events:ManagedBy", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about an api destination", - Privilege: "DescribeApiDestination", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified instance profile", + Privilege: "ListInstanceProfileTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-destination*", + ResourceType: "instance-profile*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the instance profiles that have the specified path prefix", + Privilege: "ListInstanceProfiles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about an archive", - Privilege: "DescribeArchive", + AccessLevel: "List", + Description: "Grants permission to list the instance profiles that have the specified associated IAM role", + Privilege: "ListInstanceProfilesForRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "archive*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about a conection", - Privilege: "DescribeConnection", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified virtual mfa device", + Privilege: "ListMFADeviceTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "mfa*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about an endpoint", - Privilege: "DescribeEndpoint", + AccessLevel: "List", + Description: "Grants permission to list the MFA devices for an IAM user", + Privilege: "ListMFADevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "user", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about event buses", - Privilege: "DescribeEventBus", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified OpenID Connect provider", + Privilege: "ListOpenIDConnectProviderTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about event sources", - Privilege: "DescribeEventSource", + AccessLevel: "List", + Description: "Grants permission to list information about the IAM OpenID Connect (OIDC) provider resource objects that are defined in the AWS account", + Privilege: "ListOpenIDConnectProviders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about partner event sources", - Privilege: "DescribePartnerEventSource", + AccessLevel: "List", + Description: "Grants permission to list the centralized root access features enabled for your organization", + Privilege: "ListOrganizationsFeatures", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of a replay", - Privilege: "DescribeReplay", + AccessLevel: "List", + Description: "Grants permission to list all managed policies", + Privilege: "ListPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replay*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about rules", - Privilege: "DescribeRule", + AccessLevel: "List", + Description: "Grants permission to list information about the policies that grant an entity access to a specific service", + Privilege: "ListPoliciesGrantingServiceAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "group*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "role*", }, { - ConditionKeys: []string{ - "events:creatorAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable rules", - Privilege: "DisableRule", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified managed policy", + Privilege: "ListPolicyTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "policy*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about the versions of the specified managed policy, including the version that is currently set as the policy's default version", + Privilege: "ListPolicyVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "policy*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM role", + Privilege: "ListRolePolicies", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "events:creatorAccount", - "events:ManagedBy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "role*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable rules", - Privilege: "EnableRule", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified IAM role", + Privilege: "ListRoleTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "role*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the IAM roles that have the specified path prefix", + Privilege: "ListRoles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified SAML provider", + Privilege: "ListSAMLProviderTags", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "events:creatorAccount", - "events:ManagedBy", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "saml-provider*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to invoke an api destination", - Privilege: "InvokeApiDestination", + AccessLevel: "List", + Description: "Grants permission to list the SAML provider resources in IAM", + Privilege: "ListSAMLProviders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-destination*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of api destinations", - Privilege: "ListApiDestinations", + Description: "Grants permission to list information about the SSH public keys that are associated with the specified IAM user", + Privilege: "ListSSHPublicKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of archives", - Privilege: "ListArchives", + Description: "Grants permission to list the status of all active STS regional endpoints", + Privilege: "ListSTSRegionalEndpointsStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -118530,20 +160472,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of connections", - Privilege: "ListConnections", + Description: "Grants permission to list the tags that are attached to the specified server certificate", + Privilege: "ListServerCertificateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "server-certificate*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of endpoints", - Privilege: "ListEndpoints", + Description: "Grants permission to list the server certificates that have the specified path prefix", + Privilege: "ListServerCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -118554,56 +160496,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of the event buses in your account", - Privilege: "ListEventBuses", + Description: "Grants permission to list the service-specific credentials that are associated with the specified IAM user", + Privilege: "ListServiceSpecificCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to to retrieve a list of event sources shared with this account", - Privilege: "ListEventSources", + Description: "Grants permission to list information about the signing certificates that are associated with the specified IAM user", + Privilege: "ListSigningCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of AWS account IDs associated with an event source", - Privilege: "ListPartnerEventSourceAccounts", + Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM user", + Privilege: "ListUserPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-source*", + ResourceType: "user*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list partner event sources", - Privilege: "ListPartnerEventSources", + Description: "Grants permission to list the tags that are attached to the specified IAM user", + Privilege: "ListUserTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of replays", - Privilege: "ListReplays", + Description: "Grants permission to list the IAM users that have the specified path prefix", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -118614,8 +160556,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of the names of the rules associated with a target", - Privilege: "ListRuleNamesByTarget", + Description: "Grants permission to list virtual MFA devices by assignment status", + Privilege: "ListVirtualMFADevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -118625,40 +160567,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of the Amazon EventBridge rules in the account", - Privilege: "ListRules", + AccessLevel: "Write", + Description: "Grants permission to pass a role to a service", + Privilege: "PassRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:AssociatedResourceArn", + "iam:PassedToService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of tags associated with an Amazon EventBridge resource", - Privilege: "ListTagsForResource", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM group", + Privilege: "PutGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to set a managed policy as a permissions boundary for a role", + Privilege: "PutRolePermissionsBoundary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM role", + Privilege: "PutRolePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "role*", }, { ConditionKeys: []string{ - "events:creatorAccount", + "iam:PermissionsBoundary", }, DependentActions: []string{}, ResourceType: "", @@ -118666,23 +160637,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of targets defined for a rule", - Privilege: "ListTargetsByRule", + AccessLevel: "Permissions management", + Description: "Grants permission to set a managed policy as a permissions boundary for an IAM user", + Privilege: "PutUserPermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "user*", }, { ConditionKeys: []string{ - "events:creatorAccount", + "iam:PermissionsBoundary", }, DependentActions: []string{}, ResourceType: "", @@ -118690,20 +160656,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to send custom events to Amazon EventBridge", - Privilege: "PutEvents", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM user", + Privilege: "PutUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus*", + ResourceType: "user*", }, { ConditionKeys: []string{ - "events:detail-type", - "events:source", - "events:eventBusInvocation", + "iam:PermissionsBoundary", }, DependentActions: []string{}, ResourceType: "", @@ -118712,182 +160676,148 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to sends custom events to Amazon EventBridge", - Privilege: "PutPartnerEvents", + Description: "Grants permission to remove the client ID (audience) from the list of client IDs in the specified IAM OpenID Connect (OIDC) provider resource", + Privilege: "RemoveClientIDFromOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to use the PutPermission action to grants permission to another AWS account to put events to your default event bus", - Privilege: "PutPermission", + AccessLevel: "Write", + Description: "Grants permission to remove an IAM role from the specified EC2 instance profile", + Privilege: "RemoveRoleFromInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or updates rules", - Privilege: "PutRule", + Description: "Grants permission to remove an IAM user from the specified group", + Privilege: "RemoveUserFromGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", - }, - { - ConditionKeys: []string{ - "events:detail.userIdentity.principalId", - "events:detail-type", - "events:source", - "events:detail.service", - "events:detail.eventTypeCode", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "events:creatorAccount", - "events:ManagedBy", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add targets to a rule", - Privilege: "PutTargets", + Description: "Grants permission to reset the password for an existing service-specific credential for an IAM user", + Privilege: "ResetServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "user*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to synchronize the specified MFA device with its IAM entity (user or role)", + Privilege: "ResyncMFADevice", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", - }, - { - ConditionKeys: []string{ - "events:TargetArn", - "events:creatorAccount", - "events:ManagedBy", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to revoke the permission of another AWS account to put events to your default event bus", - Privilege: "RemovePermission", + Description: "Grants permission to set the version of the specified policy as the policy's default version", + Privilege: "SetDefaultPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to removes targets from a rule", - Privilege: "RemoveTargets", + Description: "Grants permission to activate or deactivate an STS regional endpoint", + Privilege: "SetSTSRegionalEndpointStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the STS global endpoint token version", + Privilege: "SetSecurityTokenServicePreferences", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", - }, - { - ConditionKeys: []string{ - "events:creatorAccount", - "events:ManagedBy", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to retrieve credentials from a connection", - Privilege: "RetrieveConnectionCredentials", + AccessLevel: "Read", + Description: "Grants permission to simulate whether an identity-based policy or resource-based policy provides permissions for specific API operations and resources", + Privilege: "SimulateCustomPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a replay of an archive", - Privilege: "StartReplay", + AccessLevel: "Read", + Description: "Grants permission to simulate whether an identity-based policy that is attached to a specified IAM entity (user or role) provides permissions for specific API operations and resources", + Privilege: "SimulatePrincipalPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "archive*", + ResourceType: "group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus*", + ResourceType: "role", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replay*", + ResourceType: "user", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add a tag to an Amazon EventBridge resource", - Privilege: "TagResource", + Description: "Grants permission to add tags to an instance profile", + Privilege: "TagInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "instance-profile*", }, { ConditionKeys: []string{ "aws:TagKeys", "aws:RequestTag/${TagKey}", - "events:creatorAccount", }, DependentActions: []string{}, ResourceType: "", @@ -118895,41 +160825,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to test whether an event pattern matches the provided event", - Privilege: "TestEventPattern", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a virtual mfa device", + Privilege: "TagMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "mfa*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from an Amazon EventBridge resource", - Privilege: "UntagResource", + Description: "Grants permission to add tags to an OpenID Connect provider", + Privilege: "TagOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule-on-custom-event-bus", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule-on-default-event-bus", + ResourceType: "oidc-provider*", }, { ConditionKeys: []string{ "aws:TagKeys", - "events:creatorAccount", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -118937,54 +160865,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an api destination", - Privilege: "UpdateApiDestination", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a managed policy", + Privilege: "TagPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-destination*", + ResourceType: "policy*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an archive", - Privilege: "UpdateArchive", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "archive*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a connection", - Privilege: "UpdateConnection", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an IAM role", + Privilege: "TagRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an endpoint", - Privilege: "UpdateEndpoint", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a SAML Provider", + Privilege: "TagSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "saml-provider*", }, { ConditionKeys: []string{ - "events:EventBusArn", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -118992,122 +160925,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update event buses", - Privilege: "UpdateEventBus", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a server certificate", + Privilege: "TagServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-bus*", + ResourceType: "server-certificate*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:events:${Region}::event-source/${EventSourceName}", - ConditionKeys: []string{}, - Resource: "event-source", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:event-bus/${EventBusName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "event-bus", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:rule/${RuleName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rule-on-default-event-bus", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:rule/${EventBusName}/${RuleName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rule-on-custom-event-bus", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:archive/${ArchiveName}", - ConditionKeys: []string{}, - Resource: "archive", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:replay/${ReplayName}", - ConditionKeys: []string{}, - Resource: "replay", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:connection/${ConnectionName}", - ConditionKeys: []string{}, - Resource: "connection", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:api-destination/${ApiDestinationName}", - ConditionKeys: []string{}, - Resource: "api-destination", - }, - { - Arn: "arn:${Partition}:events:${Region}:${Account}:endpoint/${EndpointName}", - ConditionKeys: []string{}, - Resource: "endpoint", - }, - }, - ServiceName: "Amazon EventBridge", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed the request on behalf of the IAM principal", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource that make the request on behalf of the IAM principal", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request on behalf of the IAM principal", - Type: "ArrayOfString", - }, - }, - Prefix: "evidently", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to send a batched evaluate feature request", - Privilege: "BatchEvaluateFeature", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an IAM user", + Privilege: "TagUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Feature*", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an experiment", - Privilege: "CreateExperiment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -119115,13 +160965,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a feature", - Privilege: "CreateFeature", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the instance profile", + Privilege: "UntagInstanceProfile", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance-profile*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -119130,13 +160984,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a launch", - Privilege: "CreateLaunch", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the virtual mfa device", + Privilege: "UntagMFADevice", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mfa*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -119145,31 +161003,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a project", - Privilege: "CreateProject", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the OpenID Connect provider", + Privilege: "UntagOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "oidc-provider*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a segment", - Privilege: "CreateSegment", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the managed policy", + Privilege: "UntagPolicy", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -119178,153 +161041,145 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an experiment", - Privilege: "DeleteExperiment", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the role", + Privilege: "UntagRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment*", + ResourceType: "role*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a feature", - Privilege: "DeleteFeature", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Feature*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a launch", - Privilege: "DeleteLaunch", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the SAML Provider", + Privilege: "UntagSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Launch*", + ResourceType: "saml-provider*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a segment", - Privilege: "DeleteSegment", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the server certificate", + Privilege: "UntagServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Segment*", + ResourceType: "server-certificate*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send an evaluate feature request", - Privilege: "EvaluateFeature", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Feature*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get experiment details", - Privilege: "GetExperiment", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the user", + Privilege: "UntagUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get experiment result", - Privilege: "GetExperimentResults", + AccessLevel: "Write", + Description: "Grants permission to update the status of the specified access key as Active or Inactive", + Privilege: "UpdateAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get feature details", - Privilege: "GetFeature", + AccessLevel: "Write", + Description: "Grants permission to update the email address that is associated with the account", + Privilege: "UpdateAccountEmailAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Feature*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get launch details", - Privilege: "GetLaunch", + AccessLevel: "Write", + Description: "Grants permission to update the account name that is associated with the account", + Privilege: "UpdateAccountName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Launch*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get project details", - Privilege: "GetProject", + AccessLevel: "Write", + Description: "Grants permission to update the password policy settings for the AWS account", + Privilege: "UpdateAccountPasswordPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get segment details", - Privilege: "GetSegment", + AccessLevel: "Permissions management", + Description: "Grants permission to update the policy that grants an IAM entity permission to assume a role", + Privilege: "UpdateAssumeRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Segment*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list experiments", - Privilege: "ListExperiments", + AccessLevel: "Write", + Description: "Grants permission to update an existing CloudFront public key", + Privilege: "UpdateCloudFrontPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -119334,222 +161189,175 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list features", - Privilege: "ListFeatures", + AccessLevel: "Write", + Description: "Grants permission to update the name or path of the specified IAM group", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list launches", - Privilege: "ListLaunches", + AccessLevel: "Write", + Description: "Grants permission to change the password for the specified IAM user", + Privilege: "UpdateLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list projects", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to update the entire list of server certificate thumbprints that are associated with an OpenID Connect (OIDC) provider resource", + Privilege: "UpdateOpenIDConnectProviderThumbprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list resources referencing a segment", - Privilege: "ListSegmentReferences", + AccessLevel: "Write", + Description: "Grants permission to update the description or maximum session duration setting of a role", + Privilege: "UpdateRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list segments", - Privilege: "ListSegments", + AccessLevel: "Write", + Description: "Grants permission to update only the description of a role", + Privilege: "UpdateRoleDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for resources", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update the metadata document for an existing SAML provider resource", + Privilege: "UpdateSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "saml-provider*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send performance events", - Privilege: "PutProjectEvents", + Description: "Grants permission to update the status of an IAM user's SSH public key to active or inactive", + Privilege: "UpdateSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Project*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an experiment", - Privilege: "StartExperiment", + Description: "Grants permission to update the name or the path of the specified server certificate stored in IAM", + Privilege: "UpdateServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment*", + ResourceType: "server-certificate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a launch", - Privilege: "StartLaunch", + Description: "Grants permission to update the status of a service-specific credential to active or inactive for an IAM user", + Privilege: "UpdateServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Launch*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an experiment", - Privilege: "StopExperiment", + Description: "Grants permission to update the status of the specified user signing certificate to active or disabled", + Privilege: "UpdateSigningCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a launch", - Privilege: "StopLaunch", + Description: "Grants permission to update the name or the path of the specified IAM user", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Launch*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag resources", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to upload a CloudFront public key", + Privilege: "UploadCloudFrontPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Feature", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Launch", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Segment", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to test a segment pattern", - Privilege: "TestSegmentPattern", + AccessLevel: "Write", + Description: "Grants permission to upload an SSH public key and associate it with the specified IAM user", + Privilege: "UploadSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag resources", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to upload a server certificate entity for the AWS account", + Privilege: "UploadServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Feature", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Launch", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Segment", + ResourceType: "server-certificate*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -119558,204 +161366,287 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update experiment", - Privilege: "UpdateExperiment", + Description: "Grants permission to upload an X.509 signing certificate and associate it with the specified IAM user", + Privilege: "UploadSigningCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Experiment*", + ResourceType: "user*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update feature", - Privilege: "UpdateFeature", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Feature*", - }, - }, + Arn: "arn:${Partition}:iam::${Account}:access-report/${EntityPath}", + ConditionKeys: []string{}, + Resource: "access-report", }, { - AccessLevel: "Write", - Description: "Grants permission to update a launch", - Privilege: "UpdateLaunch", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Launch*", - }, + Arn: "arn:${Partition}:iam::${Account}:assumed-role/${RoleName}/${RoleSessionName}", + ConditionKeys: []string{}, + Resource: "assumed-role", + }, + { + Arn: "arn:${Partition}:iam::${Account}:federated-user/${UserName}", + ConditionKeys: []string{}, + Resource: "federated-user", + }, + { + Arn: "arn:${Partition}:iam::${Account}:group/${GroupNameWithPath}", + ConditionKeys: []string{}, + Resource: "group", + }, + { + Arn: "arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileNameWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "instance-profile", }, { - AccessLevel: "Write", - Description: "Grants permission to update project", - Privilege: "UpdateProject", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", - }, - ResourceType: "Project*", - }, + Arn: "arn:${Partition}:iam::${Account}:mfa/${MfaTokenIdWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "mfa", }, { - AccessLevel: "Write", - Description: "Grants permission to update project data delivery", - Privilege: "UpdateProjectDataDelivery", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Project*", - }, + Arn: "arn:${Partition}:iam::${Account}:oidc-provider/${OidcProviderName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "oidc-provider", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}", + Arn: "arn:${Partition}:iam::${Account}:policy/${PolicyNameWithPath}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Project", + Resource: "policy", }, { - Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}/feature/${FeatureName}", + Arn: "arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "iam:ResourceTag/${TagKey}", }, - Resource: "Feature", + Resource: "role", }, { - Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}/experiment/${ExperimentName}", + Arn: "arn:${Partition}:iam::${Account}:saml-provider/${SamlProviderName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Experiment", + Resource: "saml-provider", }, { - Arn: "arn:${Partition}:evidently:${Region}:${Account}:project/${ProjectName}/launch/${LaunchName}", + Arn: "arn:${Partition}:iam::${Account}:server-certificate/${CertificateNameWithPath}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Launch", + Resource: "server-certificate", }, { - Arn: "arn:${Partition}:evidently:${Region}:${Account}:segment/${SegmentName}", + Arn: "arn:${Partition}:iam::${Account}:sms-mfa/${MfaTokenIdWithPath}", + ConditionKeys: []string{}, + Resource: "sms-mfa", + }, + { + Arn: "arn:${Partition}:iam::${Account}:user/${UserNameWithPath}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "iam:ResourceTag/${TagKey}", }, - Resource: "Segment", + Resource: "user", }, }, - ServiceName: "Amazon CloudWatch Evidently", + ServiceName: "AWS Identity and Access Management (IAM)", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "execute-api", + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "iam:AWSServiceName", + Description: "Filters access by the AWS service to which this role is attached", + Type: "String", + }, + { + Condition: "iam:AssociatedResourceArn", + Description: "Filters by the resource that the role will be used on behalf of", + Type: "ARN", + }, + { + Condition: "iam:OrganizationsPolicyId", + Description: "Filters access by the ID of an AWS Organizations policy", + Type: "String", + }, + { + Condition: "iam:PassedToService", + Description: "Filters access by the AWS service to which this role is passed", + Type: "String", + }, + { + Condition: "iam:PermissionsBoundary", + Description: "Filters access if the specified policy is set as the permissions boundary on the IAM entity (user or role)", + Type: "String", + }, + { + Condition: "iam:PolicyARN", + Description: "Filters access by the ARN of an IAM policy", + Type: "ARN", + }, + { + Condition: "iam:ResourceTag/${TagKey}", + Description: "Filters access by the tags attached to an IAM entity (user or role)", + Type: "String", + }, + }, + Prefix: "iam", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Used to invalidate API cache upon a client request", - Privilege: "InvalidateCache", + Description: "Grants permission to add a new client ID (audience) to the list of registered IDs for the specified IAM OpenID Connect (OIDC) provider resource", + Privilege: "AddClientIDToOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execute-api-general*", + ResourceType: "oidc-provider*", }, }, }, { AccessLevel: "Write", - Description: "Used to invoke an API upon a client request", - Privilege: "Invoke", + Description: "Grants permission to add an IAM role to the specified instance profile", + Privilege: "AddRoleToInstanceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "execute-api-general*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "instance-profile*", }, }, }, { AccessLevel: "Write", - Description: "ManageConnections controls access to the @connections API", - Privilege: "ManageConnections", + Description: "Grants permission to add an IAM user to the specified IAM group", + Privilege: "AddUserToGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execute-api-general*", + ResourceType: "group*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:execute-api:${Region}:${Account}:${ApiId}/${Stage}/${Method}/${ApiSpecificResourcePath}", - ConditionKeys: []string{}, - Resource: "execute-api-general", - }, - }, - ServiceName: "Amazon API Gateway", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a managed policy to the specified IAM group", + Privilege: "AttachGroupPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "group*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a managed policy to the specified IAM role", + Privilege: "AttachRolePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a managed policy to the specified IAM user", + Privilege: "AttachUserPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - Prefix: "finspace", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to connect to a kdb cluster", - Privilege: "ConnectKxCluster", + Description: "Grants permission for an IAM user to to change their own password", + Privilege: "ChangePassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a FinSpace environment", - Privilege: "CreateEnvironment", + Description: "Grants permission to create access key and secret access key for the specified IAM user", + Privilege: "CreateAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "user*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an alias for your AWS account", + Privilege: "CreateAccountAlias", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -119763,28 +161654,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a changeset for a kdb database", - Privilege: "CreateKxChangeset", + Description: "Grants permission to create a new group", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a cluster in a managed kdb environment", - Privilege: "CreateKxCluster", + Description: "Grants permission to create a new instance profile", + Privilege: "CreateInstanceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeSubnets", - "finspace:MountKxDatabase", - }, - ResourceType: "kxCluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance-profile*", }, { ConditionKeys: []string{ @@ -119798,13 +161686,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a kdb database in a managed kdb environment", - Privilege: "CreateKxDatabase", + Description: "Grants permission to create a password for the specified IAM user", + Privilege: "CreateLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "user*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an IAM resource that describes an identity provider (IdP) that supports OpenID Connect (OIDC)", + Privilege: "CreateOpenIDConnectProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "oidc-provider*", }, { ConditionKeys: []string{ @@ -119817,14 +161717,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataview in a managed kdb environment", - Privilege: "CreateKxDataview", + AccessLevel: "Permissions management", + Description: "Grants permission to create a new managed policy", + Privilege: "CreatePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDataview*", + ResourceType: "policy*", }, { ConditionKeys: []string{ @@ -119836,13 +161736,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to create a new version of the specified managed policy", + Privilege: "CreatePolicyVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, + }, + }, { AccessLevel: "Write", - Description: "Grants permission to create a managed kdb environment", - Privilege: "CreateKxEnvironment", + Description: "Grants permission to create a new role", + Privilege: "CreateRole", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", + }, { ConditionKeys: []string{ + "iam:PermissionsBoundary", "aws:TagKeys", "aws:RequestTag/${TagKey}", }, @@ -119853,13 +161771,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a scaling group in a managed kdb environment", - Privilege: "CreateKxScalingGroup", + Description: "Grants permission to create an IAM resource that describes an identity provider (IdP) that supports SAML 2.0", + Privilege: "CreateSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxScalingGroup*", + ResourceType: "saml-provider*", }, { ConditionKeys: []string{ @@ -119873,18 +161791,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a user in a managed kdb environment", - Privilege: "CreateKxUser", + Description: "Grants permission to create an IAM role that allows an AWS service to perform actions on your behalf", + Privilege: "CreateServiceLinkedRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "role*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "iam:AWSServiceName", }, DependentActions: []string{}, ResourceType: "", @@ -119893,16 +161810,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a volume in a managed kdb environment", - Privilege: "CreateKxVolume", + Description: "Grants permission to create a new service-specific credential for an IAM user", + Privilege: "CreateServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume*", + ResourceType: "user*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new IAM user", + Privilege: "CreateUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", }, { ConditionKeys: []string{ + "iam:PermissionsBoundary", "aws:TagKeys", "aws:RequestTag/${TagKey}", }, @@ -119913,18 +161843,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a FinSpace user", - Privilege: "CreateUser", + Description: "Grants permission to create a new virtual MFA device", + Privilege: "CreateVirtualMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "mfa*", }, { ConditionKeys: []string{ @@ -119938,256 +161863,251 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a FinSpace environment", - Privilege: "DeleteEnvironment", + Description: "Grants permission to deactivate the specified MFA device and remove its association with the IAM user for which it was originally enabled", + Privilege: "DeactivateMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a kdb cluster", - Privilege: "DeleteKxCluster", + Description: "Grants permission to delete the access key pair that is associated with the specified IAM user", + Privilege: "DeleteAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a node from a kdb cluster", - Privilege: "DeleteKxClusterNode", + Description: "Grants permission to delete the specified AWS account alias", + Privilege: "DeleteAccountAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a kdb database", - Privilege: "DeleteKxDatabase", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the password policy for the AWS account", + Privilege: "DeleteAccountPasswordPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a dataview in a managed kdb environment", - Privilege: "DeleteKxDataview", + Description: "Grants permission to delete the specified IAM group", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDataview*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a managed kdb environment", - Privilege: "DeleteKxEnvironment", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified inline policy from its group", + Privilege: "DeleteGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a scaling group in a managed kdb environment", - Privilege: "DeleteKxScalingGroup", + Description: "Grants permission to delete the specified instance profile", + Privilege: "DeleteInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxScalingGroup*", + ResourceType: "instance-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a kdb user", - Privilege: "DeleteKxUser", + Description: "Grants permission to delete the password for the specified IAM user", + Privilege: "DeleteLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxUser*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a volume in a managed kdb environment", - Privilege: "DeleteKxVolume", + Description: "Grants permission to delete an OpenID Connect identity provider (IdP) resource object in IAM", + Privilege: "DeleteOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume*", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a FinSpace environment", - Privilege: "GetEnvironment", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified managed policy and remove it from any IAM entities (users, groups, or roles) to which it is attached", + Privilege: "DeletePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a changeset for a kdb database", - Privilege: "GetKxChangeset", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a version from the specified managed policy", + Privilege: "DeletePolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a cluster in a managed kdb environment", - Privilege: "GetKxCluster", + AccessLevel: "Write", + Description: "Grants permission to delete the specified role", + Privilege: "DeleteRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a connection string for kdb clusters", - Privilege: "GetKxConnectionString", + AccessLevel: "Permissions management", + Description: "Grants permission to remove the permissions boundary from a role", + Privilege: "DeleteRolePermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "finspace:ConnectKxCluster", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", }, - ResourceType: "kxCluster*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a kdb database", - Privilege: "GetKxDatabase", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified inline policy from the specified role", + Privilege: "DeleteRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "role*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a databiew in a managed kdb environment", - Privilege: "GetKxDataview", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, DependentActions: []string{}, - ResourceType: "kxDataview*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a managed kdb environment", - Privilege: "GetKxEnvironment", + AccessLevel: "Write", + Description: "Grants permission to delete a SAML provider resource in IAM", + Privilege: "DeleteSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "saml-provider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a scaling group in a managed kdb environment", - Privilege: "GetKxScalingGroup", + AccessLevel: "Write", + Description: "Grants permission to delete the specified SSH public key", + Privilege: "DeleteSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxScalingGroup*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a kdb user", - Privilege: "GetKxUser", + AccessLevel: "Write", + Description: "Grants permission to delete the specified server certificate", + Privilege: "DeleteServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxUser*", + ResourceType: "server-certificate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a volume in a managed kdb environment", - Privilege: "GetKxVolume", + AccessLevel: "Write", + Description: "Grants permission to delete an IAM role that is linked to a specific AWS service, if the service is no longer using it", + Privilege: "DeleteServiceLinkedRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to request status of the loading of sample data bundle", - Privilege: "GetLoadSampleDataSetGroupIntoEnvironmentStatus", + AccessLevel: "Write", + Description: "Grants permission to delete the specified service-specific credential for an IAM user", + Privilege: "DeleteServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a FinSpace user", - Privilege: "GetUser", + AccessLevel: "Write", + Description: "Grants permission to delete a signing certificate that is associated with the specified IAM user", + Privilege: "DeleteSigningCertificate", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -120196,182 +162116,213 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list FinSpace environments in the AWS account", - Privilege: "ListEnvironments", + AccessLevel: "Write", + Description: "Grants permission to delete the specified IAM user", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list changesets for a kdb database", - Privilege: "ListKxChangesets", + AccessLevel: "Permissions management", + Description: "Grants permission to remove the permissions boundary from the specified IAM user", + Privilege: "DeleteUserPermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list cluster nodes in a managed kdb environment", - Privilege: "ListKxClusterNodes", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified inline policy from an IAM user", + Privilege: "DeleteUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list clusters in a managed kdb environment", - Privilege: "ListKxClusters", + AccessLevel: "Write", + Description: "Grants permission to delete a virtual MFA device", + Privilege: "DeleteVirtualMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "mfa", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list kdb databases in a managed kdb environment", - Privilege: "ListKxDatabases", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "sms-mfa", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list dataviews in a database", - Privilege: "ListKxDataviews", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a managed policy from the specified IAM group", + Privilege: "DetachGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "group*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list managed kdb environments", - Privilege: "ListKxEnvironments", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a managed policy from the specified role", + Privilege: "DetachRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list scaling groups in a managed kdb environment", - Privilege: "ListKxScalingGroups", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a managed policy from the specified IAM user", + Privilege: "DetachUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "iam:PolicyARN", + "iam:PermissionsBoundary", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list users in a managed kdb environment", - Privilege: "ListKxUsers", + AccessLevel: "Write", + Description: "Grants permission to enable an MFA device and associate it with the specified IAM user", + Privilege: "EnableMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list volumes in a managed kdb environment", - Privilege: "ListKxVolumes", + AccessLevel: "Read", + Description: "Grants permission to generate a credential report for the AWS account", + Privilege: "GenerateCredentialReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to generate an access report for an AWS Organizations entity", + Privilege: "GenerateOrganizationsAccessReport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "kxCluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "kxDatabase*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribePolicy", + "organizations:ListChildren", + "organizations:ListParents", + "organizations:ListPoliciesForTarget", + "organizations:ListRoots", + "organizations:ListTargetsForPolicy", + }, + ResourceType: "access-report*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "iam:OrganizationsPolicyId", + }, DependentActions: []string{}, - ResourceType: "kxDataview*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to generate a service last accessed data report for an IAM resource", + Privilege: "GenerateServiceLastAccessedDetails", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "group*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxScalingGroup*", + ResourceType: "policy*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxUser*", + ResourceType: "role*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list FinSpace users in an environment", - Privilege: "ListUsers", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about when the specified access key was last used", + Privilege: "GetAccessKeyLastUsed", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -120380,273 +162331,356 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to load sample data bundle into your FinSpace environment", - Privilege: "LoadSampleDataSetGroupIntoEnvironment", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about all IAM users, groups, roles, and policies in your AWS account, including their relationships to one another", + Privilege: "GetAccountAuthorizationDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to mount a database to a kdb cluster", - Privilege: "MountKxDatabase", + AccessLevel: "Read", + Description: "Grants permission to retrieve the password policy for the AWS account", + Privilege: "GetAccountPasswordPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reset the password for a FinSpace user", - Privilege: "ResetUserPassword", + AccessLevel: "List", + Description: "Grants permission to retrieve information about IAM entity usage and IAM quotas in the AWS account", + Privilege: "GetAccountSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of all of the context keys that are referenced in the specified policy", + Privilege: "GetContextKeysForCustomPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of all context keys that are referenced in all IAM policies that are attached to the specified IAM identity (user, group, or role)", + Privilege: "GetContextKeysForPrincipalPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster", + ResourceType: "role", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase", + ResourceType: "user", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a credential report for the AWS account", + Privilege: "GetCredentialReport", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDataview", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of IAM users in the specified IAM group", + Privilege: "GetGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an inline policy document that is embedded in the specified IAM group", + Privilege: "GetGroupPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxScalingGroup", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified instance profile, including the instance profile's path, GUID, ARN, and role", + Privilege: "GetInstanceProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxUser", + ResourceType: "instance-profile*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the user name and password creation date for the specified IAM user", + Privilege: "GetLoginProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified OpenID Connect (OIDC) provider resource in IAM", + Privilege: "GetOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment", + ResourceType: "oidc-provider*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an AWS Organizations access report", + Privilege: "GetOrganizationsAccessReport", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified managed policy, including the policy's default version and the total number of identities to which the policy is attached", + Privilege: "GetPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase", + ResourceType: "policy*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a version of the specified managed policy, including the policy document", + Privilege: "GetPolicyVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDataview", + ResourceType: "policy*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified role, including the role's path, GUID, ARN, and the role's trust policy", + Privilege: "GetRole", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment", + ResourceType: "role*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an inline policy document that is embedded with the specified IAM role", + Privilege: "GetRolePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxScalingGroup", + ResourceType: "role*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the SAML provider metadocument that was uploaded when the IAM SAML provider resource was created or updated", + Privilege: "GetSAMLProvider", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxUser", + ResourceType: "saml-provider*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified SSH public key, including metadata about the key", + Privilege: "GetSSHPublicKey", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a FinSpace environment", - Privilege: "UpdateEnvironment", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified server certificate stored in IAM", + Privilege: "GetServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "server-certificate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update code configuration for a cluster in a managed kdb environment", - Privilege: "UpdateKxClusterCodeConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the service last accessed data report", + Privilege: "GetServiceLastAccessedDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update databases for a cluster in a managed kdb environment", - Privilege: "UpdateKxClusterDatabases", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the entities from the service last accessed data report", + Privilege: "GetServiceLastAccessedDetailsWithEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxCluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a kdb database", - Privilege: "UpdateKxDatabase", + AccessLevel: "Read", + Description: "Grants permission to retrieve an IAM service-linked role deletion status", + Privilege: "GetServiceLinkedRoleDeletionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDatabase*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a dataview in a managed kdb environment", - Privilege: "UpdateKxDataview", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified IAM user, including the user's creation date, path, unique ID, and ARN", + Privilege: "GetUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxDataview*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a managed kdb environment", - Privilege: "UpdateKxEnvironment", + AccessLevel: "Read", + Description: "Grants permission to retrieve an inline policy document that is embedded in the specified IAM user", + Privilege: "GetUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the network for a managed kdb environment", - Privilege: "UpdateKxEnvironmentNetwork", + AccessLevel: "List", + Description: "Grants permission to list information about the access key IDs that are associated with the specified IAM user", + Privilege: "ListAccessKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxEnvironment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a kdb user", - Privilege: "UpdateKxUser", + AccessLevel: "List", + Description: "Grants permission to list the account alias that is associated with the AWS account", + Privilege: "ListAccountAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxUser*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a volume in a managed kdb environment", - Privilege: "UpdateKxVolume", + AccessLevel: "List", + Description: "Grants permission to list all managed policies that are attached to the specified IAM group", + Privilege: "ListAttachedGroupPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kxVolume*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a FinSpace user", - Privilege: "UpdateUser", + AccessLevel: "List", + Description: "Grants permission to list all managed policies that are attached to the specified IAM role", + Privilege: "ListAttachedRolePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "role*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all managed policies that are attached to the specified IAM user", + Privilege: "ListAttachedUserPolicies", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, @@ -120654,168 +162688,130 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:environment/${EnvironmentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment", - }, - { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:user/${UserId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "user", - }, - { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "kxEnvironment", - }, - { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxUser/${UserName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "kxUser", - }, { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxCluster/${KxCluster}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list all IAM identities to which the specified managed policy is attached", + Privilege: "ListEntitiesForPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", + }, }, - Resource: "kxCluster", }, { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxDatabase/${KxDatabase}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM group", + Privilege: "ListGroupPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "group*", + }, }, - Resource: "kxDatabase", }, { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxScalingGroup/${KxScalingGroup}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the IAM groups that have the specified path prefix", + Privilege: "ListGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "kxScalingGroup", }, { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxDatabase/${KxDatabase}/kxDataview/${KxDataview}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the IAM groups that the specified IAM user belongs to", + Privilege: "ListGroupsForUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, }, - Resource: "kxDataview", }, { - Arn: "arn:${Partition}:finspace:${Region}:${Account}:kxEnvironment/${EnvironmentId}/kxVolume/${KxVolume}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified instance profile", + Privilege: "ListInstanceProfileTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance-profile*", + }, }, - Resource: "kxVolume", }, - }, - ServiceName: "Amazon FinSpace", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "finspace-api", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve FinSpace programmatic access credentials", - Privilege: "GetProgrammaticAccessCredentials", + AccessLevel: "List", + Description: "Grants permission to list the instance profiles that have the specified path prefix", + Privilege: "ListInstanceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "credential*", + ResourceType: "instance-profile*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:finspace-api:${Region}:${Account}:/credentials/programmatic", - ConditionKeys: []string{}, - Resource: "credential", - }, - }, - ServiceName: "Amazon FinSpace API", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "firehose", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a delivery stream", - Privilege: "CreateDeliveryStream", + AccessLevel: "List", + Description: "Grants permission to list the instance profiles that have the specified associated IAM role", + Privilege: "ListInstanceProfilesForRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "role*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified virtual mfa device", + Privilege: "ListMFADeviceTags", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mfa*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a delivery stream and its data", - Privilege: "DeleteDeliveryStream", + AccessLevel: "List", + Description: "Grants permission to list the MFA devices for an IAM user", + Privilege: "ListMFADevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "user", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified delivery stream and gets the status", - Privilege: "DescribeDeliveryStream", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified OpenID Connect provider", + Privilege: "ListOpenIDConnectProviderTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "oidc-provider*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list your delivery streams", - Privilege: "ListDeliveryStreams", + Description: "Grants permission to list information about the IAM OpenID Connect (OIDC) provider resource objects that are defined in the AWS account", + Privilege: "ListOpenIDConnectProviders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -120826,260 +162822,244 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the tags for the specified delivery stream", - Privilege: "ListTagsForDeliveryStream", + Description: "Grants permission to list all managed policies", + Privilege: "ListPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to write a single data record into an Amazon Kinesis Firehose delivery stream", - Privilege: "PutRecord", + AccessLevel: "List", + Description: "Grants permission to list information about the policies that grant an entity access to a specific service", + Privilege: "ListPoliciesGrantingServiceAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "group*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to write multiple data records into a delivery stream in a single call, which can achieve higher throughput per producer than when writing single records", - Privilege: "PutRecordBatch", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified managed policy", + Privilege: "ListPolicyTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable server-side encryption (SSE) for the delivery stream", - Privilege: "StartDeliveryStreamEncryption", + AccessLevel: "List", + Description: "Grants permission to list information about the versions of the specified managed policy, including the version that is currently set as the policy's default version", + Privilege: "ListPolicyVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable the specified destination of the specified delivery stream", - Privilege: "StopDeliveryStreamEncryption", + AccessLevel: "List", + Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM role", + Privilege: "ListRolePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update tags for the specified delivery stream", - Privilege: "TagDeliveryStream", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified IAM role", + Privilege: "ListRoleTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "role*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the IAM roles that have the specified path prefix", + Privilege: "ListRoles", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified delivery stream", - Privilege: "UntagDeliveryStream", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified SAML provider", + Privilege: "ListSAMLProviderTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "saml-provider*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the SAML provider resources in IAM", + Privilege: "ListSAMLProviders", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified destination of the specified delivery stream", - Privilege: "UpdateDestination", + AccessLevel: "List", + Description: "Grants permission to list information about the SSH public keys that are associated with the specified IAM user", + Privilege: "ListSSHPublicKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverystream*", + ResourceType: "user*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:firehose:${Region}:${Account}:deliverystream/${DeliveryStreamName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified server certificate", + Privilege: "ListServerCertificateTags", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "server-certificate*", + }, }, - Resource: "deliverystream", - }, - }, - ServiceName: "Amazon Kinesis Firehose", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", }, { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "fis:Operations", - Description: "Filters access by the list of operations on the AWS service that is being affected by the AWS FIS action", - Type: "ArrayOfString", - }, - { - Condition: "fis:Percentage", - Description: "Filters access by the percentage of calls being affected by the AWS FIS action", - Type: "Numeric", - }, - { - Condition: "fis:Service", - Description: "Filters access by the AWS service that is being affected by the AWS FIS action", - Type: "String", - }, - { - Condition: "fis:Targets", - Description: "Filters access by the list of resource ARNs being targeted by the AWS FIS action", - Type: "ArrayOfString", - }, - }, - Prefix: "fis", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create an AWS FIS experiment template", - Privilege: "CreateExperimentTemplate", + AccessLevel: "List", + Description: "Grants permission to list the server certificates that have the specified path prefix", + Privilege: "ListServerCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the service-specific credentials that are associated with the specified IAM user", + Privilege: "ListServiceSpecificCredentials", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "user*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about the signing certificates that are associated with the specified IAM user", + Privilege: "ListSigningCertificates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS FIS target account configuration", - Privilege: "CreateTargetAccountConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM user", + Privilege: "ListUserPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the AWS FIS experiment template", - Privilege: "DeleteExperimentTemplate", + AccessLevel: "List", + Description: "Grants permission to list the tags that are attached to the specified IAM user", + Privilege: "ListUserTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS FIS target account configuration", - Privilege: "DeleteTargetAccountConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the IAM users that have the specified path prefix", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an AWS FIS action", - Privilege: "GetAction", + AccessLevel: "List", + Description: "Grants permission to list virtual MFA devices by assignment status", + Privilege: "ListVirtualMFADevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an AWS FIS experiment", - Privilege: "GetExperiment", + AccessLevel: "Write", + Description: "Grants permission to pass a role to a service", + Privilege: "PassRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "role*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "iam:AssociatedResourceArn", + "iam:PassedToService", }, DependentActions: []string{}, ResourceType: "", @@ -121087,30 +163067,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an AWS FIS target account configuration for an AWS FIS experiment", - Privilege: "GetExperimentTargetAccountConfiguration", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM group", + Privilege: "PutGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an AWS FIS Experiment Template", - Privilege: "GetExperimentTemplate", + AccessLevel: "Permissions management", + Description: "Grants permission to set a managed policy as a permissions boundary for a role", + Privilege: "PutRolePermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "role*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "iam:PermissionsBoundary", }, DependentActions: []string{}, ResourceType: "", @@ -121118,45 +163098,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an AWS FIS target account configuration for an AWS FIS experiment template", - Privilege: "GetTargetAccountConfiguration", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM role", + Privilege: "PutRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "role*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified resource type", - Privilege: "GetTargetResourceType", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "iam:PermissionsBoundary", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to inject an API internal error on the provided AWS service from an FIS Experiment", - Privilege: "InjectApiInternalError", + AccessLevel: "Permissions management", + Description: "Grants permission to set a managed policy as a permissions boundary for an IAM user", + Privilege: "PutUserPermissionsBoundary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "user*", }, { ConditionKeys: []string{ - "fis:Service", - "fis:Operations", - "fis:Percentage", - "fis:Targets", + "iam:PermissionsBoundary", }, DependentActions: []string{}, ResourceType: "", @@ -121164,21 +163136,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to inject an API throttle error on the provided AWS service from an FIS Experiment", - Privilege: "InjectApiThrottleError", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM user", + Privilege: "PutUserPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "user*", }, { ConditionKeys: []string{ - "fis:Service", - "fis:Operations", - "fis:Percentage", - "fis:Targets", + "iam:PermissionsBoundary", }, DependentActions: []string{}, ResourceType: "", @@ -121187,78 +163156,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to inject an API unavailable error on the provided AWS service from an FIS Experiment", - Privilege: "InjectApiUnavailableError", + Description: "Grants permission to remove the client ID (audience) from the list of client IDs in the specified IAM OpenID Connect (OIDC) provider resource", + Privilege: "RemoveClientIDFromOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "oidc-provider*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an IAM role from the specified EC2 instance profile", + Privilege: "RemoveRoleFromInstanceProfile", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "fis:Service", - "fis:Operations", - "fis:Percentage", - "fis:Targets", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance-profile*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available AWS FIS actions", - Privilege: "ListActions", + AccessLevel: "Write", + Description: "Grants permission to remove an IAM user from the specified group", + Privilege: "RemoveUserFromGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list resolved targets for AWS FIS experiments", - Privilege: "ListExperimentResolvedTargets", + AccessLevel: "Write", + Description: "Grants permission to reset the password for an existing service-specific credential for an IAM user", + Privilege: "ResetServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list target account configurations for AWS FIS experiments", - Privilege: "ListExperimentTargetAccountConfigurations", + AccessLevel: "Write", + Description: "Grants permission to synchronize the specified MFA device with its IAM entity (user or role)", + Privilege: "ResyncMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available AWS FIS experiment templates", - Privilege: "ListExperimentTemplates", + AccessLevel: "Permissions management", + Description: "Grants permission to set the version of the specified policy as the policy's default version", + Privilege: "SetDefaultPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available AWS FIS experiments", - Privilege: "ListExperiments", + AccessLevel: "Write", + Description: "Grants permission to set the STS global endpoint token version", + Privilege: "SetSecurityTokenServicePreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -121269,71 +163240,72 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for an AWS FIS resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to simulate whether an identity-based policy or resource-based policy provides permissions for specific API operations and resources", + Privilege: "SimulateCustomPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to simulate whether an identity-based policy that is attached to a specified IAM entity (user or role) provides permissions for specific API operations and resources", + Privilege: "SimulatePrincipalPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment", + ResourceType: "group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template", + ResourceType: "role", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list target account configurations for AWS FIS experiment templates", - Privilege: "ListTargetAccountConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "user", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the resource types", - Privilege: "ListTargetResourceTypes", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an instance profile", + Privilege: "TagInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance-profile*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to run an AWS FIS experiment", - Privilege: "StartExperiment", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a virtual mfa device", + Privilege: "TagMFADevice", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "experiment*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "mfa*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -121341,36 +163313,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an AWS FIS experiment", - Privilege: "StopExperiment", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an OpenID Connect provider", + Privilege: "TagOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "oidc-provider*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag AWS FIS resources", - Privilege: "TagResource", + Description: "Grants permission to add tags to a managed policy", + Privilege: "TagPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action", + ResourceType: "policy*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "experiment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an IAM role", + Privilege: "TagRole", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template", + ResourceType: "role*", }, { ConditionKeys: []string{ @@ -121384,27 +163374,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag AWS FIS resources", - Privilege: "UntagResource", + Description: "Grants permission to add tags to a SAML Provider", + Privilege: "TagSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action", + ResourceType: "saml-provider*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "experiment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a server certificate", + Privilege: "TagServerCertificate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template", + ResourceType: "server-certificate*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -121412,24 +163413,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the specified AWS FIS experiment template", - Privilege: "UpdateExperimentTemplate", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an IAM user", + Privilege: "TagUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "action", + ResourceType: "user*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -121437,148 +163433,113 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an AWS FIS target account configuration", - Privilege: "UpdateTargetAccountConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the instance profile", + Privilege: "UntagInstanceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-template*", + ResourceType: "instance-profile*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:fis:${Region}:${Account}:action/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "action", - }, - { - Arn: "arn:${Partition}:fis:${Region}:${Account}:experiment/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "experiment", - }, - { - Arn: "arn:${Partition}:fis:${Region}:${Account}:experiment-template/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "experiment-template", - }, - }, - ServiceName: "AWS Fault Injection Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "fms", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to set the AWS Firewall Manager administrator account and enables the service in all organization accounts", - Privilege: "AssociateAdminAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the Firewall Manager administrator as a tenant administrator of a third-party firewall service", - Privilege: "AssociateThirdPartyFirewall", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the virtual mfa device", + Privilege: "UntagMFADevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "mfa*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate resources to an AWS Firewall Manager resource set", - Privilege: "BatchAssociateResource", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the OpenID Connect provider", + Privilege: "UntagOpenIDConnectProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-set*", + ResourceType: "oidc-provider*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate resources from an AWS Firewall Manager resource set", - Privilege: "BatchDisassociateResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "resource-set*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to permanently deletes an AWS Firewall Manager applications list", - Privilege: "DeleteAppsList", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the managed policy", + Privilege: "UntagPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications-list*", + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Firewall Manager association with the IAM role and the Amazon Simple Notification Service (SNS) topic that is used to notify the FM administrator about major FM events and errors across the organization", - Privilege: "DeleteNotificationChannel", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the role", + Privilege: "UntagRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "role*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to permanently delete an AWS Firewall Manager policy", - Privilege: "DeletePolicy", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the SAML Provider", + Privilege: "UntagSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "saml-provider*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -121586,30 +163547,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to permanently deletes an AWS Firewall Manager protocols list", - Privilege: "DeleteProtocolsList", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the server certificate", + Privilege: "UntagServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protocols-list*", + ResourceType: "server-certificate*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to permanently delete an AWS Firewall Manager resource set", - Privilege: "DeleteResourceSet", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the user", + Privilege: "UntagUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-set*", + ResourceType: "user*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -121618,20 +163586,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the account that has been set as the AWS Firewall Manager administrator account and and disables the service in all organization accounts", - Privilege: "DisassociateAdminAccount", + Description: "Grants permission to update the status of the specified access key as Active or Inactive", + Privilege: "UpdateAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a Firewall Manager administrator from a third-party firewall tenant", - Privilege: "DisassociateThirdPartyFirewall", + Description: "Grants permission to update the password policy settings for the AWS account", + Privilege: "UpdateAccountPasswordPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -121641,2568 +163609,2830 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the AWS Organizations account that is associated with AWS Firewall Manager as the AWS Firewall Manager administrator", - Privilege: "GetAdminAccount", + AccessLevel: "Permissions management", + Description: "Grants permission to update the policy that grants an IAM entity permission to assume a role", + Privilege: "UpdateAssumeRolePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the specified account's administrative scope", - Privilege: "GetAdminScope", + AccessLevel: "Write", + Description: "Grants permission to update the name or path of the specified IAM group", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the specified AWS Firewall Manager applications list", - Privilege: "GetAppsList", + AccessLevel: "Write", + Description: "Grants permission to change the password for the specified IAM user", + Privilege: "UpdateLoginProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications-list*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve detailed compliance information about the specified member account. Details include resources that are in and out of compliance with the specified policy", - Privilege: "GetComplianceDetail", + AccessLevel: "Write", + Description: "Grants permission to update the entire list of server certificate thumbprints that are associated with an OpenID Connect (OIDC) provider resource", + Privilege: "UpdateOpenIDConnectProviderThumbprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "oidc-provider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Simple Notification Service (SNS) topic that is used to record AWS Firewall Manager SNS logs", - Privilege: "GetNotificationChannel", + AccessLevel: "Write", + Description: "Grants permission to update the description or maximum session duration setting of a role", + Privilege: "UpdateRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified AWS Firewall Manager policy", - Privilege: "GetPolicy", + AccessLevel: "Write", + Description: "Grants permission to update only the description of a role", + Privilege: "UpdateRoleDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "role*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve policy-level attack summary information in the event of a potential DDoS attack", - Privilege: "GetProtectionStatus", + AccessLevel: "Write", + Description: "Grants permission to update the metadata document for an existing SAML provider resource", + Privilege: "UpdateSAMLProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "saml-provider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the specified AWS Firewall Manager protocols list", - Privilege: "GetProtocolsList", + AccessLevel: "Write", + Description: "Grants permission to update the status of an IAM user's SSH public key to active or inactive", + Privilege: "UpdateSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protocols-list*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified AWS Firewall Manager resource set", - Privilege: "GetResourceSet", + AccessLevel: "Write", + Description: "Grants permission to update the name or the path of the specified server certificate stored in IAM", + Privilege: "UpdateServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-set*", + ResourceType: "server-certificate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the onboarding status of a Firewall Manager administrator account to third-party firewall vendor tenant", - Privilege: "GetThirdPartyFirewallAssociationStatus", + AccessLevel: "Write", + Description: "Grants permission to update the status of a service-specific credential to active or inactive for an IAM user", + Privilege: "UpdateServiceSpecificCredential", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve violations for a resource based on the specified AWS Firewall Manager policy and AWS account", - Privilege: "GetViolationDetails", + AccessLevel: "Write", + Description: "Grants permission to update the status of the specified user signing certificate to active or disabled", + Privilege: "UpdateSigningCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a AdminAccounts object that lists the Firewall Manager administrators within the organization that are onboarded to Firewall Manager by AssociateAdminAccount", - Privilege: "ListAdminAccountsForOrganization", + AccessLevel: "Write", + Description: "Grants permission to update the name or the path of the specified IAM user", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the accounts that are managing the specified AWS Organizations member account", - Privilege: "ListAdminsManagingAccount", + AccessLevel: "Write", + Description: "Grants permission to upload an SSH public key and associate it with the specified IAM user", + Privilege: "UploadSSHPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return an array of AppsListDataSummary objects", - Privilege: "ListAppsLists", + AccessLevel: "Write", + Description: "Grants permission to upload a server certificate entity for the AWS account", + Privilege: "UploadServerCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "server-certificate*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve an array of PolicyComplianceStatus objects in the response. Use PolicyComplianceStatus to get a summary of which member accounts are protected by the specified policy", - Privilege: "ListComplianceStatus", + AccessLevel: "Write", + Description: "Grants permission to upload an X.509 signing certificate and associate it with the specified IAM user", + Privilege: "UploadSigningCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "user*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to retrieve an array of resources in the organization's accounts that are available to be associated with a resource set", - Privilege: "ListDiscoveredResources", + Arn: "arn:${Partition}:iam::${Account}:access-report/${EntityPath}", + ConditionKeys: []string{}, + Resource: "access-report", + }, + { + Arn: "arn:${Partition}:iam::${Account}:assumed-role/${RoleName}/${RoleSessionName}", + ConditionKeys: []string{}, + Resource: "assumed-role", + }, + { + Arn: "arn:${Partition}:iam::${Account}:federated-user/${UserName}", + ConditionKeys: []string{}, + Resource: "federated-user", + }, + { + Arn: "arn:${Partition}:iam::${Account}:group/${GroupNameWithPath}", + ConditionKeys: []string{}, + Resource: "group", + }, + { + Arn: "arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileNameWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "instance-profile", + }, + { + Arn: "arn:${Partition}:iam::${Account}:mfa/${MfaTokenIdWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mfa", + }, + { + Arn: "arn:${Partition}:iam::${Account}:oidc-provider/${OidcProviderName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "oidc-provider", + }, + { + Arn: "arn:${Partition}:iam::${Account}:policy/${PolicyNameWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "policy", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "iam:ResourceTag/${TagKey}", + }, + Resource: "role", + }, + { + Arn: "arn:${Partition}:iam::${Account}:saml-provider/${SamlProviderName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "saml-provider", + }, + { + Arn: "arn:${Partition}:iam::${Account}:server-certificate/${CertificateNameWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "server-certificate", + }, + { + Arn: "arn:${Partition}:iam::${Account}:sms-mfa/${MfaTokenIdWithPath}", + ConditionKeys: []string{}, + Resource: "sms-mfa", + }, + { + Arn: "arn:${Partition}:iam::${Account}:user/${UserNameWithPath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "iam:ResourceTag/${TagKey}", + }, + Resource: "user", + }, + }, + ServiceName: "Identity And Access Management", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "identity-sync", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a sync filter on the sync profile", + Privilege: "CreateSyncFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve an array of member account ids if the caller is FMS admin account", - Privilege: "ListMemberAccounts", + AccessLevel: "Write", + Description: "Grants permission to create a sync profile for the source", + Privilege: "CreateSyncProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AuthorizeApplication", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve an array of PolicySummary objects in the response", - Privilege: "ListPolicies", + AccessLevel: "Write", + Description: "Grants permission to create a sync target for the source", + Privilege: "CreateSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return an array of ProtocolsListDataSummary objects", - Privilege: "ListProtocolsLists", + AccessLevel: "Write", + Description: "Grants permission to delete a sync filter on the sync profile", + Privilege: "DeleteSyncFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve an array of resources that are currently associated to a resource set", - Privilege: "ListResourceSetResources", + AccessLevel: "Write", + Description: "Grants permission to delete a sync profile on the source", + Privilege: "DeleteSyncProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resource-set*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:UnauthorizeApplication", + }, + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve an array of ResourceSetSummary objects", - Privilege: "ListResourceSets", + AccessLevel: "Write", + Description: "Grants permission to delete a sync target on the source", + Privilege: "DeleteSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SyncTargetResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list Tags for a given resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve a sync profile using sync profile name", + Privilege: "GetSyncProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all of the third-party firewall policies that are associated with the third-party firewall administrator's account", - Privilege: "ListThirdPartyFirewallFirewallPolicies", + AccessLevel: "Read", + Description: "Grants permission to retrieve a sync target on the sync profile", + Privilege: "GetSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SyncTargetResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update an Firewall Manager administrator account", - Privilege: "PutAdminAccount", + AccessLevel: "List", + Description: "Grants permission to list the sync filters on the sync profile", + Privilege: "ListSyncFilters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Firewall Manager applications list", - Privilege: "PutAppsList", + Description: "Grants permission to start a synchronization process or to restart a synchronization that was previously stopped", + Privilege: "StartSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications-list*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to designate the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager (FM) could use to notify the FM administrator about major FM events and errors across the organization", - Privilege: "PutNotificationChannel", + Description: "Grants permission to stop any planned synchronizations in the synchronization schedule from starting", + Privilege: "StopSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Firewall Manager policy", - Privilege: "PutPolicy", + Description: "Grants permission to update a sync target on the sync profile", + Privilege: "UpdateSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "SyncProfileResource*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncTargetResource*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to creates an AWS Firewall Manager protocols list", - Privilege: "PutProtocolsList", + Arn: "^arn:${Partition}:identity-sync:${Region}:${Account}:profile/${SyncProfileName}", + ConditionKeys: []string{}, + Resource: "SyncProfileResource", + }, + { + Arn: "^arn:${Partition}:identity-sync:${Region}:${Account}:target/${SyncProfileName}/${SyncTargetName}", + ConditionKeys: []string{}, + Resource: "SyncTargetResource", + }, + }, + ServiceName: "AWS Identity Synchronization Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "identity-sync", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for a Sync Profile", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protocols-list*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Firewall Manager resource set", - Privilege: "PutResourceSet", + Description: "Grants permission to create a sync filter on the sync profile", + Privilege: "CreateSyncFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-set*", + ResourceType: "SyncProfileResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a sync profile for the identity source", + Privilege: "CreateSyncProfile", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AuthorizeApplication", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add a Tag to a given resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a sync target for the identity source", + Privilege: "CreateSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications-list", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "protocols-list", + ResourceType: "SyncProfileResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a sync filter from the sync profile", + Privilege: "DeleteSyncFilter", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-set", + ResourceType: "SyncProfileResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a sync profile from the source", + Privilege: "DeleteSyncProfile", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:UnauthorizeApplication", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a Tag from a given resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a sync target from the source", + Privilege: "DeleteSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications-list", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "protocols-list", + ResourceType: "SyncProfileResource*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-set", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncTargetResource*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:fms:${Region}:${Account}:policy/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "policy", - }, - { - Arn: "arn:${Partition}:fms:${Region}:${Account}:applications-list/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "applications-list", - }, - { - Arn: "arn:${Partition}:fms:${Region}:${Account}:protocols-list/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "protocols-list", - }, - { - Arn: "arn:${Partition}:fms:${Region}:${Account}:resource-set/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resource-set", - }, - }, - ServiceName: "AWS Firewall Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "forecast", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an auto predictor", - Privilege: "CreateAutoPredictor", + AccessLevel: "Read", + Description: "Grants permission to retrieve a sync profile by using a sync profile name", + Privilege: "GetSyncProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset", - Privilege: "CreateDataset", + AccessLevel: "Read", + Description: "Grants permission to retrieve a sync target from the sync profile", + Privilege: "GetSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "SyncProfileResource*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncTargetResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset group", - Privilege: "CreateDatasetGroup", + AccessLevel: "List", + Description: "Grants permission to list the sync filters from the sync profile", + Privilege: "ListSyncFilters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a dataset import job", - Privilege: "CreateDatasetImportJob", + Description: "Grants permission to start a sync process or to resume a sync process that was previously paused", + Privilege: "StartSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an explainability", - Privilege: "CreateExplainability", + Description: "Grants permission to stop any planned sync process in the sync schedule from starting", + Privilege: "StopSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncProfileResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an explainability export using an explainability resource", - Privilege: "CreateExplainabilityExport", + Description: "Grants permission to update a sync target on the sync profile", + Privilege: "UpdateSyncTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainability*", + ResourceType: "SyncProfileResource*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SyncTargetResource*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:identity-sync:${Region}:${Account}:profile/${SyncProfileName}", + ConditionKeys: []string{}, + Resource: "SyncProfileResource", + }, + { + Arn: "arn:${Partition}:identity-sync:${Region}:${Account}:target/${SyncProfileName}/${SyncTargetName}", + ConditionKeys: []string{}, + Resource: "SyncTargetResource", + }, + }, + ServiceName: "AWS Identity Sync", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "identitystore:UserId", + Description: "Filters access by IAM Identity Center User ID", + Type: "String", + }, + }, + Prefix: "identitystore", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a forecast", - Privilege: "CreateForecast", + Description: "Grants permission to create a group in the specified IdentityStore", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Identitystore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint using a Predictor resource", - Privilege: "CreateForecastEndpoint", + Description: "Grants permission to create a member to a group in the specified IdentityStore", + Privilege: "CreateGroupMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "Group*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Identitystore*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "User*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a forecast export job using a forecast resource", - Privilege: "CreateForecastExportJob", + Description: "Grants permission to create a user in the specified IdentityStore", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Identitystore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an monitor using a Predictor resource", - Privilege: "CreateMonitor", + Description: "Grants permission to delete a group in the specified IdentityStore", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "Group*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Identitystore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a predictor", - Privilege: "CreatePredictor", + Description: "Grants permission to remove a member that is part of a group in the specified IdentityStore", + Privilege: "DeleteGroupMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "Group*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "GroupMembership*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a predictor backtest export job using a predictor", - Privilege: "CreatePredictorBacktestExportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "Identitystore*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "User*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a what-if analysis", - Privilege: "CreateWhatIfAnalysis", + Description: "Grants permission to delete a user in the specified IdentityStore", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast*", + ResourceType: "Identitystore*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "User*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a what-if forecast", - Privilege: "CreateWhatIfForecast", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a group in the specified IdentityStore", + Privilege: "DescribeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfAnalysis*", + ResourceType: "Group*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Identitystore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a what-if forecast export using what-if forecast resources", - Privilege: "CreateWhatIfForecastExport", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a member that is part of a group in the specified IdentityStore", + Privilege: "DescribeGroupMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecast*", + ResourceType: "Group*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "GroupMembership*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a dataset", - Privilege: "DeleteDataset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "Identitystore*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a dataset group", - Privilege: "DeleteDatasetGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "User*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a dataset import job", - Privilege: "DeleteDatasetImportJob", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about user in the specified IdentityStore", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", + ResourceType: "Identitystore*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an explainability", - Privilege: "DeleteExplainability", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainability*", + ResourceType: "User*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an explainability export", - Privilege: "DeleteExplainabilityExport", + AccessLevel: "Read", + Description: "Grants permission to retrieve ID information about group in the specified IdentityStore", + Privilege: "GetGroupId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainabilityExport*", + ResourceType: "Group*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a forecast", - Privilege: "DeleteForecast", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast*", + ResourceType: "Identitystore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an endpoint resource", - Privilege: "DeleteForecastEndpoint", + AccessLevel: "Read", + Description: "Grants permission to retrieve ID information of a member which is part of a group in the specified IdentityStore", + Privilege: "GetGroupMembershipId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "Group*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a forecast export job", - Privilege: "DeleteForecastExportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecastExport*", + ResourceType: "GroupMembership*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a monitor resource", - Privilege: "DeleteMonitor", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "Identitystore*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a predictor", - Privilege: "DeletePredictor", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "User*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a predictor backtest export job", - Privilege: "DeletePredictorBacktestExportJob", + AccessLevel: "Read", + Description: "Grants permission to retrieves ID information about user in the specified IdentityStore", + Privilege: "GetUserId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob*", + ResourceType: "Identitystore*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "User*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a resource and its child resources", - Privilege: "DeleteResourceTree", + AccessLevel: "Read", + Description: "Grants permission to check if a member is a part of groups in the specified IdentityStore", + Privilege: "IsMemberInGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "AllGroupMemberships*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "Group*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", + ResourceType: "Identitystore*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "User*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all members that are part of a group in the specified IdentityStore", + Privilege: "ListGroupMemberships", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainability*", + ResourceType: "AllGroupMemberships*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainabilityExport*", + ResourceType: "Group*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast*", + ResourceType: "Identitystore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list groups of the target member in the specified IdentityStore", + Privilege: "ListGroupMembershipsForMember", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecastExport*", + ResourceType: "AllGroupMemberships*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "Identitystore*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "User*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for groups within the specified IdentityStore", + Privilege: "ListGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob*", + ResourceType: "AllGroups*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfAnalysis*", + ResourceType: "Identitystore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search for users in the specified IdentityStore", + Privilege: "ListUsers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecast*", + ResourceType: "AllUsers*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecastExport*", + ResourceType: "Identitystore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a what-if analysis", - Privilege: "DeleteWhatIfAnalysis", + Description: "Grants permission to update information about a group in the specified IdentityStore", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfAnalysis*", + ResourceType: "Group*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Identitystore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a what-if forecast", - Privilege: "DeleteWhatIfForecast", + Description: "Grants permission to update user information in the specified IdentityStore", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecast*", + ResourceType: "Identitystore*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "User*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:identitystore::${Account}:identitystore/${IdentityStoreId}", + ConditionKeys: []string{}, + Resource: "Identitystore", + }, + { + Arn: "arn:${Partition}:identitystore:::user/${UserId}", + ConditionKeys: []string{}, + Resource: "User", + }, + { + Arn: "arn:${Partition}:identitystore:::group/${GroupId}", + ConditionKeys: []string{}, + Resource: "Group", + }, + { + Arn: "arn:${Partition}:identitystore:::membership/${MembershipId}", + ConditionKeys: []string{}, + Resource: "GroupMembership", + }, + { + Arn: "arn:${Partition}:identitystore:::user/*", + ConditionKeys: []string{}, + Resource: "AllUsers", + }, + { + Arn: "arn:${Partition}:identitystore:::group/*", + ConditionKeys: []string{}, + Resource: "AllGroups", + }, + { + Arn: "arn:${Partition}:identitystore:::membership/*", + ConditionKeys: []string{}, + Resource: "AllGroupMemberships", + }, + }, + ServiceName: "AWS Identity Store", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "identitystore-auth", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a what-if forecast export", - Privilege: "DeleteWhatIfForecastExport", + Description: "Grants permission to delete a batch of specified sessions", + Privilege: "BatchDeleteSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecastExport*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an auto predictor", - Privilege: "DescribeAutoPredictor", + Description: "Grants permission to return session attributes for a batch of specified sessions", + Privilege: "BatchGetSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset", - Privilege: "DescribeDataset", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of active sessions for the specified user", + Privilege: "ListSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Identity Store Auth", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset group", - Privilege: "DescribeDatasetGroup", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "imagebuilder:CreatedResourceTag/", + Description: "Filters access by the tag key-value pairs attached to the resource created by Image Builder", + Type: "String", + }, + { + Condition: "imagebuilder:CreatedResourceTagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "imagebuilder:Ec2MetadataHttpTokens", + Description: "Filters access by the EC2 Instance Metadata HTTP Token Requirement specified in the request", + Type: "String", + }, + { + Condition: "imagebuilder:LifecyclePolicyResourceType", + Description: "Filters access by the Lifecycle Policy Resource Type specified in the request", + Type: "String", + }, + { + Condition: "imagebuilder:StatusTopicArn", + Description: "Filters access by the SNS Topic Arn in the request to which terminal state notifications will be published", + Type: "ARN", + }, + }, + Prefix: "imagebuilder", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel an image creation", + Privilege: "CancelImageCreation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "image*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset import job", - Privilege: "DescribeDatasetImportJob", + AccessLevel: "Write", + Description: "Grants permission to cancel a lifecycle execution", + Privilege: "CancelLifecycleExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", + ResourceType: "lifecycleExecution*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an explainability", - Privilege: "DescribeExplainability", + AccessLevel: "Write", + Description: "Grants permission to create a new component", + Privilege: "CreateComponent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "explainability*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyWithoutPlaintext", + }, + ResourceType: "component*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an explainability export", - Privilege: "DescribeExplainabilityExport", + AccessLevel: "Write", + Description: "Grants permission to create a new Container Recipe", + Privilege: "CreateContainerRecipe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "explainabilityExport*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ecr:DescribeImages", + "ecr:DescribeRepositories", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetComponent", + "imagebuilder:GetImage", + "imagebuilder:TagResource", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyWithoutPlaintext", + "ssm:GetParameter", + }, + ResourceType: "containerRecipe*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a forecast", - Privilege: "DescribeForecast", + AccessLevel: "Write", + Description: "Grants permission to create a new distribution configuration", + Privilege: "CreateDistributionConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "forecast*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "ssm:GetParameter", + }, + ResourceType: "distributionConfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an endpoint resource", - Privilege: "DescribeForecastEndpoint", + AccessLevel: "Write", + Description: "Grants permission to create a new image", + Privilege: "CreateImage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "imagebuilder:GetContainerRecipe", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:TagResource", + }, + ResourceType: "image*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a forecast export job", - Privilege: "DescribeForecastExportJob", + AccessLevel: "Write", + Description: "Grants permission to create a new image pipeline", + Privilege: "CreateImagePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "forecastExport*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "imagebuilder:GetContainerRecipe", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:TagResource", + }, + ResourceType: "imagePipeline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an monitor resource", - Privilege: "DescribeMonitor", + AccessLevel: "Write", + Description: "Grants permission to create a new Image Recipe", + Privilege: "CreateImageRecipe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "monitor*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:DescribeImages", + "iam:CreateServiceLinkedRole", + "imagebuilder:GetComponent", + "imagebuilder:GetImage", + "imagebuilder:TagResource", + "ssm:GetParameter", + }, + ResourceType: "imageRecipe*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a predictor", - Privilege: "DescribePredictor", + AccessLevel: "Write", + Description: "Grants permission to create a new infrastructure configuration", + Privilege: "CreateInfrastructureConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "predictor*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "imagebuilder:CreatedResourceTagKeys", + "imagebuilder:CreatedResourceTag/", + "imagebuilder:Ec2MetadataHttpTokens", + "imagebuilder:StatusTopicArn", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "imagebuilder:TagResource", + "sns:Publish", + }, + ResourceType: "infrastructureConfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a predictor backtest export job", - Privilege: "DescribePredictorBacktestExportJob", + AccessLevel: "Write", + Description: "Grants permission to create a new lifecycle policy", + Privilege: "CreateLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "imagebuilder:LifecyclePolicyResourceType", + }, + DependentActions: []string{ + "iam:PassRole", + "imagebuilder:TagResource", + }, + ResourceType: "lifecyclePolicy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a what-if analysis", - Privilege: "DescribeWhatIfAnalysis", + AccessLevel: "Write", + Description: "Grants permission to create a new workflow", + Privilege: "CreateWorkflow", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfAnalysis*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "imagebuilder:TagResource", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyWithoutPlaintext", + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a what-if forecast", - Privilege: "DescribeWhatIfForecast", + AccessLevel: "Write", + Description: "Grants permission to delete a component", + Privilege: "DeleteComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecast*", + ResourceType: "component*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a what-if forecast export", - Privilege: "DescribeWhatIfForecastExport", + AccessLevel: "Write", + Description: "Grants permission to delete a container recipe", + Privilege: "DeleteContainerRecipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecastExport*", + ResourceType: "containerRecipe*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the Accuracy Metrics for a predictor", - Privilege: "GetAccuracyMetrics", + AccessLevel: "Write", + Description: "Grants permission to delete a distribution configuration", + Privilege: "DeleteDistributionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor*", + ResourceType: "distributionConfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the forecast context of a timeseries for an endpoint", - Privilege: "GetRecentForecastContext", + AccessLevel: "Write", + Description: "Grants permission to delete an image", + Privilege: "DeleteImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "image*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to invoke the endpoint to get forecast for a timeseries", - Privilege: "InvokeForecastEndpoint", + AccessLevel: "Write", + Description: "Grants permission to delete an image pipeline", + Privilege: "DeleteImagePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "imagePipeline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the dataset groups", - Privilege: "ListDatasetGroups", + AccessLevel: "Write", + Description: "Grants permission to delete an image recipe", + Privilege: "DeleteImageRecipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "imageRecipe*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the dataset import jobs", - Privilege: "ListDatasetImportJobs", + AccessLevel: "Write", + Description: "Grants permission to delete an infrastructure configuration", + Privilege: "DeleteInfrastructureConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "infrastructureConfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the datasets", - Privilege: "ListDatasets", + AccessLevel: "Write", + Description: "Grants permission to delete a lifecycle policy", + Privilege: "DeleteLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "lifecyclePolicy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the explainabilities", - Privilege: "ListExplainabilities", + AccessLevel: "Write", + Description: "Grants permission to delete a workflow", + Privilege: "DeleteWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the explainability exports", - Privilege: "ListExplainabilityExports", + Description: "Grants permission to view details about a component", + Privilege: "GetComponent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + }, + ResourceType: "component*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the forecast export jobs", - Privilege: "ListForecastExportJobs", + Description: "Grants permission to view the resource policy associated with a component", + Privilege: "GetComponentPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "component*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the forecasts", - Privilege: "ListForecasts", + Description: "Grants permission to view details about a container recipe", + Privilege: "GetContainerRecipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "containerRecipe*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the monitor evaluation result for a monitor", - Privilege: "ListMonitorEvaluations", + Description: "Grants permission to view the resource policy associated with a container recipe", + Privilege: "GetContainerRecipePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "containerRecipe*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the monitor resources", - Privilege: "ListMonitors", + Description: "Grants permission to view details about a distribution configuration", + Privilege: "GetDistributionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "distributionConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the predictor backtest export jobs", - Privilege: "ListPredictorBacktestExportJobs", + Description: "Grants permission to view details about an image", + Privilege: "GetImage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the predictors", - Privilege: "ListPredictors", + Description: "Grants permission to view details about an image pipeline", + Privilege: "GetImagePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "imagePipeline*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for an Amazon Forecast resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to view the resource policy associated with an image", + Privilege: "GetImagePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasetGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasetImportJob", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "explainability", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "explainabilityExport", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "forecast", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "forecastExport", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "monitor", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "predictor", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfAnalysis", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfForecast", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfForecastExport", + ResourceType: "image*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the what-if analyses", - Privilege: "ListWhatIfAnalyses", + Description: "Grants permission to view details about an image recipe", + Privilege: "GetImageRecipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "imageRecipe*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the what-if forecast exports", - Privilege: "ListWhatIfForecastExports", + Description: "Grants permission to view the resource policy associated with an image recipe", + Privilege: "GetImageRecipePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "imageRecipe*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the what-if forecasts", - Privilege: "ListWhatIfForecasts", + Description: "Grants permission to view details about an infrastructure configuration", + Privilege: "GetInfrastructureConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "infrastructureConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a forecast for a single item", - Privilege: "QueryForecast", + Description: "Grants permission to view details about a lifecycle execution", + Privilege: "GetLifecycleExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast*", + ResourceType: "lifecycleExecution*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a what-if forecast for a single item", - Privilege: "QueryWhatIfForecast", + Description: "Grants permission to view details about a lifecycle policy", + Privilege: "GetLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecast*", + ResourceType: "lifecyclePolicy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to resume Amazon Forecast resource jobs", - Privilege: "ResumeResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve Marketplace provided resource", + Privilege: "GetMarketplaceResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "component*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details about a workflow", + Privilege: "GetWorkflow", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop Amazon Forecast resource jobs", - Privilege: "StopResource", + AccessLevel: "Read", + Description: "Grants permission to view details about a workflow execution", + Privilege: "GetWorkflowExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "explainability*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "explainabilityExport*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "forecast*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "forecastExport*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "monitor*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "predictor*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob*", + ResourceType: "workflowExecution*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details about a workflow step execution", + Privilege: "GetWorkflowStepExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfAnalysis*", + ResourceType: "workflowStepExecution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a new component", + Privilege: "ImportComponent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfForecast*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "imagebuilder:TagResource", + "kms:Encrypt", + "kms:GenerateDataKey", + "kms:GenerateDataKeyWithoutPlaintext", + }, + ResourceType: "component*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a disk image", + Privilege: "ImportDiskImage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfForecastExport*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetWorkflow", + "imagebuilder:TagResource", + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "imageVersion*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import an image", + Privilege: "ImportVmImage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:DescribeImages", + "ec2:DescribeImportImageTasks", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "imageVersion*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate the specified tags to a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list the component build versions in your account", + Privilege: "ListComponentBuildVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", + ResourceType: "componentVersion*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the component versions owned by or shared with your account", + Privilege: "ListComponents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the container recipes owned by or shared with your account", + Privilege: "ListContainerRecipes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the distribution configurations in your account", + Privilege: "ListDistributionConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the image build versions in your account", + Privilege: "ListImageBuildVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainability", + ResourceType: "imageVersion*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of packages installed on the specified image", + Privilege: "ListImagePackages", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "explainabilityExport", + ResourceType: "image*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of images created by the specified pipeline", + Privilege: "ListImagePipelineImages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecast", + ResourceType: "imagePipeline*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the image pipelines in your account", + Privilege: "ListImagePipelines", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "forecastExport", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the image recipes owned by or shared with your account", + Privilege: "ListImageRecipes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list aggregations on the image scan findings in your account", + Privilege: "ListImageScanFindingAggregations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictor", + ResourceType: "image", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob", + ResourceType: "imagePipeline", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the image scan findings for the images in your account", + Privilege: "ListImageScanFindings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "whatIfAnalysis", + ConditionKeys: []string{}, + DependentActions: []string{ + "inspector2:ListFindings", + }, + ResourceType: "image", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecast", + ResourceType: "imagePipeline", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the image versions owned by or shared with your account", + Privilege: "ListImages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "whatIfForecastExport", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete the specified tags for a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list the infrastructure configurations in your account", + Privilege: "ListInfrastructureConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasetGroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list resources for the specified lifecycle execution", + Privilege: "ListLifecycleExecutionResources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob", + ResourceType: "lifecycleExecution*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list lifecycle executions for the specified resource", + Privilege: "ListLifecycleExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint", + ResourceType: "image", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainability", + ResourceType: "lifecyclePolicy", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the lifecycle policies in your account", + Privilege: "ListLifecyclePolicies", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "explainabilityExport", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for an Image Builder resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "forecast", + ResourceType: "component", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "forecastExport", + ResourceType: "containerRecipe", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "monitor", + ResourceType: "distributionConfiguration", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "predictor", + ResourceType: "image", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "predictorBacktestExportJob", + ResourceType: "imagePipeline", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "whatIfAnalysis", + ResourceType: "imageRecipe", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "whatIfForecast", + ResourceType: "infrastructureConfiguration", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "whatIfForecastExport", + ResourceType: "lifecyclePolicy", }, { ConditionKeys: []string{ - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a dataset group", - Privilege: "UpdateDatasetGroup", + AccessLevel: "List", + Description: "Grants permission to list waiting workflow steps for the caller account", + Privilege: "ListWaitingWorkflowSteps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the workflow build versions in your account", + Privilege: "ListWorkflowBuildVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "workflowVersion*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:dataset/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dataset", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:dataset-group/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "datasetGroup", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:dataset-import-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "datasetImportJob", - }, - { - Arn: "arn:${Partition}:forecast:::algorithm/${ResourceId}", - ConditionKeys: []string{}, - Resource: "algorithm", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:predictor/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "predictor", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:predictor-backtest-export-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "predictorBacktestExportJob", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:forecast/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "forecast", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:forecast-export-job/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "forecastExport", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:explainability/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "explainability", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:explainability-export/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "explainabilityExport", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:monitor/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "monitor", - }, - { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:what-if-analysis/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "whatIfAnalysis", - }, { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:what-if-forecast/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list workflow executions for the specified image", + Privilege: "ListWorkflowExecutions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "image*", + }, }, - Resource: "whatIfForecast", }, { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:what-if-forecast-export/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list workflow step executions for the specified workflow", + Privilege: "ListWorkflowStepExecutions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workflowExecution*", + }, }, - Resource: "whatIfForecastExport", }, { - Arn: "arn:${Partition}:forecast:${Region}:${Account}:forecast-endpoint/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the workflow versions owned by or shared with your account", + Privilege: "ListWorkflows", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "endpoint", - }, - }, - ServiceName: "Amazon Forecast", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", - Type: "ArrayOfString", }, - }, - Prefix: "frauddetector", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a batch of variables", - Privilege: "BatchCreateVariable", + AccessLevel: "Permissions management", + Description: "Grants permission to set the resource policy associated with a component", + Privilege: "PutComponentPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "component*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a batch of variables", - Privilege: "BatchGetVariable", + AccessLevel: "Permissions management", + Description: "Grants permission to set the resource policy associated with a container recipe", + Privilege: "PutContainerRecipePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "variable*", + ResourceType: "containerRecipe*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel the specified batch import job", - Privilege: "CancelBatchImportJob", + AccessLevel: "Permissions management", + Description: "Grants permission to set the resource policy associated with an image", + Privilege: "PutImagePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import*", + ResourceType: "image*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel the specified batch prediction job", - Privilege: "CancelBatchPredictionJob", + AccessLevel: "Permissions management", + Description: "Grants permission to set the resource policy associated with an image recipe", + Privilege: "PutImageRecipePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-prediction*", + ResourceType: "imageRecipe*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a batch import job", - Privilege: "CreateBatchImportJob", + Description: "Grants permission to send an action to a workflow step", + Privilege: "SendWorkflowStepAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import*", + ResourceType: "image*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "workflowStepExecution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new image from a pipeline", + Privilege: "StartImagePipelineExecution", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "imagebuilder:GetImagePipeline", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "imagePipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a batch prediction job", - Privilege: "CreateBatchPredictionJob", + Description: "Grants permission to start a state update for the specified resource", + Privilege: "StartResourceStateUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-prediction*", + ResourceType: "image*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an Image Builder resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "component", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "detector-version*", + ResourceType: "containerRecipe", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "distributionConfiguration", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a detector version. The detector version starts in a DRAFT status", - Privilege: "CreateDetectorVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "imagePipeline", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "external-model", + ResourceType: "imageRecipe", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "infrastructureConfiguration", }, { ConditionKeys: []string{ + "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "lifecyclePolicy", + }, + { + ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a list", - Privilege: "CreateList", + AccessLevel: "Tagging", + Description: "Grants permission to untag an Image Builder resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "component", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a model using the specified model type", - Privilege: "CreateModel", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "containerRecipe", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "distributionConfiguration", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a version of the model using the specified model type and model id", - Privilege: "CreateModelVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "imagePipeline", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "imageRecipe", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a rule for use with the specified detector", - Privilege: "CreateRule", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "infrastructureConfiguration", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "lifecyclePolicy", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a variable", - Privilege: "CreateVariable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a batch import job", - Privilege: "DeleteBatchImportJob", + Description: "Grants permission to update an existing distribution configuration", + Privilege: "UpdateDistributionConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batch-import*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ssm:GetParameter", + }, + ResourceType: "distributionConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a batch prediction job", - Privilege: "DeleteBatchPredictionJob", + Description: "Grants permission to update an existing image pipeline", + Privilege: "UpdateImagePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batch-prediction*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "imagebuilder:GetContainerRecipe", + "imagebuilder:GetDistributionConfiguration", + "imagebuilder:GetImageRecipe", + "imagebuilder:GetInfrastructureConfiguration", + "imagebuilder:GetWorkflow", + }, + ResourceType: "imagePipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the detector. Before deleting a detector, you must first delete all detector versions and rule versions associated with the detector", - Privilege: "DeleteDetector", + Description: "Grants permission to update an existing infrastructure configuration", + Privilege: "UpdateInfrastructureConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "imagebuilder:CreatedResourceTagKeys", + "imagebuilder:CreatedResourceTag/", + "imagebuilder:Ec2MetadataHttpTokens", + "imagebuilder:StatusTopicArn", + }, + DependentActions: []string{ + "iam:PassRole", + "sns:Publish", + }, + ResourceType: "infrastructureConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the detector version. You cannot delete detector versions that are in ACTIVE status", - Privilege: "DeleteDetectorVersion", + Description: "Grants permission to update an existing lifecycle policy", + Privilege: "UpdateLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version*", + ConditionKeys: []string{ + "imagebuilder:LifecyclePolicyResourceType", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "lifecyclePolicy*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete an entity type. You cannot delete an entity type that is included in an event type", - Privilege: "DeleteEntityType", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-type*", - }, + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:component/${ComponentName}/${ComponentVersion}/${ComponentBuildVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "component", }, { - AccessLevel: "Write", - Description: "Grants permission to deletes the specified event", - Privilege: "DeleteEvent", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type*", - }, + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:component/${ComponentName}/${ComponentVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "componentVersion", }, { - AccessLevel: "Write", - Description: "Grants permission to delete an event type. You cannot delete an event type that is used in a detector or a model", - Privilege: "DeleteEventType", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type*", - }, + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:distribution-configuration/${DistributionConfigurationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "distributionConfiguration", }, { - AccessLevel: "Write", - Description: "Grants permission to delete events for the specified event type", - Privilege: "DeleteEventsByEventType", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type*", - }, + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image/${ImageName}/${ImageVersion}/${ImageBuildVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "image", }, { - AccessLevel: "Write", - Description: "Grants permission to remove a SageMaker model from Amazon Fraud Detector. You can remove an Amazon SageMaker model if it is not associated with a detector version", - Privilege: "DeleteExternalModel", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "external-model*", - }, + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image/${ImageName}/${ImageVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "imageVersion", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image-recipe/${ImageRecipeName}/${ImageRecipeVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "imageRecipe", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:container-recipe/${ContainerRecipeName}/${ContainerRecipeVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "containerRecipe", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image-pipeline/${ImagePipelineName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "imagePipeline", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:infrastructure-configuration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "infrastructureConfiguration", + }, + { + Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", + ConditionKeys: []string{}, + Resource: "kmsKey", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:lifecycle-execution/${LifecycleExecutionId}", + ConditionKeys: []string{}, + Resource: "lifecycleExecution", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:lifecycle-policy/${LifecyclePolicyName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "lifecyclePolicy", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow/${WorkflowType}/${WorkflowName}/${WorkflowVersion}/${WorkflowBuildVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "workflow", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow/${WorkflowType}/${WorkflowName}/${WorkflowVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "workflowVersion", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow-execution/${WorkflowExecutionId}", + ConditionKeys: []string{}, + Resource: "workflowExecution", + }, + { + Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow-step-execution/${WorkflowStepExecutionId}", + ConditionKeys: []string{}, + Resource: "workflowStepExecution", }, + }, + ServiceName: "Amazon EC2 Image Builder", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "importexport", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID", - Privilege: "DeleteLabel", + Description: "This action cancels a specified job. Only the job owner can cancel it. The action fails if the job has already started or is complete.", + Privilege: "CancelJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a list", - Privilege: "DeleteList", + Description: "This action initiates the process of scheduling an upload or download of your data.", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "list*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version", - Privilege: "DeleteModel", + AccessLevel: "Read", + Description: "This action generates a pre-paid shipping label that you will use to ship your device to AWS for processing.", + Privilege: "GetShippingLabel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version", - Privilege: "DeleteModelVersion", + AccessLevel: "Read", + Description: "This action returns information about a job, including where the job is in the processing pipeline, the status of the results, and the signature value associated with the job.", + Privilege: "GetStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-version*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an outcome. You cannot delete an outcome that is used in a rule version", - Privilege: "DeleteOutcome", + AccessLevel: "List", + Description: "This action returns the jobs associated with the requester.", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outcome*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version", - Privilege: "DeleteRule", + Description: "You use this action to change the parameters specified in the original manifest file by supplying a new manifest file.", + Privilege: "UpdateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Import Export Disk Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "inspector", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a variable. You cannot delete variables that are included in an event type in Amazon Fraud Detector", - Privilege: "DeleteVariable", + Description: "Grants permission to assign attributes (key and value pairs) to the findings that are specified by the ARNs of the findings", + Privilege: "AddAttributesToFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "variable*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all versions for a specified detector", - Privilege: "DescribeDetector", + AccessLevel: "Write", + Description: "Grants permission to create a new assessment target using the ARN of the resource group that is generated by CreateResourceGroup", + Privilege: "CreateAssessmentTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all of the model versions for the specified model type or for the specified model type and model ID. You can also get details for a single, specified model version", - Privilege: "DescribeModelVersions", + AccessLevel: "Write", + Description: "Grants permission to create an assessment template for the assessment target that is specified by the ARN of the assessment target", + Privilege: "CreateAssessmentTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the data validation report of a specific batch import job", - Privilege: "GetBatchImportJobValidationReport", + AccessLevel: "Write", + Description: "Grants permission to start the generation of an exclusions preview for the specified assessment template", + Privilege: "CreateExclusionsPreview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get all batch import jobs or a specific job if you specify a job ID", - Privilege: "GetBatchImportJobs", + AccessLevel: "Write", + Description: "Grants permission to create a resource group using the specified set of tags (key and value pairs) that are used to select the EC2 instances to be included in an Amazon Inspector assessment target", + Privilege: "CreateResourceGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get all batch prediction jobs or a specific job if you specify a job ID. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 1 and 50. To get the next page results, provide the pagination token from the GetBatchPredictionJobsResponse as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetBatchPredictionJobs", + AccessLevel: "Write", + Description: "Grants permission to delete the assessment run that is specified by the ARN of the assessment run", + Privilege: "DeleteAssessmentRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-prediction", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a specific event type DeleteEventsByEventType API execution status", - Privilege: "GetDeleteEventsByEventTypeStatus", + AccessLevel: "Write", + Description: "Grants permission to delete the assessment target that is specified by the ARN of the assessment target", + Privilege: "DeleteAssessmentTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a particular detector version", - Privilege: "GetDetectorVersion", + AccessLevel: "Write", + Description: "Grants permission to delete the assessment template that is specified by the ARN of the assessment template", + Privilege: "DeleteAssessmentTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector-version*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get all detectors or a single detector if a detectorId is specified. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetDetectorsResponse as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetDetectors", + AccessLevel: "Read", + Description: "Grants permission to describe the assessment runs that are specified by the ARNs of the assessment runs", + Privilege: "DescribeAssessmentRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get all entity types or a specific entity type if a name is specified. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetEntityTypesResponse as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetEntityTypes", + AccessLevel: "Read", + Description: "Grants permission to describe the assessment targets that are specified by the ARNs of the assessment targets", + Privilege: "DescribeAssessmentTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-type", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the details of the specified event", - Privilege: "GetEvent", + Description: "Grants permission to describe the assessment templates that are specified by the ARNs of the assessment templates", + Privilege: "DescribeAssessmentTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to evaluate an event against a detector version. If a version ID is not provided, the detector’s (ACTIVE) version is used", - Privilege: "GetEventPrediction", + Description: "Grants permission to describe the IAM role that enables Amazon Inspector to access your AWS account", + Privilege: "DescribeCrossAccountAccessRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get more details of a particular prediction", - Privilege: "GetEventPredictionMetadata", + Description: "Grants permission to describe the exclusions that are specified by the exclusions' ARNs", + Privilege: "DescribeExclusions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the findings that are specified by the ARNs of the findings", + Privilege: "DescribeFindings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get all event types or a specific event type if name is provided. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetEventTypesResponse as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetEventTypes", + AccessLevel: "Read", + Description: "Grants permission to describe the resource groups that are specified by the ARNs of the resource groups", + Privilege: "DescribeResourceGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the details for one or more Amazon SageMaker models that have been imported into the service. This is a paginated API. If you provide a null maxResults, this actions retrieves a maximum of 10 records per page. If you provide a maxResults, the value must be between 5 and 10. To get the next page results, provide the pagination token from the GetExternalModelsResult as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetExternalModels", + AccessLevel: "Read", + Description: "Grants permission to describe the rules packages that are specified by the ARNs of the rules packages", + Privilege: "DescribeRulesPackages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "external-model", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the encryption key if a Key Management Service (KMS) customer master key (CMK) has been specified to be used to encrypt content in Amazon Fraud Detector", - Privilege: "GetKMSEncryptionKey", + Description: "Grants permission to produce an assessment report that includes detailed and comprehensive results of a specified assessment run", + Privilege: "GetAssessmentReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -124212,308 +166442,201 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get all labels or a specific label if name is provided. This is a paginated API. If you provide a null maxResults, this action retrieves a maximum of 50 records per page. If you provide a maxResults, the value must be between 10 and 50. To get the next page results, provide the pagination token from the GetGetLabelsResponse as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetLabels", + AccessLevel: "Read", + Description: "Grants permission to retrieve the exclusions preview (a list of ExclusionPreview objects) specified by the preview token", + Privilege: "GetExclusionsPreview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get elements of a list", - Privilege: "GetListElements", + Description: "Grants permission to get information about the data that is collected for the specified assessment run", + Privilege: "GetTelemetryMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "list*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get metadata about lists", - Privilege: "GetListsMetadata", + Description: "Grants permission to list the agents of the assessment runs that are specified by the ARNs of the assessment runs", + Privilege: "ListAssessmentRunAgents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "list", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the details of the specified model version", - Privilege: "GetModelVersion", + AccessLevel: "List", + Description: "Grants permission to list the assessment runs that correspond to the assessment templates that are specified by the ARNs of the assessment templates", + Privilege: "ListAssessmentRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-version*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get one or more models. Gets all models for the AWS account if no model type and no model id provided. Gets all models for the AWS account and model type, if the model type is specified but model id is not provided. Gets a specific model if (model type, model id) tuple is specified", - Privilege: "GetModels", + Description: "Grants permission to list the ARNs of the assessment targets within this AWS account", + Privilege: "ListAssessmentTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get one or more outcomes. This is a paginated API. If you provide a null maxResults, this actions retrieves a maximum of 100 records per page. If you provide a maxResults, the value must be between 50 and 100. To get the next page results, provide the pagination token from the GetOutcomesResult as part of your request. A null pagination token fetches the records from the beginning", - Privilege: "GetOutcomes", + Description: "Grants permission to list the assessment templates that correspond to the assessment targets that are specified by the ARNs of the assessment targets", + Privilege: "ListAssessmentTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outcome", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get all rules for a detector (paginated) if ruleId and ruleVersion are not specified. Gets all rules for the detector and the ruleId if present (paginated). Gets a specific rule if both the ruleId and the ruleVersion are specified", - Privilege: "GetRules", + Description: "Grants permission to list all the event subscriptions for the assessment template that is specified by the ARN of the assessment template", + Privilege: "ListEventSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get all of the variables or the specific variable. This is a paginated API. Providing null maxSizePerPage results in retrieving maximum of 100 records per page. If you provide maxSizePerPage the value must be between 50 and 100. To get the next page result, a provide a pagination token from GetVariablesResult as part of your request. Null pagination token fetches the records from the beginning", - Privilege: "GetVariables", + Description: "Grants permission to list exclusions that are generated by the assessment run", + Privilege: "ListExclusions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "variable", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of past predictions", - Privilege: "ListEventPredictions", + Description: "Grants permission to list findings that are generated by the assessment runs that are specified by the ARNs of the assessment runs", + Privilege: "ListFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all available Amazon Inspector rules packages", + Privilege: "ListRulesPackages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all tags associated with the resource. This is a paginated API. To get the next page results, provide the pagination token from the response as part of your request. A null pagination token fetches the records from the beginning", + Description: "Grants permission to list all tags associated with an assessment template", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batch-prediction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-type", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "external-model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "list", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "outcome", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to preview the agents installed on the EC2 instances that are part of the specified assessment target", + Privilege: "PreviewAgents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "variable", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a detector", - Privilege: "PutDetector", + Description: "Grants permission to register the IAM role that Amazon Inspector uses to list your EC2 instances at the start of the assessment run or when you call the PreviewAgents action", + Privilege: "RegisterCrossAccountAccessRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an entity type. An entity represents who is performing the event. As part of a fraud prediction, you pass the entity ID to indicate the specific entity who performed the event. An entity type classifies the entity. Example classifications include customer, merchant, or account", - Privilege: "PutEntityType", + Description: "Grants permission to remove entire attributes (key and value pairs) from the findings that are specified by the ARNs of the findings where an attribute with the specified key exists", + Privilege: "RemoveAttributesFromFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity-type*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update an event type. An event is a business activity that is evaluated for fraud risk. With Amazon Fraud Detector, you generate fraud predictions for events. An event type defines the structure for an event sent to Amazon Fraud Detector. This includes the variables sent as part of the event, the entity performing the event (such as a customer), and the labels that classify the event. Example event types include online payment transactions, account registrations, and authentications", - Privilege: "PutEventType", + AccessLevel: "Tagging", + Description: "Grants permission to set tags (key and value pairs) to the assessment template that is specified by the ARN of the assessment template", + Privilege: "SetTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an Amazon SageMaker model endpoint. You can also use this action to update the configuration of the model endpoint, including the IAM role and/or the mapped variables", - Privilege: "PutExternalModel", + Description: "Grants permission to start the assessment run specified by the ARN of the assessment template", + Privilege: "StartAssessmentRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "external-model*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify the Key Management Service (KMS) customer master key (CMK) to be used to encrypt content in Amazon Fraud Detector", - Privilege: "PutKMSEncryptionKey", + Description: "Grants permission to stop the assessment run that is specified by the ARN of the assessment run", + Privilege: "StopAssessmentRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -124524,291 +166647,205 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update label. A label classifies an event as fraudulent or legitimate. Labels are associated with event types and used to train supervised machine learning models in Amazon Fraud Detector", - Privilege: "PutLabel", + Description: "Grants permission to enable the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic", + Privilege: "SubscribeToEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an outcome", - Privilege: "PutOutcome", + Description: "Grants permission to disable the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic", + Privilege: "UnsubscribeFromEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outcome*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send event", - Privilege: "SendEvent", + Description: "Grants permission to update the assessment target that is specified by the ARN of the assessment target", + Privilege: "UpdateAssessmentTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Inspector", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "inspector-scan", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Grants permission to assign tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to scan the customer provided SBOM and return vulnerabilities detected within", + Privilege: "ScanSbom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batch-prediction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-type", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "external-model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "list", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "outcome", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "variable", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon InspectorScan", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "inspector2", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate an account with an Amazon Inspector administrator account", + Privilege: "AssociateMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batch-import", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batch-prediction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detector-version", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity-type", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-type", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "external-model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "list", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about Amazon Inspector accounts for an account", + Privilege: "BatchGetAccountStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve code snippet information about one or more code vulnerability findings", + Privilege: "BatchGetCodeSnippet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to let a customer get enhanced vulnerability intelligence details for findings", + Privilege: "BatchGetFindingDetails", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outcome", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve free trial period eligibility about Amazon Inspector accounts for an account", + Privilege: "BatchGetFreeTrialInfo", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to delegated administrator to retrieve ec2 deep inspection status of member accounts", + Privilege: "BatchGetMemberEc2DeepInspectionStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "variable", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a detector version. The detector version attributes that you can update include models, external model endpoints, rules, rule execution mode, and description. You can only update a DRAFT detector version", - Privilege: "UpdateDetectorVersion", + Description: "Grants permission to update ec2 deep inspection status by delegated administrator for its associated member accounts", + Privilege: "BatchUpdateMemberEc2DeepInspectionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "external-model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the detector version's description. You can update the metadata for any detector version (DRAFT, ACTIVE, or INACTIVE)", - Privilege: "UpdateDetectorVersionMetadata", + Description: "Grants permission to cancel the generation of a findings report", + Privilege: "CancelFindingsReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector-version*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the detector version’s status. You can perform the following promotions or demotions using UpdateDetectorVersionStatus: DRAFT to ACTIVE, ACTIVE to INACTIVE, and INACTIVE to ACTIVE", - Privilege: "UpdateDetectorVersionStatus", + Description: "Grants permission to cancel the generation of an SBOM report", + Privilege: "CancelSbomExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector-version*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing event record's label value", - Privilege: "UpdateEventLabel", + Description: "Grants permission to create and define the settings for a CIS scan configuration", + Privilege: "CreateCisScanConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-type*", + ResourceType: "CIS Scan Configuration*", }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -124819,17 +166856,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a list", - Privilege: "UpdateList", + Description: "Grants permission to create and define the settings for a findings filter", + Privilege: "CreateFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "list*", + ResourceType: "Filter*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -124838,30 +166876,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a model. You can update the description attribute using this action", - Privilege: "UpdateModel", + Description: "Grants permission to request the generation of a findings report", + Privilege: "CreateFindingsReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a model version. Updating a model version retrains an existing model version using updated training data and produces a new minor version of the model. You can update the training data set location and data access role attributes using this action. This action creates and trains a new minor version of the model, for example version 1.01, 1.02, 1.03", - Privilege: "UpdateModelVersion", + Description: "Grants permission to request the generation of an SBOM report", + Privilege: "CreateSbomExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a CIS scan configuration", + Privilege: "DeleteCisScanConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "CIS Scan Configuration*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -124870,213 +166919,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the status of a model version", - Privilege: "UpdateModelVersionStatus", + Description: "Grants permission to delete a findings filter", + Privilege: "DeleteFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-version*", + ResourceType: "Filter*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a rule's metadata. The description attribute can be updated", - Privilege: "UpdateRuleMetadata", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the Amazon Inspector configuration settings for an AWS organization", + Privilege: "DescribeOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a rule version resulting in a new rule version. Updates a rule version resulting in a new rule version (version 1, 2, 3 ...)", - Privilege: "UpdateRuleVersion", + Description: "Grants permission to disable an Amazon Inspector account", + Privilege: "Disable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a variable", - Privilege: "UpdateVariable", + Description: "Grants permission to disable an account as the delegated Amazon Inspector administrator account for an AWS organization", + Privilege: "DisableDelegatedAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "variable*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:batch-prediction/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "batch-prediction", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:detector/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "detector", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:detector-version/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "detector-version", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:entity-type/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "entity-type", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:external-model/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "external-model", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:event-type/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "event-type", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:label/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "label", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:model/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:model-version/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model-version", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:outcome/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "outcome", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:rule/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rule", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:variable/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "variable", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:batch-import/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "batch-import", - }, - { - Arn: "arn:${Partition}:frauddetector:${Region}:${Account}:list/${ResourcePath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "list", - }, - }, - ServiceName: "Amazon Fraud Detector", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tag key present in the request that the user makes to Amazon FreeRTOS", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key component attached to an Amazon FreeRTOS resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names associated with the resource in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "freertos", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a software configuration", - Privilege: "CreateSoftwareConfiguration", + Description: "Grants permission to an Amazon Inspector administrator account to disassociate from an Inspector member account", + Privilege: "DisassociateMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a subscription for FreeRTOS extended maintenance plan (EMP)", - Privilege: "CreateSubscription", + Description: "Grants permission to enable and specify the configuration settings for a new Amazon Inspector account", + Privilege: "Enable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -125084,20 +166991,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the software configuration", - Privilege: "DeleteSoftwareConfiguration", + Description: "Grants permission to enable an account as the delegated Amazon Inspector administrator account for an AWS organization", + Privilege: "EnableDelegatedAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the hardware platform", - Privilege: "DescribeHardwarePlatform", + Description: "Grants permission to retrieve a report containing information about completed CIS scans", + Privilege: "GetCisScanReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125107,33 +167014,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the software configuration", - Privilege: "DescribeSoftwareConfiguration", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all details pertaining to one CIS scan and one targeted resource", + Privilege: "GetCisScanResultDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describes the subscription for FreeRTOS extended maintenance plan (EMP)", - Privilege: "DescribeSubscription", + Description: "Grants permission to retrieve information about the Amazon Inspector configuration settings for an AWS account", + Privilege: "GetConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscription*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get URL for sotware patch-release, patch-diff and release notes under FreeRTOS extended maintenance plan (EMP)", - Privilege: "GetEmpPatchUrl", + Description: "Grants permission to retrieve information about the Amazon Inspector administrator account for an account", + Privilege: "GetDelegatedAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125144,8 +167051,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the URL for Amazon FreeRTOS software download", - Privilege: "GetSoftwareURL", + Description: "Grants permission to retrieve ec2 deep inspection configuration for standalone accounts, delegated administrator and member account", + Privilege: "GetEc2DeepInspectionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125156,8 +167063,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the URL for Amazon FreeRTOS software download based on the configuration", - Privilege: "GetSoftwareURLForConfiguration", + Description: "Grants permission to retrieve information about the KMS key used to encrypt code snippets with", + Privilege: "GetEncryptionKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125168,8 +167075,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to fetch the subscription billing amount for FreeRTOS extended maintenance plan (EMP)", - Privilege: "GetSubscriptionBillingAmount", + Description: "Grants permission to retrieve status for a requested findings report", + Privilege: "GetFindingsReportStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125179,9 +167086,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to lists versions of AmazonFreeRTOS", - Privilege: "ListFreeRTOSVersions", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an account that's associated with an Amazon Inspector administrator account", + Privilege: "GetMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125191,9 +167098,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the hardware platforms", - Privilege: "ListHardwarePlatforms", + AccessLevel: "Read", + Description: "Grants permission to retrieve a requested SBOM report", + Privilege: "GetSbomExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125204,8 +167111,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the hardware vendors", - Privilege: "ListHardwareVendors", + Description: "Grants permission to retrieve feature configuration permissions associated with an Amazon Inspector account within an organization", + Privilege: "ListAccountPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125216,8 +167123,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to lists the software configurations", - Privilege: "ListSoftwareConfigurations", + Description: "Grants permission to retrieve information about all CIS scan configurations", + Privilege: "ListCisScanConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125228,8 +167135,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list software patches of subscription for FreeRTOS extended maintenance plan (EMP)", - Privilege: "ListSoftwarePatches", + Description: "Grants permission to retrieve information about all checks pertaining to one CIS scan", + Privilege: "ListCisScanResultsAggregatedByChecks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125240,8 +167147,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the subscription emails for FreeRTOS extended maintenance plan (EMP)", - Privilege: "ListSubscriptionEmails", + Description: "Grants permission to retrieve information about all resources pertaining to one CIS scan", + Privilege: "ListCisScanResultsAggregatedByTargetResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125252,8 +167159,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the subscriptions for FreeRTOS extended maintenance plan (EMP)", - Privilege: "ListSubscriptions", + Description: "Grants permission to retrieve information about completed CIS scans", + Privilege: "ListCisScans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125263,9 +167170,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update list of subscription email address for FreeRTOS extended maintenance plan (EMP)", - Privilege: "UpdateEmailRecipients", + AccessLevel: "List", + Description: "Grants permission to retrieve the types of statistics Amazon Inspector can generate for resources Inspector monitors", + Privilege: "ListCoverage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125275,21 +167182,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the software configuration", - Privilege: "UpdateSoftwareConfiguration", + AccessLevel: "List", + Description: "Grants permission to retrieve statistical data and other information about the resources Amazon Inspector monitors", + Privilege: "ListCoverageStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to verify the email for FreeRTOS extended maintenance plan (EMP)", - Privilege: "VerifyEmail", + AccessLevel: "List", + Description: "Grants permission to retrieve information about the delegated Amazon Inspector administrator account for an AWS organization", + Privilege: "ListDelegatedAdminAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125298,33 +167205,10 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:freertos:${Region}:${Account}:configuration/${ConfigurationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "configuration", - }, - { - Arn: "arn:${Partition}:freertos:${Region}:${Account}:subscription/${SubscriptionID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "subscription", - }, - }, - ServiceName: "Amazon FreeRTOS", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "freetier", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to get free tier alert preference (email address)", - Privilege: "GetFreeTierAlertPreference", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all findings filters", + Privilege: "ListFilters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125334,9 +167218,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get free tier usage limits and MTD usage status", - Privilege: "GetFreeTierUsage", + AccessLevel: "List", + Description: "Grants permission to retrieve statistical data and other information about Amazon Inspector findings", + Privilege: "ListFindingAggregations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125346,9 +167230,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to set free tier alert preference (email address)", - Privilege: "PutFreeTierAlertPreference", + AccessLevel: "List", + Description: "Grants permission to retrieve a subset of information about one or more findings", + Privilege: "ListFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125357,125 +167241,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Free Tier", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "fsx:IsBackupCopyDestination", - Description: "Filters access by whether the backup is a destination backup for a CopyBackup operation", - Type: "Bool", - }, - { - Condition: "fsx:IsBackupCopySource", - Description: "Filters access by whether the backup is a source backup for a CopyBackup operation", - Type: "Bool", - }, - { - Condition: "fsx:NfsDataRepositoryAuthenticationEnabled", - Description: "Filters access by NFS data repositories which support authentication", - Type: "Bool", - }, - { - Condition: "fsx:NfsDataRepositoryEncryptionInTransitEnabled", - Description: "Filters access by NFS data repositories which support encryption-in-transit", - Type: "Bool", - }, - { - Condition: "fsx:ParentVolumeId", - Description: "Filters access by the containing parent volume for mutating volume operations", - Type: "String", - }, - { - Condition: "fsx:StorageVirtualMachineId", - Description: "Filters access by the containing storage virtual machine for a volume for mutating volume operations", - Type: "String", - }, - }, - Prefix: "fsx", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate a File Gateway instance with an Amazon FSx for Windows File Server file system", - Privilege: "AssociateFileGateway", + AccessLevel: "List", + Description: "Grants permission to retrieve information about the Amazon Inspector member accounts that are associated with an Inspector administrator account", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate DNS aliases with an Amazon FSx for Windows File Server file system", - Privilege: "AssociateFileSystemAliases", + AccessLevel: "Read", + Description: "Grants permission to retrieve the tags for an Amazon Inspector resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to allow deletion of an FSx for ONTAP SnapLock Enterprise volume that contains WORM (write once, read many) files with active retention periods", - Privilege: "BypassSnaplockEnterpriseRetention", + AccessLevel: "List", + Description: "Grants permission to retrieve aggregated usage data for an account", + Privilege: "ListUsageTotals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a data repository task", - Privilege: "CancelDataRepositoryTask", + Description: "Grants permission to let a customer reset to use an Amazon-owned KMS key to encrypt code snippets with", + Privilege: "ResetEncryptionKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to copy a backup", - Privilege: "CopyBackup", + AccessLevel: "Read", + Description: "Grants permission to list Amazon Inspector coverage details for a specific vulnerability", + Privilege: "SearchVulnerabilities", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "backup*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -125483,48 +167303,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an existing volume by using a snapshot from another Amazon FSx for OpenZFS file system", - Privilege: "CopySnapshotAndUpdateVolume", + Description: "Grants permission to send CIS health for a CIS scan", + Privilege: "SendCisSessionHealth", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new backup of an Amazon FSx file system or an Amazon FSx volume", - Privilege: "CreateBackup", + Description: "Grants permission to send CIS telemetry for a CIS scan", + Privilege: "SendCisSessionTelemetry", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "backup*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "file-system", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "volume", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -125532,91 +167327,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new data respository association for an Amazon FSx for Lustre file system", - Privilege: "CreateDataRepositoryAssociation", + Description: "Grants permission to start a CIS scan session", + Privilege: "StartCisSession", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "association*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new data respository task for an Amazon FSx for Lustre file system", - Privilege: "CreateDataRepositoryTask", + Description: "Grants permission to stop a CIS scan session", + Privilege: "StopCisSession", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "file-system*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new, empty, Amazon file cache", - Privilege: "CreateFileCache", + AccessLevel: "Tagging", + Description: "Grants permission to add or update the tags for an Amazon Inspector resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "ec2:GetSecurityGroupsForVpc", - "fsx:CreateDataRepositoryAssociation", - "fsx:TagResource", - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - "s3:ListBucket", + ConditionKeys: []string{ + "inspector2:Cis Scan Configuration", }, - ResourceType: "file-cache*", + DependentActions: []string{}, + ResourceType: "CIS Scan Configuration", }, { ConditionKeys: []string{ - "fsx:NfsDataRepositoryEncryptionInTransitEnabled", - "fsx:NfsDataRepositoryAuthenticationEnabled", + "inspector2:Filter", }, DependentActions: []string{}, - ResourceType: "association", + ResourceType: "Filter", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -125624,49 +167380,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new, empty, Amazon FSx file system", - Privilege: "CreateFileSystem", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an Amazon Inspector resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:GetSecurityGroupsForVpc", - "fsx:TagResource", - }, - ResourceType: "file-system*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "inspector2:Cis Scan Configuration", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "CIS Scan Configuration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon FSx file system from an existing backup", - Privilege: "CreateFileSystemFromBackup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:GetSecurityGroupsForVpc", - "fsx:TagResource", + ConditionKeys: []string{ + "inspector2:Filter", }, - ResourceType: "backup*", - }, - { - ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "Filter", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -125676,25 +167410,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new snapshot on a volume", - Privilege: "CreateSnapshot", + Description: "Grants permission to update the settings for a CIS scan configuration", + Privilege: "UpdateCisScanConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "snapshot*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "CIS Scan Configuration*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -125703,87 +167429,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new storage virtual machine in an Amazon FSx for Ontap file system", - Privilege: "CreateStorageVirtualMachine", + Description: "Grants permission to update information about the Amazon Inspector configuration settings for an AWS account", + Privilege: "UpdateConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "file-system*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new volume", - Privilege: "CreateVolume", + Description: "Grants permission to update ec2 deep inspection configuration by delegated administrator, member and standalone account", + Privilege: "UpdateEc2DeepInspectionConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "volume*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "fsx:StorageVirtualMachineId", - "fsx:ParentVolumeId", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new volume from backup", - Privilege: "CreateVolumeFromBackup", + Description: "Grants permission to let a customer use a KMS key to encrypt code snippets with", + Privilege: "UpdateEncryptionKey", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "backup*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the settings for a findings filter", + Privilege: "UpdateFilter", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "Filter*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "fsx:StorageVirtualMachineId", }, DependentActions: []string{}, ResourceType: "", @@ -125792,44 +167485,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a backup, deleting its contents. After deletion, the backup no longer exists, and its data is no longer available", - Privilege: "DeleteBackup", + Description: "Grants permission to update ec2 deep inspection configuration by delegated administrator for its associated member accounts", + Privilege: "UpdateOrgEc2DeepInspectionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a data repository association", - Privilege: "DeleteDataRepositoryAssociation", + Description: "Grants permission to update Amazon Inspector configuration settings for an AWS organization", + Privilege: "UpdateOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:inspector2:${Region}:${Account}:owner/${OwnerId}/filter/${FilterId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Filter", + }, + { + Arn: "arn:${Partition}:inspector2:${Region}:${Account}:finding/${FindingId}", + ConditionKeys: []string{}, + Resource: "Finding", + }, + { + Arn: "arn:${Partition}:inspector2:${Region}:${Account}:owner/${OwnerId}/cis-configuration/${CISScanConfigurationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "CIS Scan Configuration", + }, + }, + ServiceName: "Amazon Inspector2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "internetmonitor", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a file cache, deleting its contents", - Privilege: "DeleteFileCache", + Description: "Grants permission to create a monitor", + Privilege: "CreateMonitor", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:DeleteDataRepositoryAssociation", - }, - ResourceType: "file-cache*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", + ResourceType: "Monitor*", }, { ConditionKeys: []string{ @@ -125843,113 +167573,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a file system, deleting its contents and any existing automatic backups of the file system", - Privilege: "DeleteFileSystem", + Description: "Grants permission to delete a monitor", + Privilege: "DeleteMonitor", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:CreateBackup", - "fsx:TagResource", - }, - ResourceType: "file-system*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Monitor*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Required to manage cross-account sharing of FSx volumes through AWS Resource Access Manager (RAM). PutResourcePolicy and GetResourcePolicy are also required", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to get information about a health event for a specified monitor", + Privilege: "GetHealthEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "Monitor*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a snapshot on a volume", - Privilege: "DeleteSnapshot", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified internet event", + Privilege: "GetInternetEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "InternetEvent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a storage virtual machine, deleting its contents", - Privilege: "DeleteStorageVirtualMachine", + AccessLevel: "Read", + Description: "Grants permission to get information about a monitor", + Privilege: "GetMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine*", + ResourceType: "Monitor*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a volume, deleting its contents and any existing automatic backups of the volume", - Privilege: "DeleteVolume", + AccessLevel: "Read", + Description: "Grants permission to get results for a data query for a monitor", + Privilege: "GetQueryResults", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "fsx:TagResource", - }, - ResourceType: "volume*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "fsx:StorageVirtualMachineId", - "fsx:ParentVolumeId", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Monitor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the File Gateway instances associated with an Amazon FSx for Windows File Server file system", - Privilege: "DescribeAssociatedFileGateways", + Description: "Grants permission to get status for a data query for a monitor", + Privilege: "GetQueryStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "Monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all backups owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeBackups", + AccessLevel: "Write", + Description: "Grants permission to share Internet Monitor resources with a monitoring account", + Privilege: "Link", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125959,21 +167656,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all data repository associations owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeDataRepositoryAssociations", + AccessLevel: "List", + Description: "Grants permission to list all health events for a monitor", + Privilege: "ListHealthEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all data repository tasks owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeDataRepositoryTasks", + AccessLevel: "List", + Description: "Grants permission to list all internet events", + Privilege: "ListInternetEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125983,9 +167680,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all file caches owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeFileCaches", + AccessLevel: "List", + Description: "Grants permission to list all monitors in an account and their statuses", + Privilege: "ListMonitors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -125996,327 +167693,560 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the description of all DNS aliases owned by your Amazon FSx for Windows File Server file system", - Privilege: "DescribeFileSystemAliases", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "Monitor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all file systems owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeFileSystems", + Description: "Grants permission to start a data query for a monitor", + Privilege: "StartQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Monitor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the descriptions of whether FSx route table updates from participant accounts are allowed in your account", - Privilege: "DescribeSharedVpcConfiguration", + Description: "Grants permission to stop a data query for a monitor", + Privilege: "StopQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all snapshots owned by your AWS account in the AWS Region of the endpoint you're calling", - Privilege: "DescribeSnapshots", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Monitor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all storage virtual machines owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeStorageVirtualMachines", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Monitor*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the descriptions of all volumes owned by your AWS account in the AWS Region of the endpoint that you're calling", - Privilege: "DescribeVolumes", + AccessLevel: "Write", + Description: "Grants permission to update a monitor", + Privilege: "UpdateMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Monitor*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to disassociate a File Gateway instance from an Amazon FSx for Windows File Server file system", - Privilege: "DisassociateFileGateway", + Arn: "arn:${Partition}:internetmonitor:${Region}:${Account}:monitor/${MonitorName}/health-event/${EventId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "HealthEvent", + }, + { + Arn: "arn:${Partition}:internetmonitor:${Region}:${Account}:monitor/${MonitorName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Monitor", + }, + { + Arn: "arn:${Partition}:internetmonitor::${Account}:internet-event/${InternetEventId}", + ConditionKeys: []string{}, + Resource: "InternetEvent", + }, + }, + ServiceName: "Amazon CloudWatch Internet Monitor", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "invoicing", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to get invoice profile details for an account in your organization", + Privilege: "BatchGetInvoiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate file system aliases with an Amazon FSx for Windows File Server file system", - Privilege: "DisassociateFileSystemAliases", + Description: "Grants permission to create an invoice unit for your organization", + Privilege: "CreateInvoiceUnit", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Required to manage cross-account sharing of FSx volumes through AWS Resource Access Manager (RAM). PutResourcePolicy and DeleteResourcePolicy are also required", - Privilege: "GetResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to update an invoice unit for your organization", + Privilege: "DeleteInvoiceUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "invoice-unit*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for an Amazon FSx resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get Invoice Email Delivery Preferences", + Privilege: "GetInvoiceEmailDeliveryPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "backup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get Invoice PDF", + Privilege: "GetInvoicePDF", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-cache", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get invoice units for your organization", + Privilege: "GetInvoiceUnit", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "invoice-unit*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get Invoice summary information for your account or linked account", + Privilege: "ListInvoiceSummaries", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list invoice units for your organization", + Privilege: "ListInvoiceUnits", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "invoice-unit*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "volume", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to manage backup principal associations through AWS Backup", - Privilege: "ManageBackupPrincipalAssociations", + AccessLevel: "Write", + Description: "Grants permission to put Invoice Email Delivery Preferences", + Privilege: "PutInvoiceEmailDeliveryPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Required to manage cross-account sharing of FSx volumes through AWS Resource Access Manager (RAM). DeleteResourcePolicy and GetResourcePolicy are also required", - Privilege: "PutResourcePolicy", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "invoice-unit*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to release file system NFS V3 locks", - Privilege: "ReleaseFileSystemNfsV3Locks", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "invoice-unit*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore volume state from a snapshot", - Privilege: "RestoreVolumeFromSnapshot", + Description: "Grants permission to update an invoice unit for your organization", + Privilege: "UpdateInvoiceUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "invoice-unit*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:invoicing::${Account}:invoice-unit/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "invoice-unit", + }, + }, + ServiceName: "AWS Invoicing Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key that is present in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key component of a tag associated to the IoT resource in the request", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys associated to the IoT resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "iot:ClientMode", + Description: "Filters access by the mode of the client for IoT Tunnel", + Type: "String", + }, + { + Condition: "iot:CommandExecutionParameterBoolean/${CommandParameterName}", + Description: "Filters access by the command parameter name and boolean value", + Type: "Bool", + }, + { + Condition: "iot:CommandExecutionParameterNumber/${CommandParameterName}", + Description: "Filters access by the command parameter name and numeric value", + Type: "Numeric", + }, + { + Condition: "iot:CommandExecutionParameterString/${CommandParameterName}", + Description: "Filters access by the command parameter name and string value", + Type: "String", + }, + { + Condition: "iot:Delete", + Description: "Filters access by a flag indicating whether or not to also delete an IoT Tunnel immediately when making iot:CloseTunnel request", + Type: "Bool", + }, + { + Condition: "iot:DomainName", + Description: "Filters access by based on the domain name of an IoT DomainConfiguration", + Type: "String", + }, + { + Condition: "iot:ThingGroupArn", + Description: "Filters access by a list of IoT Thing Group ARNs that the destination IoT Thing belongs to for an IoT Tunnel", + Type: "ArrayOfARN", + }, + { + Condition: "iot:TunnelDestinationService", + Description: "Filters access by a list of destination services for an IoT Tunnel", + Type: "ArrayOfString", + }, + { + Condition: "iot:thingArn", + Description: "Filters access by the ARN of an IoT Thing", + Type: "ARN", + }, + }, + Prefix: "iot", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to start misconfigured state recovery", - Privilege: "StartMisconfiguredStateRecovery", + Description: "Grants permission to accept a pending certificate transfer", + Privilege: "AcceptCertificateTransfer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "cert*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Amazon FSx resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to add a thing to the specified billing group", + Privilege: "AddThingToBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", + ResourceType: "billinggroup*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", + ResourceType: "thing*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a thing to the specified thing group", + Privilege: "AddThingToThingGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-cache", + ResourceType: "thing*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "thinggroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate SBOM files to a package version", + Privilege: "AssociateSbomWithPackageVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:GetIndexingConfiguration", + }, + ResourceType: "packageversion*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a group with a continuous job", + Privilege: "AssociateTargetsWithJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine", + ResourceType: "job*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "thing*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "thinggroup*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from an Amazon FSx resource", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a policy to the specified target", + Privilege: "AttachPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", + ResourceType: "cert", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "backup", + ResourceType: "thinggroup", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to attach the specified policy to the specified principal (certificate or other credential)", + Privilege: "AttachPrincipalPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-cache", + ResourceType: "cert", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a Device Defender security profile with a thing group or with this account", + Privilege: "AttachSecurityProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system", + ResourceType: "securityprofile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "custommetric", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine", + ResourceType: "dimension", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", + ResourceType: "thinggroup", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach the specified principal to the specified thing", + Privilege: "AttachThingPrincipal", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume", + ResourceType: "cert", }, { ConditionKeys: []string{ - "aws:TagKeys", + "iot:thingArn", }, DependentActions: []string{}, ResourceType: "", @@ -126325,44 +168255,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update data repository association configuration", - Privilege: "UpdateDataRepositoryAssociation", + Description: "Grants permission to cancel a mitigation action task that is in progress", + Privilege: "CancelAuditMitigationActionsTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update file cache configuration", - Privilege: "UpdateFileCache", + Description: "Grants permission to cancel an audit that is in progress. The audit can be either scheduled or on-demand", + Privilege: "CancelAuditTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-cache*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update file system configuration", - Privilege: "UpdateFileSystem", + Description: "Grants permission to cancel a pending transfer for the specified certificate", + Privilege: "CancelCertificateTransfer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "file-system*", + ResourceType: "cert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable FSx route table updates from participant accounts in your account", - Privilege: "UpdateSharedVpcConfiguration", + Description: "Grants permission to cancel a Device Defender ML Detect mitigation action", + Privilege: "CancelDetectMitigationActionsTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -126373,352 +168303,382 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update snapshot configuration", - Privilege: "UpdateSnapshot", + Description: "Grants permission to cancel a job", + Privilege: "CancelJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update storage virtual machine configuration", - Privilege: "UpdateStorageVirtualMachine", + Description: "Grants permission to cancel a job execution on a particular device", + Privilege: "CancelJobExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storage-virtual-machine*", + ResourceType: "job*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update volume configuration", - Privilege: "UpdateVolume", + Description: "Grants permission to clear the default authorizer", + Privilege: "ClearDefaultAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "volume*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to close a tunnel", + Privilege: "CloseTunnel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tunnel*", }, { ConditionKeys: []string{ - "fsx:StorageVirtualMachineId", - "fsx:ParentVolumeId", + "iot:Delete", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:file-system/${FileSystemId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "file-system", - }, - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:file-cache/${FileCacheId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "file-cache", - }, - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:backup/${BackupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "backup", - }, - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:storage-virtual-machine/${FileSystemId}/${StorageVirtualMachineId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "storage-virtual-machine", - }, - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:task/${TaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "task", - }, - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:association/${FileSystemIdOrFileCacheId}/${DataRepositoryAssociationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "association", - }, - { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:volume/${FileSystemId}/${VolumeId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "volume", - }, { - Arn: "arn:${Partition}:fsx:${Region}:${Account}:snapshot/${VolumeId}/${SnapshotId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to confirm a http url TopicRuleDestinationDestination", + Privilege: "ConfirmTopicRuleDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "destination*", + }, }, - Resource: "snapshot", - }, - }, - ServiceName: "Amazon FSx", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", }, - }, - Prefix: "gamelift", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to register player acceptance or rejection of a proposed FlexMatch match", - Privilege: "AcceptMatch", + Description: "Grants permission to connect as the specified client", + Privilege: "Connect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "client*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to locate and reserve a game server to host a new game session", - Privilege: "ClaimGameServer", + Description: "Grants permission to create a Device Defender audit suppression", + Privilege: "CreateAuditSuppression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to define a new alias for a fleet", - Privilege: "CreateAlias", + Description: "Grants permission to create an authorizer", + Privilege: "CreateAuthorizer", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "authorizer*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new game build using files stored in an Amazon S3 bucket", - Privilege: "CreateBuild", + Description: "Grants permission to create a billing group", + Privilege: "CreateBillingGroup", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "billinggroup*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - "iam:PassRole", - "s3:GetObject", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new container group definition for a container fleet", - Privilege: "CreateContainerGroupDefinition", + Description: "Grants permission to create an X.509 certificate using the specified certificate signing request", + Privilege: "CreateCertificateFromCsr", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ecr:BatchGetImage", - "ecr:DescribeImages", - "ecr:GetDownloadUrlForLayer", - "gamelift:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new fleet of computing resources to run your game servers", - Privilege: "CreateFleet", + Description: "Grants permission to create a certificate provider", + Privilege: "CreateCertificateProvider", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "certificateprovider*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "ec2:DescribeRegions", - "gamelift:TagResource", - "iam:PassRole", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify additional locations for a fleet", - Privilege: "CreateFleetLocations", + Description: "Grants permission to create a command that can be used to start new executions against a device", + Privilege: "CreateCommand", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "command*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "fleet*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new game server group, set up a corresponding Auto Scaling group, and launche instances to host game servers", - Privilege: "CreateGameServerGroup", + Description: "Grants permission to create a custom metric for device side metric reporting and monitoring", + Privilege: "CreateCustomMetric", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "custommetric*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "autoscaling:CreateAutoScalingGroup", - "autoscaling:DescribeAutoScalingGroups", - "autoscaling:PutLifecycleHook", - "autoscaling:PutScalingPolicy", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSubnets", - "events:PutRule", - "events:PutTargets", - "gamelift:TagResource", - "iam:PassRole", + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to define a dimension that can be used to to limit the scope of a metric used in a security profile", + Privilege: "CreateDimension", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dimension*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a new game session on a specified fleet", - Privilege: "CreateGameSession", + Description: "Grants permission to create a domain configuration", + Privilege: "CreateDomainConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "domainconfiguration*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "iot:DomainName", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set up a new queue for processing game session placement requests", - Privilege: "CreateGameSessionQueue", + Description: "Grants permission to create a Dynamic Thing Group", + Privilege: "CreateDynamicThingGroup", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dynamicthinggroup*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to define a new location for a fleet", - Privilege: "CreateLocation", + Description: "Grants permission to create a fleet metric", + Privilege: "CreateFleetMetric", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleetmetric*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new FlexMatch matchmaker", - Privilege: "CreateMatchmakingConfiguration", + Description: "Grants permission to create a job", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thing*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thinggroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobtemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "package", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packageversion", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new matchmaking rule set for FlexMatch", - Privilege: "CreateMatchmakingRuleSet", + Description: "Grants permission to create a job template", + Privilege: "CreateJobTemplate", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "jobtemplate*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "package", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packageversion", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reserve an available game session slot for a player", - Privilege: "CreatePlayerSession", + Description: "Grants permission to create a 2048 bit RSA key pair and issues an X.509 certificate using the issued public key", + Privilege: "CreateKeysAndCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -126729,236 +168689,345 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reserve available game session slots for multiple players", - Privilege: "CreatePlayerSessions", + Description: "Grants permission to define an action that can be applied to audit findings by using StartAuditMitigationActionsTask", + Privilege: "CreateMitigationAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "mitigationaction*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new Realtime Servers script", - Privilege: "CreateScript", + Description: "Grants permission to create an OTA update job", + Privilege: "CreateOTAUpdate", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "otaupdate*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "gamelift:TagResource", - "iam:PassRole", - "s3:GetObject", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow GameLift to create or delete a peering connection between a GameLift fleet VPC and a VPC on another AWS account", - Privilege: "CreateVpcPeeringAuthorization", + Description: "Grants permission to create a software package that you can deploy to your devices", + Privilege: "CreatePackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ec2:AcceptVpcPeeringConnection", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateRoute", - "ec2:DeleteRoute", - "ec2:DescribeRouteTables", - "ec2:DescribeSecurityGroups", - "ec2:RevokeSecurityGroupEgress", - "ec2:RevokeSecurityGroupIngress", + "iot:GetIndexingConfiguration", }, - ResourceType: "", + ResourceType: "package*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to establish a peering connection between your GameLift fleet VPC and a VPC on another account", - Privilege: "CreateVpcPeeringConnection", + Description: "Grants permission to create a version under the specified package", + Privilege: "CreatePackageVersion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:GetIndexingConfiguration", + "s3:GetObjectVersion", + }, + ResourceType: "package*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "packageversion*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an alias", - Privilege: "DeleteAlias", + Description: "Grants permission to create an AWS IoT policy", + Privilege: "CreatePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a game build", - Privilege: "DeleteBuild", + Description: "Grants permission to create a new version of the specified AWS IoT policy", + Privilege: "CreatePolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "build*", + ResourceType: "policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a container group definition that is not being used in a fleet", - Privilege: "DeleteContainerGroupDefinition", + Description: "Grants permission to create a provisioning claim", + Privilege: "CreateProvisioningClaim", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerGroupDefinition*", + ResourceType: "provisioningtemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an empty fleet", - Privilege: "DeleteFleet", + Description: "Grants permission to create a fleet provisioning template", + Privilege: "CreateProvisioningTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "provisioningtemplate*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete locations for a fleet", - Privilege: "DeleteFleetLocations", + Description: "Grants permission to create a new version of a fleet provisioning template", + Privilege: "CreateProvisioningTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "provisioningtemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to permanently delete a game server group and terminate FleetIQ activity for the corresponding Auto Scaling group", - Privilege: "DeleteGameServerGroup", + Description: "Grants permission to create a role alias", + Privilege: "CreateRoleAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "autoscaling:DeleteAutoScalingGroup", - "autoscaling:DescribeAutoScalingGroups", - "autoscaling:ExitStandby", - "autoscaling:ResumeProcesses", - "autoscaling:SetInstanceProtection", - "autoscaling:UpdateAutoScalingGroup", + "iam:PassRole", }, - ResourceType: "gameServerGroup*", + ResourceType: "rolealias*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing game session queue", - Privilege: "DeleteGameSessionQueue", + Description: "Grants permission to create a scheduled audit that is run at a specified time interval", + Privilege: "CreateScheduledAudit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameSessionQueue*", + ResourceType: "scheduledaudit*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a location", - Privilege: "DeleteLocation", + Description: "Grants permission to create a Device Defender security profile", + Privilege: "CreateSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "location*", + ResourceType: "securityprofile*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "custommetric", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dimension", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing FlexMatch matchmaker", - Privilege: "DeleteMatchmakingConfiguration", + Description: "Grants permission to create a new AWS IoT stream", + Privilege: "CreateStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "matchmakingConfiguration*", + ResourceType: "stream*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing FlexMatch matchmaking rule set", - Privilege: "DeleteMatchmakingRuleSet", + Description: "Grants permission to create a thing in the thing registry", + Privilege: "CreateThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "matchmakingRuleSet*", + ResourceType: "thing*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "billinggroup", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a set of auto-scaling rules", - Privilege: "DeleteScalingPolicy", + Description: "Grants permission to create a thing group", + Privilege: "CreateThingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "thinggroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Realtime Servers script", - Privilege: "DeleteScript", + Description: "Grants permission to create a new thing type", + Privilege: "CreateThingType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "script*", + ResourceType: "thingtype*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a VPC peering authorization", - Privilege: "DeleteVpcPeeringAuthorization", + Description: "Grants permission to create a rule", + Privilege: "CreateTopicRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a peering connection between VPCs", - Privilege: "DeleteVpcPeeringConnection", + Description: "Grants permission to create a TopicRuleDestination", + Privilege: "CreateTopicRuleDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -126969,500 +169038,465 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister a compute against a fleet", - Privilege: "DeregisterCompute", + Description: "Grants permission to delete the audit configuration associated with the account", + Privilege: "DeleteAccountAuditConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a game server from a game server group", - Privilege: "DeregisterGameServer", + Description: "Grants permission to delete a Device Defender audit suppression", + Privilege: "DeleteAuditSuppression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for an alias", - Privilege: "DescribeAlias", + AccessLevel: "Write", + Description: "Grants permission to delete the specified authorizer", + Privilege: "DeleteAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "authorizer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for a game build", - Privilege: "DescribeBuild", + AccessLevel: "Write", + Description: "Grants permission to delete the specified billing group", + Privilege: "DeleteBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "build*", + ResourceType: "billinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve general properties of the compute such as ARN, fleet details, SDK endpoints, and location", - Privilege: "DescribeCompute", + AccessLevel: "Write", + Description: "Grants permission to delete a registered CA certificate", + Privilege: "DeleteCACertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "cacert*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve general properties, including status, for a container group definition", - Privilege: "DescribeContainerGroupDefinition", + AccessLevel: "Write", + Description: "Grants permission to delete the specified certificate", + Privilege: "DeleteCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerGroupDefinition*", + ResourceType: "cert*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the maximum allowed and current usage for EC2 instance types", - Privilege: "DescribeEC2InstanceLimits", + AccessLevel: "Write", + Description: "Grants permission to delete a certificate provider", + Privilege: "DeleteCertificateProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "certificateprovider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve general properties, including status, for fleets", - Privilege: "DescribeFleetAttributes", + AccessLevel: "Write", + Description: "Grants permission to delete a command", + Privilege: "DeleteCommand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "command*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current capacity setting for fleets", - Privilege: "DescribeFleetCapacity", + AccessLevel: "Write", + Description: "Grants permission to delete a command execution", + Privilege: "DeleteCommandExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "client", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve entries from a fleet's event log", - Privilege: "DescribeFleetEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "thing", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve general properties, including statuses, for a fleet's locations", - Privilege: "DescribeFleetLocationAttributes", + AccessLevel: "Write", + Description: "Grants permission to deletes the specified custom metric from your AWS account", + Privilege: "DeleteCustomMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "custommetric*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current capacity setting for a fleet's location", - Privilege: "DescribeFleetLocationCapacity", + AccessLevel: "Write", + Description: "Grants permission to remove the specified dimension from your AWS account", + Privilege: "DeleteDimension", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "dimension*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve utilization statistics for fleet's location", - Privilege: "DescribeFleetLocationUtilization", + AccessLevel: "Write", + Description: "Grants permission to delete a domain configuration", + Privilege: "DeleteDomainConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "domainconfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the inbound connection permissions for a fleet", - Privilege: "DescribeFleetPortSettings", + AccessLevel: "Write", + Description: "Grants permission to delete the specified Dynamic Thing Group", + Privilege: "DeleteDynamicThingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "dynamicthinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve utilization statistics for fleets", - Privilege: "DescribeFleetUtilization", + AccessLevel: "Write", + Description: "Grants permission to delete the specified fleet metric", + Privilege: "DeleteFleetMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleetmetric*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for a game server", - Privilege: "DescribeGameServer", + AccessLevel: "Write", + Description: "Grants permission to delete a job and its related job executions", + Privilege: "DeleteJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for a game server group", - Privilege: "DescribeGameServerGroup", + AccessLevel: "Write", + Description: "Grants permission to delete a job execution", + Privilege: "DeleteJobExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "job*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the status of EC2 instances in a game server group", - Privilege: "DescribeGameServerInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for game sessions in a fleet, including the protection policy", - Privilege: "DescribeGameSessionDetails", + AccessLevel: "Write", + Description: "Grants permission to delete a job template", + Privilege: "DeleteJobTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "jobtemplate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details of a game session placement request", - Privilege: "DescribeGameSessionPlacement", + AccessLevel: "Write", + Description: "Grants permission to delete a defined mitigation action from your AWS account", + Privilege: "DeleteMitigationAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mitigationaction*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for game session queues", - Privilege: "DescribeGameSessionQueues", + AccessLevel: "Write", + Description: "Grants permission to delete an OTA update job", + Privilege: "DeleteOTAUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "otaupdate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for game sessions in a fleet", - Privilege: "DescribeGameSessions", + AccessLevel: "Write", + Description: "Grants permission to delete a package", + Privilege: "DeletePackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about instances in a fleet", - Privilege: "DescribeInstances", + AccessLevel: "Write", + Description: "Grants permission to delete a version of the specified package", + Privilege: "DeletePackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "package*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve details of matchmaking tickets", - Privilege: "DescribeMatchmaking", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "packageversion*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for FlexMatch matchmakers", - Privilege: "DescribeMatchmakingConfigurations", + AccessLevel: "Write", + Description: "Grants permission to delete the specified policy", + Privilege: "DeletePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for FlexMatch matchmaking rule sets", - Privilege: "DescribeMatchmakingRuleSets", + AccessLevel: "Write", + Description: "Grants permission to Delete the specified version of the specified policy", + Privilege: "DeletePolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for player sessions in a game session", - Privilege: "DescribePlayerSessions", + AccessLevel: "Write", + Description: "Grants permission to delete a fleet provisioning template", + Privilege: "DeleteProvisioningTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "provisioningtemplate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current runtime configuration for a fleet", - Privilege: "DescribeRuntimeConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete a fleet provisioning template version", + Privilege: "DeleteProvisioningTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "provisioningtemplate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all scaling policies that are applied to a fleet", - Privilege: "DescribeScalingPolicies", + AccessLevel: "Write", + Description: "Grants permission to delete a CA certificate registration code", + Privilege: "DeleteRegistrationCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve properties for a Realtime Servers script", - Privilege: "DescribeScript", + AccessLevel: "Write", + Description: "Grants permission to delete the specified role alias", + Privilege: "DeleteRoleAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "script*", + ResourceType: "rolealias*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve valid VPC peering authorizations", - Privilege: "DescribeVpcPeeringAuthorizations", + AccessLevel: "Write", + Description: "Grants permission to delete a scheduled audit", + Privilege: "DeleteScheduledAudit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scheduledaudit*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details on active or pending VPC peering connections", - Privilege: "DescribeVpcPeeringConnections", + AccessLevel: "Write", + Description: "Grants permission to delete a Device Defender security profile", + Privilege: "DeleteSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "securityprofile*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve access credentials of the compute", - Privilege: "GetComputeAccess", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "custommetric", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an authorization token for a compute and fleet to use in game server processes", - Privilege: "GetComputeAuthToken", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "dimension", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the location of stored logs for a game session", - Privilege: "GetGameSessionLogUrl", + AccessLevel: "Write", + Description: "Grants permission to delete a specified stream", + Privilege: "DeleteStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to request remote access to a specified fleet instance", - Privilege: "GetInstanceAccess", + AccessLevel: "Write", + Description: "Grants permission to delete the specified thing", + Privilege: "DeleteThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "thing*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all aliases that are defined in the current Region", - Privilege: "ListAliases", + AccessLevel: "Write", + Description: "Grants permission to delete the specified thing group", + Privilege: "DeleteThingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thinggroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all game build in the current Region", - Privilege: "ListBuilds", + AccessLevel: "Write", + Description: "Grants permission to delete the specified thing shadow", + Privilege: "DeleteThingShadow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all compute resources in the current Region", - Privilege: "ListCompute", + AccessLevel: "Write", + Description: "Grants permission to delete the specified thing type", + Privilege: "DeleteThingType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "thingtype*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of names for all container group definitions in the current Region", - Privilege: "ListContainerGroupDefinitions", + AccessLevel: "Write", + Description: "Grants permission to delete the specified rule", + Privilege: "DeleteTopicRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of fleet IDs for all fleets in the current Region", - Privilege: "ListFleets", + AccessLevel: "Write", + Description: "Grants permission to delete a TopicRuleDestination", + Privilege: "DeleteTopicRuleDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "destination*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all game server groups that are defined in the current Region", - Privilege: "ListGameServerGroups", + AccessLevel: "Write", + Description: "Grants permission to delete the specified v2 logging level", + Privilege: "DeleteV2LoggingLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -127472,21 +169506,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all game servers that are currently running in a game server group", - Privilege: "ListGameServers", + AccessLevel: "Write", + Description: "Grants permission to deprecate the specified thing type", + Privilege: "DeprecateThingType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "thingtype*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all locations in this account", - Privilege: "ListLocations", + AccessLevel: "Read", + Description: "Grants permission to get information about audit configurations for the account", + Privilege: "DescribeAccountAuditConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -127496,9 +169530,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve properties for all Realtime Servers scripts in the current region", - Privilege: "ListScripts", + AccessLevel: "Read", + Description: "Grants permission to get information about a single audit finding. Properties include the reason for noncompliance, the severity of the issue, and when the audit that returned the finding was started", + Privilege: "DescribeAuditFinding", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -127509,173 +169543,128 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve tags for GameLift resources", - Privilege: "ListTagsForResource", + Description: "Grants permission to get information about an audit mitigation task that is used to apply mitigation actions to a set of audit findings", + Privilege: "DescribeAuditMitigationActionsTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "build", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "containerGroupDefinition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "gameServerGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "gameSessionQueue", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "location", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "matchmakingConfiguration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "matchmakingRuleSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "script", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update a fleet auto-scaling policy", - Privilege: "PutScalingPolicy", + AccessLevel: "Read", + Description: "Grants permission to get information about a Device Defender audit suppression", + Privilege: "DescribeAuditSuppression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a compute against a fleet", - Privilege: "RegisterCompute", + AccessLevel: "Read", + Description: "Grants permission to get information about a Device Defender audit", + Privilege: "DescribeAuditTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to notify GameLift FleetIQ when a new game server is ready to host gameplay", - Privilege: "RegisterGameServer", + AccessLevel: "Read", + Description: "Grants permission to describe an authorizer", + Privilege: "DescribeAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "authorizer*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve fresh upload credentials to use when uploading a new game build", - Privilege: "RequestUploadCredentials", + Description: "Grants permission to get information about the specified billing group", + Privilege: "DescribeBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "build*", + ResourceType: "billinggroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the fleet ID associated with an alias", - Privilege: "ResolveAlias", + Description: "Grants permission to describe a registered CA certificate", + Privilege: "DescribeCACertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "cacert*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reinstate suspended FleetIQ activity for a game server group", - Privilege: "ResumeGameServerGroup", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified certificate", + Privilege: "DescribeCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "cert*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve game sessions that match a set of search criteria", - Privilege: "SearchGameSessions", + Description: "Grants permission to describe a certificate provider", + Privilege: "DescribeCertificateProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "certificateprovider*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to resume auto-scaling activity on a fleet after it was suspended with StopFleetActions()", - Privilege: "StartFleetActions", + AccessLevel: "Read", + Description: "Grants permission to describe a custom metric that is defined in your AWS account", + Privilege: "DescribeCustomMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "custommetric*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a game session placement request to a game session queue", - Privilege: "StartGameSessionPlacement", + AccessLevel: "Read", + Description: "Grants permission to describe the default authorizer", + Privilege: "DescribeDefaultAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameSessionQueue*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to request FlexMatch matchmaking to fill available player slots in an existing game session", - Privilege: "StartMatchBackfill", + AccessLevel: "Read", + Description: "Grants permission to describe a Device Defender ML Detect mitigation action", + Privilege: "DescribeDetectMitigationActionsTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -127685,33 +169674,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to request FlexMatch matchmaking for one or a group of players and initiate game session placement", - Privilege: "StartMatchmaking", + AccessLevel: "Read", + Description: "Grants permission to get details about a dimension that is defined in your AWS account", + Privilege: "DescribeDimension", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dimension*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to suspend auto-scaling activity on a fleet", - Privilege: "StopFleetActions", + AccessLevel: "Read", + Description: "Grants permission to get information about the domain configuration", + Privilege: "DescribeDomainConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "domainconfiguration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a game session placement request that is in progress", - Privilege: "StopGameSessionPlacement", + AccessLevel: "Read", + Description: "Grants permission to get a unique endpoint specific to the AWS account making the call", + Privilege: "DescribeEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -127721,9 +169710,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a matchmaking or match backfill request that is in progress", - Privilege: "StopMatchmaking", + AccessLevel: "Read", + Description: "Grants permission to get account event configurations", + Privilege: "DescribeEventConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -127733,299 +169722,194 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to temporarily stop FleetIQ activity for a game server group", - Privilege: "SuspendGameServerGroup", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified fleet metric", + Privilege: "DescribeFleetMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "fleetmetric*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag GameLift resources", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified index", + Privilege: "DescribeIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "build", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "containerGroupDefinition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "gameServerGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "gameSessionQueue", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "location", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "matchmakingConfiguration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "matchmakingRuleSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "script", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag GameLift resources", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe a job", + Privilege: "DescribeJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "build", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "containerGroupDefinition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "gameServerGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "gameSessionQueue", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "location", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "matchmakingConfiguration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "matchmakingRuleSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "script", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the properties of an existing alias", - Privilege: "UpdateAlias", + AccessLevel: "Read", + Description: "Grants permission to describe a job execution", + Privilege: "DescribeJobExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thing", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing build's metadata", - Privilege: "UpdateBuild", + AccessLevel: "Read", + Description: "Grants permission to describe a job template", + Privilege: "DescribeJobTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "build*", + ResourceType: "jobtemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the general properties of an existing fleet", - Privilege: "UpdateFleetAttributes", + AccessLevel: "Read", + Description: "Grants permission to describe a managed job template", + Privilege: "DescribeManagedJobTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "jobtemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to adjust a fleet's capacity settings", - Privilege: "UpdateFleetCapacity", + AccessLevel: "Read", + Description: "Grants permission to get information about a mitigation action", + Privilege: "DescribeMitigationAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "mitigationaction*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to adjust a fleet's port settings", - Privilege: "UpdateFleetPortSettings", + AccessLevel: "Read", + Description: "Grants permission to get information about a fleet provisioning template", + Privilege: "DescribeProvisioningTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "provisioningtemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change game server properties, health status, or utilization status", - Privilege: "UpdateGameServer", + AccessLevel: "Read", + Description: "Grants permission to get information about a fleet provisioning template version", + Privilege: "DescribeProvisioningTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameServerGroup*", + ResourceType: "provisioningtemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties for game server group, including allowed instance types", - Privilege: "UpdateGameServerGroup", + AccessLevel: "Read", + Description: "Grants permission to describe a role alias", + Privilege: "DescribeRoleAlias", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "gameServerGroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "rolealias*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the properties of an existing game session", - Privilege: "UpdateGameSession", + AccessLevel: "Read", + Description: "Grants permission to get information about a scheduled audit", + Privilege: "DescribeScheduledAudit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scheduledaudit*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of an existing game session queue", - Privilege: "UpdateGameSessionQueue", + AccessLevel: "Read", + Description: "Grants permission to get information about a Device Defender security profile", + Privilege: "DescribeSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gameSessionQueue*", + ResourceType: "securityprofile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of an existing FlexMatch matchmaking configuration", - Privilege: "UpdateMatchmakingConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified stream", + Privilege: "DescribeStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "matchmakingConfiguration*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update how server processes are configured on instances in an existing fleet", - Privilege: "UpdateRuntimeConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified thing", + Privilege: "DescribeThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the metadata and content of an existing Realtime Servers script", - Privilege: "UpdateScript", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified thing group", + Privilege: "DescribeThingGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "s3:GetObject", - }, - ResourceType: "script*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thinggroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to validate the syntax of a FlexMatch matchmaking rule set", - Privilege: "ValidateMatchmakingRuleSet", + Description: "Grants permission to get information about the bulk thing registration task", + Privilege: "DescribeThingRegistrationTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -128034,224 +169918,99 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:gamelift:${Region}::alias/${AliasId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "alias", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:build/${BuildId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "build", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:containergroupdefinition/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "containerGroupDefinition", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:fleet/${FleetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "fleet", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:gameservergroup/${GameServerGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "gameServerGroup", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:gamesessionqueue/${GameSessionQueueName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "gameSessionQueue", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:location/${LocationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "location", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:matchmakingconfiguration/${MatchmakingConfigurationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "matchmakingConfiguration", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:matchmakingruleset/${MatchmakingRuleSetName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "matchmakingRuleSet", - }, - { - Arn: "arn:${Partition}:gamelift:${Region}:${Account}:script/${ScriptId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "script", - }, - }, - ServiceName: "Amazon GameLift", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", - Type: "ArrayOfString", - }, - { - Condition: "geo:DeviceIds", - Description: "Filters access by the presence of device ids in the request", - Type: "ArrayOfString", - }, - { - Condition: "geo:GeofenceIds", - Description: "Filters access by the presence of geofence ids in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "geo", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an association between a geofence-collection and a tracker resource", - Privilege: "AssociateTrackerConsumer", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified thing type", + Privilege: "DescribeThingType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "thingtype*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a batch of device position histories from a tracker resource", - Privilege: "BatchDeleteDevicePositionHistory", + AccessLevel: "Read", + Description: "Grants permission to describe a tunnel", + Privilege: "DescribeTunnel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", - }, - { - ConditionKeys: []string{ - "geo:DeviceIds", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "tunnel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a batch of geofences from a geofence collection", - Privilege: "BatchDeleteGeofence", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a policy from the specified target", + Privilege: "DetachPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "cert", }, { - ConditionKeys: []string{ - "geo:GeofenceIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thinggroup", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to evaluate device positions against the position of geofences in a given geofence collection", - Privilege: "BatchEvaluateGeofences", + AccessLevel: "Permissions management", + Description: "Grants permission to remove the specified policy from the specified certificate", + Privilege: "DetachPrincipalPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "cert", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to send a batch request to retrieve device positions", - Privilege: "BatchGetDevicePosition", + AccessLevel: "Write", + Description: "Grants permission to disassociate a Device Defender security profile from a thing group or from this account", + Privilege: "DetachSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "securityprofile*", }, { - ConditionKeys: []string{ - "geo:DeviceIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custommetric", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send a batch request for adding geofences into a given geofence collection", - Privilege: "BatchPutGeofence", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "dimension", }, { - ConditionKeys: []string{ - "geo:GeofenceIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thinggroup", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload a position update for one or more devices to a tracker resource", - Privilege: "BatchUpdateDevicePosition", + Description: "Grants permission to detach the specified principal from the specified thing", + Privilege: "DetachThingPrincipal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "cert", }, { ConditionKeys: []string{ - "geo:DeviceIds", + "iot:thingArn", }, DependentActions: []string{}, ResourceType: "", @@ -128259,1214 +170018,1157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to calculate routes using a given route calculator resource", - Privilege: "CalculateRoute", + AccessLevel: "Write", + Description: "Grants permission to disable the specified rule", + Privilege: "DisableTopicRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "rule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to calculate a route matrix using a given route calculator resource", - Privilege: "CalculateRouteMatrix", + AccessLevel: "Write", + Description: "Grants permission to disassociate SBOM files from a package version", + Privilege: "DisassociateSbomFromPackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "packageversion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a geofence-collection", - Privilege: "CreateGeofenceCollection", + Description: "Grants permission to enable the specified rule", + Privilege: "EnableTopicRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "rule*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an API key resource", - Privilege: "CreateKey", + AccessLevel: "List", + Description: "Grants permission to fetch a Device Defender's ML Detect Security Profile training model's status", + Privilege: "GetBehaviorModelTrainingSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "securityprofile", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a map resource", - Privilege: "CreateMap", + AccessLevel: "Read", + Description: "Grants permission to get buckets aggregation for IoT fleet index", + Privilege: "GetBucketsAggregation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a place index resource", - Privilege: "CreatePlaceIndex", + AccessLevel: "Read", + Description: "Grants permission to get cardinality for IoT fleet index", + Privilege: "GetCardinality", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "index*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the information about the command", + Privilege: "GetCommand", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "command*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a route calculator resource", - Privilege: "CreateRouteCalculator", + AccessLevel: "Read", + Description: "Grants permission to get the information of a command execution", + Privilege: "GetCommandExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "client", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a tracker resource", - Privilege: "CreateTracker", + AccessLevel: "Read", + Description: "Grants permission to get effective policies", + Privilege: "GetEffectivePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "cert", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get current fleet indexing configuration", + Privilege: "GetIndexingConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a geofence-collection", - Privilege: "DeleteGeofenceCollection", + AccessLevel: "Read", + Description: "Grants permission to get a job document", + Privilege: "GetJobDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an API key resource", - Privilege: "DeleteKey", + AccessLevel: "Read", + Description: "Grants permission to get the logging options", + Privilege: "GetLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a map resource", - Privilege: "DeleteMap", + AccessLevel: "Read", + Description: "Grants permission to get the information about the OTA update job", + Privilege: "GetOTAUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "otaupdate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a place index resource", - Privilege: "DeletePlaceIndex", + AccessLevel: "Read", + Description: "Grants permission to get the information about the package", + Privilege: "GetPackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "package*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a route calculator resource", - Privilege: "DeleteRouteCalculator", + AccessLevel: "Read", + Description: "Grants permission to get the package configuration of the account", + Privilege: "GetPackageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a tracker resource", - Privilege: "DeleteTracker", + AccessLevel: "Read", + Description: "Grants permission to get the version of the package", + Privilege: "GetPackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "package*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packageversion*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve geofence collection details", - Privilege: "DescribeGeofenceCollection", + Description: "Grants permission to get percentiles for IoT fleet index", + Privilege: "GetPercentiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve API key resource details and secret", - Privilege: "DescribeKey", + Description: "Grants permission to get information about the specified policy with the policy document of the default version", + Privilege: "GetPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key*", + ResourceType: "policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve map resource details", - Privilege: "DescribeMap", + Description: "Grants permission to get information about the specified policy version", + Privilege: "GetPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve place-index resource details", - Privilege: "DescribePlaceIndex", + Description: "Grants permission to get a registration code used to register a CA certificate with AWS IoT", + Privilege: "GetRegistrationCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve route calculator resource details", - Privilege: "DescribeRouteCalculator", + Description: "Grants permission to get the retained message on the specified topic", + Privilege: "GetRetainedMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "topic*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a tracker resource details", - Privilege: "DescribeTracker", + Description: "Grants permission to get statistics for IoT fleet index", + Privilege: "GetStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the association between a tracker resource and a geofence-collection", - Privilege: "DisassociateTrackerConsumer", + AccessLevel: "Read", + Description: "Grants permission to get the thing's connectivity data", + Privilege: "GetThingConnectivityData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to forecast events for geofences stored in a given geofence collection", - Privilege: "ForecastGeofenceEvents", + Description: "Grants permission to get the thing shadow", + Privilege: "GetThingShadow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the latest device position", - Privilege: "GetDevicePosition", + Description: "Grants permission to get information about the specified rule", + Privilege: "GetTopicRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", - }, - { - ConditionKeys: []string{ - "geo:DeviceIds", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "rule*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the device position history", - Privilege: "GetDevicePositionHistory", + Description: "Grants permission to get a TopicRuleDestination", + Privilege: "GetTopicRuleDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "destination*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get v2 logging options", + Privilege: "GetV2LoggingOptions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "geo:DeviceIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the geofence details from a geofence-collection", - Privilege: "GetGeofence", + AccessLevel: "List", + Description: "Grants permission to list the active violations for a given Device Defender security profile or Thing", + Privilege: "ListActiveViolations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "securityprofile", }, { - ConditionKeys: []string{ - "geo:GeofenceIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the glyph file for a map resource", - Privilege: "GetMapGlyphs", + AccessLevel: "List", + Description: "Grants permission to list the policies attached to the specified thing group", + Privilege: "ListAttachedPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the sprite file for a map resource", - Privilege: "GetMapSprites", + AccessLevel: "List", + Description: "Grants permission to list the findings (results) of a Device Defender audit or of the audits performed during a specified time period", + Privilege: "ListAuditFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the map style descriptor from a map resource", - Privilege: "GetMapStyleDescriptor", + AccessLevel: "List", + Description: "Grants permission to get the status of audit mitigation action tasks that were executed", + Privilege: "ListAuditMitigationActionsExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the map tile from the map resource", - Privilege: "GetMapTile", + AccessLevel: "List", + Description: "Grants permission to get a list of audit mitigation action tasks that match the specified filters", + Privilege: "ListAuditMitigationActionsTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to find a place by its unique ID", - Privilege: "GetPlace", + AccessLevel: "List", + Description: "Grants permission to list your Device Defender audit suppressions", + Privilege: "ListAuditSuppressions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of devices and their latest positions from the given tracker resource", - Privilege: "ListDevicePositions", + AccessLevel: "List", + Description: "Grants permission to list the Device Defender audits that have been performed during a given time period", + Privilege: "ListAuditTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to lists geofence-collections", - Privilege: "ListGeofenceCollections", + Description: "Grants permission to list the authorizers registered in your account", + Privilege: "ListAuthorizers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list geofences stored in a given geofence collection", - Privilege: "ListGeofences", + AccessLevel: "List", + Description: "Grants permission to list all billing groups", + Privilege: "ListBillingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list API key resources", - Privilege: "ListKeys", + Description: "Grants permission to list the CA certificates registered for your AWS account", + Privilege: "ListCACertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list map resources", - Privilege: "ListMaps", + Description: "Grants permission to list certificate providers in the account", + Privilege: "ListCertificateProviders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of place index resources", - Privilege: "ListPlaceIndexes", + Description: "Grants permission to list your certificates", + Privilege: "ListCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of route calculator resources", - Privilege: "ListRouteCalculators", + Description: "Grants permission to list the device certificates signed by the specified CA certificate", + Privilege: "ListCertificatesByCA", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags (metadata) which you have assigned to the resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list commands executions in the account", + Privilege: "ListCommandExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key", + ResourceType: "client", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection", + ResourceType: "command", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map", + ResourceType: "thing", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list commands in the account", + Privilege: "ListCommands", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the custom metrics in your AWS account", + Privilege: "ListCustomMetrics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to lists mitigation actions executions for a Device Defender ML Detect Security Profile", + Privilege: "ListDetectMitigationActionsExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker", + ResourceType: "thing", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of geofence collections currently associated to the given tracker resource", - Privilege: "ListTrackerConsumers", + AccessLevel: "List", + Description: "Grants permission to list Device Defender ML Detect mitigation actions tasks", + Privilege: "ListDetectMitigationActionsTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of tracker resources", - Privilege: "ListTrackers", + Description: "Grants permission to list the dimensions that are defined for your AWS account", + Privilege: "ListDimensions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a new geofence or update an existing geofence to a given geofence-collection", - Privilege: "PutGeofence", + AccessLevel: "List", + Description: "Grants permission to list the domain configuration created by your AWS account", + Privilege: "ListDomainConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", - }, - { - ConditionKeys: []string{ - "geo:GeofenceIds", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to reverse geocodes a given coordinate", - Privilege: "SearchPlaceIndexForPosition", + AccessLevel: "List", + Description: "Grants permission to list the fleet metrics in your account", + Privilege: "ListFleetMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate suggestions for addresses and points of interest based on partial or misspelled free-form text", - Privilege: "SearchPlaceIndexForSuggestions", + AccessLevel: "List", + Description: "Grants permission to list all indices for fleet index", + Privilege: "ListIndices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to geocode free-form text, such as an address, name, city or region", - Privilege: "SearchPlaceIndexForText", + AccessLevel: "List", + Description: "Grants permission to list the job executions for a job", + Privilege: "ListJobExecutionsForJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "job*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list the job executions for the specified thing", + Privilege: "ListJobExecutionsForThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key", + ResourceType: "thing*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list job templates", + Privilege: "ListJobTemplates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list jobs", + Privilege: "ListJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list managed job templates", + Privilege: "ListManagedJobTemplates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permissions to list the metric values for a thing based on the metricName, and dimension if specified", + Privilege: "ListMetricValues", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator", + ResourceType: "thing*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of all mitigation actions that match the specified filter criteria", + Privilege: "ListMitigationActions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the given tags (metadata) from the resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list all named shadows for a given thing", + Privilege: "ListNamedShadowsForThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key", + ResourceType: "thing*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list OTA update jobs in the account", + Privilege: "ListOTAUpdates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list certificates that are being transfered but not yet accepted", + Privilege: "ListOutgoingCertificates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list versions for a package in the account", + Privilege: "ListPackageVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list packages in the account", + Privilege: "ListPackages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list your policies", + Privilege: "ListPolicies", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the principals associated with the specified policy", + Privilege: "ListPolicyPrincipals", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a geofence collection", - Privilege: "UpdateGeofenceCollection", + AccessLevel: "List", + Description: "Grants permission to list the versions of the specified policy, and identifies the default version", + Privilege: "ListPolicyVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "geofence-collection*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an API key resource", - Privilege: "UpdateKey", + AccessLevel: "List", + Description: "Grants permission to list the policies attached to the specified principal. If you use an Amazon Cognito identity, the ID needs to be in Amazon Cognito Identity format", + Privilege: "ListPrincipalPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "api-key*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a map resource", - Privilege: "UpdateMap", + AccessLevel: "List", + Description: "Grants permission to list the things associated with the specified principal", + Privilege: "ListPrincipalThings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "map*", + ResourceType: "cert", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a place index resource", - Privilege: "UpdatePlaceIndex", + AccessLevel: "List", + Description: "Grants permission to list the things associated with the specified principal", + Privilege: "ListPrincipalThingsV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "place-index*", + ResourceType: "cert", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a route calculator resource", - Privilege: "UpdateRouteCalculator", + AccessLevel: "List", + Description: "Grants permission to get a list of fleet provisioning template versions", + Privilege: "ListProvisioningTemplateVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route-calculator*", + ResourceType: "provisioningtemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a tracker resource", - Privilege: "UpdateTracker", + AccessLevel: "List", + Description: "Grants permission to list the fleet provisioning templates in your AWS account", + Privilege: "ListProvisioningTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to verify a device position", - Privilege: "VerifyDevicePosition", + AccessLevel: "List", + Description: "Grants permission to list related resources for a single audit finding", + Privilege: "ListRelatedResourcesForAuditFinding", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tracker*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the retained messages for your account", + Privilege: "ListRetainedMessages", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "geo:DeviceIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:geo:${Region}:${Account}:api-key/${KeyName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list role aliases", + Privilege: "ListRoleAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "api-key", }, { - Arn: "arn:${Partition}:geo:${Region}:${Account}:geofence-collection/${GeofenceCollectionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "geo:GeofenceIds", + AccessLevel: "List", + Description: "Grants permission to list SBOM validation results of a package version", + Privilege: "ListSbomValidationResults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packageversion*", + }, }, - Resource: "geofence-collection", }, { - Arn: "arn:${Partition}:geo:${Region}:${Account}:map/${MapName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list all of your scheduled audits", + Privilege: "ListScheduledAudits", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "map", }, { - Arn: "arn:${Partition}:geo:${Region}:${Account}:place-index/${IndexName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the Device Defender security profiles you have created", + Privilege: "ListSecurityProfiles", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "custommetric", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dimension", + }, }, - Resource: "place-index", }, { - Arn: "arn:${Partition}:geo:${Region}:${Account}:route-calculator/${CalculatorName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list the Device Defender security profiles attached to a target", + Privilege: "ListSecurityProfilesForTarget", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thinggroup", + }, }, - Resource: "route-calculator", }, { - Arn: "arn:${Partition}:geo:${Region}:${Account}:tracker/${TrackerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "geo:DeviceIds", + AccessLevel: "List", + Description: "Grants permission to list the streams in your account", + Privilege: "ListStreams", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "tracker", - }, - }, - ServiceName: "Amazon Location", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "glacier:ArchiveAgeInDays", - Description: "Filters access by how long an archive has been stored in the vault, in days", - Type: "String", }, { - Condition: "glacier:ResourceTag/", - Description: "Filters access by a customer-defined tag", - Type: "String", - }, - }, - Prefix: "glacier", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to abort a multipart upload identified by the upload ID", - Privilege: "AbortMultipartUpload", + AccessLevel: "Read", + Description: "Grants permission to list all tags for a given resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "authorizer", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "billinggroup", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to abort the vault locking process if the vault lock is not in the Locked state", - Privilege: "AbortVaultLock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "cacert", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add the specified tags to a vault", - Privilege: "AddTagsToVault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "certificateprovider", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "command", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to complete a multipart upload process", - Privilege: "CompleteMultipartUpload", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "custommetric", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to complete the vault locking process", - Privilege: "CompleteVaultLock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "dimension", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new vault with the specified name", - Privilege: "CreateVault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "domainconfiguration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an archive from a vault", - Privilege: "DeleteArchive", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "dynamicthinggroup", }, { - ConditionKeys: []string{ - "glacier:ArchiveAgeInDays", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleetmetric", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a vault", - Privilege: "DeleteVault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "job", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the access policy associated with the specified vault", - Privilege: "DeleteVaultAccessPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "jobtemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the notification configuration set for a vault", - Privilege: "DeleteVaultNotifications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "mitigationaction", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a job previously initiated", - Privilege: "DescribeJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "otaupdate", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a vault", - Privilege: "DescribeVault", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "policy", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the data retrieval policy", - Privilege: "GetDataRetrievalPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "provisioningtemplate", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to download the output of the job specified", - Privilege: "GetJobOutput", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "rolealias", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the access-policy subresource set on the vault", - Privilege: "GetVaultAccessPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "rule", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve attributes from the lock-policy subresource set on the specified vault", - Privilege: "GetVaultLock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "scheduledaudit", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the notification-configuration subresource set on the vault", - Privilege: "GetVaultNotifications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "securityprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to initiate a job of the specified type", - Privilege: "InitiateJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "stream", }, { - ConditionKeys: []string{ - "glacier:ArchiveAgeInDays", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thinggroup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to initiate a multipart upload", - Privilege: "InitiateMultipartUpload", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "thingtype", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to initiate the vault locking process", - Privilege: "InitiateVaultLock", + AccessLevel: "List", + Description: "Grants permission to list targets for the specified policy", + Privilege: "ListTargetsForPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "policy*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list jobs for a vault that are in-progress and jobs that have recently finished", - Privilege: "ListJobs", + Description: "Grants permission to list the targets associated with a given Device Defender security profile", + Privilege: "ListTargetsForSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "securityprofile*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list in-progress multipart uploads for the specified vault", - Privilege: "ListMultipartUploads", + Description: "Grants permission to list all thing groups", + Privilege: "ListThingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the parts of an archive that have been uploaded in a specific multipart upload", - Privilege: "ListParts", + Description: "Grants permission to list thing groups to which the specified thing belongs", + Privilege: "ListThingGroupsForThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "thing*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the provisioned capacity for the specified AWS account", - Privilege: "ListProvisionedCapacity", + Description: "Grants permission to list the principals associated with the specified thing", + Privilege: "ListThingPrincipals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the tags attached to a vault", - Privilege: "ListTagsForVault", + Description: "Grants permission to list the principals associated with the specified thing", + Privilege: "ListThingPrincipalsV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "thing*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all vaults", - Privilege: "ListVaults", + Description: "Grants permission to list information about bulk thing registration tasks", + Privilege: "ListThingRegistrationTaskReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -129476,9 +171178,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to purchases a provisioned capacity unit for an AWS account", - Privilege: "PurchaseProvisionedCapacity", + AccessLevel: "List", + Description: "Grants permission to list bulk thing registration tasks", + Privilege: "ListThingRegistrationTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -129488,21 +171190,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the set of tags attached to a vault", - Privilege: "RemoveTagsFromVault", + AccessLevel: "List", + Description: "Grants permission to list all thing types", + Privilege: "ListThingTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set and then enacts a data retrieval policy in the region specified in the PUT request", - Privilege: "SetDataRetrievalPolicy", + AccessLevel: "List", + Description: "Grants permission to list all things", + Privilege: "ListThings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -129512,142 +171214,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to configure an access policy for a vault; will overwrite an existing policy", - Privilege: "SetVaultAccessPolicy", + AccessLevel: "List", + Description: "Grants permission to list all things in the specified billing group", + Privilege: "ListThingsInBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "billinggroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to configure vault notifications", - Privilege: "SetVaultNotifications", + AccessLevel: "List", + Description: "Grants permission to list all things in the specified thing group", + Privilege: "ListThingsInThingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "thinggroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload an archive to a vault", - Privilege: "UploadArchive", + AccessLevel: "List", + Description: "Grants permission to list all TopicRuleDestinations", + Privilege: "ListTopicRuleDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload a part of an archive", - Privilege: "UploadMultipartPart", + AccessLevel: "List", + Description: "Grants permission to list the rules for the specific topic", + Privilege: "ListTopicRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vault*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:glacier:${Region}:${Account}:vaults/${VaultName}", - ConditionKeys: []string{}, - Resource: "vault", - }, - }, - ServiceName: "Amazon S3 Glacier", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "globalaccelerator", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add a virtual private cloud (VPC) subnet endpoint to a custom routing accelerator endpoint group", - Privilege: "AddCustomRoutingEndpoints", + AccessLevel: "List", + Description: "Grants permission to list tunnels", + Privilege: "ListTunnels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an endpoint to a standard accelerator endpoint group", - Privilege: "AddEndpoints", + AccessLevel: "List", + Description: "Grants permission to list the v2 logging levels", + Privilege: "ListV2LoggingLevels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "globalaccelerator:UpdateEndpointGroup", - }, - ResourceType: "endpointgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to advertises an IPv4 address range that is provisioned for use with your accelerator through bring your own IP addresses (BYOIP)", - Privilege: "AdvertiseByoipCidr", + AccessLevel: "List", + Description: "Grants permission to list the Device Defender security profile violations discovered during the given time period", + Privilege: "ListViolationEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "securityprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to allows custom routing of user traffic to a private destination IP:PORT in a specific VPC subnet", - Privilege: "AllowCustomRoutingTraffic", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "thing", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a standard accelerator", - Privilege: "CreateAccelerator", + Description: "Grants permission to open a tunnel", + Privilege: "OpenTunnel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "iot:ThingGroupArn", + "iot:TunnelDestinationService", }, DependentActions: []string{}, ResourceType: "", @@ -129656,29 +171321,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a CrossAccountAttachment", - Privilege: "CreateCrossAccountAttachment", + Description: "Grants permission to publish to the specified topic", + Privilege: "Publish", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Custom Routing accelerator", - Privilege: "CreateCustomRoutingAccelerator", + Description: "Grants permission to put verification state on a violation", + Privilege: "PutVerificationStateOnViolation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -129686,296 +171345,291 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint group for the specified listener for a custom routing accelerator", - Privilege: "CreateCustomRoutingEndpointGroup", + Description: "Grants permission to receive from the specified topic", + Privilege: "Receive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a listener to process inbound connections from clients to a custom routing accelerator", - Privilege: "CreateCustomRoutingListener", + Description: "Grants permission to register a CA certificate with AWS IoT", + Privilege: "RegisterCACertificate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accelerator*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add an endpoint group to a standard accelerator listener", - Privilege: "CreateEndpointGroup", + Description: "Grants permission to register a device certificate with AWS IoT", + Privilege: "RegisterCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a listener to a standard accelerator", - Privilege: "CreateListener", + Description: "Grants permission to register a device certificate with AWS IoT without a registered CA (certificate authority)", + Privilege: "RegisterCertificateWithoutCA", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a standard accelerator", - Privilege: "DeleteAccelerator", + Description: "Grants permission to register your thing", + Privilege: "RegisterThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a CrossAccountAttachment", - Privilege: "DeleteCrossAccountAttachment", + Description: "Grants permission to reject a pending certificate transfer", + Privilege: "RejectCertificateTransfer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "cert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom routing accelerator", - Privilege: "DeleteCustomRoutingAccelerator", + Description: "Grants permission to remove thing from the specified billing group", + Privilege: "RemoveThingFromBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "billinggroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an endpoint group from a listener for a custom routing accelerator", - Privilege: "DeleteCustomRoutingEndpointGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a listener for a custom routing accelerator", - Privilege: "DeleteCustomRoutingListener", + Description: "Grants permission to remove thing from the specified thing group", + Privilege: "RemoveThingFromThingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "thing*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an endpoint group associated with a standard accelerator listener", - Privilege: "DeleteEndpointGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "thinggroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a listener from a standard accelerator", - Privilege: "DeleteListener", + Description: "Grants permission to replace the specified rule", + Privilege: "ReplaceTopicRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "rule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disallows custom routing of user traffic to a private destination IP:PORT in a specific VPC subnet", - Privilege: "DenyCustomRoutingTraffic", + Description: "Grants permission to publish a retained message to the specified topic", + Privilege: "RetainPublish", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to releases the specified address range that you provisioned for use with your accelerator through bring your own IP addresses (BYOIP)", - Privilege: "DeprovisionByoipCidr", + Description: "Grants permission to rotate the access token of a tunnel", + Privilege: "RotateTunnelAccessToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "tunnel*", + }, + { + ConditionKeys: []string{ + "iot:ThingGroupArn", + "iot:TunnelDestinationService", + "iot:ClientMode", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to describe a standard accelerator", - Privilege: "DescribeAccelerator", + Description: "Grants permission to search IoT fleet index", + Privilege: "SearchIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a standard accelerator attributes", - Privilege: "DescribeAcceleratorAttributes", + AccessLevel: "Permissions management", + Description: "Grants permission to set the default authorizer. This will be used if a websocket connection is made without specifying an authorizer", + Privilege: "SetDefaultAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "authorizer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permissions to describe a CrossAccountAttachment", - Privilege: "DescribeCrossAccountAttachment", + AccessLevel: "Permissions management", + Description: "Grants permission to set the specified version of the specified policy as the policy's default (operative) version", + Privilege: "SetDefaultPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "policy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a custom routing accelerator", - Privilege: "DescribeCustomRoutingAccelerator", + AccessLevel: "Write", + Description: "Grants permission to set the logging options", + Privilege: "SetLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the attributes of a custom routing accelerator", - Privilege: "DescribeCustomRoutingAcceleratorAttributes", + AccessLevel: "Write", + Description: "Grants permission to set the v2 logging level", + Privilege: "SetV2LoggingLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an endpoint group for a custom routing accelerator", - Privilege: "DescribeCustomRoutingEndpointGroup", + AccessLevel: "Write", + Description: "Grants permission to set the v2 logging options", + Privilege: "SetV2LoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a listener for a custom routing accelerator", - Privilege: "DescribeCustomRoutingListener", + AccessLevel: "Write", + Description: "Grants permission to start a task that applies a set of mitigation actions to the specified target", + Privilege: "StartAuditMitigationActionsTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a standard accelerator endpoint group", - Privilege: "DescribeEndpointGroup", + AccessLevel: "Write", + Description: "Grants permission to start a new command execution", + Privilege: "StartCommandExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "command*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a standard accelerator listener", - Privilege: "DescribeListener", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "client", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all standard accelerators", - Privilege: "ListAccelerators", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "thing", + }, + { + ConditionKeys: []string{ + "iot:CommandExecutionParameterString/${CommandParameterName}", + "iot:CommandExecutionParameterBoolean/${CommandParameterName}", + "iot:CommandExecutionParameterNumber/${CommandParameterName}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the BYOIP cidrs", - Privilege: "ListByoipCidrs", + AccessLevel: "Write", + Description: "Grants permission to start a Device Defender ML Detect mitigation actions task", + Privilege: "StartDetectMitigationActionsTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "securityprofile", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all CrossAccountAttachments", - Privilege: "ListCrossAccountAttachments", + AccessLevel: "Write", + Description: "Grants permission to start an on-demand Device Defender audit", + Privilege: "StartOnDemandAuditTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -129985,9 +171639,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list accounts with CrossAccountAttachments listing caller as a principal", - Privilege: "ListCrossAccountResourceAccounts", + AccessLevel: "Write", + Description: "Grants permission to start a bulk thing registration task", + Privilege: "StartThingRegistrationTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -129997,9 +171651,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all CrossAccountAttachment resources usable by caller", - Privilege: "ListCrossAccountResources", + AccessLevel: "Write", + Description: "Grants permission to stop a bulk thing registration task", + Privilege: "StopThingRegistrationTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -130009,570 +171663,336 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the custom routing accelerators for an AWS account", - Privilege: "ListCustomRoutingAccelerators", + AccessLevel: "Write", + Description: "Grants permission to subscribe to the specified TopicFilter", + Privilege: "Subscribe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topicfilter*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the endpoint groups that are associated with a listener for a custom routing accelerator", - Privilege: "ListCustomRoutingEndpointGroups", + AccessLevel: "Tagging", + Description: "Grants permission to tag a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "authorizer", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the listeners for a custom routing accelerator", - Privilege: "ListCustomRoutingListeners", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "billinggroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the port mappings for a custom routing accelerator", - Privilege: "ListCustomRoutingPortMappings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "cacert", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the port mappings for a specific endpoint IP address (a destination address) in a subnet", - Privilege: "ListCustomRoutingPortMappingsByDestination", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "certificateprovider", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all endpoint groups associated with a standard accelerator listener", - Privilege: "ListEndpointGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "command", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all listeners associated with a standard accelerator", - Privilege: "ListListeners", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "custommetric", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list tags for a globalaccelerator resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator", + ResourceType: "dimension", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment", + ResourceType: "domainconfiguration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to provisions an address range for use with your accelerator through bring your own IP addresses (BYOIP)", - Privilege: "ProvisionByoipCidr", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dynamicthinggroup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove virtual private cloud (VPC) subnet endpoints from a custom routing accelerator endpoint group", - Privilege: "RemoveCustomRoutingEndpoints", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "fleetmetric", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove an endpoint from a standard accelerator endpoint group", - Privilege: "RemoveEndpoints", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "globalaccelerator:UpdateEndpointGroup", - }, - ResourceType: "endpointgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a globalaccelerator resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator", + ResourceType: "jobtemplate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment", + ResourceType: "mitigationaction", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "otaupdate", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a globalaccelerator resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator", + ResourceType: "package", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment", + ResourceType: "packageversion", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a standard accelerator", - Privilege: "UpdateAccelerator", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "provisioningtemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a standard accelerator attributes", - Privilege: "UpdateAcceleratorAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "rolealias", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a CrossAccountAttachment", - Privilege: "UpdateCrossAccountAttachment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "rule", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a custom routing accelerator", - Privilege: "UpdateCustomRoutingAccelerator", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "scheduledaudit", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the attributes for a custom routing accelerator", - Privilege: "UpdateCustomRoutingAcceleratorAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accelerator*", + ResourceType: "securityprofile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a listener for a custom routing accelerator", - Privilege: "UpdateCustomRoutingListener", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "stream", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thinggroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thingtype", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an endpoint group on a standard accelerator listener", - Privilege: "UpdateEndpointGroup", + AccessLevel: "Read", + Description: "Grants permission to test the policies evaluation for group policies", + Privilege: "TestAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointgroup*", + ResourceType: "cert", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a listener on a standard accelerator", - Privilege: "UpdateListener", + AccessLevel: "Read", + Description: "Grants permission to test invoke the specified custom authorizer for testing purposes", + Privilege: "TestInvokeAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listener*", + ResourceType: "authorizer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stops advertising a BYOIP IPv4 address", - Privilege: "WithdrawByoipCidr", + Description: "Grants permission to transfer the specified certificate to the specified AWS account", + Privilege: "TransferCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cert*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:globalaccelerator::${Account}:accelerator/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "accelerator", - }, - { - Arn: "arn:${Partition}:globalaccelerator::${Account}:accelerator/${ResourceId}/listener/${ListenerId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "listener", - }, - { - Arn: "arn:${Partition}:globalaccelerator::${Account}:accelerator/${ResourceId}/listener/${ListenerId}/endpoint-group/${EndpointGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "endpointgroup", - }, - { - Arn: "arn:${Partition}:globalaccelerator::${Account}:attachment/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "attachment", - }, - }, - ServiceName: "AWS Global Accelerator", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "glue:CredentialIssuingService", - Description: "Filters access by the service from which the credentials of the request is issued", - Type: "String", - }, - { - Condition: "glue:RoleAssumedBy", - Description: "Filters access by the service from which the credentials of the request is obtained by assuming the customer role", - Type: "String", - }, - { - Condition: "glue:SecurityGroupIds", - Description: "Filters access by the ID of security groups configured for the Glue job", - Type: "ArrayOfString", - }, - { - Condition: "glue:SubnetIds", - Description: "Filters access by the ID of subnets configured for the Glue job", - Type: "ArrayOfString", - }, - { - Condition: "glue:VpcIds", - Description: "Filters access by the ID of the VPC configured for the Glue job", - Type: "ArrayOfString", - }, - }, - Prefix: "glue", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create one or more partitions", - Privilege: "BatchCreatePartition", + AccessLevel: "Tagging", + Description: "Grants permission to untag a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "authorizer", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "billinggroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "cacert", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete one or more connections", - Privilege: "BatchDeleteConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "certificateprovider", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "command", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete one or more partitions", - Privilege: "BatchDeletePartition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "custommetric", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "dimension", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "domainconfiguration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete one or more tables", - Privilege: "BatchDeleteTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "dynamicthinggroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "fleetmetric", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete one or more versions of a table", - Privilege: "BatchDeleteTableVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "jobtemplate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "mitigationaction", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "otaupdate", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more blueprints", - Privilege: "BatchGetBlueprints", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "package", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more crawlers", - Privilege: "BatchGetCrawlers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crawler*", + ResourceType: "packageversion", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more Custom Entity Types", - Privilege: "BatchGetCustomEntityTypes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customEntityType*", + ResourceType: "policy", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more development endpoints", - Privilege: "BatchGetDevEndpoints", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devendpoint*", + ResourceType: "provisioningtemplate", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more jobs", - Privilege: "BatchGetJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "rolealias", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more partitions", - Privilege: "BatchGetPartition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "scheduledaudit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "securityprofile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thinggroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "thingtype", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to batch get stage files for SparkUI", - Privilege: "BatchGetStageFiles", + AccessLevel: "Write", + Description: "Grants permission to configure or reconfigure the Device Defender audit settings for this account", + Privilege: "UpdateAccountAuditConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -130582,151 +172002,143 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the configuration for the specified table optimizers", - Privilege: "BatchGetTableOptimizer", + AccessLevel: "Write", + Description: "Grants permission to update a Device Defender audit suppression", + Privilege: "UpdateAuditSuppression", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetTable", - }, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more triggers", - Privilege: "BatchGetTriggers", + AccessLevel: "Write", + Description: "Grants permission to update an authorizer", + Privilege: "UpdateAuthorizer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger*", + ResourceType: "authorizer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more workflows", - Privilege: "BatchGetWorkflows", + AccessLevel: "Write", + Description: "Grants permission to update information associated with the specified billing group", + Privilege: "UpdateBillingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "billinggroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to annotate datapoints over time for a specific data quality statistic", - Privilege: "BatchPutDataQualityStatisticAnnotation", + Description: "Grants permission to update a registered CA certificate", + Privilege: "UpdateCACertificate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "cacert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop one or more job runs for a job", - Privilege: "BatchStopJobRun", + Description: "Grants permission to update the status of the specified certificate. This operation is idempotent", + Privilege: "UpdateCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "cert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update one or more partitions", - Privilege: "BatchUpdatePartition", + Description: "Grants permission to update a certificate provider", + Privilege: "UpdateCertificateProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "certificateprovider*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a command", + Privilege: "UpdateCommand", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "command*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running Data Quality rule recommendation run", - Privilege: "CancelDataQualityRuleRecommendationRun", + Description: "Grants permission to update the specified custom metric", + Privilege: "UpdateCustomMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "custommetric*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running Data Quality ruleset evaluation run", - Privilege: "CancelDataQualityRulesetEvaluationRun", + Description: "Grants permission to update the definition for a dimension", + Privilege: "UpdateDimension", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "dimension*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running ML Task Run", - Privilege: "CancelMLTaskRun", + Description: "Grants permission to update a domain configuration", + Privilege: "UpdateDomainConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "domainconfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a statement in an interactive session", - Privilege: "CancelStatement", + Description: "Grants permission to update a Dynamic Thing Group", + Privilege: "UpdateDynamicThingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "dynamicthinggroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a check the validity of schema version", - Privilege: "CheckSchemaVersionValidity", + AccessLevel: "Write", + Description: "Grants permission to update event configurations", + Privilege: "UpdateEventConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -130737,28 +172149,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a blueprint", - Privilege: "CreateBlueprint", + Description: "Grants permission to update a fleet metric", + Privilege: "UpdateFleetMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "fleetmetric*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a classifier", - Privilege: "CreateClassifier", + Description: "Grants permission to update fleet indexing configuration", + Privilege: "UpdateIndexingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -130769,244 +172178,231 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a connection", - Privilege: "CreateConnection", + Description: "Grants permission to update a job", + Privilege: "UpdateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a crawler", - Privilege: "CreateCrawler", + Description: "Grants permission to update the definition for the specified mitigation action", + Privilege: "UpdateMitigationAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mitigationaction*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Custom Entity Type", - Privilege: "CreateCustomEntityType", + Description: "Grants permission to update a package", + Privilege: "UpdatePackage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:GetIndexingConfiguration", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "package*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Data Quality ruleset", - Privilege: "CreateDataQualityRuleset", + Description: "Grants permission to update the package configuration of the account", + Privilege: "UpdatePackageConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a database", - Privilege: "CreateDatabase", + Description: "Grants permission to update the version of the specified package", + Privilege: "UpdatePackageVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "catalog*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:GetIndexingConfiguration", + "s3:GetObjectVersion", + }, + ResourceType: "package*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "packageversion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a development endpoint", - Privilege: "CreateDevEndpoint", + Description: "Grants permission to update a fleet provisioning template", + Privilege: "UpdateProvisioningTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "provisioningtemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a job", - Privilege: "CreateJob", + Description: "Grants permission to update the role alias", + Privilege: "UpdateRoleAlias", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "glue:VpcIds", - "glue:SubnetIds", - "glue:SecurityGroupIds", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "rolealias*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an ML Transform", - Privilege: "CreateMLTransform", + Description: "Grants permission to update a scheduled audit, including what checks are performed and how often the audit takes place", + Privilege: "UpdateScheduledAudit", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scheduledaudit*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a partition", - Privilege: "CreatePartition", + Description: "Grants permission to update a Device Defender security profile", + Privilege: "UpdateSecurityProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "securityprofile*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "custommetric", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dimension", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a specified partition index in an existing table", - Privilege: "CreatePartitionIndex", + Description: "Grants permission to update the data for a stream", + Privilege: "UpdateStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "stream*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update information associated with the specified thing", + Privilege: "UpdateThing", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "thing*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update information associated with the specified thing group", + Privilege: "UpdateThingGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "thinggroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new schema registry", - Privilege: "CreateRegistry", + Description: "Grants permission to update the thing groups to which the thing belongs", + Privilege: "UpdateThingGroupsForThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "thing*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thinggroup", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new schema container", - Privilege: "CreateSchema", + Description: "Grants permission to update the thing shadow", + Privilege: "UpdateThingShadow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "thing*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update information associated with the specified thing type", + Privilege: "UpdateThingType", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "thingtype*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a script", - Privilege: "CreateScript", + Description: "Grants permission to update a TopicRuleDestination", + Privilege: "UpdateTopicRuleDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "destination*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a security configuration", - Privilege: "CreateSecurityConfiguration", + AccessLevel: "Read", + Description: "Grants permission to validate a Device Defender security profile behaviors specification", + Privilege: "ValidateSecurityProfileBehaviors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -131015,84 +172411,349 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to create an interactive session", - Privilege: "CreateSession", + Arn: "arn:${Partition}:iot:${Region}:${Account}:client/${ClientId}", + ConditionKeys: []string{}, + Resource: "client", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:index/${IndexName}", + ConditionKeys: []string{}, + Resource: "index", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:fleetmetric/${FleetMetricName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "fleetmetric", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:job/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "job", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:jobtemplate/${JobTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "jobtemplate", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:tunnel/${TunnelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "tunnel", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", + ConditionKeys: []string{}, + Resource: "thing", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thinggroup/${ThingGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "thinggroup", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:billinggroup/${BillingGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "billinggroup", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thinggroup/${ThingGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dynamicthinggroup", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thingtype/${ThingTypeName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "thingtype", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:topic/${TopicName}", + ConditionKeys: []string{}, + Resource: "topic", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:topicfilter/${TopicFilter}", + ConditionKeys: []string{}, + Resource: "topicfilter", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:rolealias/${RoleAlias}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rolealias", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:authorizer/${AuthorizerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "authorizer", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:policy/${PolicyName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "policy", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:cert/${Certificate}", + ConditionKeys: []string{}, + Resource: "cert", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:cacert/${CACertificate}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cacert", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:stream/${StreamId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "stream", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:otaupdate/${OtaUpdateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "otaupdate", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:scheduledaudit/${ScheduleName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "scheduledaudit", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:mitigationaction/${MitigationActionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mitigationaction", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:securityprofile/${SecurityProfileName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "securityprofile", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:custommetric/${MetricName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "custommetric", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:dimension/${DimensionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dimension", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:rule/${RuleName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rule", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:ruledestination/${DestinationType}/${Uuid}", + ConditionKeys: []string{}, + Resource: "destination", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:provisioningtemplate/${ProvisioningTemplate}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "provisioningtemplate", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:domainconfiguration/${DomainConfigurationName}/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "domainconfiguration", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:package/${PackageName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "package", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:package/${PackageName}/version/${VersionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "packageversion", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:certificateprovider/${CertificateProviderName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "certificateprovider", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:command/${CommandId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "command", + }, + }, + ServiceName: "AWS IoT", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "iot-device-tester", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to IoT Device Tester to check if a given set of product, test suite and device tester version are compatible", + Privilege: "CheckVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to IoT Device Tester to download compatible test suite versions", + Privilege: "DownloadTestSuite", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "glue:VpcIds", - "glue:SubnetIds", - "glue:SecurityGroupIds", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a table", - Privilege: "CreateTable", + AccessLevel: "Read", + Description: "Grants permission to IoT Device Tester to get information on latest version of device tester available", + Privilege: "LatestIdt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to IoT Device Tester to send usage metrics on your behalf", + Privilege: "SendMetrics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to IoT Device Tester to get list of supported products and test suite versions", + Privilege: "SupportedVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS IoT Device Tester", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "iotanalytics:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + }, + Prefix: "iotanalytics", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a new table optimizer for a specific function. Compaction is the only currently supported optimizer type", - Privilege: "CreateTableOptimizer", + Description: "Puts a batch of messages into the specified channel", + Privilege: "BatchPutMessage", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetTable", - }, - ResourceType: "catalog*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Cancels reprocessing for the specified pipeline", + Privilege: "CancelPipelineReprocessing", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a trigger", - Privilege: "CreateTrigger", + Description: "Creates a channel", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger*", + ResourceType: "channel*", }, { ConditionKeys: []string{ @@ -131106,13 +172767,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a usage profile", - Privilege: "CreateUsageProfile", + Description: "Creates a dataset", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usageProfile*", + ResourceType: "dataset*", }, { ConditionKeys: []string{ @@ -131126,30 +172787,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a function definition", - Privilege: "CreateUserDefinedFunction", + Description: "Generates content from the specified dataset (by executing the dataset actions)", + Privilege: "CreateDatasetContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workflow", - Privilege: "CreateWorkflow", + Description: "Creates a datastore", + Privilege: "CreateDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "datastore*", }, { ConditionKeys: []string{ @@ -131163,444 +172819,501 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a blueprint", - Privilege: "DeleteBlueprint", + Description: "Creates a pipeline", + Privilege: "CreatePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "pipeline*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a classifier", - Privilege: "DeleteClassifier", + Description: "Deletes the specified channel", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the partition column statistics of a column", - Privilege: "DeleteColumnStatisticsForPartition", + Description: "Deletes the specified dataset", + Privilege: "DeleteDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the table statistics of columns", - Privilege: "DeleteColumnStatisticsForTable", + Description: "Deletes the content of the specified dataset", + Privilege: "DeleteDatasetContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified datastore", + Privilege: "DeleteDatastore", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a connection", - Privilege: "DeleteConnection", + Description: "Deletes the specified pipeline", + Privilege: "DeletePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Describes the specified channel", + Privilege: "DescribeChannel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a crawler", - Privilege: "DeleteCrawler", + AccessLevel: "Read", + Description: "Describes the specified dataset", + Privilege: "DescribeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crawler*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Custom Entity Type", - Privilege: "DeleteCustomEntityType", + AccessLevel: "Read", + Description: "Describes the specified datastore", + Privilege: "DescribeDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customEntityType*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Data Quality ruleset", - Privilege: "DeleteDataQualityRuleset", + AccessLevel: "Read", + Description: "Describes logging options for the the account", + Privilege: "DescribeLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a database", - Privilege: "DeleteDatabase", + AccessLevel: "Read", + Description: "Describes the specified pipeline", + Privilege: "DescribePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets the content of the specified dataset", + Privilege: "GetDatasetContent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "List", + Description: "Lists the channels for the account", + Privilege: "ListChannels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Lists information about dataset contents that have been created", + Privilege: "ListDatasetContents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userdefinedfunction*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a development endpoint", - Privilege: "DeleteDevEndpoint", + AccessLevel: "List", + Description: "Lists the datasets for the account", + Privilege: "ListDatasets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devendpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a job", - Privilege: "DeleteJob", + AccessLevel: "List", + Description: "Lists the datastores for the account", + Privilege: "ListDatastores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an ML Transform", - Privilege: "DeleteMLTransform", + AccessLevel: "List", + Description: "Lists the pipelines for the account", + Privilege: "ListPipelines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a partition", - Privilege: "DeletePartition", + AccessLevel: "Read", + Description: "Lists the tags (metadata) which you have assigned to the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "datastore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified partition index from an existing table", - Privilege: "DeletePartitionIndex", + Description: "Puts logging options for the the account", + Privilege: "PutLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Runs the specified pipeline activity", + Privilege: "RunPipelineActivity", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a schema registry", - Privilege: "DeleteRegistry", + AccessLevel: "Read", + Description: "Samples the specified channel's data", + Privilege: "SampleChannelData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a resource policy", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Write", + Description: "Starts reprocessing for the specified pipeline", + Privilege: "StartPipelineReprocessing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a schema container", - Privilege: "DeleteSchema", + AccessLevel: "Tagging", + Description: "Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a range of schema versions", - Privilege: "DeleteSchemaVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "datastore", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "pipeline", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a security configuration", - Privilege: "DeleteSecurityConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an interactive session after stopping the session if not already stopped", - Privilege: "DeleteSession", + AccessLevel: "Tagging", + Description: "Removes the given tags (metadata) from the resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a table", - Privilege: "DeleteTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "datastore", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "pipeline", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an optimizer and all associated metadata for a table. The optimization will no longer be performed on the table", - Privilege: "DeleteTableOptimizer", + Description: "Updates the specified channel", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetTable", - }, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a version of a table", - Privilege: "DeleteTableVersion", + Description: "Updates the specified dataset", + Privilege: "UpdateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Updates the specified datastore", + Privilege: "UpdateDatastore", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "datastore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Updates the specified pipeline", + Privilege: "UpdatePipeline", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "pipeline*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:channel/${ChannelName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "iotanalytics:ResourceTag/${TagKey}", + }, + Resource: "channel", + }, + { + Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:dataset/${DatasetName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "iotanalytics:ResourceTag/${TagKey}", + }, + Resource: "dataset", + }, + { + Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:datastore/${DatastoreName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "iotanalytics:ResourceTag/${TagKey}", + }, + Resource: "datastore", + }, + { + Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:pipeline/${PipelineName}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "iotanalytics:ResourceTag/${TagKey}", + }, + Resource: "pipeline", + }, + }, + ServiceName: "AWS IoT Analytics", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, { - AccessLevel: "Write", - Description: "Grants permission to delete a trigger", - Privilege: "DeleteTrigger", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "trigger*", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to delete a usage profile", - Privilege: "DeleteUsageProfile", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "usageProfile*", - }, - }, + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "iotdeviceadvisor", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a function definition", - Privilege: "DeleteUserDefinedFunction", + Description: "Grants permission to create a suite definition", + Privilege: "CreateSuiteDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "userdefinedfunction*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a workflow", - Privilege: "DeleteWorkflow", + Description: "Grants permission to delete a suite definition", + Privilege: "DeleteSuiteDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "Suitedefinition*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to terminate Glue Studio Notebook session", - Privilege: "DeregisterDataPreview", + AccessLevel: "Read", + Description: "Grants permission to get a Device Advisor endpoint", + Privilege: "GetEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -131610,402 +173323,458 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to describe connection type in glue studio", - Privilege: "DescribeConnectionType", + AccessLevel: "Read", + Description: "Grants permission to get a suite definition", + Privilege: "GetSuiteDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Suitedefinition*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to describe entity in glue studio", - Privilege: "DescribeEntity", + AccessLevel: "Read", + Description: "Grants permission to get a suite run", + Privilege: "GetSuiteRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "Suiterun*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a blueprint", - Privilege: "GetBlueprint", + Description: "Grants permission to get the qualification report for a suite run", + Privilege: "GetSuiteRunReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "Suiterun*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a blueprint run", - Privilege: "GetBlueprintRun", + AccessLevel: "List", + Description: "Grants permission to list suite definitions", + Privilege: "ListSuiteDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all runs of a blueprint", - Privilege: "GetBlueprintRuns", + AccessLevel: "List", + Description: "Grants permission to list suite runs", + Privilege: "ListSuiteRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "Suitedefinition*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the catalog import status", - Privilege: "GetCatalogImportStatus", + Description: "Grants permission to list the tags (metadata) assigned to a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "Suitedefinition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Suiterun", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a classifier", - Privilege: "GetClassifier", + AccessLevel: "Write", + Description: "Grants permission to start a suite run", + Privilege: "StartSuiteRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all classifiers", - Privilege: "GetClassifiers", + AccessLevel: "Write", + Description: "Grants permission to stop a suite run", + Privilege: "StopSuiteRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Suiterun*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve partition statistics of columns", - Privilege: "GetColumnStatisticsForPartition", + AccessLevel: "Tagging", + Description: "Grants permission to add to or modify the tags of the given resource. Tags are metadata which can be used to manage a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "Suitedefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "Suiterun", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve table statistics of columns", - Privilege: "GetColumnStatisticsForTable", + AccessLevel: "Tagging", + Description: "Grants permission to remove the given tags (metadata) from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "Suitedefinition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "Suiterun", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve Column Statistics run information for the table based on run-id", - Privilege: "GetColumnStatisticsTaskRun", + AccessLevel: "Write", + Description: "Grants permission to update a suite definition", + Privilege: "UpdateSuiteDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Suitedefinition*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve Column Statistics run information for the table based on run-ids", - Privilege: "GetColumnStatisticsTaskRuns", + Arn: "arn:${Partition}:iotdeviceadvisor:${Region}:${Account}:suitedefinition/${SuiteDefinitionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Suitedefinition", + }, + { + Arn: "arn:${Partition}:iotdeviceadvisor:${Region}:${Account}:suiterun/${SuiteDefinitionId}/${SuiteRunId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Suiterun", + }, + }, + ServiceName: "AWS IoT Core Device Advisor", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions by the tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "iotevents:keyValue", + Description: "Filters access by the instanceId (key-value) of the message", + Type: "String", + }, + }, + Prefix: "iotevents", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to send one or more acknowledge action requests to AWS IoT Events", + Privilege: "BatchAcknowledgeAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get generated response for a completion request in Glue from AWS Q", - Privilege: "GetCompletion", + AccessLevel: "Write", + Description: "Grants permission to delete a detector instance within the AWS IoT Events system", + Privilege: "BatchDeleteDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "completion*", + ResourceType: "detectorModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a connection", - Privilege: "GetConnection", + AccessLevel: "Write", + Description: "Grants permission to disable one or more alarm instances", + Privilege: "BatchDisableAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of connections", - Privilege: "GetConnections", + AccessLevel: "Write", + Description: "Grants permission to enable one or more alarm instances", + Privilege: "BatchEnableAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a crawler", - Privilege: "GetCrawler", + AccessLevel: "Write", + Description: "Grants permission to send a set of messages to the AWS IoT Events system", + Privilege: "BatchPutMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crawler*", + ResourceType: "input*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metrics about crawlers", - Privilege: "GetCrawlerMetrics", + AccessLevel: "Write", + Description: "Grants permission to reset one or more alarm instances", + Privilege: "BatchResetAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all crawlers", - Privilege: "GetCrawlers", + AccessLevel: "Write", + Description: "Grants permission to change one or more alarm instances to the snooze mode", + Privilege: "BatchSnoozeAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read a Custom Entity Type", - Privilege: "GetCustomEntityType", + AccessLevel: "Write", + Description: "Grants permission to update a detector instance within the AWS IoT Events system", + Privilege: "BatchUpdateDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customEntityType*", + ResourceType: "detectorModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve catalog encryption settings", - Privilege: "GetDataCatalogEncryptionSettings", + AccessLevel: "Write", + Description: "Grants permission to create an alarm model to monitor an AWS IoT Events input attribute or an AWS IoT SiteWise asset property", + Privilege: "CreateAlarmModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "alarmModel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get Data Preview Statement", - Privilege: "GetDataPreviewStatement", + AccessLevel: "Write", + Description: "Grants permission to create a detector model to monitor an AWS IoT Events input attribute", + Privilege: "CreateDetectorModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "detectorModel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the retraining status of the model", - Privilege: "GetDataQualityModel", + AccessLevel: "Write", + Description: "Grants permission to create an Input in IotEvents", + Privilege: "CreateInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "input*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the latest predictions for a statistic from the model", - Privilege: "GetDataQualityModelResult", + AccessLevel: "Write", + Description: "Grants permission to delete an alarm model", + Privilege: "DeleteAlarmModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a Data Quality result", - Privilege: "GetDataQualityResult", + AccessLevel: "Write", + Description: "Grants permission to delete a detector model", + Privilege: "DeleteDetectorModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "detectorModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a Data Quality rule recommendation run", - Privilege: "GetDataQualityRuleRecommendationRun", + AccessLevel: "Write", + Description: "Grants permission to delete an input", + Privilege: "DeleteInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "input*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a Data Quality ruleset", - Privilege: "GetDataQualityRuleset", + Description: "Grants permission to retrieve information about an alarm instance", + Privilege: "DescribeAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "alarmModel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a Data Quality rule recommendation run", - Privilege: "GetDataQualityRulesetEvaluationRun", + Description: "Grants permission to retrieve information about an alarm model", + Privilege: "DescribeAlarmModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "alarmModel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a database", - Privilege: "GetDatabase", + Description: "Grants permission to retriev information about a detector instance", + Privilege: "DescribeDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "detectorModel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all databases", - Privilege: "GetDatabases", + Description: "Grants permission to retrieve information about a detector model", + Privilege: "DescribeDetectorModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "detectorModel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to transform a script into a directed acyclic graph (DAG)", - Privilege: "GetDataflowGraph", + Description: "Grants permission to retrieve the detector model analysis information", + Privilege: "DescribeDetectorModelAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132016,20 +173785,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a development endpoint", - Privilege: "GetDevEndpoint", + Description: "Grants permission to retrieve an information about Input", + Privilege: "DescribeInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devendpoint*", + ResourceType: "input*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all development endpoints", - Privilege: "GetDevEndpoints", + Description: "Grants permission to retrieve the current settings of the AWS IoT Events logging options", + Privilege: "DescribeLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132039,9 +173808,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get environment details for SparkUI", - Privilege: "GetEnvironment", + AccessLevel: "Read", + Description: "Grants permission to retrieve the detector model analysis results", + Privilege: "GetDetectorModelAnalysisResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132051,21 +173820,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get executors for SparkUI", - Privilege: "GetExecutors", + AccessLevel: "List", + Description: "Grants permission to list all the versions of an alarm model", + Privilege: "ListAlarmModelVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get executor threads for SparkUI", - Privilege: "GetExecutorsThreads", + AccessLevel: "List", + Description: "Grants permission to list the alarm models that you created", + Privilege: "ListAlarmModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132075,57 +173844,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a job", - Privilege: "GetJob", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all alarm instances per alarmModel", + Privilege: "ListAlarms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a job bookmark", - Privilege: "GetJobBookmark", + AccessLevel: "List", + Description: "Grants permission to list all the versions of a detector model", + Privilege: "ListDetectorModelVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "detectorModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a job run", - Privilege: "GetJobRun", + AccessLevel: "List", + Description: "Grants permission to list the detector models that you created", + Privilege: "ListDetectorModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all job runs of a job", - Privilege: "GetJobRuns", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all detector instances per detectormodel", + Privilege: "ListDetectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "detectorModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all current jobs", - Privilege: "GetJobs", + AccessLevel: "List", + Description: "Grants permission to list one or more input routings", + Privilege: "ListInputRoutings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132135,9 +173904,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get log parsing status for SparkUI", - Privilege: "GetLogParsingStatus", + AccessLevel: "List", + Description: "Grants permission to lists the inputs you have created", + Privilege: "ListInputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132148,56 +173917,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an ML Task Run", - Privilege: "GetMLTaskRun", + Description: "Grants permission to list the tags (metadata) which you have assigned to the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "alarmModel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve all ML Task Runs", - Privilege: "GetMLTaskRuns", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "detectorModel", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an ML Transform", - Privilege: "GetMLTransform", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "input", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all ML Transforms", - Privilege: "GetMLTransforms", + AccessLevel: "Write", + Description: "Grants permission to set or update the AWS IoT Events logging options", + Privilege: "PutLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to create a mapping", - Privilege: "GetMapping", + AccessLevel: "Write", + Description: "Grants permission to start the detector model analysis", + Privilege: "StartDetectorModelAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132207,658 +173962,775 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to retrieve Glue Studio Notebooks session status", - Privilege: "GetNotebookInstanceStatus", + AccessLevel: "Tagging", + Description: "Grants permission to adds to or modifies the tags of the given resource.Tags are metadata which can be used to manage a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alarmModel", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a partition", - Privilege: "GetPartition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "detectorModel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "input", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve partition indexes for a table", - Privilege: "GetPartitionIndexes", + AccessLevel: "Tagging", + Description: "Grants permission to remove the given tags (metadata) from the resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "alarmModel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "detectorModel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "input", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the partitions of a table", - Privilege: "GetPartitions", + AccessLevel: "Write", + Description: "Grants permission to update an alarm model", + Privilege: "UpdateAlarmModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "alarmModel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a mapping for a script", - Privilege: "GetPlan", + AccessLevel: "Write", + Description: "Grants permission to update a detector model", + Privilege: "UpdateDetectorModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "detectorModel*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get queries for SparkUI", - Privilege: "GetQueries", + AccessLevel: "Write", + Description: "Grants permission to update an input", + Privilege: "UpdateInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get a specific query for SparkUI", - Privilege: "GetQuery", + AccessLevel: "Write", + Description: "Grants permission to update input routing", + Privilege: "UpdateInputRouting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve a schema registry", - Privilege: "GetRegistry", + Arn: "arn:${Partition}:iotevents:${Region}:${Account}:detectorModel/${DetectorModelName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "detectorModel", + }, + { + Arn: "arn:${Partition}:iotevents:${Region}:${Account}:alarmModel/${AlarmModelName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "alarmModel", + }, + { + Arn: "arn:${Partition}:iotevents:${Region}:${Account}:input/${InputName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "input", + }, + }, + ServiceName: "AWS IoT Events", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions by the tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "iotfleethub", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve resource policies", - Privilege: "GetResourcePolicies", + AccessLevel: "Write", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "catalog*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteManagedApplicationInstance", + }, + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a resource policy", - Privilege: "GetResourcePolicy", + Description: "Grants permission to describe an application", + Privilege: "DescribeApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a schema container", - Privilege: "GetSchema", + AccessLevel: "List", + Description: "Grants permission to list all applications", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a schema version based on schema definition", - Privilege: "GetSchemaByDefinition", + Description: "Grants permission to list all tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "application", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a schema version", - Privilege: "GetSchemaVersion", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry", + ResourceType: "application", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "schema", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to compare two schema versions in schema registry", - Privilege: "GetSchemaVersionsDiff", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "application", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a security configuration", - Privilege: "GetSecurityConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve one or more security configurations", - Privilege: "GetSecurityConfigurations", + Arn: "arn:${Partition}:iotfleethub:${Region}:${Account}:application/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + }, + ServiceName: "AWS IoT Fleet Hub for Device Management", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "iotfleetwise:DestinationArn", + Description: "Filters access by campaign destination ARN, eg. an S3 bucket ARN or a Timestream ARN", + Type: "ARN", + }, + { + Condition: "iotfleetwise:Signals", + Description: "Filters access by fully qualified signal names", + Type: "ArrayOfString", + }, + { + Condition: "iotfleetwise:UpdateToDecoderManifestArn", + Description: "Filters access by a list of IoT FleetWise Decoder Manifest ARNs", + Type: "ARN", + }, + { + Condition: "iotfleetwise:UpdateToModelManifestArn", + Description: "Filters access by a list of IoT FleetWise Model Manifest ARNs", + Type: "ARN", + }, + }, + Prefix: "iotfleetwise", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate the given vehicle to a fleet", + Privilege: "AssociateVehicleFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleet*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an interactive session", - Privilege: "GetSession", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "vehicle*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get a stage for SparkUI", - Privilege: "GetStage", + AccessLevel: "Write", + Description: "Grants permission to create a batch of vehicles", + Privilege: "BatchCreateVehicle", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:CreateThing", + "iot:DescribeThing", + }, + ResourceType: "decodermanifest*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "modelmanifest*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to get a stage attempt for SparkUI", - Privilege: "GetStageAttempt", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "vehicle*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get the task list for a stage attempt for SparkUI", - Privilege: "GetStageAttemptTaskList", + AccessLevel: "Write", + Description: "Grants permission to update a batch of vehicles", + Privilege: "BatchUpdateVehicle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vehicle*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to get the task summary for a stage attempt for SparkUI", - Privilege: "GetStageAttemptTaskSummary", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "decodermanifest", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to get stage files for SparkUI", - Privilege: "GetStageFiles", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "modelmanifest", + }, + { + ConditionKeys: []string{ + "iotfleetwise:UpdateToModelManifestArn", + "iotfleetwise:UpdateToDecoderManifestArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to get stages for SparkUI", - Privilege: "GetStages", + AccessLevel: "Write", + Description: "Grants permission to create a campaign", + Privilege: "CreateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "campaign*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve result and information about a statement in an interactive session", - Privilege: "GetStatement", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "fleet*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to get storage details for SparkUI", - Privilege: "GetStorage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signalcatalog*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to get storage unit details for SparkUI", - Privilege: "GetStorageUnit", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "vehicle*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "iotfleetwise:DestinationArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a table", - Privilege: "GetTable", + AccessLevel: "Write", + Description: "Grants permission to create a decoder manifest for an existing model", + Privilege: "CreateDecoderManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "decodermanifest*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "modelmanifest*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the configuration of all optimizers associated with a specified table", - Privilege: "GetTableOptimizer", + AccessLevel: "Write", + Description: "Grants permission to create a fleet", + Privilege: "CreateFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetTable", - }, - ResourceType: "catalog*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fleet*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "signalcatalog*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a version of a table", - Privilege: "GetTableVersion", + AccessLevel: "Write", + Description: "Grants permission to create a model manifest definition", + Privilege: "CreateModelManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "modelmanifest*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "signalcatalog*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of versions of a table", - Privilege: "GetTableVersions", + AccessLevel: "Write", + Description: "Grants permission to create a signal catalog", + Privilege: "CreateSignalCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "signalcatalog*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the tables in a database", - Privilege: "GetTables", + AccessLevel: "Write", + Description: "Grants permission to create a state template", + Privilege: "CreateStateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "signalcatalog*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "statetemplate*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all tags associated with a resource", - Privilege: "GetTags", + AccessLevel: "Write", + Description: "Grants permission to create a vehicle", + Privilege: "CreateVehicle", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "blueprint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "crawler", + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:CreateThing", + "iot:DescribeThing", + }, + ResourceType: "decodermanifest*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customEntityType", + ResourceType: "modelmanifest*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devendpoint", + ResourceType: "vehicle*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a campaign", + Privilege: "DeleteCampaign", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger", + ResourceType: "campaign*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the given decoder manifest", + Privilege: "DeleteDecoderManifest", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usageProfile", + ResourceType: "decodermanifest*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a fleet", + Privilege: "DeleteFleet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "fleet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a trigger", - Privilege: "GetTrigger", + AccessLevel: "Write", + Description: "Grants permission to delete the given model manifest", + Privilege: "DeleteModelManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger*", + ResourceType: "modelmanifest*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the triggers associated with a job", - Privilege: "GetTriggers", + AccessLevel: "Write", + Description: "Grants permission to delete a specific signal catalog", + Privilege: "DeleteSignalCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signalcatalog*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a usage profile", - Privilege: "GetUsageProfile", + AccessLevel: "Write", + Description: "Grants permission to delete a state template", + Privilege: "DeleteStateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usageProfile*", + ResourceType: "statetemplate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a function definition", - Privilege: "GetUserDefinedFunction", + AccessLevel: "Write", + Description: "Grants permission to delete a vehicle", + Privilege: "DeleteVehicle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "vehicle*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a vehicle from an existing fleet", + Privilege: "DisassociateVehicleFleet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "fleet*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userdefinedfunction*", + ResourceType: "vehicle*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve multiple function definitions", - Privilege: "GetUserDefinedFunctions", + AccessLevel: "Permissions management", + Description: "Grants permission to generate the payload for running a command on a vehicle", + Privilege: "GenerateCommandPayload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "vehicle*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "statetemplate", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "iotfleetwise:Signals", + }, DependentActions: []string{}, - ResourceType: "userdefinedfunction*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a workflow", - Privilege: "GetWorkflow", + Description: "Grants permission to get summary information for a given campaign", + Privilege: "GetCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a workflow run", - Privilege: "GetWorkflowRun", + Description: "Grants permission to get summary information for a given decoder manifest definition", + Privilege: "GetDecoderManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "decodermanifest*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve workflow run properties", - Privilege: "GetWorkflowRunProperties", + Description: "Grants permission to get KMS-based encryption status for the AWS account", + Privilege: "GetEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all runs of a workflow", - Privilege: "GetWorkflowRuns", + Description: "Grants permission to get summary information for a fleet", + Privilege: "GetFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "fleet*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to access Glue Studio Notebooks", - Privilege: "GlueNotebookAuthorize", + AccessLevel: "Read", + Description: "Grants permission to get the logging options for the AWS account", + Privilege: "GetLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -132868,153 +174740,149 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to refresh Glue Studio Notebooks credentials", - Privilege: "GlueNotebookRefreshCredentials", + AccessLevel: "Read", + Description: "Grants permission to get summary information for a given model manifest definition", + Privilege: "GetModelManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "modelmanifest*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import an Athena data catalog into AWS Glue", - Privilege: "ImportCatalogToGlue", + AccessLevel: "Read", + Description: "Grants permission to get the account registration status with IoT FleetWise", + Privilege: "GetRegisterAccountStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all blueprints", - Privilege: "ListBlueprints", + AccessLevel: "Read", + Description: "Grants permission to get summary information for a specific signal catalog", + Privilege: "GetSignalCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signalcatalog*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all Column Statistics run-ids that have been executed for the account", - Privilege: "ListColumnStatisticsTaskRuns", + Description: "Grants permission to get summary information for a given state template", + Privilege: "GetStateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "statetemplate*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to list connection types in glue studio", - Privilege: "ListConnectionTypes", + AccessLevel: "Read", + Description: "Grants permission to get summary information for a vehicle", + Privilege: "GetVehicle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vehicle*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all crawlers", - Privilege: "ListCrawlers", + AccessLevel: "Read", + Description: "Grants permission to get the status of the campaigns running on a specific vehicle", + Privilege: "GetVehicleStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vehicle*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve crawl run history for a crawler", - Privilege: "ListCrawls", + AccessLevel: "Write", + Description: "Grants permission to import an existing decoder manifest", + Privilege: "ImportDecoderManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "decodermanifest*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all Custom Entity Types", - Privilege: "ListCustomEntityTypes", + AccessLevel: "Write", + Description: "Grants permission to create a signal catalog by importing existing definitions", + Privilege: "ImportSignalCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signalcatalog*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve all Data Quality results", - Privilege: "ListDataQualityResults", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all Data Quality rule recommendation runs", - Privilege: "ListDataQualityRuleRecommendationRuns", + AccessLevel: "Read", + Description: "Grants permission to list campaigns", + Privilege: "ListCampaigns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve all Data Quality rule recommendation runs", - Privilege: "ListDataQualityRulesetEvaluationRuns", + Description: "Grants permission to list network interfaces associated to the existing decoder manifest", + Privilege: "ListDecoderManifestNetworkInterfaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "decodermanifest*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of Data Quality rulesets", - Privilege: "ListDataQualityRulesets", + Description: "Grants permission to list decoder manifest signals", + Privilege: "ListDecoderManifestSignals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "decodermanifest*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve annotations for a data quality statistic", - Privilege: "ListDataQualityStatisticAnnotations", + AccessLevel: "Read", + Description: "Grants permission to list all decoder manifests, with an optional filter on model manifest", + Privilege: "ListDecoderManifests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133024,9 +174892,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve data quality statistics and annotations associated with it", - Privilege: "ListDataQualityStatistics", + AccessLevel: "Read", + Description: "Grants permission to list all fleets", + Privilege: "ListFleets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133036,38 +174904,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all development endpoints", - Privilege: "ListDevEndpoints", + AccessLevel: "Read", + Description: "Grants permission to list all the fleets that the given vehicle is associated with", + Privilege: "ListFleetsForVehicle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vehicle*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to list entities in glue studio", - Privilege: "ListEntities", + AccessLevel: "List", + Description: "Grants permission to list all nodes for the given model manifest", + Privilege: "ListModelManifestNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "modelmanifest*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all current jobs", - Privilege: "ListJobs", + AccessLevel: "Read", + Description: "Grants permission to list all model manifests, with an optional filter on signal catalog", + Privilege: "ListModelManifests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133077,21 +174940,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all ML Transforms", - Privilege: "ListMLTransforms", + AccessLevel: "Read", + Description: "Grants permission to list all nodes for a given signal catalog", + Privilege: "ListSignalCatalogNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "signalcatalog*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of schema registries", - Privilege: "ListRegistries", + AccessLevel: "Read", + Description: "Grants permission to list all signal catalogs", + Privilege: "ListSignalCatalogs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133101,86 +174964,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of schema versions", - Privilege: "ListSchemaVersions", + AccessLevel: "Read", + Description: "Grants permission to list state templates", + Privilege: "ListStateTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of schema containers", - Privilege: "ListSchemas", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry", + ResourceType: "campaign", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of interactive session", - Privilege: "ListSessions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "decodermanifest", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of statements in an interactive session", - Privilege: "ListStatements", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "fleet", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the history of previous optimizer runs for a specific table", - Privilege: "ListTableOptimizerRuns", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetTable", - }, - ResourceType: "catalog*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "modelmanifest", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "signalcatalog", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "vehicle", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all triggers", - Privilege: "ListTriggers", + AccessLevel: "Read", + Description: "Grants permission to list all vehicles, with an optional filter on model manifest", + Privilege: "ListVehicles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133190,21 +175025,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of usage profiles", - Privilege: "ListUsageProfiles", + AccessLevel: "Read", + Description: "Grants permission to list vehicles in the given fleet", + Privilege: "ListVehiclesInFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all workflows", - Privilege: "ListWorkflows", + AccessLevel: "Write", + Description: "Grants permission to enable or disable KMS-based encryption for the AWS account", + Privilege: "PutEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133215,327 +175050,387 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to notify an event to the event-driven workflow", - Privilege: "NotifyEvent", + Description: "Grants permission to put the logging options for the AWS account", + Privilege: "PutLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to pass glue connection name in input for APIs that require them", - Privilege: "PassConnection", + Description: "Grants permission to register an AWS account to IoT FleetWise", + Privilege: "RegisterAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to publish Data Quality results", - Privilege: "PublishDataQuality", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "campaign", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update catalog encryption settings", - Privilege: "PutDataCatalogEncryptionSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "decodermanifest", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to annotate all datapoints for a profile", - Privilege: "PutDataQualityProfileAnnotation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleet", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to update a resource policy", - Privilege: "PutResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "modelmanifest", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add metadata to schema version", - Privilege: "PutSchemaVersionMetadata", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry", + ResourceType: "signalcatalog", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema", + ResourceType: "statetemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update workflow run properties", - Privilege: "PutWorkflowRunProperties", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "vehicle", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch metadata for a schema version", - Privilege: "QuerySchemaVersionMetadata", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry", + ResourceType: "campaign", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema", + ResourceType: "decodermanifest", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to refresh the oauth2 tokens for connection during job execution", - Privilege: "RefreshOAuth2Tokens", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "fleet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "modelmanifest", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new schema version", - Privilege: "RegisterSchemaVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "signalcatalog", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "statetemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vehicle", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove metadata from schema version", - Privilege: "RemoveSchemaVersionMetadata", + Description: "Grants permission to update the given campaign", + Privilege: "UpdateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to request log parsing for SparkUI", - Privilege: "RequestLogParsing", + AccessLevel: "Write", + Description: "Grants permission to update a decoder manifest defnition", + Privilege: "UpdateDecoderManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "decodermanifest*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset a job bookmark", - Privilege: "ResetJobBookmark", + Description: "Grants permission to update the fleet", + Privilege: "UpdateFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fleet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to resume a workflow run", - Privilege: "ResumeWorkflowRun", + Description: "Grants permission to update the given model manifest definition", + Privilege: "UpdateModelManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "modelmanifest*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to run Data Preview Statement", - Privilege: "RunDataPreviewStatement", + AccessLevel: "Write", + Description: "Grants permission to update a specific signal catalog definition", + Privilege: "UpdateSignalCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signalcatalog*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run a code or statement in an interactive session", - Privilege: "RunStatement", + Description: "Grants permission to update the given state template", + Privilege: "UpdateStateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "statetemplate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the tables in the catalog", - Privilege: "SearchTables", + AccessLevel: "Write", + Description: "Grants permission to update the vehicle", + Privilege: "UpdateVehicle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "vehicle*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "decodermanifest", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "modelmanifest", + }, + { + ConditionKeys: []string{ + "iotfleetwise:UpdateToModelManifestArn", + "iotfleetwise:UpdateToDecoderManifestArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:campaign/${CampaignName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "campaign", + }, { - AccessLevel: "Write", - Description: "Grants permission to provide feedback about a glue completion experience in AWS Q", - Privilege: "SendFeedback", + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:decoder-manifest/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "decodermanifest", + }, + { + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:fleet/${FleetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "fleet", + }, + { + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:model-manifest/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "modelmanifest", + }, + { + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:signal-catalog/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "signalcatalog", + }, + { + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:vehicle/${VehicleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "vehicle", + }, + { + Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:state-template/${StateTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "statetemplate", + }, + }, + ServiceName: "AWS IoT FleetWise", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "iot:JobId", + Description: "Filters access by jobId for iotjobsdata:DescribeJobExecution and iotjobsdata:UpdateJobExecution APIs", + Type: "String", + }, + }, + Prefix: "iotjobsdata", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to describe a job execution", + Privilege: "DescribeJobExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "thing*", + }, + { + ConditionKeys: []string{ + "iot:JobId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start running a blueprint", - Privilege: "StartBlueprintRun", + AccessLevel: "Read", + Description: "Grants permission to get the list of all jobs for a thing that are not in a terminal state", + Privilege: "GetPendingJobExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a run for generating Column Statistics for the table", - Privilege: "StartColumnStatisticsTaskRun", + Description: "Grants permission to get and start the next pending job execution for a thing", + Privilege: "StartNextPendingJobExecution", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetSecurityConfiguration", - "glue:GetTable", - }, - ResourceType: "database*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a completion request in Glue for AWS Q experience", - Privilege: "StartCompletion", + Description: "Grants permission to update a job execution", + Privilege: "UpdateJobExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "thing*", + }, + { + ConditionKeys: []string{ + "iot:JobId", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", + ConditionKeys: []string{}, + Resource: "thing", + }, + }, + ServiceName: "AWS IoT Jobs DataPlane", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "iotmanagedintegrations", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to start a crawler", - Privilege: "StartCrawler", + Description: "Grants permission to create a product credential locker. This operation will trigger the creation of all the manufacturing resources including Wi-Fi setup key pair and device certificate", + Privilege: "CreateCredentialLocker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crawler*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the schedule state of a crawler to SCHEDULED", - Privilege: "StartCrawlerSchedule", + Description: "Grants permission to create a destination", + Privilege: "CreateDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133546,92 +175441,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a Data Quality rule recommendation run", - Privilege: "StartDataQualityRuleRecommendationRun", + Description: "Grants permission to set the event log configuration for the account, a resource type, or a specific resource", + Privilege: "CreateEventLogConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Data Quality rule recommendation run", - Privilege: "StartDataQualityRulesetEvaluationRun", + Description: "Grants permission to create a Managed Thing", + Privilege: "CreateManagedThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an Export Labels ML Task Run", - Privilege: "StartExportLabelsTaskRun", + Description: "Grants permission to create a notification configuration", + Privilege: "CreateNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an Import Labels ML Task Run", - Privilege: "StartImportLabelsTaskRun", + Description: "Grants permission to customers to create an OTA task to update their devices", + Privilege: "CreateOtaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start running a job", - Privilege: "StartJobRun", + Description: "Grants permission to create an OTA task configuration", + Privilege: "CreateOtaTaskConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an Evaluation ML Task Run", - Privilege: "StartMLEvaluationTaskRun", + Description: "Grants permission to create a new provisioning profile", + Privilege: "CreateProvisioningProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Labeling Set Generation ML Task Run", - Privilege: "StartMLLabelingSetGenerationTaskRun", + Description: "Grants permission to delete a Credential Locker. This operation cannot be undone and any existing device won't be able to use the IoT managed integrations Setup", + Privilege: "DeleteCredentialLocker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "CredentialLockerResource*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to start Glue Studio Notebooks", - Privilege: "StartNotebook", + AccessLevel: "Write", + Description: "Grants permission to delete a destination", + Privilege: "DeleteDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133642,61 +175537,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a trigger", - Privilege: "StartTrigger", + Description: "Grants permission to delete an event log configuration by log configuration ID", + Privilege: "DeleteEventLogConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start running a workflow", - Privilege: "StartWorkflowRun", + Description: "Grants permission to delete a managed thing. If a Controller is deleted, all the devices connected to it will have their status changed to pending. Note, it is not possible to remove a Cloud device", + Privilege: "DeleteManagedThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "ManagedThingResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop execution for Column Statistics run", - Privilege: "StopColumnStatisticsTaskRun", + Description: "Grants permission to delete a notification configuration", + Privilege: "DeleteNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running crawler", - Privilege: "StopCrawler", + Description: "Grants permission to delete an OTA task", + Privilege: "DeleteOtaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crawler*", + ResourceType: "OtaTaskResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the schedule state of a crawler to NOT_SCHEDULED", - Privilege: "StopCrawlerSchedule", + Description: "Grants permission to delete a OTA task configuration", + Privilege: "DeleteOtaTaskConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133707,129 +175597,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop an interactive session", - Privilege: "StopSession", + Description: "Grants permission to delete a provisioning Profile", + Privilege: "DeleteProvisioningProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", + ResourceType: "ProvisioningProfileResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a trigger", - Privilege: "StopTrigger", + AccessLevel: "Read", + Description: "Grants permission to get an existing Credential Locker information", + Privilege: "GetCredentialLocker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger*", + ResourceType: "CredentialLockerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a workflow run", - Privilege: "StopWorkflowRun", + AccessLevel: "Read", + Description: "Grants permission to customers to retrieve the custom endpoint address", + Privilege: "GetCustomEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get a connector by AWS ARN", + Privilege: "GetDefaultEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "crawler", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "customEntityType", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataQualityRuleset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "devendpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlTransform", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "session", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "trigger", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "usageProfile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflow", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to terminate Glue Studio Notebooks", - Privilege: "TerminateNotebook", + AccessLevel: "Read", + Description: "Grants permission to get a destination", + Privilege: "GetDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133839,9 +175656,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to test connection in Glue Studio", - Privilege: "TestConnection", + AccessLevel: "Read", + Description: "Grants permission to get the current state of a device discovery", + Privilege: "GetDeviceDiscovery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -133851,190 +175668,141 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get an event log configuration by log configuration ID", + Privilege: "GetEventLogConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "crawler", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "customEntityType", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataQualityRuleset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "devendpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlTransform", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "session", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "trigger", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "usageProfile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflow", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a blueprint", - Privilege: "UpdateBlueprint", + AccessLevel: "Read", + Description: "Grants permission to get hub configuration", + Privilege: "GetHubConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "blueprint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a classifier", - Privilege: "UpdateClassifier", + AccessLevel: "Read", + Description: "Grants permission to get a managed thing", + Privilege: "GetManagedThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ManagedThingResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update partition statistics of columns", - Privilege: "UpdateColumnStatisticsForPartition", + AccessLevel: "Read", + Description: "Grants permission to get capabilities by ManagedThingId", + Privilege: "GetManagedThingCapabilities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "ManagedThingResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the connectivity status of a Managed Thing", + Privilege: "GetManagedThingConnectivityData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "ManagedThingResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update table statistics of columns", - Privilege: "UpdateColumnStatisticsForTable", + AccessLevel: "Read", + Description: "Grants permission to get metaData info by ManagedThingId", + Privilege: "GetManagedThingMetaData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "ManagedThingResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get managed thing states by managed thing id", + Privilege: "GetManagedThingState", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "ManagedThingResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a notification configuration", + Privilege: "GetNotificationConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a connection", - Privilege: "UpdateConnection", + AccessLevel: "Read", + Description: "Grants permission to get the Ota task", + Privilege: "GetOtaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "OtaTaskResource*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an OTA task configuration", + Privilege: "GetOtaTaskConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a crawler", - Privilege: "UpdateCrawler", + AccessLevel: "Read", + Description: "Grants permission to get an existing provisioning profile information", + Privilege: "GetProvisioningProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crawler*", + ResourceType: "ProvisioningProfileResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the schedule of a crawler", - Privilege: "UpdateCrawlerSchedule", + AccessLevel: "Read", + Description: "Grants permission to get runtime log configuration for a specific managed thing or for all managed things as a group", + Privilege: "GetRuntimeLogConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -134044,262 +175812,273 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Data Quality ruleset", - Privilege: "UpdateDataQualityRuleset", + AccessLevel: "Read", + Description: "Grants permission to get a schema version with the provided information", + Privilege: "GetSchemaVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataQualityRuleset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a database", - Privilege: "UpdateDatabase", + AccessLevel: "List", + Description: "Grants permission to list the existing Credential Locker", + Privilege: "ListCredentialLockers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a development endpoint", - Privilege: "UpdateDevEndpoint", + AccessLevel: "List", + Description: "Grants permission to list all the destinations", + Privilege: "ListDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "devendpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a job", - Privilege: "UpdateJob", + AccessLevel: "List", + Description: "Grants permission to list all event log configurations for account", + Privilege: "ListEventLogConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", - }, - { - ConditionKeys: []string{ - "glue:VpcIds", - "glue:SubnetIds", - "glue:SecurityGroupIds", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a job from source control provider", - Privilege: "UpdateJobFromSourceControl", + AccessLevel: "Read", + Description: "Grants permission to list Schemas Associated With Managed Thing", + Privilege: "ListManagedThingSchemas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "ManagedThingResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an ML Transform", - Privilege: "UpdateMLTransform", + AccessLevel: "List", + Description: "Grants permission to list all the managed things", + Privilege: "ListManagedThings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a partition", - Privilege: "UpdatePartition", + AccessLevel: "List", + Description: "Grants permission to list all the notification configurations", + Privilege: "ListNotificationConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the OTA task configurations", + Privilege: "ListOtaTaskConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the Ota task executions", + Privilege: "ListOtaTaskExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "OtaTaskResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a schema registry", - Privilege: "UpdateRegistry", + AccessLevel: "List", + Description: "Grants permission to list all the OTA tasks", + Privilege: "ListOtaTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a schema container", - Privilege: "UpdateSchema", + AccessLevel: "List", + Description: "Grants permission to list the existing provisioning profile", + Privilege: "ListProvisioningProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list schema versions with the provided information", + Privilege: "ListSchemaVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update source control provider from a job", - Privilege: "UpdateSourceControlFromJob", + Description: "Grants permission to associate KMS key with IoT managed integrations", + Privilege: "PutDefaultEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a table", - Privilege: "UpdateTable", + Description: "Grants permission to update a hub configuration", + Privilege: "PutHubConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration for an existing table optimizer", - Privilege: "UpdateTableOptimizer", + Description: "Grants permission to set the runtime log configuration for a specific managed thing or for all managed things as a group", + Privilege: "PutRuntimeLogConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:GetTable", - }, - ResourceType: "catalog*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to customers to request us to manage the server trust for them or bring their own external server trusts for the custom domain", + Privilege: "RegisterCustomEndpoint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a trigger", - Privilege: "UpdateTrigger", + Description: "Grants permission to reset a runtime log configuration for a specific managed thing or for all managed things as a group", + Privilege: "ResetRuntimeLogConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trigger*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a usage profile", - Privilege: "UpdateUsageProfile", + Description: "Grants permission to use the SendManagedThingCommand API to send commands to managed things", + Privilege: "SendManagedThingCommand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usageProfile*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a function definition", - Privilege: "UpdateUserDefinedFunction", + Description: "Grants permission to request to start device discovery", + Privilege: "StartDeviceDiscovery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a destination", + Privilege: "UpdateDestination", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an event log configuration by log configuration ID", + Privilege: "UpdateEventLogConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "userdefinedfunction*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a workflow", - Privilege: "UpdateWorkflow", + Description: "Grants permission to update a managed thing", + Privilege: "UpdateManagedThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "ManagedThingResource*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to use Glue Studio and access its internal APIs", - Privilege: "UseGlueStudio", + AccessLevel: "Write", + Description: "Grants permission to update a notification configuration", + Privilege: "UpdateNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -134310,697 +176089,520 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to use an ML Transform from within a Glue ETL Script", - Privilege: "UseMLTransforms", + Description: "Grants permission to update an OTA Task", + Privilege: "UpdateOtaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlTransform*", + ResourceType: "OtaTaskResource*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:glue:${Region}:${Account}:catalog", - ConditionKeys: []string{}, - Resource: "catalog", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:database/${DatabaseName}", + Arn: "arn:${Partition}:iotmanagedintegrations:${Region}:${Account}:credential-locker/${Identifier}", ConditionKeys: []string{}, - Resource: "database", + Resource: "CredentialLockerResource", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:table/${DatabaseName}/${TableName}", + Arn: "arn:${Partition}:iotmanagedintegrations:${Region}:${Account}:managed-thing/${Identifier}", ConditionKeys: []string{}, - Resource: "table", + Resource: "ManagedThingResource", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:tableVersion/${DatabaseName}/${TableName}/${TableVersionName}", + Arn: "arn:${Partition}:iotmanagedintegrations:${Region}:${Account}:ota-task/${Identifier}", ConditionKeys: []string{}, - Resource: "tableversion", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:connection/${ConnectionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "connection", + Resource: "OtaTaskResource", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:userDefinedFunction/${DatabaseName}/${UserDefinedFunctionName}", + Arn: "arn:${Partition}:iotmanagedintegrations:${Region}:${Account}:provisioning-profile/${Identifier}", ConditionKeys: []string{}, - Resource: "userdefinedfunction", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:devEndpoint/${DevEndpointName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "devendpoint", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:job/${JobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "job", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:trigger/${TriggerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "trigger", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:crawler/${CrawlerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "crawler", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:workflow/${WorkflowName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "workflow", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:blueprint/${BlueprintName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "blueprint", - }, - { - Arn: "arn:${Partition}:glue:${Region}:${Account}:mlTransform/${TransformId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "mlTransform", + Resource: "ProvisioningProfileResource", }, + }, + ServiceName: "AWS IoT managed integrations feature of IoT Device Management", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:glue:${Region}:${Account}:registry/${RegistryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "registry", + Condition: "iotroborunner:ActionResourceId", + Description: "Filters access by the action's identifier", + Type: "String", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:schema/${SchemaName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "schema", + Condition: "iotroborunner:ActionTemplateResourceId", + Description: "Filters access by the action template's identifier", + Type: "String", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:session/${SessionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "session", + Condition: "iotroborunner:ActivityResourceId", + Description: "Filters access by the activity's identifier", + Type: "String", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:usageProfile/${UsageProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "usageProfile", + Condition: "iotroborunner:DestinationRelationshipResourceId", + Description: "Filters access by the destination relationship's identifier", + Type: "String", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:dataQualityRuleset/${RulesetName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dataQualityRuleset", + Condition: "iotroborunner:DestinationResourceId", + Description: "Filters access by the destination's identifier", + Type: "String", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:customEntityType/${CustomEntityTypeId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "customEntityType", + Condition: "iotroborunner:SiteResourceId", + Description: "Filters access by the site's identifier", + Type: "String", }, { - Arn: "arn:${Partition}:glue:${Region}:${Account}:completion/${CompletionId}", - ConditionKeys: []string{}, - Resource: "completion", + Condition: "iotroborunner:TaggingResourceTagKey", + Description: "Filters access by the metadata tag name", + Type: "String", }, - }, - ServiceName: "AWS Glue", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Condition: "iotroborunner:TaskResourceId", + Description: "Filters access by the task's identifer", Type: "String", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Condition: "iotroborunner:WorkerFleetResourceId", + Description: "Filters access by the worker fleet's identifier", Type: "String", }, { - Condition: "aws:TagKeys", - Description: "Filters access by actions based on the presence of tag keys in the request", - Type: "ArrayOfString", + Condition: "iotroborunner:WorkerResourceId", + Description: "Filters access by the workers identifier", + Type: "String", }, }, - Prefix: "grafana", + Prefix: "iotroborunner", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to upgrade a workspace with a license", - Privilege: "AssociateLicense", + Description: "Grants permission to create an action", + Privilege: "CreateAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "aws-marketplace:ViewSubscriptions", - }, - ResourceType: "workspace*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workspace", - Privilege: "CreateWorkspace", + Description: "Grants permission to create an action template", + Privilege: "CreateActionTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:GetManagedPrefixListEntries", - "iam:CreateServiceLinkedRole", - "organizations:DescribeOrganization", - "sso:CreateManagedApplicationInstance", - "sso:DescribeRegisteredRegions", - "sso:GetSharedSsoConfiguration", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create API keys for a workspace", - Privilege: "CreateWorkspaceApiKey", + Description: "Grants permission to create an action template dependency", + Privilege: "CreateActionTemplateDependency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create service accounts for a workspace", - Privilege: "CreateWorkspaceServiceAccount", + Description: "Grants permission to create an activity", + Privilege: "CreateActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create service account tokens for a workspace", - Privilege: "CreateWorkspaceServiceAccountToken", + Description: "Grants permission to create an activity dependency", + Privilege: "CreateActivityDependency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a workspace", - Privilege: "DeleteWorkspace", + Description: "Grants permission to create a destination", + Privilege: "CreateDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteManagedApplicationInstance", - }, - ResourceType: "workspace*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete API keys from a workspace", - Privilege: "DeleteWorkspaceApiKey", + Description: "Grants permission to create a destination relationship", + Privilege: "CreateDestinationRelationship", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete service accounts for a workspace", - Privilege: "DeleteWorkspaceServiceAccount", + Description: "Grants permission to create a site", + Privilege: "CreateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete service account tokens for a workspace", - Privilege: "DeleteWorkspaceServiceAccountToken", + Description: "Grants permission to create a task", + Privilege: "CreateTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a workspace", - Privilege: "DescribeWorkspace", + AccessLevel: "Write", + Description: "Grants permission to create a task dependency", + Privilege: "CreateTaskDependency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe authentication providers on a workspace", - Privilege: "DescribeWorkspaceAuthentication", + AccessLevel: "Write", + Description: "Grants permission to create a worker", + Privilege: "CreateWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the current configuration string for the given workspace", - Privilege: "DescribeWorkspaceConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a worker fleet", + Privilege: "CreateWorkerFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a license from a workspace", - Privilege: "DisassociateLicense", + Description: "Grants permission to delete an action", + Privilege: "DeleteAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "ActionResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the permissions on a wokspace", - Privilege: "ListPermissions", + AccessLevel: "Write", + Description: "Grants permission to delete an action template", + Privilege: "DeleteActionTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "ActionTemplateResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags associated with a workspace", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an action template dependency", + Privilege: "DeleteActionTemplateDependency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available supported Grafana versions. Optionally, include a workspace to list the versions to which it can be upgraded", - Privilege: "ListVersions", + AccessLevel: "Write", + Description: "Grants permission to delete an activity", + Privilege: "DeleteActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace", + ResourceType: "ActivityResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list service account tokens for a workspace", - Privilege: "ListWorkspaceServiceAccountTokens", + AccessLevel: "Write", + Description: "Grants permission to delete an activity dependency", + Privilege: "DeleteActivityDependency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list service accounts for a workspace", - Privilege: "ListWorkspaceServiceAccounts", + AccessLevel: "Write", + Description: "Grants permission to delete a destination", + Privilege: "DeleteDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "DestinationResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list workspaces", - Privilege: "ListWorkspaces", + AccessLevel: "Write", + Description: "Grants permission to delete a destination relationship", + Privilege: "DeleteDestinationRelationship", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DestinationRelationshipResource*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to, or update tag values of, a workspace", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a site", + Privilege: "DeleteSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SiteResource*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a workspace", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a task", + Privilege: "DeleteTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "TaskResource*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to modify the permissions on a workspace", - Privilege: "UpdatePermissions", + AccessLevel: "Write", + Description: "Grants permission to delete a task dependency", + Privilege: "DeleteTaskDependency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify a workspace", - Privilege: "UpdateWorkspace", + Description: "Grants permission to delete a worker", + Privilege: "DeleteWorker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:GetManagedPrefixListEntries", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "workspace*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WorkerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify authentication providers on a workspace", - Privilege: "UpdateWorkspaceAuthentication", + Description: "Grants permission to delete a worker fleet", + Privilege: "DeleteWorkerFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "WorkerFleetResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the configuration string for the given workspace", - Privilege: "UpdateWorkspaceConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get an action", + Privilege: "GetAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "ActionResource*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:grafana:${Region}:${Account}:/workspaces/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "workspace", - }, - }, - ServiceName: "Amazon Managed Grafana", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by checking tag key/value pairs included in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by checking tag key/value pairs associated with a specific resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by checking tag keys passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "greengrass", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a role with your account. AWS IoT Greengrass uses this role to access your Lambda functions and AWS IoT resources", - Privilege: "AssociateServiceRoleToAccount", + AccessLevel: "Read", + Description: "Grants permission to get an action template", + Privilege: "GetActionTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ActionTemplateResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a list of client devices with a core device", - Privilege: "BatchAssociateClientDeviceWithCoreDevice", + AccessLevel: "Read", + Description: "Grants permission to get an activity", + Privilege: "GetActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDevice*", + ResourceType: "ActivityResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a list of client devices from a core device", - Privilege: "BatchDisassociateClientDeviceFromCoreDevice", + AccessLevel: "Read", + Description: "Grants permission to get a destination", + Privilege: "GetDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDevice*", + ResourceType: "DestinationResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a deployment", - Privilege: "CancelDeployment", + AccessLevel: "Read", + Description: "Grants permission to get a destination relationship", + Privilege: "GetDestinationRelationship", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:CancelJob", - "iot:DeleteThingShadow", - "iot:DescribeJob", - "iot:DescribeThing", - "iot:DescribeThingGroup", - "iot:GetThingShadow", - "iot:UpdateJob", - "iot:UpdateThingShadow", - }, - ResourceType: "deployment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "DestinationRelationshipResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a component", - Privilege: "CreateComponentVersion", + AccessLevel: "Read", + Description: "Grants permission to get a site", + Privilege: "GetSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SiteResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a deployment", - Privilege: "CreateDeployment", + AccessLevel: "Read", + Description: "Grants permission to get a task", + Privilege: "GetTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iot:CancelJob", - "iot:CreateJob", - "iot:DeleteThingShadow", - "iot:DescribeJob", - "iot:DescribeThing", - "iot:DescribeThingGroup", - "iot:GetThingShadow", - "iot:UpdateJob", - "iot:UpdateThingShadow", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TaskResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a component", - Privilege: "DeleteComponent", + AccessLevel: "Read", + Description: "Grants permission to get a worker", + Privilege: "GetWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentVersion*", + ResourceType: "WorkerResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a AWS IoT Greengrass core device, which is an AWS IoT thing. This operation removes the core device from the list of core devices. This operation doesn't delete the AWS IoT thing", - Privilege: "DeleteCoreDevice", + AccessLevel: "Read", + Description: "Grants permission to get a worker fleet", + Privilege: "GetWorkerFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeJobExecution", - }, - ResourceType: "coreDevice*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WorkerFleetResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a deployment. To delete an active deployment, it needs to be cancelled first", - Privilege: "DeleteDeployment", + AccessLevel: "Read", + Description: "Grants permission to list action templates", + Privilege: "ListActionTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DeleteJob", - }, - ResourceType: "deployment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve metadata for a version of a component", - Privilege: "DescribeComponent", + Description: "Grants permission to list actions", + Privilege: "ListActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentVersion*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate the service role from an account. Without a service role, deployments will not work", - Privilege: "DisassociateServiceRoleFromAccount", + AccessLevel: "Read", + Description: "Grants permission to list activities", + Privilege: "ListActivities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -135011,75 +176613,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the recipe for a version of a component", - Privilege: "GetComponent", + Description: "Grants permission to list destination relationships", + Privilege: "ListDestinationRelationships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentVersion*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the pre-signed URL to download a public component artifact", - Privilege: "GetComponentVersionArtifact", + Description: "Grants permission to list destinations", + Privilege: "ListDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentVersion*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the connectivity information for a Greengrass core device", - Privilege: "GetConnectivityInfo", + Description: "Grants permission to list sites", + Privilege: "ListSites", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:GetThingShadow", - }, - ResourceType: "connectivityInfo*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieves metadata for a AWS IoT Greengrass core device", - Privilege: "GetCoreDevice", + Description: "Grants permission to list tasks", + Privilege: "ListTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDevice*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a deployment", - Privilege: "GetDeployment", + Description: "Grants permission to list worker fleets", + Privilege: "ListWorkerFleets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeJob", - "iot:DescribeThing", - "iot:DescribeThingGroup", - "iot:GetThingShadow", - }, - ResourceType: "deployment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the service role that is attached to an account", - Privilege: "GetServiceRoleForAccount", + Description: "Grants permission to list workers", + Privilege: "ListWorkers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -135089,412 +176684,370 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a paginated list of client devices associated to a AWS IoT Greengrass core device", - Privilege: "ListClientDevicesAssociatedWithCoreDevice", + AccessLevel: "Write", + Description: "Grants permission to update an action's state", + Privilege: "UpdateActionState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDevice*", + ResourceType: "ActionResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a paginated list of all versions for a component", - Privilege: "ListComponentVersions", + AccessLevel: "Write", + Description: "Grants permission to update an activity", + Privilege: "UpdateActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "ActivityResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a paginated list of component summaries", - Privilege: "ListComponents", + AccessLevel: "Write", + Description: "Grants permission to update a destination", + Privilege: "UpdateDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DestinationResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a paginated list of AWS IoT Greengrass core devices", - Privilege: "ListCoreDevices", + AccessLevel: "Write", + Description: "Grants permission to update a site", + Privilege: "UpdateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SiteResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieves a paginated list of deployments", - Privilege: "ListDeployments", + AccessLevel: "Write", + Description: "Grants permission to update a task", + Privilege: "UpdateTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeJob", - "iot:DescribeThing", - "iot:DescribeThingGroup", - "iot:GetThingShadow", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TaskResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieves a paginated list of deployment jobs that AWS IoT Greengrass sends to AWS IoT Greengrass core devices", - Privilege: "ListEffectiveDeployments", + AccessLevel: "Write", + Description: "Grants permission to update a worker", + Privilege: "UpdateWorker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeJob", - "iot:DescribeJobExecution", - "iot:DescribeThing", - "iot:DescribeThingGroup", - "iot:GetThingShadow", - }, - ResourceType: "coreDevice*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WorkerResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a paginated list of the components that a AWS IoT Greengrass core device runs", - Privilege: "ListInstalledComponents", + AccessLevel: "Write", + Description: "Grants permission to update a worker fleet", + Privilege: "UpdateWorkerFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDevice*", + ResourceType: "WorkerFleetResource*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "componentVersion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "coreDevice", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deployment", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:action/${ActionId}", + ConditionKeys: []string{ + "iotroborunner:ActionResourceId", }, + Resource: "ActionResource", }, { - AccessLevel: "List", - Description: "Grants permission to list components that meet the component, version, and platform requirements of a deployment", - Privilege: "ResolveComponentCandidates", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "componentVersion*", - }, + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:action-template/${ActionTemplateId}", + ConditionKeys: []string{ + "iotroborunner:ActionTemplateResourceId", }, + Resource: "ActionTemplateResource", }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "componentVersion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "coreDevice", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deployment", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:activity/${ActivityId}", + ConditionKeys: []string{ + "iotroborunner:ActivityResourceId", }, + Resource: "ActivityResource", }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "componentVersion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "coreDevice", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deployment", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:destination-relationship/${DestinationRelationshipId}", + ConditionKeys: []string{ + "iotroborunner:DestinationRelationshipResourceId", }, + Resource: "DestinationRelationshipResource", }, { - AccessLevel: "Write", - Description: "Grants permission to update the connectivity information for a Greengrass core. Any devices that belong to the group that has this core will receive this information in order to find the location of the core and connect to it", - Privilege: "UpdateConnectivityInfo", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:GetThingShadow", - "iot:UpdateThingShadow", - }, - ResourceType: "connectivityInfo*", - }, + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:destination/${DestinationId}", + ConditionKeys: []string{ + "iotroborunner:DestinationResourceId", }, + Resource: "DestinationResource", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo", - ConditionKeys: []string{}, - Resource: "connectivityInfo", + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:site/${SiteId}", + ConditionKeys: []string{ + "iotroborunner:SiteResourceId", + }, + Resource: "SiteResource", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:components:${ComponentName}", + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:tag/${TagKey}", ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "iotroborunner:TaggingResourceTagKey", }, - Resource: "component", + Resource: "TaggingResource", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:components:${ComponentName}:versions:${ComponentVersion}", + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:task/${TaskId}", ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "iotroborunner:TaskResourceId", }, - Resource: "componentVersion", + Resource: "TaskResource", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:coreDevices:${CoreDeviceThingName}", + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:worker-fleet/${WorkerFleetId}", ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "iotroborunner:WorkerFleetResourceId", }, - Resource: "coreDevice", + Resource: "WorkerFleetResource", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:deployments:${DeploymentId}", + Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:worker/${WorkerId}", ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "iotroborunner:WorkerResourceId", }, - Resource: "deployment", + Resource: "WorkerResource", }, }, - ServiceName: "AWS IoT Greengrass V2", + ServiceName: "AWS IoT RoboRunner", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the allowed set of values for each of the mandatory tags", + Description: "Filters access by the tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag value associated with the resource", + Description: "Filters access by the tags attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", + Description: "Filters access by the tag keys in the request", Type: "ArrayOfString", }, + { + Condition: "iotsitewise:assetHierarchyPath", + Description: "Filters access by an asset hierarchy path, which is the string of asset IDs in the asset's hierarchy, each separated by a forward slash", + Type: "String", + }, + { + Condition: "iotsitewise:childAssetId", + Description: "Filters access by the ID of a child asset being associated whith a parent asset", + Type: "String", + }, + { + Condition: "iotsitewise:group", + Description: "Filters access by the ID of an AWS Single Sign-On group", + Type: "String", + }, + { + Condition: "iotsitewise:iam", + Description: "Filters access by the ID of an AWS IAM identity", + Type: "String", + }, + { + Condition: "iotsitewise:isAssociatedWithAssetProperty", + Description: "Filters access by data streams associated with or not associated with asset properties", + Type: "String", + }, + { + Condition: "iotsitewise:portal", + Description: "Filters access by the ID of a portal", + Type: "String", + }, + { + Condition: "iotsitewise:project", + Description: "Filters access by the ID of a project", + Type: "String", + }, + { + Condition: "iotsitewise:propertyAlias", + Description: "Filters access by the property alias", + Type: "String", + }, + { + Condition: "iotsitewise:propertyId", + Description: "Filters access by the ID of an asset property", + Type: "String", + }, + { + Condition: "iotsitewise:user", + Description: "Filters access by the ID of an AWS Single Sign-On user", + Type: "String", + }, }, - Prefix: "greengrass", + Prefix: "iotsitewise", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate a role with a group. The role's permissions must allow Greengrass core Lambda functions and connectors to perform actions in other AWS services", - Privilege: "AssociateRoleToGroup", + Description: "Grants permission to associate a child asset with a parent asset through a hierarchy", + Privilege: "AssociateAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a role with your account. AWS IoT Greengrass uses this role to access your Lambda functions and AWS IoT resources", - Privilege: "AssociateServiceRoleToAccount", + AccessLevel: "Write", + Description: "Grants permission to associate a time series with an asset property", + Privilege: "AssociateTimeSeriesToAssetProperty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "time-series*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a connector definition", - Privilege: "CreateConnectorDefinition", + Description: "Grants permission to associate assets to a project", + Privilege: "BatchAssociateProjectAssets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a version of an existing connector definition", - Privilege: "CreateConnectorDefinitionVersion", + Description: "Grants permission to disassociate assets from a project", + Privilege: "BatchDisassociateProjectAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a core definition", - Privilege: "CreateCoreDefinition", + AccessLevel: "Read", + Description: "Grants permission to retrieve computed aggregates for multiple asset properties", + Privilege: "BatchGetAssetPropertyAggregates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "time-series", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a version of an existing core definition. Greengrass groups must each contain exactly one Greengrass core", - Privilege: "CreateCoreDefinitionVersion", + AccessLevel: "Read", + Description: "Grants permission to retrieve the latest value for multiple asset properties", + Privilege: "BatchGetAssetPropertyValue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition*", + ResourceType: "asset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "time-series", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a deployment", - Privilege: "CreateDeployment", + AccessLevel: "Read", + Description: "Grants permission to retrieve the value history for multiple asset properties", + Privilege: "BatchGetAssetPropertyValueHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "time-series", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a device definition", - Privilege: "CreateDeviceDefinition", + Description: "Grants permission to put property values for asset properties", + Privilege: "BatchPutAssetPropertyValue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "time-series", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a version of an existing device definition", - Privilege: "CreateDeviceDefinitionVersion", + Description: "Grants permission to create an access policy for a portal or a project", + Privilege: "CreateAccessPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition*", + ResourceType: "portal", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Lambda function definition to be used in a group that contains a list of Lambda functions and their configurations", - Privilege: "CreateFunctionDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -135507,20 +177060,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a version of an existing Lambda function definition", - Privilege: "CreateFunctionDefinitionVersion", + Description: "Grants permission to create an asset from an asset model", + Privilege: "CreateAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition*", + ResourceType: "asset-model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a group", - Privilege: "CreateGroup", + Description: "Grants permission to create an asset model", + Privilege: "CreateAssetModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -135534,33 +177095,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a CA for the group, or rotate the existing CA", - Privilege: "CreateGroupCertificateAuthority", + Description: "Grants permission to create an asset model composite model inside an asset model", + Privilege: "CreateAssetModelCompositeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a version of a group that has already been defined", - Privilege: "CreateGroupVersion", + Description: "Grants permission to create bulk import job", + Privilege: "CreateBulkImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a logger definition", - Privilege: "CreateLoggerDefinition", + Description: "Grants permission to create a dashboard in a project", + Privilege: "CreateDashboard", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -135573,20 +177139,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a version of an existing logger definition", - Privilege: "CreateLoggerDefinitionVersion", + Description: "Grants permission to create a dataset", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "loggerDefinition*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a resource definition that contains a list of resources to be used in a group", - Privilege: "CreateResourceDefinition", + Description: "Grants permission to create a gateway", + Privilege: "CreateGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -135600,33 +177169,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a version of an existing resource definition", - Privilege: "CreateResourceDefinitionVersion", + Description: "Grants permission to create a portal", + Privilege: "CreatePortal", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resourceDefinition*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "sso:CreateManagedApplicationInstance", + "sso:DescribeRegisteredRegions", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS IoT job that will trigger your Greengrass cores to update the software they are running", - Privilege: "CreateSoftwareUpdateJob", + Description: "Grants permission to create a project in a portal", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "portal*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a subscription definition", - Privilege: "CreateSubscriptionDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -135639,502 +177207,497 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a version of an existing subscription definition", - Privilege: "CreateSubscriptionDefinitionVersion", + Description: "Grants permission to delete an access policy", + Privilege: "DeleteAccessPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition*", + ResourceType: "access-policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a connector definition", - Privilege: "DeleteConnectorDefinition", + Description: "Grants permission to delete an asset", + Privilege: "DeleteAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition*", + ResourceType: "asset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a core definition. Deleting a definition that is currently in use in a deployment affects future deployments", - Privilege: "DeleteCoreDefinition", + Description: "Grants permission to delete an asset model", + Privilege: "DeleteAssetModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a device definition. Deleting a definition that is currently in use in a deployment affects future deployments", - Privilege: "DeleteDeviceDefinition", + Description: "Grants permission to delete an asset model composite model", + Privilege: "DeleteAssetModelCompositeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Lambda function definition. Deleting a definition that is currently in use in a deployment affects future deployments", - Privilege: "DeleteFunctionDefinition", + Description: "Grants permission to delete a dashboard", + Privilege: "DeleteDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition*", + ResourceType: "dashboard*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a group that is not currently in use in a deployment", - Privilege: "DeleteGroup", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a logger definition. Deleting a definition that is currently in use in a deployment affects future deployments", - Privilege: "DeleteLoggerDefinition", + Description: "Grants permission to delete a gateway", + Privilege: "DeleteGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource definition", - Privilege: "DeleteResourceDefinition", + Description: "Grants permission to delete a portal", + Privilege: "DeletePortal", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resourceDefinition*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteManagedApplicationInstance", + }, + ResourceType: "portal*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a subscription definition. Deleting a definition that is currently in use in a deployment affects future deployments", - Privilege: "DeleteSubscriptionDefinition", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition*", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the role from a group", - Privilege: "DisassociateRoleFromGroup", + Description: "Grants permission to delete a time series", + Privilege: "DeleteTimeSeries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate the service role from an account. Without a service role, deployments will not work", - Privilege: "DisassociateServiceRoleFromAccount", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "time-series", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information required to connect to a Greengrass core", - Privilege: "Discover", + Description: "Grants permission to describe an access policy", + Privilege: "DescribeAccessPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "access-policy*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the role associated with a group", - Privilege: "GetAssociatedRole", + Description: "Grants permission to describe actions", + Privilege: "DescribeAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the status of a bulk deployment", - Privilege: "GetBulkDeploymentStatus", + Description: "Grants permission to describe an asset", + Privilege: "DescribeAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bulkDeployment*", + ResourceType: "asset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the connectivity information for a core", - Privilege: "GetConnectivityInfo", + Description: "Grants permission to describe an asset composite model", + Privilege: "DescribeAssetCompositeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectivityInfo*", + ResourceType: "asset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a connector definition", - Privilege: "GetConnectorDefinition", + Description: "Grants permission to describe an asset model", + Privilege: "DescribeAssetModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a connector definition version", - Privilege: "GetConnectorDefinitionVersion", + Description: "Grants permission to describe an asset model composite model", + Privilege: "DescribeAssetModelCompositeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connectorDefinitionVersion*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a core definition", - Privilege: "GetCoreDefinition", + Description: "Grants permission to describe an asset property", + Privilege: "DescribeAssetProperty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition*", + ResourceType: "asset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a core definition version", - Privilege: "GetCoreDefinitionVersion", + Description: "Grants permission to describe bulk import job", + Privilege: "DescribeBulkImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "coreDefinitionVersion*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the status of a deployment", - Privilege: "GetDeploymentStatus", + Description: "Grants permission to describe a dashboard", + Privilege: "DescribeDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment*", + ResourceType: "dashboard*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe dataset", + Privilege: "DescribeDataset", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a device definition", - Privilege: "GetDeviceDefinition", + Description: "Grants permission to describe the default encryption configuration for the AWS account", + Privilege: "DescribeDefaultEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a device definition version", - Privilege: "GetDeviceDefinitionVersion", + Description: "Grants permission to describe a gateway", + Privilege: "DescribeGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition*", + ResourceType: "gateway*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a capability configuration for a gateway", + Privilege: "DescribeGatewayCapabilityConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinitionVersion*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a Lambda function definition, such as its creation time and latest version", - Privilege: "GetFunctionDefinition", + Description: "Grants permission to describe logging options for the AWS account", + Privilege: "DescribeLoggingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a Lambda function definition version, such as which Lambda functions are included in the version and their configurations", - Privilege: "GetFunctionDefinitionVersion", + Description: "Grants permission to describe a portal", + Privilege: "DescribePortal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition*", + ResourceType: "portal*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a project", + Privilege: "DescribeProject", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinitionVersion*", + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a group", - Privilege: "GetGroup", + Description: "Grants permission to describe the storage configuration for the AWS account", + Privilege: "DescribeStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the public key of the CA associated with a group", - Privilege: "GetGroupCertificateAuthority", + Description: "Grants permission to describe a time series", + Privilege: "DescribeTimeSeries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificateAuthority*", + ResourceType: "asset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "time-series", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current configuration for the CA used by a group", - Privilege: "GetGroupCertificateConfiguration", + AccessLevel: "Write", + Description: "Grants permission to disassociate a child asset from a parent asset by a hierarchy", + Privilege: "DisassociateAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a group version", - Privilege: "GetGroupVersion", + AccessLevel: "Write", + Description: "Grants permission to disassociate a time series from an asset property", + Privilege: "DisassociateTimeSeriesFromAssetProperty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "groupVersion*", + ResourceType: "time-series*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a logger definition", - Privilege: "GetLoggerDefinition", + AccessLevel: "Write", + Description: "Grants permission to allow IoT SiteWise integrate with other services", + Privilege: "EnableSiteWiseIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a logger definition version", - Privilege: "GetLoggerDefinitionVersion", + AccessLevel: "Write", + Description: "Grants permission to execute actions", + Privilege: "ExecuteAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "loggerDefinitionVersion*", + ResourceType: "asset", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a resource definition, such as its creation time and latest version", - Privilege: "GetResourceDefinition", + Description: "Grants permission to execute query", + Privilege: "ExecuteQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a resource definition version, such as which resources are included in the version", - Privilege: "GetResourceDefinitionVersion", + Description: "Grants permission to retrieve computed aggregates for an asset property", + Privilege: "GetAssetPropertyAggregates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition*", + ResourceType: "asset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinitionVersion*", + ResourceType: "time-series", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the service role that is attached to an account", - Privilege: "GetServiceRoleForAccount", + Description: "Grants permission to retrieve the latest value for an asset property", + Privilege: "GetAssetPropertyValue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a subscription definition", - Privilege: "GetSubscriptionDefinition", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition*", + ResourceType: "time-series", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a subscription definition version", - Privilege: "GetSubscriptionDefinitionVersion", + Description: "Grants permission to retrieve the value history for an asset property", + Privilege: "GetAssetPropertyValueHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition*", + ResourceType: "asset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinitionVersion*", + ResourceType: "time-series", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve runtime configuration of a thing", - Privilege: "GetThingRuntimeConfiguration", + Description: "Grants permission to retrieve interpolated values for an asset property", + Privilege: "GetInterpolatedAssetPropertyValues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingRuntimeConfig*", + ResourceType: "asset", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a paginated list of the deployments that have been started in a bulk deployment operation and their current deployment status", - Privilege: "ListBulkDeploymentDetailedReports", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bulkDeployment*", + ResourceType: "time-series", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of bulk deployments", - Privilege: "ListBulkDeployments", + AccessLevel: "Read", + Description: "Grants permission to invoke an assistant", + Privilege: "InvokeAssistant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -136145,164 +177708,157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a connector definition", - Privilege: "ListConnectorDefinitionVersions", + Description: "Grants permission to list all access policies for an identity or a resource", + Privilege: "ListAccessPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition*", + ResourceType: "portal", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of connector definitions", - Privilege: "ListConnectorDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a core definition", - Privilege: "ListCoreDefinitionVersions", + Description: "Grants permission to list all actions", + Privilege: "ListActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition*", + ResourceType: "asset", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of core definitions", - Privilege: "ListCoreDefinitions", + Description: "Grants permission to list all asset model composite models", + Privilege: "ListAssetModelCompositeModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of all deployments for a group", - Privilege: "ListDeployments", + Description: "Grants permission to list asset model properties", + Privilege: "ListAssetModelProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a device definition", - Privilege: "ListDeviceDefinitionVersions", + Description: "Grants permission to list all asset models", + Privilege: "ListAssetModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of device definitions", - Privilege: "ListDeviceDefinitions", + Description: "Grants permission to list asset properties", + Privilege: "ListAssetProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a Lambda function definition", - Privilege: "ListFunctionDefinitionVersions", + Description: "Grants permission to list the asset relationship graph for an asset", + Privilege: "ListAssetRelationships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition*", + ResourceType: "asset*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of Lambda function definitions", - Privilege: "ListFunctionDefinitions", + Description: "Grants permission to list all assets", + Privilege: "ListAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset-model", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of current CAs for a group", - Privilege: "ListGroupCertificateAuthorities", + Description: "Grants permission to list all assets associated with an asset through a hierarchy", + Privilege: "ListAssociatedAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a group", - Privilege: "ListGroupVersions", + Description: "Grants permission to list bulk import jobs", + Privilege: "ListBulkImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of groups", - Privilege: "ListGroups", + Description: "Grants permission to list all asset model composition relationships", + Privilege: "ListCompositionRelationships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a logger definition", - Privilege: "ListLoggerDefinitionVersions", + Description: "Grants permission to list all dashboards in a project", + Privilege: "ListDashboards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition*", + ResourceType: "project*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of logger definitions", - Privilege: "ListLoggerDefinitions", + Description: "Grants permission to list all datasets", + Privilege: "ListDatasets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -136313,20 +177869,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a resource definition", - Privilege: "ListResourceDefinitionVersions", + Description: "Grants permission to list all gateways", + Privilege: "ListGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of resource definitions", - Privilege: "ListResourceDefinitions", + Description: "Grants permission to list all portals", + Privilege: "ListPortals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -136337,110 +177893,118 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the versions of a subscription definition", - Privilege: "ListSubscriptionDefinitionVersions", + Description: "Grants permission to list all assets associated with a project", + Privilege: "ListProjectAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition*", + ResourceType: "project*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of subscription definitions", - Privilege: "ListSubscriptionDefinitions", + Description: "Grants permission to list all projects in a portal", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "portal*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", + Description: "Grants permission to list all tags for a resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bulkDeployment", + ResourceType: "access-policy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition", + ResourceType: "asset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition", + ResourceType: "asset-model", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition", + ResourceType: "dashboard", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group", + ResourceType: "gateway", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition", + ResourceType: "portal", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition", + ResourceType: "project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition", + ResourceType: "time-series", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list time series", + Privilege: "ListTimeSeries", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "asset", + }, + }, + }, { AccessLevel: "Write", - Description: "Grants permission to reset a group's deployments", - Privilege: "ResetDeployments", + Description: "Grants permission to set the default encryption configuration for the AWS account", + Privilege: "PutDefaultEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deploy multiple groups in one operation", - Privilege: "StartBulkDeployment", + Description: "Grants permission to set logging options for the AWS account", + Privilege: "PutLoggingOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -136448,70 +178012,70 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop the execution of a bulk deployment", - Privilege: "StopBulkDeployment", + Description: "Grants permission to configure storage settings for the AWS account", + Privilege: "PutStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bulkDeployment*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", + Description: "Grants permission to tag a resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bulkDeployment", + ResourceType: "access-policy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition", + ResourceType: "asset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition", + ResourceType: "asset-model", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition", + ResourceType: "dashboard", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group", + ResourceType: "gateway", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition", + ResourceType: "portal", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition", + ResourceType: "project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition", + ResourceType: "time-series", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -136520,53 +178084,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", + Description: "Grants permission to untag a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bulkDeployment", + ResourceType: "access-policy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition", + ResourceType: "asset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition", + ResourceType: "asset-model", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition", + ResourceType: "dashboard", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group", + ResourceType: "gateway", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition", + ResourceType: "portal", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition", + ResourceType: "project", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition", + ResourceType: "time-series", }, { ConditionKeys: []string{ @@ -136579,351 +178143,800 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the connectivity information for a Greengrass core. Any devices that belong to the group that has this core will receive this information in order to find the location of the core and connect to it", - Privilege: "UpdateConnectivityInfo", + Description: "Grants permission to update an access policy", + Privilege: "UpdateAccessPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectivityInfo*", + ResourceType: "access-policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a connector definition", - Privilege: "UpdateConnectorDefinition", + Description: "Grants permission to update an asset", + Privilege: "UpdateAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connectorDefinition*", + ResourceType: "asset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a core definition", - Privilege: "UpdateCoreDefinition", + Description: "Grants permission to update an asset model", + Privilege: "UpdateAssetModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "coreDefinition*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a device definition", - Privilege: "UpdateDeviceDefinition", + Description: "Grants permission to update asset model composite model", + Privilege: "UpdateAssetModelCompositeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deviceDefinition*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Lambda function definition", - Privilege: "UpdateFunctionDefinition", + Description: "Grants permission to update an AssetModel property routing", + Privilege: "UpdateAssetModelPropertyRouting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "functionDefinition*", + ResourceType: "asset-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a group", - Privilege: "UpdateGroup", + Description: "Grants permission to update an asset property", + Privilege: "UpdateAssetProperty", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "asset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the certificate expiry time for a group", - Privilege: "UpdateGroupCertificateConfiguration", + Description: "Grants permission to update a dashboard", + Privilege: "UpdateDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "dashboard*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a logger definition", - Privilege: "UpdateLoggerDefinition", + Description: "Grants permission to update a dataset", + Privilege: "UpdateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "loggerDefinition*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a resource definition", - Privilege: "UpdateResourceDefinition", + Description: "Grants permission to update a gateway", + Privilege: "UpdateGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceDefinition*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a subscription definition", - Privilege: "UpdateSubscriptionDefinition", + Description: "Grants permission to update a capability configuration for a gateway", + Privilege: "UpdateGatewayCapabilityConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscriptionDefinition*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update runtime configuration of a thing", - Privilege: "UpdateThingRuntimeConfiguration", + Description: "Grants permission to update a portal", + Privilege: "UpdatePortal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingRuntimeConfig*", + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a project", + Privilege: "UpdateProject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo", - ConditionKeys: []string{}, - Resource: "connectivityInfo", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "asset", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}", - ConditionKeys: []string{}, - Resource: "certificateAuthority", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "asset-model", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}", - ConditionKeys: []string{}, - Resource: "deployment", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:time-series/${TimeSeriesId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "time-series", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "bulkDeployment", + Resource: "gateway", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "group", + Resource: "portal", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "groupVersion", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "project", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "coreDefinition", + Resource: "dashboard", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "coreDefinitionVersion", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "access-policy", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}", + Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:dataset/${DatasetId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "deviceDefinition", + Resource: "dataset", }, + }, + ServiceName: "AWS IoT SiteWise", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "deviceDefinitionVersion", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a key that is present in the request the user makes to the thingsgraph service", + Type: "String", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names present in the request the user makes to the thingsgraph service", + Type: "String", + }, + }, + Prefix: "iotthingsgraph", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Associates a device with a concrete thing that is in the user's registry. A thing can be associated with only one device at a time. If you associate a thing with a new device id, its previous association will be removed", + Privilege: "AssociateEntityToThing", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + "iot:DescribeThingGroup", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a workflow template. Workflows can be created only in the user's namespace. (The public namespace contains only entities.) The workflow can contain only entities in the specified namespace. The workflow is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request", + Privilege: "CreateFlowTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates an instance of a system with specified configurations and Things", + Privilege: "CreateSystemInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates a system. The system is validated against the entities in the latest version of the user's namespace unless another namespace version is specified in the request", + Privilege: "CreateSystemTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes a workflow. Any new system or system instance that contains this workflow will fail to update or deploy. Existing system instances that contain the workflow will continue to run (since they use a snapshot of the workflow taken at the time of deploying the system instance)", + Privilege: "DeleteFlowTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Workflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes the specified namespace. This action deletes all of the entities in the namespace. Delete the systems and flows in the namespace before performing this action", + Privilege: "DeleteNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes a system instance. Only instances that have never been deployed, or that have been undeployed from the target can be deleted. Users can create a new system instance that has the same ID as a deleted system instance", + Privilege: "DeleteSystemInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes a system. New system instances can't contain the system after its deletion. Existing system instances that contain the system will continue to work because they use a snapshot of the system that is taken when it is deployed", + Privilege: "DeleteSystemTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "System*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deploys the system instance to the target specified in CreateSystemInstance", + Privilege: "DeploySystemInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deprecates the specified workflow. This action marks the workflow for deletion. Deprecated flows can't be deployed, but existing system instances that use the flow will continue to run", + Privilege: "DeprecateFlowTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Workflow*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deprecates the specified system", + Privilege: "DeprecateSystemTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "System*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets the latest version of the user's namespace and the public version that it is tracking", + Privilege: "DescribeNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Dissociates a device entity from a concrete thing. The action takes only the type of the entity that you need to dissociate because only one entity of a particular type can be associated with a thing", + Privilege: "DissociateEntityFromThing", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + "iot:DescribeThingGroup", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets descriptions of the specified entities. Uses the latest version of the user's namespace by default", + Privilege: "GetEntities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets the latest version of the DefinitionDocument and FlowTemplateSummary for the specified workflow", + Privilege: "GetFlowTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Workflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets revisions of the specified workflow. Only the last 100 revisions are stored. If the workflow has been deprecated, this action will return revisions that occurred before the deprecation. This action won't work for workflows that have been deleted", + Privilege: "GetFlowTemplateRevisions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Workflow*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets the status of a namespace deletion task", + Privilege: "GetNamespaceDeletionStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets a system instance", + Privilege: "GetSystemInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets a system", + Privilege: "GetSystemTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "System*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets revisions made to the specified system template. Only the previous 100 revisions are stored. If the system has been deprecated, this action will return the revisions that occurred before its deprecation. This action won't work with systems that have been deleted", + Privilege: "GetSystemTemplateRevisions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "System*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Gets the status of the specified upload", + Privilege: "GetUploadStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Lists details of a single workflow execution", + Privilege: "ListFlowExecutionMessages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Lists all tags for a given resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Searches for entities of the specified type. You can search for entities in your namespace and the public namespace that you're tracking", + Privilege: "SearchEntities", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Searches for workflow executions of a system instance", + Privilege: "SearchFlowExecutions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Searches for summary information about workflows", + Privilege: "SearchFlowTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Searches for system instances in the user's account", + Privilege: "SearchSystemInstances", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "functionDefinition", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "functionDefinitionVersion", + AccessLevel: "Read", + Description: "Searches for summary information about systems in the user's account. You can filter by the ID of a workflow to return only systems that use the specified workflow", + Privilege: "SearchSystemTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Searches for things associated with the specified entity. You can search by both device and device model", + Privilege: "SearchThings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "subscriptionDefinition", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "subscriptionDefinitionVersion", + AccessLevel: "Tagging", + Description: "Tag a specified resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Removes the system instance and associated triggers from the target", + Privilege: "UndeploySystemInstance", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance*", + }, }, - Resource: "loggerDefinition", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "loggerDefinitionVersion", + AccessLevel: "Tagging", + Description: "Untag a specified resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SystemInstance", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Updates the specified workflow. All deployed systems and system instances that use the workflow will see the changes in the flow when it is redeployed. The workflow can contain only entities in the specified namespace", + Privilege: "UpdateFlowTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Workflow*", + }, }, - Resource: "resourceDefinition", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}", - ConditionKeys: []string{}, - Resource: "resourceDefinitionVersion", + AccessLevel: "Write", + Description: "Updates the specified system. You don't need to run this action after updating a workflow. Any system instance that uses the system will see the changes in the system when it is redeployed", + Privilege: "UpdateSystemTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "System*", + }, + }, }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Asynchronously uploads one or more entity definitions to the user's namespace", + Privilege: "UploadEntityDefinitions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "connectorDefinition", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}", + Arn: "arn:${Partition}:iotthingsgraph:${Region}:${Account}:Workflow/${NamespacePath}", ConditionKeys: []string{}, - Resource: "connectorDefinitionVersion", + Resource: "Workflow", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", + Arn: "arn:${Partition}:iotthingsgraph:${Region}:${Account}:System/${NamespacePath}", ConditionKeys: []string{}, - Resource: "thing", + Resource: "System", }, { - Arn: "arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/runtimeconfig", - ConditionKeys: []string{}, - Resource: "thingRuntimeConfig", + Arn: "arn:${Partition}:iotthingsgraph:${Region}:${Account}:Deployment/${NamespacePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SystemInstance", }, }, - ServiceName: "AWS IoT Greengrass", + ServiceName: "AWS IoT Things Graph", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", + Description: "Filters access by the tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Description: "Filters access by the tags attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", + Description: "Filters access by the tag keys in the request", Type: "ArrayOfString", }, { - Condition: "groundstation:AgentId", - Description: "Filters access by the ID of an agent", - Type: "String", - }, - { - Condition: "groundstation:ConfigId", - Description: "Filters access by the ID of a config", - Type: "String", - }, - { - Condition: "groundstation:ConfigType", - Description: "Filters access by the type of a config", - Type: "String", - }, - { - Condition: "groundstation:ContactId", - Description: "Filters access by the ID of a contact", - Type: "String", - }, - { - Condition: "groundstation:DataflowEndpointGroupId", - Description: "Filters access by the ID of a dataflow endpoint group", - Type: "String", + Condition: "iottwinmaker:destinationType", + Description: "Filters access by destination type of metadata transfer job", + Type: "ArrayOfString", }, { - Condition: "groundstation:EphemerisId", - Description: "Filters access by the ID of an ephemeris", - Type: "String", + Condition: "iottwinmaker:linkedServices", + Description: "Filters access by workspace linked to services", + Type: "ArrayOfString", }, { - Condition: "groundstation:GroundStationId", - Description: "Filters access by the ID of a ground station", - Type: "String", + Condition: "iottwinmaker:sourceType", + Description: "Filters access by source type of metadata transfer job", + Type: "ArrayOfString", }, + }, + Prefix: "iottwinmaker", + Privileges: []ParliamentPrivilege{ { - Condition: "groundstation:MissionProfileId", - Description: "Filters access by the ID of a mission profile", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to set values for multiple time series properties", + Privilege: "BatchPutPropertyValues", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iottwinmaker:GetComponentType", + "iottwinmaker:GetEntity", + "iottwinmaker:GetWorkspace", + }, + ResourceType: "workspace*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity", + }, + }, }, { - Condition: "groundstation:SatelliteId", - Description: "Filters access by the ID of a satellite", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to cancel a metadata transfer job", + Privilege: "CancelMetadataTransferJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "metadataTransferJob*", + }, + }, }, - }, - Prefix: "groundstation", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel a contact", - Privilege: "CancelContact", + Description: "Grants permission to create a componentType", + Privilege: "CreateComponentType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Contact*", + ResourceType: "workspace*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a configuration", - Privilege: "CreateConfig", + Description: "Grants permission to create an entity", + Privilege: "CreateEntity", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -136936,9 +178949,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a data flow endpoint group", - Privilege: "CreateDataflowEndpointGroup", + Description: "Grants permission to create a metadata transfer job", + Privilege: "CreateMetadataTransferJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a scene", + Privilege: "CreateScene", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -136951,9 +178981,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an ephemeris item", - Privilege: "CreateEphemeris", + Description: "Grants permission to create a sync job", + Privilege: "CreateSyncJob", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -136966,8 +179001,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a mission profile", - Privilege: "CreateMissionProfile", + Description: "Grants permission to create a workspace", + Privilege: "CreateWorkspace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -136981,116 +179016,146 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a config", - Privilege: "DeleteConfig", + Description: "Grants permission to delete a componentType", + Privilege: "DeleteComponentType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Config*", + ResourceType: "componentType*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a data flow endpoint group", - Privilege: "DeleteDataflowEndpointGroup", + Description: "Grants permission to delete an entity", + Privilege: "DeleteEntity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataflowEndpointGroup*", + ResourceType: "entity*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an ephemeris item", - Privilege: "DeleteEphemeris", + Description: "Grants permission to delete a scene", + Privilege: "DeleteScene", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EphemerisItem*", + ResourceType: "scene*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a mission profile", - Privilege: "DeleteMissionProfile", + Description: "Grants permission to delete a sync job", + Privilege: "DeleteSyncJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MissionProfile*", + ResourceType: "syncJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a contact", - Privilege: "DescribeContact", + AccessLevel: "Write", + Description: "Grants permission to delete a workspace", + Privilege: "DeleteWorkspace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Contact*", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an ephemeris item", - Privilege: "DescribeEphemeris", + Description: "Grants permission to execute query", + Privilege: "ExecuteQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EphemerisItem*", + ResourceType: "workspace*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the configuration of an agent", - Privilege: "GetAgentConfiguration", + Description: "Grants permission to get a componentType", + Privilege: "GetComponentType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Agent*", + ResourceType: "componentType*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a configuration", - Privilege: "GetConfig", + Description: "Grants permission to get an entity", + Privilege: "GetEntity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Config*", + ResourceType: "entity*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a data flow endpoint group", - Privilege: "GetDataflowEndpointGroup", + Description: "Grants permission to get a metadata transfer job", + Privilege: "GetMetadataTransferJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataflowEndpointGroup*", + ResourceType: "metadataTransferJob*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return minutes usage", - Privilege: "GetMinuteUsage", + Description: "Grants permission to get pricing plan", + Privilege: "GetPricingPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -137101,104 +179166,147 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a mission profile", - Privilege: "GetMissionProfile", + Description: "Grants permission to retrieve the property values", + Privilege: "GetPropertyValue", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iottwinmaker:GetComponentType", + "iottwinmaker:GetEntity", + "iottwinmaker:GetWorkspace", + }, + ResourceType: "workspace*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MissionProfile*", + ResourceType: "componentType", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a satellite", - Privilege: "GetSatellite", + Description: "Grants permission to retrieve the time series value history", + Privilege: "GetPropertyValueHistory", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iottwinmaker:GetComponentType", + "iottwinmaker:GetEntity", + "iottwinmaker:GetWorkspace", + }, + ResourceType: "workspace*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Satellite*", + ResourceType: "componentType", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of past configurations", - Privilege: "ListConfigs", + AccessLevel: "Read", + Description: "Grants permission to get a scene", + Privilege: "GetScene", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scene*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of contacts", - Privilege: "ListContacts", + AccessLevel: "Read", + Description: "Grants permission to get a sync job", + Privilege: "GetSyncJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "syncJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list data flow endpoint groups", - Privilege: "ListDataflowEndpointGroups", + AccessLevel: "Read", + Description: "Grants permission to get a workspace", + Privilege: "GetWorkspace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workspace*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list ephemerides", - Privilege: "ListEphemerides", + Description: "Grants permission to list all componentTypes in a workspace", + Privilege: "ListComponentTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workspace*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list ground stations", - Privilege: "ListGroundStations", + Description: "Grants permission to list components attached to an entity", + Privilege: "ListComponents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "entity*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of mission profiles", - Privilege: "ListMissionProfiles", + Description: "Grants permission to list all entities in a workspace", + Privilege: "ListEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workspace*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list satellites", - Privilege: "ListSatellites", + Description: "Grants permission to list all metadata transfer jobs", + Privilege: "ListMetadataTransferJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -137208,93 +179316,148 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list properties of an entity component", + Privilege: "ListProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Config", + ResourceType: "entity*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Contact", + ResourceType: "workspace*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all scenes in a workspace", + Privilege: "ListScenes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataflowEndpointGroup", + ResourceType: "workspace*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all sync jobs in a workspace", + Privilege: "ListSyncJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MissionProfile", + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register an agent", - Privilege: "RegisterAgent", + AccessLevel: "List", + Description: "Grants permission to list all sync resources for a sync job", + Privilege: "ListSyncResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "syncJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reserve a contact", - Privilege: "ReserveContact", + AccessLevel: "List", + Description: "Grants permission to list all tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "componentType", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "entity", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "scene", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "syncJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list all workspaces", + Privilege: "ListWorkspaces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Tagging", - Description: "Grants permission to assign a resource tag", + Description: "Grants permission to tag a resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Config", + ResourceType: "componentType", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Contact", + ResourceType: "entity", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataflowEndpointGroup", + ResourceType: "scene", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EphemerisItem", + ResourceType: "syncJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MissionProfile", + ResourceType: "workspace", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -137303,33 +179466,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to unassign a resource tag", + Description: "Grants permission to untag a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Config", + ResourceType: "componentType", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Contact", + ResourceType: "entity", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DataflowEndpointGroup", + ResourceType: "scene", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EphemerisItem", + ResourceType: "syncJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MissionProfile", + ResourceType: "workspace", }, { ConditionKeys: []string{ @@ -137342,130 +179505,154 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the status of an agent", - Privilege: "UpdateAgentStatus", + Description: "Grants permission to update a componentType", + Privilege: "UpdateComponentType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Agent*", + ResourceType: "componentType*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a configuration", - Privilege: "UpdateConfig", + Description: "Grants permission to update an entity", + Privilege: "UpdateEntity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Config*", + ResourceType: "entity*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an ephemeris item", - Privilege: "UpdateEphemeris", + Description: "Grants permission to update pricing plan", + Privilege: "UpdatePricingPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EphemerisItem*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a mission profile", - Privilege: "UpdateMissionProfile", + Description: "Grants permission to update a scene", + Privilege: "UpdateScene", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MissionProfile*", + ResourceType: "scene*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a workspace", + Privilege: "UpdateWorkspace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workspace*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:config/${ConfigType}/${ConfigId}", + Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "groundstation:ConfigId", - "groundstation:ConfigType", }, - Resource: "Config", + Resource: "workspace", }, { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:contact/${ContactId}", + Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/entity/${EntityId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "groundstation:ContactId", }, - Resource: "Contact", + Resource: "entity", }, { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:dataflow-endpoint-group/${DataflowEndpointGroupId}", + Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/component-type/${ComponentTypeId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "groundstation:DataflowEndpointGroupId", }, - Resource: "DataflowEndpointGroup", + Resource: "componentType", }, { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:ephemeris/${EphemerisId}", + Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/scene/${SceneId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "groundstation:EphemerisId", }, - Resource: "EphemerisItem", + Resource: "scene", }, { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:groundstation:${GroundStationId}", + Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/sync-job/${SyncJobId}", ConditionKeys: []string{ - "groundstation:GroundStationId", + "aws:ResourceTag/${TagKey}", }, - Resource: "GroundStationResource", + Resource: "syncJob", }, { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:mission-profile/${MissionProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "groundstation:MissionProfileId", - }, - Resource: "MissionProfile", + Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:metadata-transfer-job/${MetadataTransferJobId}", + ConditionKeys: []string{}, + Resource: "metadataTransferJob", }, + }, + ServiceName: "AWS IoT TwinMaker", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:satellite/${SatelliteId}", - ConditionKeys: []string{ - "groundstation:SatelliteId", - }, - Resource: "Satellite", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key that is present in the request that the user makes to IoT Wireless", + Type: "String", }, { - Arn: "arn:${Partition}:groundstation:${Region}:${Account}:agent/${AgentId}", - ConditionKeys: []string{ - "groundstation:AgentId", - }, - Resource: "Agent", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key component of a tag attached to an IoT Wireless resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names associated with the resource in the request", + Type: "ArrayOfString", }, }, - ServiceName: "AWS Ground Station", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "groundtruthlabeling", + Prefix: "iotwireless", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate a patch file with the manifest file to update the manifest file", - Privilege: "AssociatePatchToManifestJob", + Description: "Grants permission to link partner accounts with Aws account", + Privilege: "AssociateAwsAccountWithPartnerAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -137473,131 +179660,177 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a GT+ Batch", - Privilege: "CreateBatch", + Description: "Grants permission to associate the MulticastGroup with FuotaTask", + Privilege: "AssociateMulticastGroupWithFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create intake form", - Privilege: "CreateIntakeForm", + Description: "Grants permission to associate the wireless device with FuotaTask", + Privilege: "AssociateWirelessDeviceWithFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a GT+ Project", - Privilege: "CreateProject", + Description: "Grants permission to associate the WirelessDevice with MulticastGroup", + Privilege: "AssociateWirelessDeviceWithMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a GT+ Workflow Definition", - Privilege: "CreateWorkflowDefinition", + Description: "Grants permission to associate the wireless device with AWS IoT thing for a given wirelessDeviceId", + Privilege: "AssociateWirelessDeviceWithThing", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + }, + ResourceType: "WirelessDevice*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get status of GroundTruthLabeling Jobs", - Privilege: "DescribeConsoleJob", + AccessLevel: "Write", + Description: "Grants permission to associate a WirelessGateway with the IoT Core Identity certificate", + Privilege: "AssociateWirelessGatewayWithCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate LiDAR Preview Task", - Privilege: "GenerateLIDARPreviewTaskConfigJob", + Description: "Grants permission to associate the wireless gateway with AWS IoT thing for a given wirelessGatewayId", + Privilege: "AssociateWirelessGatewayWithThing", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + }, + ResourceType: "WirelessGateway*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a GT+ Batch", - Privilege: "GetBatch", + AccessLevel: "Write", + Description: "Grants permission to cancel the MulticastGroup session", + Privilege: "CancelMulticastGroupSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a intake forms", - Privilege: "GetIntakeFormStatus", + AccessLevel: "Write", + Description: "Grants permission to create a Destination resource", + Privilege: "CreateDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list a GT+ Batchs", - Privilege: "ListBatches", + AccessLevel: "Write", + Description: "Grants permission to create a DeviceProfile resource", + Privilege: "CreateDeviceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list dataset objects in a manifest file", - Privilege: "ListDatasetObjects", + AccessLevel: "Write", + Description: "Grants permission to create a FuotaTask resource", + Privilege: "CreateFuotaTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list a GT+ Projects", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to create a MulticastGroup resource", + Privilege: "CreateMulticastGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -137605,23 +179838,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to filter records from a manifest file using S3 select. Get sample entries based on random sampling", - Privilege: "RunFilterOrSampleDatasetJob", + Description: "Grants permission to create a NetworkAnalyzerConfiguration resource", + Privilege: "CreateNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "WirelessDevice*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to list a S3 prefix and create manifest files from objects in that location", - Privilege: "RunGenerateManifestByCrawlingJob", + Description: "Grants permission to create a ServiceProfile resource", + Privilege: "CreateServiceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -137629,11 +179878,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to generate metrics from objects in manifest", - Privilege: "RunGenerateManifestMetricsJob", + Description: "Grants permission to create a WirelessDevice resource with given Destination", + Privilege: "CreateWirelessDevice", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -137641,322 +179893,348 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a GT+ Batch", - Privilege: "UpdateBatch", + Description: "Grants permission to create a WirelessGateway resource", + Privilege: "CreateWirelessGateway", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon GroundTruth Labeling", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tag key-value pairs in the request", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to create a task for a given WirelessGateway", + Privilege: "CreateWirelessGatewayTask", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway*", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to create a WirelessGateway task definition", + Privilege: "CreateWirelessGatewayTaskDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys in the request", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to delete a Destination", + Privilege: "DeleteDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Destination*", + }, + }, }, - }, - Prefix: "guardduty", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept invitations to become a GuardDuty member account", - Privilege: "AcceptAdministratorInvitation", + Description: "Grants permission to delete a DeviceProfile", + Privilege: "DeleteDeviceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceProfile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to accept invitations to become a GuardDuty member account", - Privilege: "AcceptInvitation", + Description: "Grants permission to delete the FuotaTask", + Privilege: "DeleteFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to archive GuardDuty findings", - Privilege: "ArchiveFindings", + Description: "Grants permission to delete the MulticastGroup", + Privilege: "DeleteMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a detector", - Privilege: "CreateDetector", + Description: "Grants permission to delete the NetworkAnalyzerConfiguration", + Privilege: "DeleteNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create GuardDuty filters. A filters defines finding attributes and conditions used to filter findings", - Privilege: "CreateFilter", + Description: "Grants permission to delete QueuedMessages", + Privilege: "DeleteQueuedMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a ServiceProfile", + Privilege: "DeleteServiceProfile", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ServiceProfile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an IPSet", - Privilege: "CreateIPSet", + Description: "Grants permission to delete a WirelessDevice", + Privilege: "DeleteWirelessDevice", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:DeleteRolePolicy", - "iam:PutRolePolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new Malware Protection plan", - Privilege: "CreateMalwareProtectionPlan", + Description: "Grants permission to delete a WirelessGateway", + Privilege: "DeleteWirelessGateway", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create GuardDuty member accounts, where the account used to create a member becomes the GuardDuty administrator account", - Privilege: "CreateMembers", + Description: "Grants permission to delete task for a given WirelessGateway", + Privilege: "DeleteWirelessGatewayTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a publishing destination", - Privilege: "CreatePublishingDestination", + Description: "Grants permission to delete a WirelessGateway task definition", + Privilege: "DeleteWirelessGatewayTaskDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - "s3:ListBucket", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGatewayTaskDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create sample findings", - Privilege: "CreateSampleFindings", + Description: "Grants permission to disassociate an AWS account from a partner account", + Privilege: "DisassociateAwsAccountFromPartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create GuardDuty ThreatIntelSets, where a ThreatIntelSet consists of known malicious IP addresses used by GuardDuty to generate findings", - Privilege: "CreateThreatIntelSet", + Description: "Grants permission to disassociate the MulticastGroup from FuotaTask", + Privilege: "DisassociateMulticastGroupFromFuotaTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FuotaTask*", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to decline invitations to become a GuardDuty member account", - Privilege: "DeclineInvitations", + Description: "Grants permission to disassociate the wireless device from FuotaTask", + Privilege: "DisassociateWirelessDeviceFromFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete GuardDuty detectors", - Privilege: "DeleteDetector", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete GuardDuty filters", - Privilege: "DeleteFilter", + Description: "Grants permission to disassociate the wireless device from MulticastGroup", + Privilege: "DisassociateWirelessDeviceFromMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "MulticastGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete GuardDuty IPSets", - Privilege: "DeleteIPSet", + Description: "Grants permission to disassociate a wireless device from a AWS IoT thing", + Privilege: "DisassociateWirelessDeviceFromThing", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + }, + ResourceType: "WirelessDevice*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipset*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete invitations to become a GuardDuty member account", - Privilege: "DeleteInvitations", + Description: "Grants permission to disassociate a WirelessGateway from a IoT Core Identity certificate", + Privilege: "DisassociateWirelessGatewayFromCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Malware Protection plan", - Privilege: "DeleteMalwareProtectionPlan", + Description: "Grants permission to disassociate a WirelessGateway from a IoT Core thing", + Privilege: "DisassociateWirelessGatewayFromThing", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + }, + ResourceType: "WirelessGateway*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "malwareprotectionplan*", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete GuardDuty member accounts", - Privilege: "DeleteMembers", + AccessLevel: "Read", + Description: "Grants permission to get the Destination", + Privilege: "GetDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Destination*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a publishing destination", - Privilege: "DeletePublishingDestination", + AccessLevel: "Read", + Description: "Grants permission to get the DeviceProfile", + Privilege: "GetDeviceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishingDestination*", + ResourceType: "DeviceProfile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete GuardDuty ThreatIntelSets", - Privilege: "DeleteThreatIntelSet", + AccessLevel: "Read", + Description: "Grants permission to get event configuration by resource types", + Privilege: "GetEventConfigurationByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "threatintelset*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about malware scans", - Privilege: "DescribeMalwareScans", + Description: "Grants permission to get the FuotaTask", + Privilege: "GetFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about the delegated administrator associated with a GuardDuty detector", - Privilege: "DescribeOrganizationConfiguration", + Description: "Grants permission to get log levels by resource types", + Privilege: "GetLogLevelsByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -137967,80 +180245,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about a publishing destination", - Privilege: "DescribePublishingDestination", + Description: "Grants permission to get the MulticastGroup", + Privilege: "GetMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "publishingDestination*", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable the organization delegated administrator for GuardDuty", - Privilege: "DisableOrganizationAdminAccount", + AccessLevel: "Read", + Description: "Grants permission to get the MulticastGroup session", + Privilege: "GetMulticastGroupSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a GuardDuty member account from its GuardDuty administrator account", - Privilege: "DisassociateFromAdministratorAccount", + AccessLevel: "Read", + Description: "Grants permission to get the NetworkAnalyzerConfiguration", + Privilege: "GetNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a GuardDuty member account from its GuardDuty administrator account", - Privilege: "DisassociateFromMasterAccount", + AccessLevel: "Read", + Description: "Grants permission to get the associated PartnerAccount", + Privilege: "GetPartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate GuardDuty member accounts from their administrator GuardDuty account", - Privilege: "DisassociateMembers", + AccessLevel: "Read", + Description: "Grants permission to get an event configuration for an identifier", + Privilege: "GetResourceEventConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable an organization delegated administrator for GuardDuty", - Privilege: "EnableOrganizationAdminAccount", + AccessLevel: "Read", + Description: "Grants permission to get resource log level", + Privilege: "GetResourceLogLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details of the GuardDuty administrator account associated with a member account", - Privilege: "GetAdministratorAccount", + Description: "Grants permission to retrieve the customer account specific endpoint for CUPS protocol connection or LoRaWAN Network Server (LNS) protocol connection, and optionally server trust certificate in PEM format", + Privilege: "GetServiceEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138051,116 +180344,116 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list Amazon GuardDuty coverage statistics for the specified GuardDuty account in a Region", - Privilege: "GetCoverageStatistics", + Description: "Grants permission to get the ServiceProfile", + Privilege: "GetServiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "ServiceProfile*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve GuardDuty detectors", - Privilege: "GetDetector", + Description: "Grants permission to get the WirelessDevice", + Privilege: "GetWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve GuardDuty filters", - Privilege: "GetFilter", + Description: "Grants permission to get statistics info for a given WirelessDevice", + Privilege: "GetWirelessDeviceStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve GuardDuty findings", - Privilege: "GetFindings", + Description: "Grants permission to get the WirelessGateway", + Privilege: "GetWirelessGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of GuardDuty finding statistics", - Privilege: "GetFindingsStatistics", + Description: "Grants permission to get the IoT Core Identity certificate id associated with the WirelessGateway", + Privilege: "GetWirelessGatewayCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve GuardDuty IPSets", - Privilege: "GetIPSet", + Description: "Grants permission to get Current firmware version and other information for the WirelessGateway", + Privilege: "GetWirelessGatewayFirmwareInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipset*", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the count of all GuardDuty invitations sent to a specified account, which does not include the accepted invitation", - Privilege: "GetInvitationsCount", + Description: "Grants permission to get statistics info for a given WirelessGateway", + Privilege: "GetWirelessGatewayStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a Malware Protection plan details", - Privilege: "GetMalwareProtectionPlan", + Description: "Grants permission to get the task for a given WirelessGateway", + Privilege: "GetWirelessGatewayTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "malwareprotectionplan*", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the malware scan settings", - Privilege: "GetMalwareScanSettings", + Description: "Grants permission to get the given WirelessGateway task definition", + Privilege: "GetWirelessGatewayTaskDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGatewayTaskDefinition*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details of the GuardDuty administrator account associated with a member account", - Privilege: "GetMasterAccount", + Description: "Grants permission to list information of available Destinations based on the AWS account", + Privilege: "ListDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138171,8 +180464,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe which data sources are enabled for member accounts detectors", - Privilege: "GetMemberDetectors", + Description: "Grants permission to list information of available DeviceProfiles based on the AWS account", + Privilege: "ListDeviceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138183,8 +180476,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the member accounts associated with an administrator account", - Privilege: "GetMembers", + Description: "Grants permission to list information of available event configurations based on the AWS account", + Privilege: "ListEventConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138195,8 +180488,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve GuardDuty protection plan coverage statistics for member accounts in a Region", - Privilege: "GetOrganizationStatistics", + Description: "Grants permission to list information of available FuotaTasks based on the AWS account", + Privilege: "ListFuotaTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138207,8 +180500,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to provide the number of days left for each data source used in the free trial period", - Privilege: "GetRemainingFreeTrialDays", + Description: "Grants permission to list information of available MulticastGroups based on the AWS account", + Privilege: "ListMulticastGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138219,20 +180512,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve GuardDuty ThreatIntelSets", - Privilege: "GetThreatIntelSet", + Description: "Grants permission to list information of available MulticastGroups by FuotaTask based on the AWS account", + Privilege: "ListMulticastGroupsByFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "threatintelset*", + ResourceType: "FuotaTask*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list Amazon GuardDuty usage statistics over the last 30 days for the specified detector ID", - Privilege: "GetUsageStatistics", + Description: "Grants permission to list information of available NetworkAnalyzerConfigurations based on the AWS account", + Privilege: "ListNetworkAnalyzerConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138242,9 +180535,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to invite other AWS accounts to enable GuardDuty and become GuardDuty member accounts", - Privilege: "InviteMembers", + AccessLevel: "Read", + Description: "Grants permission to list the available partner accounts", + Privilege: "ListPartnerAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138254,21 +180547,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the resource details for a given account in a Region", - Privilege: "ListCoverage", + AccessLevel: "Read", + Description: "Grants permission to list the Queued Messages", + Privilege: "ListQueuedMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of GuardDuty detectors", - Privilege: "ListDetectors", + AccessLevel: "Read", + Description: "Grants permission to list information of available ServiceProfiles based on the AWS account", + Privilege: "ListServiceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138278,45 +180571,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of GuardDuty filters", - Privilege: "ListFilters", + AccessLevel: "Read", + Description: "Grants permission to list all tags for a given resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Destination", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of GuardDuty findings", - Privilege: "ListFindings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceProfile", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of GuardDuty IPSets", - Privilege: "ListIPSets", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceProfile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGatewayTaskDefinition", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all of the GuardDuty membership invitations that were sent to an AWS account", - Privilege: "ListInvitations", + AccessLevel: "Read", + Description: "Grants permission to list information of available WirelessDevices based on the AWS account", + Privilege: "ListWirelessDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138326,9 +180630,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of Malware Protection plans", - Privilege: "ListMalwareProtectionPlans", + AccessLevel: "Read", + Description: "Grants permission to list information of available WirelessGateway task definitions based on the AWS account", + Privilege: "ListWirelessGatewayTaskDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138338,9 +180642,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of GuardDuty member accounts associated with an administrator account", - Privilege: "ListMembers", + AccessLevel: "Read", + Description: "Grants permission to list information of available WirelessGateways based on the AWS account", + Privilege: "ListWirelessGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138350,21 +180654,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list details about the organization delegated administrator for GuardDuty", - Privilege: "ListOrganizationAdminAccounts", + AccessLevel: "Write", + Description: "Grants permission to put resource log level", + Privilege: "PutResourceLogLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of publishing destinations", - Privilege: "ListPublishingDestinations", + AccessLevel: "Write", + Description: "Grants permission to reset all resource log levels", + Privilege: "ResetAllResourceLogLevels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -138374,126 +180683,150 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of tags associated with a GuardDuty resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to reset resource log level", + Privilege: "ResetResourceLogLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "filter", + ResourceType: "WirelessDevice", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipset", + ResourceType: "WirelessGateway", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send data to the MulticastGroup", + Privilege: "SendDataToMulticastGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "malwareprotectionplan", + ResourceType: "MulticastGroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send the decrypted application data frame to the target device", + Privilege: "SendDataToWirelessDevice", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "threatintelset", + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of GuardDuty ThreatIntelSets", - Privilege: "ListThreatIntelSets", + AccessLevel: "Write", + Description: "Grants permission to associate the WirelessDevices with MulticastGroup", + Privilege: "StartBulkAssociateWirelessDeviceWithMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send security telemetry for a specific GuardDuty account in a Region", - Privilege: "SendSecurityTelemetry", + Description: "Grants permission to bulk disassociate the WirelessDevices from MulticastGroup", + Privilege: "StartBulkDisassociateWirelessDeviceFromMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate a new malware scan", - Privilege: "StartMalwareScan", + Description: "Grants permission to start the FuotaTask", + Privilege: "StartFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to a GuardDuty administrator account to monitor findings from GuardDuty member accounts", - Privilege: "StartMonitoringMembers", + Description: "Grants permission to start the MulticastGroup session", + Privilege: "StartMulticastGroupSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable monitoring findings from member accounts", - Privilege: "StopMonitoringMembers", + Description: "Grants permission to start NetworkAnalyzer stream", + Privilege: "StartNetworkAnalyzerStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add tags to a GuardDuty resource", + Description: "Grants permission to tag a given resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector", + ResourceType: "Destination", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter", + ResourceType: "DeviceProfile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipset", + ResourceType: "NetworkAnalyzerConfiguration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "malwareprotectionplan", + ResourceType: "ServiceProfile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "threatintelset", + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGatewayTaskDefinition", }, { ConditionKeys: []string{ @@ -138507,45 +180840,60 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to unarchive GuardDuty findings", - Privilege: "UnarchiveFindings", + Description: "Grants permission to simulate a provisioned device to send an uplink data with payload of 'Hello'", + Privilege: "TestWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a GuardDuty resource", + Description: "Grants permission to remove the given tags from the resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector", + ResourceType: "Destination", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter", + ResourceType: "DeviceProfile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ipset", + ResourceType: "NetworkAnalyzerConfiguration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "malwareprotectionplan", + ResourceType: "ServiceProfile", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "threatintelset", + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGatewayTaskDefinition", }, { ConditionKeys: []string{ @@ -138558,430 +180906,491 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update GuardDuty detectors", - Privilege: "UpdateDetector", + Description: "Grants permission to update a Destination resource", + Privilege: "UpdateDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detector*", + ResourceType: "Destination*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to updates GuardDuty filters", - Privilege: "UpdateFilter", + Description: "Grants permission to update event configuration by resource types", + Privilege: "UpdateEventConfigurationByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update findings feedback to mark GuardDuty findings as useful or not useful", - Privilege: "UpdateFindingsFeedback", + Description: "Grants permission to update the FuotaTask", + Privilege: "UpdateFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update GuardDuty IPSets", - Privilege: "UpdateIPSet", + Description: "Grants permission to update log levels by resource types", + Privilege: "UpdateLogLevelsByResourceTypes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:DeleteRolePolicy", - "iam:PutRolePolicy", - }, - ResourceType: "ipset*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the Malware Protection plan", - Privilege: "UpdateMalwareProtectionPlan", + Description: "Grants permission to update the MulticastGroup", + Privilege: "UpdateMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "malwareprotectionplan*", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the malware scan settings", - Privilege: "UpdateMalwareScanSettings", + Description: "Grants permission to update the NetworkAnalyzerConfiguration", + Privilege: "UpdateNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update which data sources are enabled for member accounts detectors", - Privilege: "UpdateMemberDetectors", + Description: "Grants permission to update a partner account", + Privilege: "UpdatePartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the delegated administrator configuration associated with a GuardDuty detector", - Privilege: "UpdateOrganizationConfiguration", + Description: "Grants permission to update an event configuration for an identifier", + Privilege: "UpdateResourceEventConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a publishing destination", - Privilege: "UpdatePublishingDestination", + Description: "Grants permission to update a WirelessDevice resource", + Privilege: "UpdateWirelessDevice", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - "s3:ListBucket", - }, - ResourceType: "publishingDestination*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to updates the GuardDuty ThreatIntelSets", - Privilege: "UpdateThreatIntelSet", + Description: "Grants permission to update a WirelessGateway resource", + Privilege: "UpdateWirelessGateway", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:DeleteRolePolicy", - "iam:PutRolePolicy", - }, - ResourceType: "threatintelset*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessDevice/${WirelessDeviceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "detector", + Resource: "WirelessDevice", }, { - Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/filter/${FilterName}", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessGateway/${WirelessGatewayId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "filter", + Resource: "WirelessGateway", }, { - Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/ipset/${IPSetId}", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:DeviceProfile/${DeviceProfileId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "ipset", + Resource: "DeviceProfile", }, { - Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/threatintelset/${ThreatIntelSetId}", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:ServiceProfile/${ServiceProfileId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "threatintelset", + Resource: "ServiceProfile", }, { - Arn: "arn:${Partition}:guardduty:${Region}:${Account}:detector/${DetectorId}/publishingDestination/${PublishingDestinationId}", - ConditionKeys: []string{}, - Resource: "publishingDestination", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:Destination/${DestinationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Destination", }, { - Arn: "arn:${Partition}:guardduty:${Region}:${Account}:malware-protection-plan/${MalwareProtectionPlanId}", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:SidewalkAccount/${SidewalkAccountId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "malwareprotectionplan", + Resource: "SidewalkAccount", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessGatewayTaskDefinition/${WirelessGatewayTaskDefinitionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "WirelessGatewayTaskDefinition", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:FuotaTask/${FuotaTaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "FuotaTask", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:MulticastGroup/${MulticastGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "MulticastGroup", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:NetworkAnalyzerConfiguration/${NetworkAnalyzerConfigurationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "NetworkAnalyzerConfiguration", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", + ConditionKeys: []string{}, + Resource: "thing", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:cert/${Certificate}", + ConditionKeys: []string{}, + Resource: "cert", }, }, - ServiceName: "Amazon GuardDuty", + ServiceName: "AWS IoT Core for LoRaWAN", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "health:eventTypeCode", - Description: "Filters access by event type", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key that is present in the request that the user makes to IoT Wireless", Type: "String", }, { - Condition: "health:service", - Description: "Filters access by impacted service", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key component of a tag attached to an IoT Wireless resource", Type: "String", }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names associated with the resource in the request", + Type: "ArrayOfString", + }, }, - Prefix: "health", + Prefix: "iotwireless", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of accounts that have been affected by the specified events in organization", - Privilege: "DescribeAffectedAccountsForOrganization", + AccessLevel: "Write", + Description: "Grants permission to link partner accounts with AWS account", + Privilege: "AssociateAwsAccountWithPartnerAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:ListAccounts", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of entities that have been affected by the specified events", - Privilege: "DescribeAffectedEntities", + AccessLevel: "Write", + Description: "Grants permission to associate the MulticastGroup with FuotaTask", + Privilege: "AssociateMulticastGroupWithFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event*", + ResourceType: "FuotaTask*", }, { - ConditionKeys: []string{ - "health:eventTypeCode", - "health:service", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of entities that have been affected by the specified events and accounts in organization", - Privilege: "DescribeAffectedEntitiesForOrganization", + AccessLevel: "Write", + Description: "Grants permission to associate the wireless device with FuotaTask", + Privilege: "AssociateWirelessDeviceWithFuotaTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:ListAccounts", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FuotaTask*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the number of entities that are affected by each of the specified events", - Privilege: "DescribeEntityAggregates", + AccessLevel: "Write", + Description: "Grants permission to associate the WirelessDevice with MulticastGroup", + Privilege: "AssociateWirelessDeviceWithMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the number of entities that are affected by each of the specified events in an organization", - Privilege: "DescribeEntityAggregatesForOrganization", + AccessLevel: "Write", + Description: "Grants permission to associate the wireless device with AWS IoT thing for a given wirelessDeviceId", + Privilege: "AssociateWirelessDeviceWithThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "organizations:ListAccounts", + "iot:DescribeThing", }, - ResourceType: "", + ResourceType: "WirelessDevice*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the number of events of each event type (issue, scheduled change, and account notification)", - Privilege: "DescribeEventAggregates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve detailed information about one or more specified events", - Privilege: "DescribeEventDetails", + AccessLevel: "Write", + Description: "Grants permission to associate a WirelessGateway with the IoT Core Identity certificate", + Privilege: "AssociateWirelessGatewayWithCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event*", + ResourceType: "WirelessGateway*", }, { - ConditionKeys: []string{ - "health:eventTypeCode", - "health:service", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cert*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve detailed information about one or more specified events for provided accounts in organization", - Privilege: "DescribeEventDetailsForOrganization", + AccessLevel: "Write", + Description: "Grants permission to associate the wireless gateway with AWS IoT thing for a given wirelessGatewayId", + Privilege: "AssociateWirelessGatewayWithThing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "organizations:ListAccounts", + "iot:DescribeThing", }, - ResourceType: "", + ResourceType: "WirelessGateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thing*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the event types that meet the specified filter criteria", - Privilege: "DescribeEventTypes", + AccessLevel: "Write", + Description: "Grants permission to cancel the MulticastGroup session", + Privilege: "CancelMulticastGroupSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about events that meet the specified filter criteria", - Privilege: "DescribeEvents", + AccessLevel: "Write", + Description: "Grants permission to create a Destination resource", + Privilege: "CreateDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about events that meet the specified filter criteria in organization", - Privilege: "DescribeEventsForOrganization", + AccessLevel: "Write", + Description: "Grants permission to create a DeviceProfile resource", + Privilege: "CreateDeviceProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:ListAccounts", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the status of enabling or disabling the Organizational View feature", - Privilege: "DescribeHealthServiceStatusForOrganization", + AccessLevel: "Write", + Description: "Grants permission to create a FuotaTask resource", + Privilege: "CreateFuotaTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:ListAccounts", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disable the Organizational View feature", - Privilege: "DisableHealthServiceAccessForOrganization", + AccessLevel: "Write", + Description: "Grants permission to create a MulticastGroup resource", + Privilege: "CreateMulticastGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DisableAWSServiceAccess", - "organizations:ListAccounts", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to enable the Organizational View feature", - Privilege: "EnableHealthServiceAccessForOrganization", + AccessLevel: "Write", + Description: "Grants permission to create a NetworkAnalyzerConfiguration resource", + Privilege: "CreateNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:EnableAWSServiceAccess", - "organizations:ListAccounts", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MulticastGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:health:*::event/${Service}/${EventTypeCode}/*", - ConditionKeys: []string{}, - Resource: "event", - }, - }, - ServiceName: "AWS Health APIs and Notifications", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs attached to the resource", - Type: "String", - }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to create a ServiceProfile resource", + Privilege: "CreateServiceProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - Prefix: "healthlake", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a datastore that can ingest and export FHIR data", - Privilege: "CreateFHIRDatastore", + Description: "Grants permission to create a WirelessDevice resource with given Destination", + Privilege: "CreateWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -138995,352 +181404,348 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create resource", - Privilege: "CreateResource", + Description: "Grants permission to create a WirelessGateway resource", + Privilege: "CreateWirelessGateway", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a datastore", - Privilege: "DeleteFHIRDatastore", + Description: "Grants permission to create a task for a given WirelessGateway", + Privilege: "CreateWirelessGatewayTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "WirelessGateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete resource", - Privilege: "DeleteResource", + Description: "Grants permission to create a WirelessGateway task definition", + Privilege: "CreateWirelessGatewayTaskDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the properties associated with the FHIR datastore, including the datastore ID, datastore ARN, datastore name, datastore status, created at, datastore type version, and datastore endpoint", - Privilege: "DescribeFHIRDatastore", + AccessLevel: "Write", + Description: "Grants permission to delete a Destination", + Privilege: "DeleteDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Destination*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to display the properties of a FHIR export job, including the ID, ARN, name, and the status of the datastore", - Privilege: "DescribeFHIRExportJob", + AccessLevel: "Write", + Description: "Grants permission to delete a DeviceProfile", + Privilege: "DeleteDeviceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "DeviceProfile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to display the properties of a FHIR import job, including the ID, ARN, name, and the status of the datastore", - Privilege: "DescribeFHIRImportJob", + AccessLevel: "Write", + Description: "Grants permission to delete the FuotaTask", + Privilege: "DeleteFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "FuotaTask*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the capabilities of a FHIR datastore", - Privilege: "GetCapabilities", + AccessLevel: "Write", + Description: "Grants permission to delete the MulticastGroup", + Privilege: "DeleteMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all FHIR datastores that are in the user’s account, regardless of datastore status", - Privilege: "ListFHIRDatastores", + AccessLevel: "Write", + Description: "Grants permission to delete the NetworkAnalyzerConfiguration", + Privilege: "DeleteNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of export jobs for the specified datastore", - Privilege: "ListFHIRExportJobs", + AccessLevel: "Write", + Description: "Grants permission to delete QueuedMessages", + Privilege: "DeleteQueuedMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of import jobs for the specified datastore", - Privilege: "ListFHIRImportJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a ServiceProfile", + Privilege: "DeleteServiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "ServiceProfile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of tags for the specified datastore", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a WirelessDevice", + Privilege: "DeleteWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read resource", - Privilege: "ReadResource", + AccessLevel: "Write", + Description: "Grants permission to delete the wireless device import task", + Privilege: "DeleteWirelessDeviceImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "ImportTask*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search all resources related to a patient", - Privilege: "SearchEverything", + AccessLevel: "Write", + Description: "Grants permission to delete a WirelessGateway", + Privilege: "DeleteWirelessGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search resources with GET method", - Privilege: "SearchWithGet", + AccessLevel: "Write", + Description: "Grants permission to delete task for a given WirelessGateway", + Privilege: "DeleteWirelessGatewayTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search resources with POST method", - Privilege: "SearchWithPost", + AccessLevel: "Write", + Description: "Grants permission to delete a WirelessGateway task definition", + Privilege: "DeleteWirelessGatewayTaskDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "WirelessGatewayTaskDefinition*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to begin a FHIR Export job", - Privilege: "StartFHIRExportJob", + Description: "Grants permission to deregister wireless device", + Privilege: "DeregisterWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to begin a FHIR Import job", - Privilege: "StartFHIRImportJob", + Description: "Grants permission to disassociate an AWS account from a partner account", + Privilege: "DisassociateAwsAccountFromPartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "SidewalkAccount*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a datastore", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to disassociate the MulticastGroup from FuotaTask", + Privilege: "DisassociateMulticastGroupFromFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "FuotaTask*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a datastore", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to disassociate the wireless device from FuotaTask", + Privilege: "DisassociateWirelessDeviceFromFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "FuotaTask*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update resource", - Privilege: "UpdateResource", + Description: "Grants permission to disassociate the wireless device from MulticastGroup", + Privilege: "DisassociateWirelessDeviceFromMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "MulticastGroup*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:healthlake:${Region}:${Account}:datastore/fhir/${DatastoreId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "datastore", - }, - }, - ServiceName: "AWS HealthLake", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "honeycode", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to approve a team association request for your AWS Account", - Privilege: "ApproveTeamAssociation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create new rows in a table", - Privilege: "BatchCreateTableRows", + Description: "Grants permission to disassociate a wireless device from a AWS IoT thing", + Privilege: "DisassociateWirelessDeviceFromThing", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + }, + ResourceType: "WirelessDevice*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "thing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete rows from a table", - Privilege: "BatchDeleteTableRows", + Description: "Grants permission to disassociate a WirelessGateway from a IoT Core Identity certificate", + Privilege: "DisassociateWirelessGatewayFromCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "WirelessGateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update rows in a table", - Privilege: "BatchUpdateTableRows", + Description: "Grants permission to disassociate a WirelessGateway from a IoT Core thing", + Privilege: "DisassociateWirelessGatewayFromThing", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iot:DescribeThing", + }, + ResourceType: "WirelessGateway*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "thing*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upsert rows in a table", - Privilege: "BatchUpsertTableRows", + AccessLevel: "Read", + Description: "Grants permission to get the Destination", + Privilege: "GetDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "Destination*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon Honeycode team for your AWS Account", - Privilege: "CreateTeam", + AccessLevel: "Read", + Description: "Grants permission to get the DeviceProfile", + Privilege: "GetDeviceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceProfile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new tenant within Amazon Honeycode for your AWS Account", - Privilege: "CreateTenant", + AccessLevel: "Read", + Description: "Grants permission to get event configuration by resource types", + Privilege: "GetEventConfigurationByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -139350,21 +181755,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete Amazon Honeycode domains for your AWS Account", - Privilege: "DeleteDomains", + AccessLevel: "Read", + Description: "Grants permission to get the FuotaTask", + Privilege: "GetFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove groups from an Amazon Honeycode team for your AWS Account", - Privilege: "DeregisterGroups", + AccessLevel: "Read", + Description: "Grants permission to get log levels by resource types", + Privilege: "GetLogLevelsByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -139375,20 +181780,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get details about a table data import job", - Privilege: "DescribeTableDataImportJob", + Description: "Grants permission to get metric configuration", + Privilege: "GetMetricConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about Amazon Honeycode teams for your AWS Account", - Privilege: "DescribeTeam", + Description: "Grants permission to get metrics", + Privilege: "GetMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -139399,104 +181804,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to load the data from a screen", - Privilege: "GetScreenData", + Description: "Grants permission to get the MulticastGroup", + Privilege: "GetMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "screen*", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to invoke a screen automation", - Privilege: "InvokeScreenAutomation", + AccessLevel: "Read", + Description: "Grants permission to get the MulticastGroup session", + Privilege: "GetMulticastGroupSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "screen-automation*", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Amazon Honeycode domains and their verification status for your AWS Account", - Privilege: "ListDomains", + AccessLevel: "Read", + Description: "Grants permission to get the NetworkAnalyzerConfiguration", + Privilege: "GetNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all groups in an Amazon Honeycode team for your AWS Account", - Privilege: "ListGroups", + AccessLevel: "Read", + Description: "Grants permission to get the associated PartnerAccount", + Privilege: "GetPartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the columns in a table", - Privilege: "ListTableColumns", + AccessLevel: "Read", + Description: "Grants permission to get position for a given resource", + Privilege: "GetPosition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the rows in a table", - Privilege: "ListTableRows", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tables in a workbook", - Privilege: "ListTables", + AccessLevel: "Read", + Description: "Grants permission to get position configuration for a given resource", + Privilege: "GetPositionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workbook*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to list all tags for a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all pending and approved team associations with your AWS Account", - Privilege: "ListTeamAssociations", + AccessLevel: "Read", + Description: "Grants permission to get position estimate", + Privilege: "GetPositionEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -139506,57 +181897,65 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all tenants of Amazon Honeycode for your AWS Account", - Privilege: "ListTenants", + AccessLevel: "Read", + Description: "Grants permission to get an event configuration for an identifier", + Privilege: "GetResourceEventConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to query the rows of a table using a filter", - Privilege: "QueryTableRows", + Description: "Grants permission to get resource log level", + Privilege: "GetResourceLogLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to request verification of the Amazon Honeycode domains for your AWS Account", - Privilege: "RegisterDomainForVerification", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add groups to an Amazon Honeycode team for your AWS Account", - Privilege: "RegisterGroups", + AccessLevel: "Read", + Description: "Grants permission to get position for a given resource", + Privilege: "GetResourcePosition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject a team association request for your AWS Account", - Privilege: "RejectTeamAssociation", + AccessLevel: "Read", + Description: "Grants permission to retrieve the customer account specific endpoint for CUPS protocol connection or LoRaWAN Network Server (LNS) protocol connection, and optionally server trust certificate in PEM format", + Privilege: "GetServiceEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -139566,290 +181965,165 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to restart verification of the Amazon Honeycode domains for your AWS Account", - Privilege: "RestartDomainVerification", + AccessLevel: "Read", + Description: "Grants permission to get the ServiceProfile", + Privilege: "GetServiceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ServiceProfile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a table data import job", - Privilege: "StartTableDataImportJob", + AccessLevel: "Read", + Description: "Grants permission to get the WirelessDevice", + Privilege: "GetWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get the wireless device import task", + Privilege: "GetWirelessDeviceImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ImportTask*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get statistics info for a given WirelessDevice", + Privilege: "GetWirelessDeviceStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an Amazon Honeycode team for your AWS Account", - Privilege: "UpdateTeam", + AccessLevel: "Read", + Description: "Grants permission to get the WirelessGateway", + Privilege: "GetWirelessGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:honeycode:${Region}:${Account}:workbook:workbook/${WorkbookId}", - ConditionKeys: []string{}, - Resource: "workbook", - }, - { - Arn: "arn:${Partition}:honeycode:${Region}:${Account}:table:workbook/${WorkbookId}/table/${TableId}", - ConditionKeys: []string{}, - Resource: "table", - }, - { - Arn: "arn:${Partition}:honeycode:${Region}:${Account}:screen:workbook/${WorkbookId}/app/${AppId}/screen/${ScreenId}", - ConditionKeys: []string{}, - Resource: "screen", - }, - { - Arn: "arn:${Partition}:honeycode:${Region}:${Account}:screen-automation:workbook/${WorkbookId}/app/${AppId}/screen/${ScreenId}/automation/${AutomationId}", - ConditionKeys: []string{}, - Resource: "screen-automation", - }, - }, - ServiceName: "Amazon Honeycode", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "iam:AWSServiceName", - Description: "Filters access by the AWS service to which this role is attached", - Type: "String", - }, - { - Condition: "iam:AssociatedResourceArn", - Description: "Filters access by the resource that the role will be used on behalf of", - Type: "ARN", - }, - { - Condition: "iam:FIDO-FIPS-140-2-certification", - Description: "Filters access by the MFA device FIPS-140-2 validation certification level at the time of registration of a FIDO security key", - Type: "String", - }, - { - Condition: "iam:FIDO-FIPS-140-3-certification", - Description: "Filters access by the MFA device FIPS-140-3 validation certification level at the time of registration of a FIDO security key", - Type: "String", - }, - { - Condition: "iam:FIDO-certification", - Description: "Filters access by the MFA device FIDO certification level at the time of registration of a FIDO security key", - Type: "String", - }, - { - Condition: "iam:OrganizationsPolicyId", - Description: "Filters access by the ID of an AWS Organizations policy", - Type: "String", - }, - { - Condition: "iam:PassedToService", - Description: "Filters access by the AWS service to which this role is passed", - Type: "String", - }, - { - Condition: "iam:PermissionsBoundary", - Description: "Filters access if the specified policy is set as the permissions boundary on the IAM entity (user or role)", - Type: "ARN", - }, - { - Condition: "iam:PolicyARN", - Description: "Filters access by the ARN of an IAM policy", - Type: "ARN", - }, - { - Condition: "iam:RegisterSecurityKey", - Description: "Filters access by the current state of MFA device enablement", - Type: "String", - }, - { - Condition: "iam:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to an IAM entity (user or role)", - Type: "String", - }, - }, - Prefix: "iam", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add a new client ID (audience) to the list of registered IDs for the specified IAM OpenID Connect (OIDC) provider resource", - Privilege: "AddClientIDToOpenIDConnectProvider", + AccessLevel: "Read", + Description: "Grants permission to get the IoT Core Identity certificate id associated with the WirelessGateway", + Privilege: "GetWirelessGatewayCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an IAM role to the specified instance profile", - Privilege: "AddRoleToInstanceProfile", + AccessLevel: "Read", + Description: "Grants permission to get Current firmware version and other information for the WirelessGateway", + Privilege: "GetWirelessGatewayFirmwareInformation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "instance-profile*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an IAM user to the specified IAM group", - Privilege: "AddUserToGroup", + AccessLevel: "Read", + Description: "Grants permission to get statistics info for a given WirelessGateway", + Privilege: "GetWirelessGatewayStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a managed policy to the specified IAM group", - Privilege: "AttachGroupPolicy", + AccessLevel: "Read", + Description: "Grants permission to get the task for a given WirelessGateway", + Privilege: "GetWirelessGatewayTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", - }, - { - ConditionKeys: []string{ - "iam:PolicyARN", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a managed policy to the specified IAM role", - Privilege: "AttachRolePolicy", + AccessLevel: "Read", + Description: "Grants permission to get the given WirelessGateway task definition", + Privilege: "GetWirelessGatewayTaskDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", - }, - { - ConditionKeys: []string{ - "iam:PolicyARN", - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGatewayTaskDefinition*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a managed policy to the specified IAM user", - Privilege: "AttachUserPolicy", + AccessLevel: "Read", + Description: "Grants permission to list information of available Destinations based on the AWS account", + Privilege: "ListDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "iam:PolicyARN", - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to an IAM user to change their own password", - Privilege: "ChangePassword", + AccessLevel: "Read", + Description: "Grants permission to list information of available DeviceProfiles based on the AWS account", + Privilege: "ListDeviceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create access key and secret access key for the specified IAM user", - Privilege: "CreateAccessKey", + AccessLevel: "Read", + Description: "Grants permission to list information of devices by wireless device import task based on the AWS account", + Privilege: "ListDevicesForWirelessDeviceImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "ImportTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an alias for your AWS account", - Privilege: "CreateAccountAlias", + AccessLevel: "Read", + Description: "Grants permission to list information of available event configurations based on the AWS account", + Privilege: "ListEventConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -139859,266 +182133,167 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new group", - Privilege: "CreateGroup", + AccessLevel: "Read", + Description: "Grants permission to list information of available FuotaTasks based on the AWS account", + Privilege: "ListFuotaTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new instance profile", - Privilege: "CreateInstanceProfile", + AccessLevel: "Read", + Description: "Grants permission to list information of available MulticastGroups based on the AWS account", + Privilege: "ListMulticastGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a password for the specified IAM user", - Privilege: "CreateLoginProfile", + AccessLevel: "Read", + Description: "Grants permission to list information of available MulticastGroups by FuotaTask based on the AWS account", + Privilege: "ListMulticastGroupsByFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "FuotaTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IAM resource that describes an identity provider (IdP) that supports OpenID Connect (OIDC)", - Privilege: "CreateOpenIDConnectProvider", + AccessLevel: "Read", + Description: "Grants permission to list information of available NetworkAnalyzerConfigurations based on the AWS account", + Privilege: "ListNetworkAnalyzerConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create a new managed policy", - Privilege: "CreatePolicy", + AccessLevel: "Read", + Description: "Grants permission to list the available partner accounts", + Privilege: "ListPartnerAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create a new version of the specified managed policy", - Privilege: "CreatePolicyVersion", + AccessLevel: "Read", + Description: "Grants permission to list information of available position configurations based on the AWS account", + Privilege: "ListPositionConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new role", - Privilege: "CreateRole", + AccessLevel: "Read", + Description: "Grants permission to list the Queued Messages", + Privilege: "ListQueuedMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", - }, - { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IAM resource that describes an identity provider (IdP) that supports SAML 2.0", - Privilege: "CreateSAMLProvider", + AccessLevel: "Read", + Description: "Grants permission to list information of available ServiceProfiles based on the AWS account", + Privilege: "ListServiceProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an IAM role that allows an AWS service to perform actions on your behalf", - Privilege: "CreateServiceLinkedRole", + AccessLevel: "Read", + Description: "Grants permission to list all tags for a given resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "Destination", }, { - ConditionKeys: []string{ - "iam:AWSServiceName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceProfile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new service-specific credential for an IAM user", - Privilege: "CreateServiceSpecificCredential", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "FuotaTask", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new IAM user", - Privilege: "CreateUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "ImportTask", }, { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new virtual MFA device", - Privilege: "CreateVirtualMFADevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mfa*", + ResourceType: "NetworkAnalyzerConfiguration", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ServiceProfile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deactivate the specified MFA device and remove its association with the IAM user for which it was originally enabled", - Privilege: "DeactivateMFADevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "SidewalkAccount", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the access key pair that is associated with the specified IAM user", - Privilege: "DeleteAccessKey", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified AWS account alias", - Privilege: "DeleteAccountAlias", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the password policy for the AWS account", - Privilege: "DeleteAccountPasswordPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGatewayTaskDefinition", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing CloudFront public key", - Privilege: "DeleteCloudFrontPublicKey", + AccessLevel: "Read", + Description: "Grants permission to list wireless device import tasks information of based on the AWS account", + Privilege: "ListWirelessDeviceImportTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140128,236 +182303,217 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified IAM group", - Privilege: "DeleteGroup", + AccessLevel: "Read", + Description: "Grants permission to list information of available WirelessDevices based on the AWS account", + Privilege: "ListWirelessDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the specified inline policy from its group", - Privilege: "DeleteGroupPolicy", + AccessLevel: "Read", + Description: "Grants permission to list information of available WirelessGateway task definitions based on the AWS account", + Privilege: "ListWirelessGatewayTaskDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified instance profile", - Privilege: "DeleteInstanceProfile", + AccessLevel: "Read", + Description: "Grants permission to list information of available WirelessGateways based on the AWS account", + Privilege: "ListWirelessGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the password for the specified IAM user", - Privilege: "DeleteLoginProfile", + Description: "Grants permission to put position configuration for a given resource", + Privilege: "PutPositionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an OpenID Connect identity provider (IdP) resource object in IAM", - Privilege: "DeleteOpenIDConnectProvider", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the specified managed policy and remove it from any IAM entities (users, groups, or roles) to which it is attached", - Privilege: "DeletePolicy", + AccessLevel: "Write", + Description: "Grants permission to put resource log level", + Privilege: "PutResourceLogLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a version from the specified managed policy", - Privilege: "DeletePolicyVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "WirelessGateway", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified role", - Privilege: "DeleteRole", + Description: "Grants permission to reset all resource log levels", + Privilege: "ResetAllResourceLogLevels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove the permissions boundary from a role", - Privilege: "DeleteRolePermissionsBoundary", + AccessLevel: "Write", + Description: "Grants permission to reset resource log level", + Privilege: "ResetResourceLogLevel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "WirelessDevice", }, { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the specified inline policy from the specified role", - Privilege: "DeleteRolePolicy", + AccessLevel: "Write", + Description: "Grants permission to send data to the MulticastGroup", + Privilege: "SendDataToMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", - }, - { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a SAML provider resource in IAM", - Privilege: "DeleteSAMLProvider", + Description: "Grants permission to send the decrypted application data frame to the target device", + Privilege: "SendDataToWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", + ResourceType: "WirelessDevice*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified SSH public key", - Privilege: "DeleteSSHPublicKey", + Description: "Grants permission to associate the WirelessDevices with MulticastGroup", + Privilege: "StartBulkAssociateWirelessDeviceWithMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified server certificate", - Privilege: "DeleteServerCertificate", + Description: "Grants permission to bulk disassociate the WirelessDevices from MulticastGroup", + Privilege: "StartBulkDisassociateWirelessDeviceFromMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an IAM role that is linked to a specific AWS service, if the service is no longer using it", - Privilege: "DeleteServiceLinkedRole", + Description: "Grants permission to start the FuotaTask", + Privilege: "StartFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "FuotaTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified service-specific credential for an IAM user", - Privilege: "DeleteServiceSpecificCredential", + Description: "Grants permission to start the MulticastGroup session", + Privilege: "StartMulticastGroupSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "MulticastGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a signing certificate that is associated with the specified IAM user", - Privilege: "DeleteSigningCertificate", + Description: "Grants permission to start NetworkAnalyzer stream", + Privilege: "StartNetworkAnalyzerStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "NetworkAnalyzerConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified IAM user", - Privilege: "DeleteUser", + Description: "Grants permission to start the single wireless device import task", + Privilege: "StartSingleWirelessDeviceImportTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove the permissions boundary from the specified IAM user", - Privilege: "DeleteUserPermissionsBoundary", + AccessLevel: "Write", + Description: "Grants permission to start the wireless device import task", + Privilege: "StartWirelessDeviceImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "ImportTask*", }, { ConditionKeys: []string{ - "iam:PermissionsBoundary", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -140365,116 +182521,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the specified inline policy from an IAM user", - Privilege: "DeleteUserPolicy", + AccessLevel: "Tagging", + Description: "Grants permission to tag a given resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Destination", }, { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceProfile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a virtual MFA device", - Privilege: "DeleteVirtualMFADevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mfa", + ResourceType: "FuotaTask", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sms-mfa", + ResourceType: "ImportTask", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to detach a managed policy from the specified IAM group", - Privilege: "DetachGroupPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "MulticastGroup", }, { - ConditionKeys: []string{ - "iam:PolicyARN", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkAnalyzerConfiguration", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to detach a managed policy from the specified role", - Privilege: "DetachRolePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "ServiceProfile", }, { - ConditionKeys: []string{ - "iam:PolicyARN", - "iam:PermissionsBoundary", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to detach a managed policy from the specified IAM user", - Privilege: "DetachUserPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessDevice", }, { - ConditionKeys: []string{ - "iam:PolicyARN", - "iam:PermissionsBoundary", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable an MFA device and associate it with the specified IAM user", - Privilege: "EnableMFADevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessGatewayTaskDefinition", }, { ConditionKeys: []string{ - "iam:RegisterSecurityKey", - "iam:FIDO-FIPS-140-2-certification", - "iam:FIDO-FIPS-140-3-certification", - "iam:FIDO-certification", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -140482,98 +182591,102 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate a credential report for the AWS account", - Privilege: "GenerateCredentialReport", + AccessLevel: "Write", + Description: "Grants permission to simulate a provisioned device to send an uplink data with payload of 'Hello'", + Privilege: "TestWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate an access report for an AWS Organizations entity", - Privilege: "GenerateOrganizationsAccessReport", + AccessLevel: "Tagging", + Description: "Grants permission to remove the given tags from the resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribePolicy", - "organizations:ListChildren", - "organizations:ListParents", - "organizations:ListPoliciesForTarget", - "organizations:ListRoots", - "organizations:ListTargetsForPolicy", - }, - ResourceType: "access-report*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Destination", }, { - ConditionKeys: []string{ - "iam:OrganizationsPolicyId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DeviceProfile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FuotaTask", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ImportTask", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MulticastGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "NetworkAnalyzerConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceProfile", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to generate a service last accessed data report for an IAM resource", - Privilege: "GenerateServiceLastAccessedDetails", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "SidewalkAccount", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "WirelessDevice", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "WirelessGateway", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessGatewayTaskDefinition", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about when the specified access key was last used", - Privilege: "GetAccessKeyLastUsed", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about all IAM users, groups, roles, and policies in your AWS account, including their relationships to one another", - Privilege: "GetAccountAuthorizationDetails", + AccessLevel: "Write", + Description: "Grants permission to update a Destination resource", + Privilege: "UpdateDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Destination*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the email address that is associated with the account", - Privilege: "GetAccountEmailAddress", + AccessLevel: "Write", + Description: "Grants permission to update event configuration by resource types", + Privilege: "UpdateEventConfigurationByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140583,21 +182696,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the account name that is associated with the account", - Privilege: "GetAccountName", + AccessLevel: "Write", + Description: "Grants permission to update the FuotaTask", + Privilege: "UpdateFuotaTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FuotaTask*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the password policy for the AWS account", - Privilege: "GetAccountPasswordPolicy", + AccessLevel: "Write", + Description: "Grants permission to update log levels by resource types", + Privilege: "UpdateLogLevelsByResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140607,9 +182720,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about IAM entity usage and IAM quotas in the AWS account", - Privilege: "GetAccountSummary", + AccessLevel: "Write", + Description: "Grants permission to update metric configuration", + Privilege: "UpdateMetricConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140619,235 +182732,332 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified CloudFront public key", - Privilege: "GetCloudFrontPublicKey", + AccessLevel: "Write", + Description: "Grants permission to update the MulticastGroup", + Privilege: "UpdateMulticastGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of all of the context keys that are referenced in the specified policy", - Privilege: "GetContextKeysForCustomPolicy", + AccessLevel: "Write", + Description: "Grants permission to update the NetworkAnalyzerConfiguration", + Privilege: "UpdateNetworkAnalyzerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MulticastGroup*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of all context keys that are referenced in all IAM policies that are attached to the specified IAM identity (user, group, or role)", - Privilege: "GetContextKeysForPrincipalPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group", + ResourceType: "NetworkAnalyzerConfiguration*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role", + ResourceType: "WirelessDevice*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "WirelessGateway*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a credential report for the AWS account", - Privilege: "GetCredentialReport", + AccessLevel: "Write", + Description: "Grants permission to update a partner account", + Privilege: "UpdatePartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SidewalkAccount*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of IAM users in the specified IAM group", - Privilege: "GetGroup", + AccessLevel: "Write", + Description: "Grants permission to update position for a given resource", + Privilege: "UpdatePosition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "WirelessDevice", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an inline policy document that is embedded in the specified IAM group", - Privilege: "GetGroupPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified instance profile, including the instance profile's path, GUID, ARN, and role", - Privilege: "GetInstanceProfile", + AccessLevel: "Write", + Description: "Grants permission to update an event configuration for an identifier", + Privilege: "UpdateResourceEventConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", + ResourceType: "SidewalkAccount", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the user name and password creation date for the specified IAM user", - Privilege: "GetLoginProfile", + AccessLevel: "Write", + Description: "Grants permission to update position for a given resource", + Privilege: "UpdateResourcePosition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessDevice", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WirelessGateway", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about an MFA device for the specified user", - Privilege: "GetMFADevice", + AccessLevel: "Write", + Description: "Grants permission to update a WirelessDevice resource", + Privilege: "UpdateWirelessDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "WirelessDevice*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified OpenID Connect (OIDC) provider resource in IAM", - Privilege: "GetOpenIDConnectProvider", + AccessLevel: "Write", + Description: "Grants permission to update a wireless device import task", + Privilege: "UpdateWirelessDeviceImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "ImportTask*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an AWS Organizations access report", - Privilege: "GetOrganizationsAccessReport", + AccessLevel: "Write", + Description: "Grants permission to update a WirelessGateway resource", + Privilege: "UpdateWirelessGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WirelessGateway*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified managed policy, including the policy's default version and the total number of identities to which the policy is attached", - Privilege: "GetPolicy", + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessDevice/${WirelessDeviceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "WirelessDevice", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessGateway/${WirelessGatewayId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "WirelessGateway", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:DeviceProfile/${DeviceProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "DeviceProfile", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:ServiceProfile/${ServiceProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ServiceProfile", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:Destination/${DestinationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Destination", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:SidewalkAccount/${SidewalkAccountId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SidewalkAccount", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessGatewayTaskDefinition/${WirelessGatewayTaskDefinitionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "WirelessGatewayTaskDefinition", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:FuotaTask/${FuotaTaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "FuotaTask", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:MulticastGroup/${MulticastGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "MulticastGroup", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:NetworkAnalyzerConfiguration/${NetworkAnalyzerConfigurationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "NetworkAnalyzerConfiguration", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", + ConditionKeys: []string{}, + Resource: "thing", + }, + { + Arn: "arn:${Partition}:iot:${Region}:${Account}:cert/${Certificate}", + ConditionKeys: []string{}, + Resource: "cert", + }, + { + Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:ImportTask/${ImportTaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ImportTask", + }, + }, + ServiceName: "AWS IoT Wireless", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "iq", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept an incoming voice/video call", + Privilege: "AcceptCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "call*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a version of the specified managed policy, including the policy document", - Privilege: "GetPolicyVersion", + AccessLevel: "Write", + Description: "Grants permission to approve a payment request", + Privilege: "ApprovePaymentRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "paymentRequest*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified role, including the role's path, GUID, ARN, and the role's trust policy", - Privilege: "GetRole", + AccessLevel: "Write", + Description: "Grants permission to approve a proposal", + Privilege: "ApproveProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "proposal*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an inline policy document that is embedded with the specified IAM role", - Privilege: "GetRolePolicy", + AccessLevel: "Write", + Description: "Grants permission to archive a conversation", + Privilege: "ArchiveConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the SAML provider metadocument that was uploaded when the IAM SAML provider resource was created or updated", - Privilege: "GetSAMLProvider", + AccessLevel: "Write", + Description: "Grants permission to complete a proposal", + Privilege: "CompleteProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", + ResourceType: "proposal*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified SSH public key, including metadata about the key", - Privilege: "GetSSHPublicKey", + AccessLevel: "Write", + Description: "Grants permission to respond to a request or send a direct message to initiate a conversation", + Privilege: "CreateConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified server certificate stored in IAM", - Privilege: "GetServerCertificate", + AccessLevel: "Write", + Description: "Grants permission to create an expert profile", + Privilege: "CreateExpert", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the service last accessed data report", - Privilege: "GetServiceLastAccessedDetails", + AccessLevel: "Write", + Description: "Grants permission to create a listing", + Privilege: "CreateListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140857,9 +183067,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the entities from the service last accessed data report", - Privilege: "GetServiceLastAccessedDetailsWithEntities", + AccessLevel: "Write", + Description: "Grants permission to create a milestone proposal", + Privilege: "CreateMilestoneProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140869,57 +183079,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an IAM service-linked role deletion status", - Privilege: "GetServiceLinkedRoleDeletionStatus", + AccessLevel: "Write", + Description: "Grants permission to create a payment request", + Privilege: "CreatePaymentRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified IAM user, including the user's creation date, path, unique ID, and ARN", - Privilege: "GetUser", + AccessLevel: "Write", + Description: "Grants permission to submit new requests", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an inline policy document that is embedded in the specified IAM user", - Privilege: "GetUserPolicy", + AccessLevel: "Write", + Description: "Grants permission to submit new requests", + Privilege: "CreateRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the access key IDs that are associated with the specified IAM user", - Privilege: "ListAccessKeys", + AccessLevel: "Write", + Description: "Grants permission to create a scheduled proposal", + Privilege: "CreateScheduledProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the account alias that is associated with the AWS account", - Privilege: "ListAccountAliases", + AccessLevel: "Write", + Description: "Grants permission to create a seller profile", + Privilege: "CreateSeller", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -140929,271 +183139,285 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all managed policies that are attached to the specified IAM group", - Privilege: "ListAttachedGroupPolicies", + AccessLevel: "Write", + Description: "Grants permission to create an upfront proposal", + Privilege: "CreateUpfrontProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all managed policies that are attached to the specified IAM role", - Privilege: "ListAttachedRolePolicies", + AccessLevel: "Write", + Description: "Grants permission to decline an incoming voice/video call", + Privilege: "DeclineCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "call*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all managed policies that are attached to the specified IAM user", - Privilege: "ListAttachedUserPolicies", + AccessLevel: "Write", + Description: "Grants permission to delete an existing attachment", + Privilege: "DeleteAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all current CloudFront public keys for the account", - Privilege: "ListCloudFrontPublicKeys", + AccessLevel: "Write", + Description: "Grants permission to disable individual public profile page", + Privilege: "DisableIndividualPublicProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "expert*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all IAM identities to which the specified managed policy is attached", - Privilege: "ListEntitiesForPolicy", + AccessLevel: "Read", + Description: "Grants permission to download existing attachment", + Privilege: "DownloadAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM group", - Privilege: "ListGroupPolicies", + AccessLevel: "Write", + Description: "Grants permission to enable individual public profile page", + Privilege: "EnableIndividualPublicProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "expert*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the IAM groups that have the specified path prefix", - Privilege: "ListGroups", + AccessLevel: "Write", + Description: "Grants permission to end a voice/video call", + Privilege: "EndCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "call*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the IAM groups that the specified IAM user belongs to", - Privilege: "ListGroupsForUser", + AccessLevel: "Read", + Description: "Grants permission to read buyer information", + Privilege: "GetBuyer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "buyer*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified instance profile", - Privilege: "ListInstanceProfileTags", + AccessLevel: "Read", + Description: "Grants permission to read details of a voice/video call", + Privilege: "GetCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", + ResourceType: "call*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the instance profiles that have the specified path prefix", - Privilege: "ListInstanceProfiles", + AccessLevel: "Read", + Description: "Grants permission to read the chat environment details about a conversation", + Privilege: "GetChatInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the instance profiles that have the specified associated IAM role", - Privilege: "ListInstanceProfilesForRole", + AccessLevel: "Read", + Description: "Grants permission to read chat messages in a conversation", + Privilege: "GetChatMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified virtual mfa device", - Privilege: "ListMFADeviceTags", + AccessLevel: "Read", + Description: "Grants permission to request a websocket token for the conversation notifications", + Privilege: "GetChatToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mfa*", + ResourceType: "token*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the MFA devices for an IAM user", - Privilege: "ListMFADevices", + AccessLevel: "Read", + Description: "Grants permission to read chat messages in a company conversation", + Privilege: "GetCompanyChatMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified OpenID Connect provider", - Privilege: "ListOpenIDConnectProviderTags", + AccessLevel: "Read", + Description: "Grants permission to read a company profile", + Privilege: "GetCompanyProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "company*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the IAM OpenID Connect (OIDC) provider resource objects that are defined in the AWS account", - Privilege: "ListOpenIDConnectProviders", + AccessLevel: "Read", + Description: "Grants permission to read details of a conversation", + Privilege: "GetConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all managed policies", - Privilege: "ListPolicies", + AccessLevel: "Read", + Description: "Grants permission to read expert information", + Privilege: "GetExpert", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "expert*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the policies that grant an entity access to a specific service", - Privilege: "ListPoliciesGrantingServiceAccess", + AccessLevel: "Read", + Description: "Grants permission to read a listing", + Privilege: "GetListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "listing*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read a seller profile information", + Privilege: "GetMarketplaceSeller", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "seller*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read a payment request", + Privilege: "GetPaymentRequest", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "paymentRequest*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified managed policy", - Privilege: "ListPolicyTags", + AccessLevel: "Read", + Description: "Grants permission to read a proposal", + Privilege: "GetProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "proposal*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the versions of the specified managed policy, including the version that is currently set as the policy's default version", - Privilege: "ListPolicyVersions", + AccessLevel: "Read", + Description: "Grants permission to get a created request", + Privilege: "GetRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "request*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM role", - Privilege: "ListRolePolicies", + AccessLevel: "Read", + Description: "Grants permission to read a review for an expert", + Privilege: "GetReview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "seller*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified IAM role", - Privilege: "ListRoleTags", + AccessLevel: "Write", + Description: "Grants permission to hide a request", + Privilege: "HideRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "request*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the IAM roles that have the specified path prefix", - Privilege: "ListRoles", + AccessLevel: "Write", + Description: "Grants permission to start a voice/video call", + Privilege: "InitiateCall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -141203,516 +183427,577 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified SAML provider", - Privilege: "ListSAMLProviderTags", + AccessLevel: "Write", + Description: "Grants permission to link an AWS certification to individual profile", + Privilege: "LinkAwsCertification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", + ResourceType: "expert*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the SAML provider resources in IAM", - Privilege: "ListSAMLProviders", + Description: "Grants permission to list existing attachments", + Privilege: "ListAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the SSH public keys that are associated with the specified IAM user", - Privilege: "ListSSHPublicKeys", + AccessLevel: "Read", + Description: "Grants permission to list existing conversations", + Privilege: "ListConversations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the status of all active STS regional endpoints", - Privilege: "ListSTSRegionalEndpointsStatus", + AccessLevel: "Read", + Description: "Grants permission to list access logs of expert activity", + Privilege: "ListExpertAccessLogs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified server certificate", - Privilege: "ListServerCertificateTags", + AccessLevel: "Read", + Description: "Grants permission to list listings", + Privilege: "ListListings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", + ResourceType: "listing*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the server certificates that have the specified path prefix", - Privilege: "ListServerCertificates", + AccessLevel: "Read", + Description: "Grants permission to list payment requests", + Privilege: "ListPaymentRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "paymentRequest", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "paymentSchedule", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the service-specific credentials that are associated with the specified IAM user", - Privilege: "ListServiceSpecificCredentials", + AccessLevel: "Read", + Description: "Grants permission to list proposals", + Privilege: "ListProposals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "proposal*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the signing certificates that are associated with the specified IAM user", - Privilege: "ListSigningCertificates", + AccessLevel: "Read", + Description: "Grants permission to list requests that are created", + Privilege: "ListRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "request*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the names of the inline policies that are embedded in the specified IAM user", - Privilege: "ListUserPolicies", + AccessLevel: "Read", + Description: "Grants permission to list reviews for an expert", + Privilege: "ListReviews", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "seller*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tags that are attached to the specified IAM user", - Privilege: "ListUserTags", + AccessLevel: "Write", + Description: "Grants permission to mark a message as read in a conversation", + Privilege: "MarkChatMessageRead", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the IAM users that have the specified path prefix", - Privilege: "ListUsers", + AccessLevel: "Write", + Description: "Grants permission to reject a payment request", + Privilege: "RejectPaymentRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "paymentRequest*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list virtual MFA devices by assignment status", - Privilege: "ListVirtualMFADevices", + AccessLevel: "Write", + Description: "Grants permission to reject a proposal", + Privilege: "RejectProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proposal*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to pass a role to a service", - Privilege: "PassRole", + Description: "Grants permission to send a message in a conversation as a company", + Privilege: "SendCompanyChatMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", - }, - { - ConditionKeys: []string{ - "iam:AssociatedResourceArn", - "iam:PassedToService", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM group", - Privilege: "PutGroupPolicy", + AccessLevel: "Write", + Description: "Grants permission to send a message in a conversation as an individual", + Privilege: "SendIndividualChatMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set a managed policy as a permissions boundary for a role", - Privilege: "PutRolePermissionsBoundary", + AccessLevel: "Write", + Description: "Grants permission to unarchive a conversation", + Privilege: "UnarchiveConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", - }, - { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "conversation*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM role", - Privilege: "PutRolePolicy", + AccessLevel: "Write", + Description: "Grants permission to unlink an AWS certification from individual profile", + Privilege: "UnlinkAwsCertification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", - }, - { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "expert*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set a managed policy as a permissions boundary for an IAM user", - Privilege: "PutUserPermissionsBoundary", + AccessLevel: "Write", + Description: "Grants permission to update a company profile", + Privilege: "UpdateCompanyProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "company*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update an inline policy document that is embedded in the specified IAM user", - Privilege: "PutUserPolicy", + AccessLevel: "Write", + Description: "Grants permission to add more participants into a conversation", + Privilege: "UpdateConversationMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "iam:PermissionsBoundary", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "conversation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the client ID (audience) from the list of client IDs in the specified IAM OpenID Connect (OIDC) provider resource", - Privilege: "RemoveClientIDFromOpenIDConnectProvider", + Description: "Grants permission to update an expert information", + Privilege: "UpdateExpert", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "expert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove an IAM role from the specified EC2 instance profile", - Privilege: "RemoveRoleFromInstanceProfile", + Description: "Grants permission to update a listing", + Privilege: "UpdateListing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", + ResourceType: "listing*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove an IAM user from the specified group", - Privilege: "RemoveUserFromGroup", + Description: "Grants permission to update a request", + Privilege: "UpdateRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "request*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset the password for an existing service-specific credential for an IAM user", - Privilege: "ResetServiceSpecificCredential", + Description: "Grants permission to upload an attachment", + Privilege: "UploadAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to synchronize the specified MFA device with its IAM entity (user or role)", - Privilege: "ResyncMFADevice", + Description: "Grants permission to withdraw a payment request", + Privilege: "WithdrawPaymentRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "paymentRequest*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the version of the specified policy as the policy's default version", - Privilege: "SetDefaultPolicyVersion", + AccessLevel: "Write", + Description: "Grants permission to withdraw a proposal", + Privilege: "WithdrawProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "proposal*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate or deactivate an STS regional endpoint", - Privilege: "SetSTSRegionalEndpointStatus", + Description: "Grants permission to write a review for an expert", + Privilege: "WriteReview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "seller*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:iq:${Region}::conversation/${ConversationId}", + ConditionKeys: []string{}, + Resource: "conversation", + }, + { + Arn: "arn:${Partition}:iq:${Region}::buyer/${BuyerId}", + ConditionKeys: []string{}, + Resource: "buyer", + }, + { + Arn: "arn:${Partition}:iq:${Region}::expert/${ExpertId}", + ConditionKeys: []string{}, + Resource: "expert", + }, + { + Arn: "arn:${Partition}:iq:${Region}::call/${CallId}", + ConditionKeys: []string{}, + Resource: "call", + }, + { + Arn: "arn:${Partition}:iq:${Region}::token/${TokenId}", + ConditionKeys: []string{}, + Resource: "token", + }, + { + Arn: "arn:${Partition}:iq:${Region}::proposal/${ConversationId}/${ProposalId}", + ConditionKeys: []string{}, + Resource: "proposal", + }, + { + Arn: "arn:${Partition}:iq:${Region}::paymentRequest/${ConversationId}/${ProposalId}/${PaymentRequestId}", + ConditionKeys: []string{}, + Resource: "paymentRequest", + }, + { + Arn: "arn:${Partition}:iq:${Region}::paymentSchedule/${ConversationId}/${ProposalId}/${VersionId}", + ConditionKeys: []string{}, + Resource: "paymentSchedule", + }, + { + Arn: "arn:${Partition}:iq:${Region}::seller/${SellerAwsAccountId}", + ConditionKeys: []string{}, + Resource: "seller", + }, + { + Arn: "arn:${Partition}:iq:${Region}::company/${CompanyId}", + ConditionKeys: []string{}, + Resource: "company", + }, + { + Arn: "arn:${Partition}:iq:${Region}::request/${RequestId}", + ConditionKeys: []string{}, + Resource: "request", + }, + { + Arn: "arn:${Partition}:iq:${Region}::listing/${ListingId}", + ConditionKeys: []string{}, + Resource: "listing", + }, + { + Arn: "arn:${Partition}:iq:${Region}::attachment/${AttachmentId}", + ConditionKeys: []string{}, + Resource: "attachment", + }, + { + Arn: "arn:${Partition}:iq-permission:${Region}::permission/${PermissionRequestId}", + ConditionKeys: []string{}, + Resource: "permission", + }, + }, + ServiceName: "AWS IQ", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "iq-permission", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to set the STS global endpoint token version", - Privilege: "SetSecurityTokenServicePreferences", + Description: "Grants permission to approve a permission request", + Privilege: "ApproveAccessGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to simulate whether an identity-based policy or resource-based policy provides permissions for specific API operations and resources", - Privilege: "SimulateCustomPolicy", + AccessLevel: "Write", + Description: "Grants permission to approve a permission request", + Privilege: "ApprovePermissionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to simulate whether an identity-based policy that is attached to a specified IAM entity (user or role) provides permissions for specific API operations and resources", - Privilege: "SimulatePrincipalPolicy", + AccessLevel: "Write", + Description: "Grants permission to obtain a set of temporary security credentials for experts which they can use to access buyers' AWS resources", + Privilege: "AssumePermissionRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group", + ResourceType: "permission*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a permission request", + Privilege: "CreatePermissionRequest", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role", + ResourceType: "permission*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a permission request", + Privilege: "GetPermissionRequest", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "permission*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an instance profile", - Privilege: "TagInstanceProfile", + AccessLevel: "Read", + Description: "Grants permission to list permission requests", + Privilege: "ListPermissionRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a virtual mfa device", - Privilege: "TagMFADevice", + AccessLevel: "Write", + Description: "Grants permission to reject a permission request", + Privilege: "RejectPermissionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mfa*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an OpenID Connect provider", - Privilege: "TagOpenIDConnectProvider", + AccessLevel: "Write", + Description: "Grants permission to revoke a permission request which was previously approved", + Privilege: "RevokePermissionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a managed policy", - Privilege: "TagPolicy", + AccessLevel: "Write", + Description: "Grants permission to withdraw a permission request that has not been approved or declined", + Privilege: "WithdrawPermissionRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "permission*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an IAM role", - Privilege: "TagRole", + Arn: "arn:${Partition}:iq-permission:${Region}::permission/${PermissionRequestId}", + ConditionKeys: []string{}, + Resource: "permission", + }, + }, + ServiceName: "AWS IQ Permissions", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags associated with the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "ivs", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to get multiple channels simultaneously by channel ARN", + Privilege: "BatchGetChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "Channel*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get multiple stream keys simultaneously by stream key ARN", + Privilege: "BatchGetStreamKey", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Stream-Key*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a SAML Provider", - Privilege: "TagSAMLProvider", + AccessLevel: "Write", + Description: "Grants permission to perform StartViewerSessionRevocation on multiple channel ARN and viewer ID pairs simultaneously", + Privilege: "BatchStartViewerSessionRevocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Channel*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a server certificate", - Privilege: "TagServerCertificate", + AccessLevel: "Write", + Description: "Grants permission to create a new channel and an associated stream key", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Stream-Key*", }, { ConditionKeys: []string{ @@ -141725,14 +184010,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an IAM user", - Privilege: "TagUser", + AccessLevel: "Write", + Description: "Grants permission to create a new encoder configuration", + Privilege: "CreateEncoderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Encoder-Configuration*", }, { ConditionKeys: []string{ @@ -141745,18 +184030,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the instance profile", - Privilege: "UntagInstanceProfile", + AccessLevel: "Write", + Description: "Grants permission to create a new ingest configuration", + Privilege: "CreateIngestConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance-profile*", + ResourceType: "Ingest-Configuration*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141764,18 +184050,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the virtual mfa device", - Privilege: "UntagMFADevice", + AccessLevel: "Write", + Description: "Grants permission to create a participant token", + Privilege: "CreateParticipantToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mfa*", + ResourceType: "Stage*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141783,18 +184070,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the OpenID Connect provider", - Privilege: "UntagOpenIDConnectProvider", + AccessLevel: "Write", + Description: "Grants permission to create a playback restriction policy", + Privilege: "CreatePlaybackRestrictionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "Playback-Restriction-Policy*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141802,18 +184090,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the managed policy", - Privilege: "UntagPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a a new recording configuration", + Privilege: "CreateRecordingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "Recording-Configuration*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141821,18 +184110,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the role", - Privilege: "UntagRole", + AccessLevel: "Write", + Description: "Grants permission to create a stage", + Privilege: "CreateStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "Stage*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141840,18 +184130,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the SAML Provider", - Privilege: "UntagSAMLProvider", + AccessLevel: "Write", + Description: "Grants permission to create a new storage configuration", + Privilege: "CreateStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", + ResourceType: "Storage-Configuration*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141859,18 +184150,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the server certificate", - Privilege: "UntagServerCertificate", + AccessLevel: "Write", + Description: "Grants permission to create a stream key", + Privilege: "CreateStreamKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", + ResourceType: "Stream-Key*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -141878,1731 +184170,1564 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the user", - Privilege: "UntagUser", + AccessLevel: "Write", + Description: "Grants permission to delete a channel and channel's stream keys", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Channel*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Stream-Key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of the specified access key as Active or Inactive", - Privilege: "UpdateAccessKey", + Description: "Grants permission to delete an encoder configuration for the specified ARN", + Privilege: "DeleteEncoderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Encoder-Configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the email address that is associated with the account", - Privilege: "UpdateAccountEmailAddress", + Description: "Grants permission to delete an ingest configuration for the specified ARN", + Privilege: "DeleteIngestConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Ingest-Configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the account name that is associated with the account", - Privilege: "UpdateAccountName", + Description: "Grants permission to delete the playback key pair for a specified ARN", + Privilege: "DeletePlaybackKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Playback-Key-Pair*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the password policy settings for the AWS account", - Privilege: "UpdateAccountPasswordPolicy", + Description: "Grants permission to delete the playback restriction policy for a specified ARN", + Privilege: "DeletePlaybackRestrictionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Playback-Restriction-Policy*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the policy that grants an IAM entity permission to assume a role", - Privilege: "UpdateAssumeRolePolicy", + AccessLevel: "Write", + Description: "Grants permission to delete the public key for the specified ARN", + Privilege: "DeletePublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "Public-Key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing CloudFront public key", - Privilege: "UpdateCloudFrontPublicKey", + Description: "Grants permission to delete a recording configuration for the specified ARN", + Privilege: "DeleteRecordingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Recording-Configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the name or path of the specified IAM group", - Privilege: "UpdateGroup", + Description: "Grants permission to delete the stage for a specified ARN", + Privilege: "DeleteStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "Stage*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the password for the specified IAM user", - Privilege: "UpdateLoginProfile", + Description: "Grants permission to delete an storage configuration for the specified ARN", + Privilege: "DeleteStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Storage-Configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the entire list of server certificate thumbprints that are associated with an OpenID Connect (OIDC) provider resource", - Privilege: "UpdateOpenIDConnectProviderThumbprint", + Description: "Grants permission to delete the stream key for a specified ARN", + Privilege: "DeleteStreamKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "oidc-provider*", + ResourceType: "Stream-Key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the description or maximum session duration setting of a role", - Privilege: "UpdateRole", + Description: "Grants permission to disconnect a participant from for the specified stage ARN", + Privilege: "DisconnectParticipant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "Stage*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update only the description of a role", - Privilege: "UpdateRoleDescription", + AccessLevel: "Read", + Description: "Grants permission to get the channel configuration for a specified channel ARN", + Privilege: "GetChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "role*", + ResourceType: "Channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the metadata document for an existing SAML provider resource", - Privilege: "UpdateSAMLProvider", + AccessLevel: "Read", + Description: "Grants permission to get the composition for the specified ARN", + Privilege: "GetComposition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "saml-provider*", + ResourceType: "Composition*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the status of an IAM user's SSH public key to active or inactive", - Privilege: "UpdateSSHPublicKey", + AccessLevel: "Read", + Description: "Grants permission to get the encoder configuration for the specified ARN", + Privilege: "GetEncoderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Encoder-Configuration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the name or the path of the specified server certificate stored in IAM", - Privilege: "UpdateServerCertificate", + AccessLevel: "Read", + Description: "Grants permission to get the ingest configuration for the specified ARN", + Privilege: "GetIngestConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", + ResourceType: "Ingest-Configuration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the status of a service-specific credential to active or inactive for an IAM user", - Privilege: "UpdateServiceSpecificCredential", + AccessLevel: "Read", + Description: "Grants permission to get participant information for a specified stage ARN, session, and participant", + Privilege: "GetParticipant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Stage*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the status of the specified user signing certificate to active or disabled", - Privilege: "UpdateSigningCertificate", + AccessLevel: "Read", + Description: "Grants permission to get the playback keypair information for a specified ARN", + Privilege: "GetPlaybackKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Playback-Key-Pair*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the name or the path of the specified IAM user", - Privilege: "UpdateUser", + AccessLevel: "Read", + Description: "Grants permission to get the playback restriction policy for a specified ARN", + Privilege: "GetPlaybackRestrictionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Playback-Restriction-Policy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload a CloudFront public key", - Privilege: "UploadCloudFrontPublicKey", + AccessLevel: "Read", + Description: "Grants permission to get the public key for the specified ARN", + Privilege: "GetPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Public-Key*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload an SSH public key and associate it with the specified IAM user", - Privilege: "UploadSSHPublicKey", + AccessLevel: "Read", + Description: "Grants permission to get the recording configuration for the specified ARN", + Privilege: "GetRecordingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Recording-Configuration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload a server certificate entity for the AWS account", - Privilege: "UploadServerCertificate", + AccessLevel: "Read", + Description: "Grants permission to get stage information for a specified ARN", + Privilege: "GetStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "server-certificate*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Stage*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to upload an X.509 signing certificate and associate it with the specified IAM user", - Privilege: "UploadSigningCertificate", + AccessLevel: "Read", + Description: "Grants permission to get stage session information for a specified stage ARN and session", + Privilege: "GetStageSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "Stage*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iam::${Account}:access-report/${EntityPath}", - ConditionKeys: []string{}, - Resource: "access-report", - }, - { - Arn: "arn:${Partition}:iam::${Account}:assumed-role/${RoleName}/${RoleSessionName}", - ConditionKeys: []string{}, - Resource: "assumed-role", - }, - { - Arn: "arn:${Partition}:iam::${Account}:federated-user/${UserName}", - ConditionKeys: []string{}, - Resource: "federated-user", - }, - { - Arn: "arn:${Partition}:iam::${Account}:group/${GroupNameWithPath}", - ConditionKeys: []string{}, - Resource: "group", - }, - { - Arn: "arn:${Partition}:iam::${Account}:instance-profile/${InstanceProfileNameWithPath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "instance-profile", - }, - { - Arn: "arn:${Partition}:iam::${Account}:mfa/${MfaTokenIdWithPath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "mfa", - }, - { - Arn: "arn:${Partition}:iam::${Account}:oidc-provider/${OidcProviderName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "oidc-provider", - }, - { - Arn: "arn:${Partition}:iam::${Account}:policy/${PolicyNameWithPath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "policy", - }, - { - Arn: "arn:${Partition}:iam::${Account}:role/${RoleNameWithPath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "iam:ResourceTag/${TagKey}", - }, - Resource: "role", - }, - { - Arn: "arn:${Partition}:iam::${Account}:saml-provider/${SamlProviderName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "saml-provider", - }, - { - Arn: "arn:${Partition}:iam::${Account}:server-certificate/${CertificateNameWithPath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "server-certificate", - }, - { - Arn: "arn:${Partition}:iam::${Account}:sms-mfa/${MfaTokenIdWithPath}", - ConditionKeys: []string{}, - Resource: "sms-mfa", - }, - { - Arn: "arn:${Partition}:iam::${Account}:user/${UserNameWithPath}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "iam:ResourceTag/${TagKey}", - }, - Resource: "user", - }, - }, - ServiceName: "AWS Identity and Access Management (IAM)", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "identity-sync", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Grants permission to configure vended log delivery for a Sync Profile", - Privilege: "AllowVendedLogDeliveryForResource", + AccessLevel: "Read", + Description: "Grants permission to get the storage configuration for the specified ARN", + Privilege: "GetStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Storage-Configuration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a sync filter on the sync profile", - Privilege: "CreateSyncFilter", + AccessLevel: "Read", + Description: "Grants permission to get information about the active (live) stream on a specified channel", + Privilege: "GetStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a sync profile for the identity source", - Privilege: "CreateSyncProfile", + AccessLevel: "Read", + Description: "Grants permission to get stream-key information for a specified ARN", + Privilege: "GetStreamKey", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:AuthorizeApplication", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Stream-Key*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a sync target for the identity source", - Privilege: "CreateSyncTarget", + AccessLevel: "Read", + Description: "Grants permission to get information about the stream session on a specified channel", + Privilege: "GetStreamSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a sync filter from the sync profile", - Privilege: "DeleteSyncFilter", + Description: "Grants permission to import the public key", + Privilege: "ImportPlaybackKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Playback-Key-Pair*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a sync profile from the source", - Privilege: "DeleteSyncProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:UnauthorizeApplication", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - ResourceType: "SyncProfileResource*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a sync target from the source", - Privilege: "DeleteSyncTarget", + Description: "Grants permission to import a public key", + Privilege: "ImportPublicKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Public-Key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "SyncTargetResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a sync profile by using a sync profile name", - Privilege: "GetSyncProfile", + AccessLevel: "List", + Description: "Grants permission to get summary information about channels", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a sync target from the sync profile", - Privilege: "GetSyncTarget", + AccessLevel: "List", + Description: "Grants permission to get summary information about compositions", + Privilege: "ListCompositions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Encoder-Configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncTargetResource*", + ResourceType: "Stage", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the sync filters from the sync profile", - Privilege: "ListSyncFilters", + Description: "Grants permission to get summary information about encoder configurations", + Privilege: "ListEncoderConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a sync process or to resume a sync process that was previously paused", - Privilege: "StartSync", + AccessLevel: "List", + Description: "Grants permission to get summary information about ingest configurations", + Privilege: "ListIngestConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop any planned sync process in the sync schedule from starting", - Privilege: "StopSync", + AccessLevel: "List", + Description: "Grants permission to list participant events for a specified stage ARN, session, and participant", + Privilege: "ListParticipantEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", + ResourceType: "Stage*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a sync target on the sync profile", - Privilege: "UpdateSyncTarget", + AccessLevel: "List", + Description: "Grants permission to list participants for a specified stage ARN and session", + Privilege: "ListParticipants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SyncProfileResource*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SyncTargetResource*", + ResourceType: "Stage*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:identity-sync:${Region}:${Account}:profile/${SyncProfileName}", - ConditionKeys: []string{}, - Resource: "SyncProfileResource", - }, - { - Arn: "arn:${Partition}:identity-sync:${Region}:${Account}:target/${SyncProfileName}/${SyncTargetName}", - ConditionKeys: []string{}, - Resource: "SyncTargetResource", - }, - }, - ServiceName: "AWS Identity Sync", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "identitystore:UserId", - Description: "Filters access by IAM Identity Center User ID", - Type: "String", - }, - }, - Prefix: "identitystore", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a group in the specified IdentityStore", - Privilege: "CreateGroup", + AccessLevel: "List", + Description: "Grants permission to get summary information about playback key pairs", + Privilege: "ListPlaybackKeyPairs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Playback-Key-Pair*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a member to a group in the specified IdentityStore", - Privilege: "CreateGroupMembership", + AccessLevel: "List", + Description: "Grants permission to get summary information about playback restriction policies", + Privilege: "ListPlaybackRestrictionPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Identitystore*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a user in the specified IdentityStore", - Privilege: "CreateUser", + AccessLevel: "List", + Description: "Grants permission to get summary information about public keys", + Privilege: "ListPublicKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a group in the specified IdentityStore", - Privilege: "DeleteGroup", + AccessLevel: "List", + Description: "Grants permission to get summary information about recording configurations", + Privilege: "ListRecordingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Recording-Configuration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a member that is part of a group in the specified IdentityStore", - Privilege: "DeleteGroupMembership", + AccessLevel: "List", + Description: "Grants permission to list stage sessions for a specified stage ARN", + Privilege: "ListStageSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "GroupMembership*", + ResourceType: "Stage*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get summary information about stages", + Privilege: "ListStages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Stage*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get summary information about storage configurations", + Privilege: "ListStorageConfigurations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a user in the specified IdentityStore", - Privilege: "DeleteUser", + AccessLevel: "List", + Description: "Grants permission to get summary information about stream keys", + Privilege: "ListStreamKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Channel*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Stream-Key*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a group in the specified IdentityStore", - Privilege: "DescribeGroup", + AccessLevel: "List", + Description: "Grants permission to get summary information about streams sessions on a specified channel", + Privilege: "ListStreamSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Channel*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get summary information about live streams", + Privilege: "ListStreams", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a member that is part of a group in the specified IdentityStore", - Privilege: "DescribeGroupMembership", + Description: "Grants permission to get information about the tags for a specified ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "GroupMembership*", + ResourceType: "Composition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Encoder-Configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Ingest-Configuration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about user in the specified IdentityStore", - Privilege: "DescribeUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Playback-Key-Pair", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Playback-Restriction-Policy", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve ID information about group in the specified IdentityStore", - Privilege: "GetGroupId", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Public-Key", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Recording-Configuration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve ID information of a member which is part of a group in the specified IdentityStore", - Privilege: "GetGroupMembershipId", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Stage", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "GroupMembership*", + ResourceType: "Storage-Configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Stream-Key", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieves ID information about user in the specified IdentityStore", - Privilege: "GetUserId", + AccessLevel: "Write", + Description: "Grants permission to insert metadata into an RTMP stream for a specified channel", + Privilege: "PutMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check if a member is a part of groups in the specified IdentityStore", - Privilege: "IsMemberInGroups", + AccessLevel: "Write", + Description: "Grants permission to start a new composition", + Privilege: "StartComposition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllGroupMemberships*", + ResourceType: "Encoder-Configuration*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Stage*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Storage-Configuration", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all members that are part of a group in the specified IdentityStore", - Privilege: "ListGroupMemberships", + AccessLevel: "Write", + Description: "Grants permission to start the process of revoking the viewer session associated with a specified channel ARN and viewer ID", + Privilege: "StartViewerSessionRevocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllGroupMemberships*", + ResourceType: "Channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop the composition for the specified ARN", + Privilege: "StopComposition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Composition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disconnect a streamer on a specified channel", + Privilege: "StopStream", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list groups of the target member in the specified IdentityStore", - Privilege: "ListGroupMembershipsForMember", + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for a resource with a specified ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllGroupMemberships*", + ResourceType: "Channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Composition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Encoder-Configuration", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for groups within the specified IdentityStore", - Privilege: "ListGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllGroups*", + ResourceType: "Ingest-Configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Playback-Key-Pair", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for users in the specified IdentityStore", - Privilege: "ListUsers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllUsers*", + ResourceType: "Playback-Restriction-Policy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Public-Key", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update information about a group in the specified IdentityStore", - Privilege: "UpdateGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Group*", + ResourceType: "Recording-Configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Stage", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update user information in the specified IdentityStore", - Privilege: "UpdateUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Identitystore*", + ResourceType: "Storage-Configuration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "User*", + ResourceType: "Stream-Key", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:identitystore::${Account}:identitystore/${IdentityStoreId}", - ConditionKeys: []string{}, - Resource: "Identitystore", - }, - { - Arn: "arn:${Partition}:identitystore:::user/${UserId}", - ConditionKeys: []string{}, - Resource: "User", - }, - { - Arn: "arn:${Partition}:identitystore:::group/${GroupId}", - ConditionKeys: []string{}, - Resource: "Group", - }, - { - Arn: "arn:${Partition}:identitystore:::membership/${MembershipId}", - ConditionKeys: []string{}, - Resource: "GroupMembership", - }, - { - Arn: "arn:${Partition}:identitystore:::user/*", - ConditionKeys: []string{}, - Resource: "AllUsers", - }, - { - Arn: "arn:${Partition}:identitystore:::group/*", - ConditionKeys: []string{}, - Resource: "AllGroups", - }, - { - Arn: "arn:${Partition}:identitystore:::membership/*", - ConditionKeys: []string{}, - Resource: "AllGroupMemberships", - }, - }, - ServiceName: "AWS Identity Store", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "identitystore-auth", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to delete a batch of specified sessions", - Privilege: "BatchDeleteSession", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return session attributes for a batch of specified sessions", - Privilege: "BatchGetSession", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags for a resource with a specified ARN", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Channel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of active sessions for the specified user", - Privilege: "ListSessions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Composition", }, - }, - }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Identity Store Auth", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "imagebuilder:CreatedResourceTag/", - Description: "Filters access by the tag key-value pairs attached to the resource created by Image Builder", - Type: "String", - }, - { - Condition: "imagebuilder:CreatedResourceTagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "imagebuilder:Ec2MetadataHttpTokens", - Description: "Filters access by the EC2 Instance Metadata HTTP Token Requirement specified in the request", - Type: "String", - }, - { - Condition: "imagebuilder:LifecyclePolicyResourceType", - Description: "Filters access by the Lifecycle Policy Resource Type specified in the request", - Type: "String", - }, - { - Condition: "imagebuilder:StatusTopicArn", - Description: "Filters access by the SNS Topic Arn in the request to which terminal state notifications will be published", - Type: "ARN", - }, - }, - Prefix: "imagebuilder", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to cancel an image creation", - Privilege: "CancelImageCreation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "Encoder-Configuration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel a lifecycle execution", - Privilege: "CancelLifecycleExecution", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lifecycleExecution*", + ResourceType: "Ingest-Configuration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new component", - Privilege: "CreateComponent", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "kms:Encrypt", - "kms:GenerateDataKey", - "kms:GenerateDataKeyWithoutPlaintext", - }, - ResourceType: "component*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Playback-Key-Pair", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Container Recipe", - Privilege: "CreateContainerRecipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ecr:DescribeImages", - "ecr:DescribeRepositories", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetComponent", - "imagebuilder:GetImage", - "imagebuilder:TagResource", - "kms:Encrypt", - "kms:GenerateDataKey", - "kms:GenerateDataKeyWithoutPlaintext", - }, - ResourceType: "containerRecipe*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Playback-Restriction-Policy", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new distribution configuration", - Privilege: "CreateDistributionConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - }, - ResourceType: "distributionConfiguration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Public-Key", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new image", - Privilege: "CreateImage", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "imagebuilder:GetContainerRecipe", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:TagResource", - }, - ResourceType: "image*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Recording-Configuration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new image pipeline", - Privilege: "CreateImagePipeline", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "imagebuilder:GetContainerRecipe", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetWorkflow", - "imagebuilder:TagResource", - }, - ResourceType: "imagePipeline*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Stage", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Storage-Configuration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Image Recipe", - Privilege: "CreateImageRecipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:DescribeImages", - "iam:CreateServiceLinkedRole", - "imagebuilder:GetComponent", - "imagebuilder:GetImage", - "imagebuilder:TagResource", - }, - ResourceType: "imageRecipe*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Stream-Key", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new infrastructure configuration", - Privilege: "CreateInfrastructureConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "imagebuilder:CreatedResourceTagKeys", - "imagebuilder:CreatedResourceTag/", - "imagebuilder:Ec2MetadataHttpTokens", - "imagebuilder:StatusTopicArn", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "imagebuilder:TagResource", - "sns:Publish", }, - ResourceType: "infrastructureConfiguration*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new lifecycle policy", - Privilege: "CreateLifecyclePolicy", + Description: "Grants permission to update a channel's configuration", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "imagebuilder:LifecyclePolicyResourceType", - }, - DependentActions: []string{ - "iam:PassRole", - "imagebuilder:TagResource", - }, - ResourceType: "lifecyclePolicy*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new workflow", - Privilege: "CreateWorkflow", + Description: "Grants permission to update ingest configuration for a specified ARN", + Privilege: "UpdateIngestConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "imagebuilder:TagResource", - "kms:Encrypt", - "kms:GenerateDataKey", - "kms:GenerateDataKeyWithoutPlaintext", - "s3:GetObject", - "s3:ListBucket", - }, - ResourceType: "workflow*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Ingest-Configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a component", - Privilege: "DeleteComponent", + Description: "Grants permission to update a playback restriction policy for a specified ARN", + Privilege: "UpdatePlaybackRestrictionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "Playback-Restriction-Policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a container recipe", - Privilege: "DeleteContainerRecipe", + Description: "Grants permission to update a stage's configuration", + Privilege: "UpdateStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerRecipe*", + ResourceType: "Stage*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:channel/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Channel", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:stream-key/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Stream-Key", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:playback-key/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Playback-Key-Pair", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:playback-restriction-policy/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Playback-Restriction-Policy", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:recording-configuration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Recording-Configuration", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:stage/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Stage", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:composition/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Composition", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:encoder-configuration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Encoder-Configuration", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:storage-configuration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Storage-Configuration", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:public-key/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Public-Key", + }, + { + Arn: "arn:${Partition}:ivs:${Region}:${Account}:ingest-configuration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Ingest-Configuration", + }, + }, + ServiceName: "Amazon Interactive Video Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags associated with the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "ivschat", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a distribution configuration", - Privilege: "DeleteDistributionConfiguration", + Description: "Grants permission to create an encrypted token that is used to establish an individual WebSocket connection to a room", + Privilege: "CreateChatToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distributionConfiguration*", + ResourceType: "Room*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an image", - Privilege: "DeleteImage", + Description: "Grants permission to create a logging configuration that allows clients to record room messages", + Privilege: "CreateLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "Logging-Configuration*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an image pipeline", - Privilege: "DeleteImagePipeline", + Description: "Grants permission to create a room that allows clients to connect and pass messages", + Privilege: "CreateRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imagePipeline*", + ResourceType: "Room*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an image recipe", - Privilege: "DeleteImageRecipe", + Description: "Grants permission to delete the logging configuration for a specified logging configuration ARN", + Privilege: "DeleteLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageRecipe*", + ResourceType: "Logging-Configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an infrastructure configuration", - Privilege: "DeleteInfrastructureConfiguration", + Description: "Grants permission to send an event to a specific room which directs clients to delete a specific message", + Privilege: "DeleteMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "infrastructureConfiguration*", + ResourceType: "Room*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a lifecycle policy", - Privilege: "DeleteLifecyclePolicy", + Description: "Grants permission to delete the room for a specified room ARN", + Privilege: "DeleteRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lifecyclePolicy*", + ResourceType: "Room*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a workflow", - Privilege: "DeleteWorkflow", + Description: "Grants permission to disconnect all connections using a specified user ID from a room", + Privilege: "DisconnectUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "Room*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a component", - Privilege: "GetComponent", + Description: "Grants permission to get the logging configuration for a specified logging configuration ARN", + Privilege: "GetLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:Decrypt", - }, - ResourceType: "component*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Logging-Configuration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the resource policy associated with a component", - Privilege: "GetComponentPolicy", + Description: "Grants permission to get the room configuration for a specified room ARN", + Privilege: "GetRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "Room*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a container recipe", - Privilege: "GetContainerRecipe", + AccessLevel: "List", + Description: "Grants permission to get summary information about logging configurations", + Privilege: "ListLoggingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerRecipe*", + ResourceType: "Logging-Configuration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the resource policy associated with a container recipe", - Privilege: "GetContainerRecipePolicy", + AccessLevel: "List", + Description: "Grants permission to get summary information about rooms", + Privilege: "ListRooms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerRecipe*", + ResourceType: "Room*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a distribution configuration", - Privilege: "GetDistributionConfiguration", + Description: "Grants permission to get information about the tags for a specified ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distributionConfiguration*", + ResourceType: "Room", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about an image", - Privilege: "GetImage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an image pipeline", - Privilege: "GetImagePipeline", + AccessLevel: "Write", + Description: "Grants permission to send an event to a room", + Privilege: "SendEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imagePipeline*", + ResourceType: "Room*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the resource policy associated with an image", - Privilege: "GetImagePolicy", + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for a resource with a specified ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "Logging-Configuration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Room", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an image recipe", - Privilege: "GetImageRecipe", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags for a resource with a specified ARN", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageRecipe*", + ResourceType: "Logging-Configuration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Room", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the resource policy associated with an image recipe", - Privilege: "GetImageRecipePolicy", + AccessLevel: "Write", + Description: "Grants permission to update the logging configuration for a specified logging configuration ARN", + Privilege: "UpdateLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageRecipe*", + ResourceType: "Logging-Configuration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an infrastructure configuration", - Privilege: "GetInfrastructureConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update the room configuration for a specified room ARN", + Privilege: "UpdateRoom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "infrastructureConfiguration*", + ResourceType: "Room*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to view details about a lifecycle execution", - Privilege: "GetLifecycleExecution", + Arn: "arn:${Partition}:ivschat:${Region}:${Account}:room/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Room", + }, + { + Arn: "arn:${Partition}:ivschat:${Region}:${Account}:logging-configuration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Logging-Configuration", + }, + }, + ServiceName: "Amazon Interactive Video Service Chat", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "kafka:publicAccessEnabled", + Description: "Filters access by the presence of public access enabled in the request", + Type: "Bool", + }, + }, + Prefix: "kafka", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate one or more Scram Secrets with an Amazon MSK cluster", + Privilege: "BatchAssociateScramSecret", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "lifecycleExecution*", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:RetireGrant", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a lifecycle policy", - Privilege: "GetLifecyclePolicy", + AccessLevel: "Write", + Description: "Grants permission to disassociate one or more Scram Secrets from an Amazon MSK cluster", + Privilege: "BatchDisassociateScramSecret", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "lifecyclePolicy*", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:RetireGrant", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a workflow", - Privilege: "GetWorkflow", + AccessLevel: "Write", + Description: "Grants permission to create an MSK cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "kms:Decrypt", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "kms:CreateGrant", + "kms:DescribeKey", }, - ResourceType: "workflow*", + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a workflow execution", - Privilege: "GetWorkflowExecution", + AccessLevel: "Write", + Description: "Grants permission to create an MSK cluster", + Privilege: "CreateClusterV2", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", + "kms:CreateGrant", + "kms:DescribeKey", + }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workflowExecution*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a workflow step execution", - Privilege: "GetWorkflowStepExecution", + AccessLevel: "Write", + Description: "Grants permission to create an MSK configuration", + Privilege: "CreateConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflowStepExecution*", + ResourceType: "configuration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import a new component", - Privilege: "ImportComponent", + Description: "Grants permission to create a MSK replicator", + Privilege: "CreateReplicator", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "iam:PutRolePolicy", + "kafka:DescribeClusterV2", + "kafka:GetBootstrapBrokers", + }, + ResourceType: "replicator*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "imagebuilder:TagResource", - "kms:Encrypt", - "kms:GenerateDataKey", - "kms:GenerateDataKeyWithoutPlaintext", - }, - ResourceType: "component*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import an image", - Privilege: "ImportVmImage", + Description: "Grants permission to create a MSK VPC connection", + Privilege: "CreateVpcConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ec2:DescribeImages", - "ec2:DescribeImportImageTasks", + "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", }, - ResourceType: "imageVersion*", + ResourceType: "cluster*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the component build versions in your account", - Privilege: "ListComponentBuildVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentVersion*", + ResourceType: "vpc-connection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the component versions owned by or shared with your account", - Privilege: "ListComponents", + AccessLevel: "Write", + Description: "Grants permission to delete an MSK cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the container recipes owned by or shared with your account", - Privilege: "ListContainerRecipes", + AccessLevel: "Write", + Description: "Grants permission to delete a cluster resource-based policy", + Privilege: "DeleteClusterPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the distribution configurations in your account", - Privilege: "ListDistributionConfigurations", + AccessLevel: "Write", + Description: "Grants permission to delete the specified MSK configuration", + Privilege: "DeleteConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the image build versions in your account", - Privilege: "ListImageBuildVersions", + AccessLevel: "Write", + Description: "Grants permission to delete a MSK replicator", + Privilege: "DeleteReplicator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageVersion*", + ResourceType: "replicator*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of packages installed on the specified image", - Privilege: "ListImagePackages", + AccessLevel: "Write", + Description: "Grants permission to delete a MSK VPC connection", + Privilege: "DeleteVpcConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints", }, - DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "vpc-connection*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of images created by the specified pipeline", - Privilege: "ListImagePipelineImages", + AccessLevel: "Read", + Description: "Grants permission to describe an MSK cluster", + Privilege: "DescribeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imagePipeline*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the image pipelines in your account", - Privilege: "ListImagePipelines", + AccessLevel: "Read", + Description: "Grants permission to describe the cluster operation that is specified by the given ARN", + Privilege: "DescribeClusterOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -143612,9 +185737,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the image recipes owned by or shared with your account", - Privilege: "ListImageRecipes", + AccessLevel: "Read", + Description: "Grants permission to describe the cluster operation that is specified by the given ARN", + Privilege: "DescribeClusterOperationV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -143624,57 +185749,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list aggregations on the image scan findings in your account", - Privilege: "ListImageScanFindingAggregations", + AccessLevel: "Read", + Description: "Grants permission to describe an MSK cluster", + Privilege: "DescribeClusterV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an MSK configuration", + Privilege: "DescribeConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imagePipeline", + ResourceType: "configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the image scan findings for the images in your account", - Privilege: "ListImageScanFindings", + AccessLevel: "Read", + Description: "Grants permission to describe an MSK configuration revision", + Privilege: "DescribeConfigurationRevision", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "inspector2:ListFindings", - }, - ResourceType: "image", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a MSK replicator", + Privilege: "DescribeReplicator", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imagePipeline", + ResourceType: "replicator*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the image versions owned by or shared with your account", - Privilege: "ListImages", + AccessLevel: "Read", + Description: "Grants permission to describe a MSK VPC connection", + Privilege: "DescribeVpcConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "vpc-connection*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the infrastructure configurations in your account", - Privilege: "ListInfrastructureConfigurations", + AccessLevel: "Read", + Description: "Grants permission to get connection details for the brokers in an MSK cluster", + Privilege: "GetBootstrapBrokers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -143684,120 +185821,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list resources for the specified lifecycle execution", - Privilege: "ListLifecycleExecutionResources", + AccessLevel: "Read", + Description: "Grants permission to describe a cluster resource-based policy", + Privilege: "GetClusterPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lifecycleExecution*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list lifecycle executions for the specified resource", - Privilege: "ListLifecycleExecutions", + Description: "Grants permission to get a list of the Apache Kafka versions to which you can update an MSK cluster", + Privilege: "GetCompatibleKafkaVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all MSK VPC connections created for a cluster", + Privilege: "ListClientVpcConnections", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lifecyclePolicy", + ResourceType: "cluster*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the lifecycle policies in your account", - Privilege: "ListLifecyclePolicies", + Description: "Grants permission to return a list of all the operations that have been performed on the specified MSK cluster", + Privilege: "ListClusterOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for an Image Builder resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to return a list of all the operations that have been performed on the specified MSK cluster", + Privilege: "ListClusterOperationsV2", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "containerRecipe", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "distributionConfiguration", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "image", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "imagePipeline", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "imageRecipe", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "infrastructureConfiguration", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "lifecyclePolicy", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "cluster*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list waiting workflow steps for the caller account", - Privilege: "ListWaitingWorkflowSteps", + Description: "Grants permission to list all MSK clusters in this account", + Privilege: "ListClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -143808,44 +185894,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the workflow build versions in your account", - Privilege: "ListWorkflowBuildVersions", + Description: "Grants permission to list all MSK clusters in this account", + Privilege: "ListClustersV2", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflowVersion*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list workflow executions for the specified image", - Privilege: "ListWorkflowExecutions", + Description: "Grants permission to list all revisions for an MSK configuration in this account", + Privilege: "ListConfigurationRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "configuration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list workflow step executions for the specified workflow", - Privilege: "ListWorkflowStepExecutions", + Description: "Grants permission to list all MSK configurations in this account", + Privilege: "ListConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflowExecution*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the workflow versions owned by or shared with your account", - Privilege: "ListWorkflows", + Description: "Grants permission to list all Apache Kafka versions supported by Amazon MSK", + Privilege: "ListKafkaVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -143855,722 +185941,732 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the resource policy associated with a component", - Privilege: "PutComponentPolicy", + AccessLevel: "List", + Description: "Grants permission to list brokers in an MSK cluster", + Privilege: "ListNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the resource policy associated with a container recipe", - Privilege: "PutContainerRecipePolicy", + AccessLevel: "List", + Description: "Grants permission to list all MSK replicators in this account", + Privilege: "ListReplicators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerRecipe*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the resource policy associated with an image", - Privilege: "PutImagePolicy", + AccessLevel: "List", + Description: "Grants permission to list the Scram Secrets associated with an Amazon MSK cluster", + Privilege: "ListScramSecrets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the resource policy associated with an image recipe", - Privilege: "PutImageRecipePolicy", + AccessLevel: "Read", + Description: "Grants permission to list tags of an MSK resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageRecipe*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send an action to a workflow step", - Privilege: "SendWorkflowStepAction", + AccessLevel: "List", + Description: "Grants permission to list all MSK VPC connections that this account uses", + Privilege: "ListVpcConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflowStepExecution*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new image from a pipeline", - Privilege: "StartImagePipelineExecution", + Description: "Grants permission to create or update the resource-based policy for a cluster", + Privilege: "PutClusterPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "imagebuilder:GetImagePipeline", - }, - ResourceType: "imagePipeline*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a state update for the specified resource", - Privilege: "StartResourceStateUpdate", + Description: "Grants permission to reboot broker", + Privilege: "RebootBroker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Image Builder resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to reject a MSK VPC connection", + Privilege: "RejectClientVpcConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component", + ResourceType: "cluster*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerRecipe", + ResourceType: "vpc-connection*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an MSK resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distributionConfiguration", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "vpc-connection", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "imagePipeline", - }, - { - ConditionKeys: []string{ "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "imageRecipe", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an MSK resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "infrastructureConfiguration", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lifecyclePolicy", + ResourceType: "vpc-connection", }, { ConditionKeys: []string{ "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag an Image Builder resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update the number of brokers of the MSK cluster", + Privilege: "UpdateBrokerCount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the storage size of the brokers of the MSK cluster", + Privilege: "UpdateBrokerStorage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "containerRecipe", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the broker type of an Amazon MSK cluster", + Privilege: "UpdateBrokerType", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distributionConfiguration", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of the MSK cluster", + Privilege: "UpdateClusterConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "cluster*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imagePipeline", + ResourceType: "configuration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the MSK cluster to the specified Apache Kafka version", + Privilege: "UpdateClusterKafkaVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageRecipe", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new revision of the MSK configuration", + Privilege: "UpdateConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "infrastructureConfiguration", + ResourceType: "configuration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the connectivity settings for the MSK cluster", + Privilege: "UpdateConnectivity", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRouteTables", + "ec2:DescribeSubnets", }, - DependentActions: []string{}, - ResourceType: "lifecyclePolicy", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + "kafka:publicAccessEnabled", }, DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing distribution configuration", - Privilege: "UpdateDistributionConfiguration", + Description: "Grants permission to update the monitoring settings for the MSK cluster", + Privilege: "UpdateMonitoring", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "distributionConfiguration*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing image pipeline", - Privilege: "UpdateImagePipeline", + Description: "Grants permission to update the replication info of the MSK replicator", + Privilege: "UpdateReplicationInfo", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "imagebuilder:GetContainerRecipe", - "imagebuilder:GetDistributionConfiguration", - "imagebuilder:GetImageRecipe", - "imagebuilder:GetInfrastructureConfiguration", - "imagebuilder:GetWorkflow", - }, - ResourceType: "imagePipeline*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "replicator*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing infrastructure configuration", - Privilege: "UpdateInfrastructureConfiguration", + Description: "Grants permission to update the security settings for the MSK cluster", + Privilege: "UpdateSecurity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "imagebuilder:CreatedResourceTagKeys", - "imagebuilder:CreatedResourceTag/", - "imagebuilder:Ec2MetadataHttpTokens", - "imagebuilder:StatusTopicArn", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", - "sns:Publish", + "kms:RetireGrant", }, - ResourceType: "infrastructureConfiguration*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing lifecycle policy", - Privilege: "UpdateLifecyclePolicy", + Description: "Grants permission to update the EBS storage (size or provisioned throughput) associated with MSK brokers or set cluster storage mode to TIERED", + Privilege: "UpdateStorage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "imagebuilder:LifecyclePolicyResourceType", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "lifecyclePolicy*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:component/${ComponentName}/${ComponentVersion}/${ComponentBuildVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "component", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:component/${ComponentName}/${ComponentVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "componentVersion", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:distribution-configuration/${DistributionConfigurationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "distributionConfiguration", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image/${ImageName}/${ImageVersion}/${ImageBuildVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "image", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image/${ImageName}/${ImageVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "imageVersion", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image-recipe/${ImageRecipeName}/${ImageRecipeVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "imageRecipe", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:container-recipe/${ContainerRecipeName}/${ContainerRecipeVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "containerRecipe", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:image-pipeline/${ImagePipelineName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "imagePipeline", - }, - { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:infrastructure-configuration/${ResourceId}", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:cluster/${ClusterName}/${Uuid}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "infrastructureConfiguration", - }, - { - Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", - ConditionKeys: []string{}, - Resource: "kmsKey", + Resource: "cluster", }, { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:lifecycle-execution/${LifecycleExecutionId}", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:configuration/${ConfigurationName}/${Uuid}", ConditionKeys: []string{}, - Resource: "lifecycleExecution", + Resource: "configuration", }, { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:lifecycle-policy/${LifecyclePolicyName}", + Arn: "arn:${Partition}:kafka:${Region}:${VpcOwnerAccount}:vpc-connection/${ClusterOwnerAccount}/${ClusterName}/${Uuid}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "lifecyclePolicy", + Resource: "vpc-connection", }, { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow/${WorkflowType}/${WorkflowName}/${WorkflowVersion}/${WorkflowBuildVersion}", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:replicator/${ReplicatorName}/${Uuid}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "workflow", + Resource: "replicator", }, { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow/${WorkflowType}/${WorkflowName}/${WorkflowVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "workflowVersion", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:topic/${ClusterName}/${ClusterUuid}/${TopicName}", + ConditionKeys: []string{}, + Resource: "topic", }, { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow-execution/${WorkflowExecutionId}", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:group/${ClusterName}/${ClusterUuid}/${GroupName}", ConditionKeys: []string{}, - Resource: "workflowExecution", + Resource: "group", }, { - Arn: "arn:${Partition}:imagebuilder:${Region}:${Account}:workflow-step-execution/${WorkflowStepExecutionId}", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:transactional-id/${ClusterName}/${ClusterUuid}/${TransactionalId}", ConditionKeys: []string{}, - Resource: "workflowStepExecution", + Resource: "transactional-id", }, }, - ServiceName: "Amazon EC2 Image Builder", + ServiceName: "Amazon Managed Streaming for Apache Kafka", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "importexport", + Conditions: []ParliamentCondition{ + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource. The resource tag context key will only apply to the cluster resource, not topics, groups and transactional IDs", + Type: "String", + }, + }, + Prefix: "kafka-cluster", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "This action cancels a specified job. Only the job owner can cancel it. The action fails if the job has already started or is complete.", - Privilege: "CancelJob", + Description: "Grants permission to alter various aspects of the cluster, equivalent to Apache Kafka's ALTER CLUSTER ACL", + Privilege: "AlterCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeCluster", + }, + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "This action initiates the process of scheduling an upload or download of your data.", - Privilege: "CreateJob", + Description: "Grants permission to alter the dynamic configuration of a cluster, equivalent to Apache Kafka's ALTER_CONFIGS CLUSTER ACL", + Privilege: "AlterClusterDynamicConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeClusterDynamicConfiguration", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "This action generates a pre-paid shipping label that you will use to ship your device to AWS for processing.", - Privilege: "GetShippingLabel", + AccessLevel: "Write", + Description: "Grants permission to join groups on a cluster, equivalent to Apache Kafka's READ GROUP ACL", + Privilege: "AlterGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeGroup", + }, + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "This action returns information about a job, including where the job is in the processing pipeline, the status of the results, and the signature value associated with the job.", - Privilege: "GetStatus", + AccessLevel: "Write", + Description: "Grants permission to alter topics on a cluster, equivalent to Apache Kafka's ALTER TOPIC ACL", + Privilege: "AlterTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + }, + ResourceType: "topic*", }, }, }, { - AccessLevel: "List", - Description: "This action returns the jobs associated with the requester.", - Privilege: "ListJobs", + AccessLevel: "Write", + Description: "Grants permission to alter the dynamic configuration of topics on a cluster, equivalent to Apache Kafka's ALTER_CONFIGS TOPIC ACL", + Privilege: "AlterTopicDynamicConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopicDynamicConfiguration", + }, + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "You use this action to change the parameters specified in the original manifest file by supplying a new manifest file.", - Privilege: "UpdateJob", + Description: "Grants permission to alter transactional IDs on a cluster, equivalent to Apache Kafka's WRITE TRANSACTIONAL_ID ACL", + Privilege: "AlterTransactionalId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTransactionalId", + "kafka-cluster:WriteData", + }, + ResourceType: "transactional-id*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Import Export Disk Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "inspector", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to assign attributes (key and value pairs) to the findings that are specified by the ARNs of the findings", - Privilege: "AddAttributesToFindings", + Description: "Grants permission to connect and authenticate to the cluster", + Privilege: "Connect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new assessment target using the ARN of the resource group that is generated by CreateResourceGroup", - Privilege: "CreateAssessmentTarget", + Description: "Grants permission to create topics on a cluster, equivalent to Apache Kafka's CREATE CLUSTER/TOPIC ACL", + Privilege: "CreateTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an assessment template for the assessment target that is specified by the ARN of the assessment target", - Privilege: "CreateAssessmentTemplate", + Description: "Grants permission to delete groups on a cluster, equivalent to Apache Kafka's DELETE GROUP ACL", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeGroup", + }, + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the generation of an exclusions preview for the specified assessment template", - Privilege: "CreateExclusionsPreview", + Description: "Grants permission to delete topics on a cluster, equivalent to Apache Kafka's DELETE TOPIC ACL", + Privilege: "DeleteTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + }, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a resource group using the specified set of tags (key and value pairs) that are used to select the EC2 instances to be included in an Amazon Inspector assessment target", - Privilege: "CreateResourceGroup", + AccessLevel: "List", + Description: "Grants permission to describe various aspects of the cluster, equivalent to Apache Kafka's DESCRIBE CLUSTER ACL", + Privilege: "DescribeCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the assessment run that is specified by the ARN of the assessment run", - Privilege: "DeleteAssessmentRun", + AccessLevel: "List", + Description: "Grants permission to describe the dynamic configuration of a cluster, equivalent to Apache Kafka's DESCRIBE_CONFIGS CLUSTER ACL", + Privilege: "DescribeClusterDynamicConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the assessment target that is specified by the ARN of the assessment target", - Privilege: "DeleteAssessmentTarget", + AccessLevel: "List", + Description: "Grants permission to describe groups on a cluster, equivalent to Apache Kafka's DESCRIBE GROUP ACL", + Privilege: "DescribeGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the assessment template that is specified by the ARN of the assessment template", - Privilege: "DeleteAssessmentTemplate", + AccessLevel: "List", + Description: "Grants permission to describe topics on a cluster, equivalent to Apache Kafka's DESCRIBE TOPIC ACL", + Privilege: "DescribeTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the assessment runs that are specified by the ARNs of the assessment runs", - Privilege: "DescribeAssessmentRuns", + AccessLevel: "List", + Description: "Grants permission to describe the dynamic configuration of topics on a cluster, equivalent to Apache Kafka's DESCRIBE_CONFIGS TOPIC ACL", + Privilege: "DescribeTopicDynamicConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the assessment targets that are specified by the ARNs of the assessment targets", - Privilege: "DescribeAssessmentTargets", + AccessLevel: "List", + Description: "Grants permission to describe transactional IDs on a cluster, equivalent to Apache Kafka's DESCRIBE TRANSACTIONAL_ID ACL", + Privilege: "DescribeTransactionalId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + }, + ResourceType: "transactional-id*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the assessment templates that are specified by the ARNs of the assessment templates", - Privilege: "DescribeAssessmentTemplates", + Description: "Grants permission to read data from topics on a cluster, equivalent to Apache Kafka's READ TOPIC ACL", + Privilege: "ReadData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:AlterGroup", + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + }, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the IAM role that enables Amazon Inspector to access your AWS account", - Privilege: "DescribeCrossAccountAccessRole", + AccessLevel: "Write", + Description: "Grants permission to write data to topics on a cluster, equivalent to Apache Kafka's WRITE TOPIC ACL", + Privilege: "WriteData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:DescribeTopic", + }, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the exclusions that are specified by the exclusions' ARNs", - Privilege: "DescribeExclusions", + AccessLevel: "Write", + Description: "Grants permission to write data idempotently on a cluster, equivalent to Apache Kafka's IDEMPOTENT_WRITE CLUSTER ACL", + Privilege: "WriteDataIdempotently", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "kafka-cluster:Connect", + "kafka-cluster:WriteData", + }, + ResourceType: "cluster*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe the findings that are specified by the ARNs of the findings", - Privilege: "DescribeFindings", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:kafka:${Region}:${Account}:cluster/${ClusterName}/${ClusterUuid}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "cluster", }, { - AccessLevel: "Read", - Description: "Grants permission to describe the resource groups that are specified by the ARNs of the resource groups", - Privilege: "DescribeResourceGroups", + Arn: "arn:${Partition}:kafka:${Region}:${Account}:topic/${ClusterName}/${ClusterUuid}/${TopicName}", + ConditionKeys: []string{}, + Resource: "topic", + }, + { + Arn: "arn:${Partition}:kafka:${Region}:${Account}:group/${ClusterName}/${ClusterUuid}/${GroupName}", + ConditionKeys: []string{}, + Resource: "group", + }, + { + Arn: "arn:${Partition}:kafka:${Region}:${Account}:transactional-id/${ClusterName}/${ClusterUuid}/${TransactionalId}", + ConditionKeys: []string{}, + Resource: "transactional-id", + }, + }, + ServiceName: "Apache Kafka APIs for Amazon MSK clusters", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "kafkaconnect", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an MSK Connect connector", + Privilege: "CreateConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "firehose:TagDeliveryStream", + "iam:AttachRolePolicy", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "iam:PutRolePolicy", + "logs:CreateLogDelivery", + "logs:DescribeLogGroups", + "logs:DescribeResourcePolicies", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:PutResourcePolicy", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the rules packages that are specified by the ARNs of the rules packages", - Privilege: "DescribeRulesPackages", + AccessLevel: "Write", + Description: "Grants permission to create an MSK Connect custom plugin", + Privilege: "CreateCustomPlugin", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to produce an assessment report that includes detailed and comprehensive results of a specified assessment run", - Privilege: "GetAssessmentReport", + AccessLevel: "Write", + Description: "Grants permission to create an MSK Connect worker configuration", + Privilege: "CreateWorkerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -144580,105 +186676,108 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the exclusions preview (a list of ExclusionPreview objects) specified by the preview token", - Privilege: "GetExclusionsPreview", + AccessLevel: "Write", + Description: "Grants permission to delete an MSK Connect connector", + Privilege: "DeleteConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries", + }, + ResourceType: "connector*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the data that is collected for the specified assessment run", - Privilege: "GetTelemetryMetadata", + AccessLevel: "Write", + Description: "Grants permission to delete an MSK Connect custom plugin", + Privilege: "DeleteCustomPlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom plugin*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the agents of the assessment runs that are specified by the ARNs of the assessment runs", - Privilege: "ListAssessmentRunAgents", + AccessLevel: "Write", + Description: "Grants permission to delete an MSK Connect worker configuration", + Privilege: "DeleteWorkerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worker configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the assessment runs that correspond to the assessment templates that are specified by the ARNs of the assessment templates", - Privilege: "ListAssessmentRuns", + AccessLevel: "Read", + Description: "Grants permission to describe an MSK Connect connector", + Privilege: "DescribeConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connector*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the ARNs of the assessment targets within this AWS account", - Privilege: "ListAssessmentTargets", + AccessLevel: "Read", + Description: "Grants permission to describe a MSK Connect connector operation", + Privilege: "DescribeConnectorOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connector operation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the assessment templates that correspond to the assessment targets that are specified by the ARNs of the assessment targets", - Privilege: "ListAssessmentTemplates", + AccessLevel: "Read", + Description: "Grants permission to describe an MSK Connect custom plugin", + Privilege: "DescribeCustomPlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom plugin*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the event subscriptions for the assessment template that is specified by the ARN of the assessment template", - Privilege: "ListEventSubscriptions", + AccessLevel: "Read", + Description: "Grants permission to describe an MSK Connect worker configuration", + Privilege: "DescribeWorkerConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worker configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list exclusions that are generated by the assessment run", - Privilege: "ListExclusions", + AccessLevel: "Read", + Description: "Grants permission to list all operations of a given MSK Connect connector", + Privilege: "ListConnectorOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connector*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list findings that are generated by the assessment runs that are specified by the ARNs of the assessment runs", - Privilege: "ListFindings", + AccessLevel: "Read", + Description: "Grants permission to list all MSK Connect connectors in this account", + Privilege: "ListConnectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -144688,9 +186787,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available Amazon Inspector rules packages", - Privilege: "ListRulesPackages", + AccessLevel: "Read", + Description: "Grants permission to list all MSK Connect custom plugins in this account", + Privilege: "ListCustomPlugins", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -144701,44 +186800,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list all tags associated with an assessment template", + Description: "Grants permission to list tags of an MSK Connect resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connector", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to preview the agents installed on the EC2 instances that are part of the specified assessment target", - Privilege: "PreviewAgents", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom plugin", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register the IAM role that Amazon Inspector uses to list your EC2 instances at the start of the assessment run or when you call the PreviewAgents action", - Privilege: "RegisterCrossAccountAccessRole", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worker configuration", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove entire attributes (key and value pairs) from the findings that are specified by the ARNs of the findings where an attribute with the specified key exists", - Privilege: "RemoveAttributesFromFindings", + AccessLevel: "Read", + Description: "Grants permission to list all MSK Connect worker configurations in this account", + Privilege: "ListWorkerConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -144749,59 +186840,76 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to set tags (key and value pairs) to the assessment template that is specified by the ARN of the assessment template", - Privilege: "SetTagsForResource", + Description: "Grants permission to tag an MSK Connect resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connector", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start the assessment run specified by the ARN of the assessment template", - Privilege: "StartAssessmentRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custom plugin", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop the assessment run that is specified by the ARN of the assessment run", - Privilege: "StopAssessmentRun", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worker configuration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic", - Privilege: "SubscribeToEvent", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable the process of sending Amazon Simple Notification Service (SNS) notifications about a specified event to a specified SNS topic", - Privilege: "UnsubscribeFromEvent", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an MSK Connect resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "connector", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "custom plugin", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "worker configuration", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -144809,181 +186917,224 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the assessment target that is specified by the ARN of the assessment target", - Privilege: "UpdateAssessmentTarget", + Description: "Grants permission to update an MSK Connect connector", + Privilege: "UpdateConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connector*", }, }, }, }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Inspector", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "inspector-scan", - Privileges: []ParliamentPrivilege{ + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to scan the customer provided SBOM and return vulnerabilities detected within", - Privilege: "ScanSbom", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:connector/${ConnectorName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connector", + }, + { + Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:custom-plugin/${CustomPluginName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "custom plugin", + }, + { + Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:worker-configuration/${WorkerConfigurationName}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "worker configuration", + }, + { + Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:connector-operation/${ConnectorName}/${ConnectorUUID}/${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "connector operation", }, }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon InspectorScan", + ServiceName: "Amazon Managed Streaming for Kafka Connect", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "inspector2", + Prefix: "kendra", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate an account with an Amazon Inspector administrator account", - Privilege: "AssociateMember", + Description: "Grants permission to put principal mapping in index", + Privilege: "AssociateEntitiesToExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about Amazon Inspector accounts for an account", - Privilege: "BatchGetAccountStatus", + AccessLevel: "Write", + Description: "Defines the specific permissions of users or groups in your AWS SSO identity source with access to your Amazon Kendra experience", + Privilege: "AssociatePersonasToEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve code snippet information about one or more code vulnerability findings", - Privilege: "BatchGetCodeSnippet", + AccessLevel: "Write", + Description: "Grants permission to batch delete document", + Privilege: "BatchDeleteDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to let a customer get enhanced vulnerability intelligence details for findings", - Privilege: "BatchGetFindingDetails", + AccessLevel: "Write", + Description: "Grants permission to delete a featured results set", + Privilege: "BatchDeleteFeaturedResultsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "featured-results-set*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve free trial period eligibility about Amazon Inspector accounts for an account", - Privilege: "BatchGetFreeTrialInfo", + Description: "Grants permission to do batch get document status", + Privilege: "BatchGetDocumentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to delegated administrator to retrieve ec2 deep inspection status of member accounts", - Privilege: "BatchGetMemberEc2DeepInspectionStatus", + AccessLevel: "Write", + Description: "Grants permission to batch put document", + Privilege: "BatchPutDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update ec2 deep inspection status by delegated administrator for its associated member accounts", - Privilege: "BatchUpdateMemberEc2DeepInspectionStatus", + Description: "Grants permission to clear out the suggestions for a given index, generated so far", + Privilege: "ClearQuerySuggestions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel the generation of a findings report", - Privilege: "CancelFindingsReport", + Description: "Grants permission to create an access control configuration", + Privilege: "CreateAccessControlConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel the generation of an SBOM report", - Privilege: "CancelSbomExport", + Description: "Grants permission to create a data source", + Privilege: "CreateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "index*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and define the settings for a CIS scan configuration", - Privilege: "CreateCisScanConfiguration", + Description: "Creates an Amazon Kendra experience such as a search application", + Privilege: "CreateExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CIS Scan Configuration*", + ResourceType: "index*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Faq", + Privilege: "CreateFaq", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -144994,13 +187145,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create and define the settings for a findings filter", - Privilege: "CreateFilter", + Description: "Grants permission to create a featured results set", + Privilege: "CreateFeaturedResultsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Filter*", + ResourceType: "index*", }, { ConditionKeys: []string{ @@ -145014,11 +187165,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to request the generation of a findings report", - Privilege: "CreateFindingsReport", + Description: "Grants permission to create an Index", + Privilege: "CreateIndex", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -145026,29 +187180,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to request the generation of an SBOM report", - Privilege: "CreateSbomExport", + Description: "Grants permission to create a QuerySuggestions BlockList", + Privilege: "CreateQuerySuggestionsBlockList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "index*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a CIS scan configuration", - Privilege: "DeleteCisScanConfiguration", + Description: "Grants permission to create a Thesaurus", + Privilege: "CreateThesaurus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CIS Scan Configuration*", + ResourceType: "index*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -145057,823 +187220,675 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a findings filter", - Privilege: "DeleteFilter", + Description: "Grants permission to delete an access control configuration", + Privilege: "DeleteAccessControlConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Filter*", + ResourceType: "access-control-configuration*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Inspector configuration settings for an AWS organization", - Privilege: "DescribeOrganizationConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete a data source", + Privilege: "DeleteDataSource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-source*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes your Amazon Kendra experience such as a search application", + Privilege: "DeleteExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable an Amazon Inspector account", - Privilege: "Disable", + Description: "Grants permission to delete an Faq", + Privilege: "DeleteFaq", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "faq*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable an account as the delegated Amazon Inspector administrator account for an AWS organization", - Privilege: "DisableDelegatedAdminAccount", + Description: "Grants permission to delete an Index", + Privilege: "DeleteIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to an Amazon Inspector administrator account to disassociate from an Inspector member account", - Privilege: "DisassociateMember", + Description: "Grants permission to delete principal mapping from index", + Privilege: "DeletePrincipalMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-source", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable and specify the configuration settings for a new Amazon Inspector account", - Privilege: "Enable", + Description: "Grants permission to delete a QuerySuggestions BlockList", + Privilege: "DeleteQuerySuggestionsBlockList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "query-suggestions-block-list*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable an account as the delegated Amazon Inspector administrator account for an AWS organization", - Privilege: "EnableDelegatedAdminAccount", + Description: "Grants permission to delete a Thesaurus", + Privilege: "DeleteThesaurus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thesaurus*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a report containing information about completed CIS scans", - Privilege: "GetCisScanReport", + Description: "Grants permission to describe an access control configuration", + Privilege: "DescribeAccessControlConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "access-control-configuration*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all details pertaining to one CIS scan and one targeted resource", - Privilege: "GetCisScanResultDetails", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Inspector configuration settings for an AWS account", - Privilege: "GetConfiguration", + Description: "Grants permission to describe a data source", + Privilege: "DescribeDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Inspector administrator account for an account", - Privilege: "GetDelegatedAdminAccount", + Description: "Gets information about your Amazon Kendra experience such as a search application", + Privilege: "DescribeExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve ec2 deep inspection configuration for standalone accounts, delegated administrator and member account", - Privilege: "GetEc2DeepInspectionConfiguration", + Description: "Grants permission to describe an Faq", + Privilege: "DescribeFaq", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "faq*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the KMS key used to encrypt code snippets with", - Privilege: "GetEncryptionKey", + Description: "Grants permission to describe a featured results set", + Privilege: "DescribeFeaturedResultsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "featured-results-set*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve status for a requested findings report", - Privilege: "GetFindingsReportStatus", + Description: "Grants permission to describe an Index", + Privilege: "DescribeIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an account that's associated with an Amazon Inspector administrator account", - Privilege: "GetMember", + Description: "Grants permission to describe principal mapping from index", + Privilege: "DescribePrincipalMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-source", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a requested SBOM report", - Privilege: "GetSbomExport", + Description: "Grants permission to describe a QuerySuggestions BlockList", + Privilege: "DescribeQuerySuggestionsBlockList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve feature configuration permissions associated with an Amazon Inspector account within an organization", - Privilege: "ListAccountPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "query-suggestions-block-list*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all CIS scan configurations", - Privilege: "ListCisScanConfigurations", + AccessLevel: "Read", + Description: "Grants permission to describe the query suggestions configuration for an index", + Privilege: "DescribeQuerySuggestionsConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all checks pertaining to one CIS scan", - Privilege: "ListCisScanResultsAggregatedByChecks", + AccessLevel: "Read", + Description: "Grants permission to describe a Thesaurus", + Privilege: "DescribeThesaurus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all resources pertaining to one CIS scan", - Privilege: "ListCisScanResultsAggregatedByTargetResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thesaurus*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about completed CIS scans", - Privilege: "ListCisScans", + AccessLevel: "Write", + Description: "Prevents users or groups in your AWS SSO identity source from accessing your Amazon Kendra experience", + Privilege: "DisassociateEntitiesFromExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve the types of statistics Amazon Inspector can generate for resources Inspector monitors", - Privilege: "ListCoverage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve statistical data and other information about the resources Amazon Inspector monitors", - Privilege: "ListCoverageStatistics", + AccessLevel: "Write", + Description: "Removes the specific permissions of users or groups in your AWS SSO identity source with access to your Amazon Kendra experience", + Privilege: "DisassociatePersonasFromEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve information about the delegated Amazon Inspector administrator account for an AWS organization", - Privilege: "ListDelegatedAdminAccounts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all findings filters", - Privilege: "ListFilters", + AccessLevel: "Read", + Description: "Grants permission to get suggestions for a query prefix", + Privilege: "GetQuerySuggestions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve statistical data and other information about Amazon Inspector findings", - Privilege: "ListFindingAggregations", + AccessLevel: "Read", + Description: "Retrieves search metrics data", + Privilege: "GetSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a subset of information about one or more findings", - Privilege: "ListFindings", + Description: "Grants permission to list the access control configurations", + Privilege: "ListAccessControlConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve information about the Amazon Inspector member accounts that are associated with an Inspector administrator account", - Privilege: "ListMembers", + Description: "Grants permission to get Data Source sync job history", + Privilege: "ListDataSourceSyncJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the tags for an Amazon Inspector resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve aggregated usage data for an account", - Privilege: "ListUsageTotals", + Description: "Grants permission to list the data sources", + Privilege: "ListDataSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to let a customer reset to use an Amazon-owned KMS key to encrypt code snippets with", - Privilege: "ResetEncryptionKey", + AccessLevel: "List", + Description: "Lists specific permissions of users and groups with access to your Amazon Kendra experience", + Privilege: "ListEntityPersonas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list Amazon Inspector coverage details for a specific vulnerability", - Privilege: "SearchVulnerabilities", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send CIS health for a CIS scan", - Privilege: "SendCisSessionHealth", + AccessLevel: "List", + Description: "Lists users or groups in your AWS SSO identity source that are granted access to your Amazon Kendra experience", + Privilege: "ListExperienceEntities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experience*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send CIS telemetry for a CIS scan", - Privilege: "SendCisSessionTelemetry", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a CIS scan session", - Privilege: "StartCisSession", + AccessLevel: "List", + Description: "Lists one or more Amazon Kendra experiences. You can create an Amazon Kendra experience such as a search application", + Privilege: "ListExperiences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a CIS scan session", - Privilege: "StopCisSession", + AccessLevel: "List", + Description: "Grants permission to list the Faqs", + Privilege: "ListFaqs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update the tags for an Amazon Inspector resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list the featured results sets", + Privilege: "ListFeaturedResultsSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "inspector2:Cis Scan Configuration", - }, - DependentActions: []string{}, - ResourceType: "CIS Scan Configuration", - }, - { - ConditionKeys: []string{ - "inspector2:Filter", - }, - DependentActions: []string{}, - ResourceType: "Filter", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Amazon Inspector resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list groups that are older than an ordering id", + Privilege: "ListGroupsOlderThanOrderingId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "inspector2:Cis Scan Configuration", - }, - DependentActions: []string{}, - ResourceType: "CIS Scan Configuration", - }, - { - ConditionKeys: []string{ - "inspector2:Filter", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Filter", + ResourceType: "index*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the settings for a CIS scan configuration", - Privilege: "UpdateCisScanConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the indexes", + Privilege: "ListIndices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CIS Scan Configuration*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information about the Amazon Inspector configuration settings for an AWS account", - Privilege: "UpdateConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the QuerySuggestions BlockLists", + Privilege: "ListQuerySuggestionsBlockLists", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update ec2 deep inspection configuration by delegated administrator, member and standalone account", - Privilege: "UpdateEc2DeepInspectionConfiguration", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to let a customer use a KMS key to encrypt code snippets with", - Privilege: "UpdateEncryptionKey", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "faq", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the settings for a findings filter", - Privilege: "UpdateFilter", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Filter*", + ResourceType: "featured-results-set", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update ec2 deep inspection configuration by delegated administrator for its associated member accounts", - Privilege: "UpdateOrgEc2DeepInspectionConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "query-suggestions-block-list", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update Amazon Inspector configuration settings for an AWS organization", - Privilege: "UpdateOrganizationConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "thesaurus", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:inspector2:${Region}:${Account}:owner/${OwnerId}/filter/${FilterId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Filter", - }, - { - Arn: "arn:${Partition}:inspector2:${Region}:${Account}:finding/${FindingId}", - ConditionKeys: []string{}, - Resource: "Finding", - }, - { - Arn: "arn:${Partition}:inspector2:${Region}:${Account}:owner/${OwnerId}/cis-configuration/${CISScanConfigurationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "CIS Scan Configuration", - }, - }, - ServiceName: "Amazon Inspector2", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "internetmonitor", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a monitor", - Privilege: "CreateMonitor", + AccessLevel: "List", + Description: "Grants permission to list the Thesauri", + Privilege: "ListThesauri", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a monitor", - Privilege: "DeleteMonitor", + Description: "Grants permission to put principal mapping in index", + Privilege: "PutPrincipalMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "index*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a health event for a specified monitor", - Privilege: "GetHealthEvent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "HealthEvent*", + ResourceType: "data-source", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified internet event", - Privilege: "GetInternetEvent", + Description: "Grants permission to query documents and faqs", + Privilege: "Query", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InternetEvent*", + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a monitor", - Privilege: "GetMonitor", + Description: "Grants permission to retrieve relevant content from an index", + Privilege: "Retrieve", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "index*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get results for a data query for a monitor", - Privilege: "GetQueryResults", + AccessLevel: "Write", + Description: "Grants permission to start Data Source sync job", + Privilege: "StartDataSourceSyncJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "data-source*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get status for a data query for a monitor", - Privilege: "GetQueryStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to share Internet Monitor resources with a monitoring account", - Privilege: "Link", + Description: "Grants permission to stop Data Source sync job", + Privilege: "StopDataSourceSyncJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all health events for a monitor", - Privilege: "ListHealthEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all internet events", - Privilege: "ListInternetEvents", + AccessLevel: "Write", + Description: "Grants permission to send feedback about a query results", + Privilege: "SubmitFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all monitors in an account and their statuses", - Privilege: "ListMonitors", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource with given key value pairs", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "faq", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to start a data query for a monitor", - Privilege: "StartQuery", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "featured-results-set", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to stop a data query for a monitor", - Privilege: "StopQuery", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "index", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "query-suggestions-block-list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "thesaurus", }, { ConditionKeys: []string{ @@ -145887,301 +187902,256 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", + Description: "Grants permission to remove the tag with the given key from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "data-source", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "faq", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a monitor", - Privilege: "UpdateMonitor", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Monitor*", + ResourceType: "featured-results-set", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:internetmonitor:${Region}:${Account}:monitor/${MonitorName}/health-event/${EventId}", - ConditionKeys: []string{}, - Resource: "HealthEvent", - }, - { - Arn: "arn:${Partition}:internetmonitor:${Region}:${Account}:monitor/${MonitorName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Monitor", - }, - { - Arn: "arn:${Partition}:internetmonitor::${Account}:internet-event/${InternetEventId}", - ConditionKeys: []string{}, - Resource: "InternetEvent", - }, - }, - ServiceName: "Amazon CloudWatch Internet Monitor", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "invoicing", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to get Invoice Email Delivery Preferences", - Privilege: "GetInvoiceEmailDeliveryPreferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get Invoice PDF", - Privilege: "GetInvoicePDF", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "query-suggestions-block-list", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get Invoice summary information for your account or linked account", - Privilege: "ListInvoiceSummaries", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "thesaurus", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put Invoice Email Delivery Preferences", - Privilege: "PutInvoiceEmailDeliveryPreferences", + Description: "Grants permission to update an access control configuration", + Privilege: "UpdateAccessControlConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "access-control-configuration*", }, - }, - }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Invoicing Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key that is present in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key component of a tag associated to the IoT resource in the request", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys associated to the IoT resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "iot:ClientMode", - Description: "Filters access by the mode of the client for IoT Tunnel", - Type: "String", - }, - { - Condition: "iot:Delete", - Description: "Filters access by a flag indicating whether or not to also delete an IoT Tunnel immediately when making iot:CloseTunnel request", - Type: "Bool", - }, - { - Condition: "iot:DomainName", - Description: "Filters access by based on the domain name of an IoT DomainConfiguration", - Type: "String", - }, - { - Condition: "iot:ThingGroupArn", - Description: "Filters access by a list of IoT Thing Group ARNs that the destination IoT Thing belongs to for an IoT Tunnel", - Type: "ArrayOfARN", - }, - { - Condition: "iot:TunnelDestinationService", - Description: "Filters access by a list of destination services for an IoT Tunnel", - Type: "ArrayOfString", - }, - }, - Prefix: "iot", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to accept a pending certificate transfer", - Privilege: "AcceptCertificateTransfer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a thing to the specified billing group", - Privilege: "AddThingToBillingGroup", + Description: "Grants permission to update a data source", + Privilege: "UpdateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "data-source*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a thing to the specified thing group", - Privilege: "AddThingToThingGroup", + Description: "Updates your Amazon Kendra experience such as a search application", + Privilege: "UpdateExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a group with a continuous job", - Privilege: "AssociateTargetsWithJob", + Description: "Grants permission to update a featured results set", + Privilege: "UpdateFeaturedResultsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "featured-results-set*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "index*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an Index", + Privilege: "UpdateIndex", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "index*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a policy to the specified target", - Privilege: "AttachPolicy", + AccessLevel: "Write", + Description: "Grants permission to update a QuerySuggestions BlockList", + Privilege: "UpdateQuerySuggestionsBlockList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert", + ResourceType: "index*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "query-suggestions-block-list*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach the specified policy to the specified principal (certificate or other credential)", - Privilege: "AttachPrincipalPolicy", + AccessLevel: "Write", + Description: "Grants permission to update the query suggestions configuration for an index", + Privilege: "UpdateQuerySuggestionsConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a Device Defender security profile with a thing group or with this account", - Privilege: "AttachSecurityProfile", + Description: "Grants permission to update a thesaurus", + Privilege: "UpdateThesaurus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "custommetric", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "index*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "thesaurus*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to attach the specified principal to the specified thing", - Privilege: "AttachThingPrincipal", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "index", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/data-source/${DataSourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "data-source", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/faq/${FaqId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "faq", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/experience/${ExperienceId}", + ConditionKeys: []string{}, + Resource: "experience", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/thesaurus/${ThesaurusId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "thesaurus", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/query-suggestions-block-list/${QuerySuggestionsBlockListId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "query-suggestions-block-list", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/featured-results-set/${FeaturedResultsSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "featured-results-set", + }, + { + Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/access-control-configuration/${AccessControlConfigurationId}", + ConditionKeys: []string{}, + Resource: "access-control-configuration", + }, + }, + ServiceName: "Amazon Kendra", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "kendra-ranking", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel a mitigation action task that is in progress", - Privilege: "CancelAuditMitigationActionsTask", + Description: "Grants permission to create a RescoreExecutionPlan", + Privilege: "CreateRescoreExecutionPlan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -146189,32 +188159,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to cancel an audit that is in progress. The audit can be either scheduled or on-demand", - Privilege: "CancelAuditTask", + Description: "Grants permission to delete a RescoreExecutionPlan", + Privilege: "DeleteRescoreExecutionPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rescore-execution-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a pending transfer for the specified certificate", - Privilege: "CancelCertificateTransfer", + AccessLevel: "Read", + Description: "Grants permission to describe a RescoreExecutionPlan", + Privilege: "DescribeRescoreExecutionPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "rescore-execution-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a Device Defender ML Detect mitigation action", - Privilege: "CancelDetectMitigationActionsTask", + AccessLevel: "List", + Description: "Grants permission to list all RescoreExecutionPlans", + Privilege: "ListRescoreExecutionPlans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -146224,59 +188194,62 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a job", - Privilege: "CancelJob", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "rescore-execution-plan", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a job execution on a particular device", - Privilege: "CancelJobExecution", + AccessLevel: "Read", + Description: "Grants permission to Rescore documents with Kendra Intelligent Ranking", + Privilege: "Rescore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "rescore-execution-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to clear the default authorizer", - Privilege: "ClearDefaultAuthorizer", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource with given key value pairs", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "rescore-execution-plan", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to close a tunnel", - Privilege: "CloseTunnel", + AccessLevel: "Tagging", + Description: "Grants permission to remove the tag with the given key from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tunnel*", + ResourceType: "rescore-execution-plan", }, { ConditionKeys: []string{ - "iot:Delete", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -146285,662 +188258,583 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to confirm a http url TopicRuleDestinationDestination", - Privilege: "ConfirmTopicRuleDestination", + Description: "Grants permission to update a RescoreExecutionPlan", + Privilege: "UpdateRescoreExecutionPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "rescore-execution-plan*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to connect as the specified client", - Privilege: "Connect", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "client*", - }, + Arn: "arn:${Partition}:kendra-ranking:${Region}:${Account}:rescore-execution-plan/${RescoreExecutionPlanId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "rescore-execution-plan", + }, + }, + ServiceName: "Amazon Kendra Intelligent Ranking", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to create a Device Defender audit suppression", - Privilege: "CreateAuditSuppression", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to create an authorizer", - Privilege: "CreateAuthorizer", + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "kinesis", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for the specified Amazon Kinesis stream. Each stream can have up to 50 tags", + Privilege: "AddTagsToStream", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "authorizer*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a billing group", - Privilege: "CreateBillingGroup", + Description: "Grants permission to create a Amazon Kinesis stream", + Privilege: "CreateStream", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "billinggroup*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an X.509 certificate using the specified certificate signing request", - Privilege: "CreateCertificateFromCsr", + Description: "Grants permission to decrease the stream's retention period, which is the length of time data records are accessible after they are added to the stream", + Privilege: "DecreaseStreamRetentionPeriod", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a certificate provider", - Privilege: "CreateCertificateProvider", + Description: "Grants permission to delete a resource policy associated with a specified stream or consumer", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "certificateprovider*", + ResourceType: "consumer*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a custom metric for device side metric reporting and monitoring", - Privilege: "CreateCustomMetric", + Description: "Grants permission to delete a stream and all its shards and data", + Privilege: "DeleteStream", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "custommetric*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to define a dimension that can be used to to limit the scope of a metric used in a security profile", - Privilege: "CreateDimension", + Description: "Grants permission to deregister a stream consumer with a Kinesis data stream", + Privilege: "DeregisterStreamConsumer", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dimension*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "consumer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a domain configuration", - Privilege: "CreateDomainConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe the shard limits and usage for the account", + Privilege: "DescribeLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domainconfiguration*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the specified stream", + Privilege: "DescribeStream", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "iot:DomainName", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Dynamic Thing Group", - Privilege: "CreateDynamicThingGroup", + AccessLevel: "Read", + Description: "Grants permission to get the description of a registered stream consumer", + Privilege: "DescribeStreamConsumer", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dynamicthinggroup*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "consumer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a fleet metric", - Privilege: "CreateFleetMetric", + AccessLevel: "Read", + Description: "Grants permission to provide a summarized description of the specified Kinesis data stream without the shard list", + Privilege: "DescribeStreamSummary", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleetmetric*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a job", - Privilege: "CreateJob", + Description: "Grants permission to disables enhanced monitoring", + Privilege: "DisableEnhancedMonitoring", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thing*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thinggroup*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobtemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "package", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "packageversion", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a job template", - Privilege: "CreateJobTemplate", + Description: "Grants permission to enable enhanced Kinesis data stream monitoring for shard-level metrics", + Privilege: "EnableEnhancedMonitoring", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobtemplate*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get data records from a shard", + Privilege: "GetRecords", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "package", + ResourceType: "stream*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a resource policy associated with a specified stream or consumer", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "packageversion", + ResourceType: "consumer*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a 2048 bit RSA key pair and issues an X.509 certificate using the issued public key", - Privilege: "CreateKeysAndCertificate", + AccessLevel: "Read", + Description: "Grants permission to get a shard iterator. A shard iterator expires five minutes after it is returned to the requester", + Privilege: "GetShardIterator", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to define an action that can be applied to audit findings by using StartAuditMitigationActionsTask", - Privilege: "CreateMitigationAction", + Description: "Grants permission to increase the stream's retention period, which is the length of time data records are accessible after they are added to the stream", + Privilege: "IncreaseStreamRetentionPeriod", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mitigationaction*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an OTA update job", - Privilege: "CreateOTAUpdate", + AccessLevel: "List", + Description: "Grants permission to list the shards in a stream and provides information about each shard", + Privilege: "ListShards", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "otaupdate*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a software package that you can deploy to your devices", - Privilege: "CreatePackage", + AccessLevel: "List", + Description: "Grants permission to list the stream consumers registered to receive data from a Kinesis stream using enhanced fan-out, and provides information about each consumer", + Privilege: "ListStreamConsumers", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:GetIndexingConfiguration", - }, - ResourceType: "package*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a version under the specified package", - Privilege: "CreatePackageVersion", + AccessLevel: "List", + Description: "Grants permission to list your streams", + Privilege: "ListStreams", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:GetIndexingConfiguration", - }, - ResourceType: "package*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packageversion*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS IoT policy", - Privilege: "CreatePolicy", + AccessLevel: "Read", + Description: "Grants permission to list the tags for the specified Amazon Kinesis resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "consumer*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new version of the specified AWS IoT policy", - Privilege: "CreatePolicyVersion", + AccessLevel: "Read", + Description: "Grants permission to list the tags for the specified Amazon Kinesis stream", + Privilege: "ListTagsForStream", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a provisioning claim", - Privilege: "CreateProvisioningClaim", + Description: "Grants permission to merge two adjacent shards in a stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data", + Privilege: "MergeShards", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a fleet provisioning template", - Privilege: "CreateProvisioningTemplate", + Description: "Grants permission to write a single data record from a producer into an Amazon Kinesis stream", + Privilege: "PutRecord", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "provisioningtemplate*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new version of a fleet provisioning template", - Privilege: "CreateProvisioningTemplateVersion", + Description: "Grants permission to write multiple data records from a producer into an Amazon Kinesis stream in a single call (also referred to as a PutRecords request)", + Privilege: "PutRecords", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a role alias", - Privilege: "CreateRoleAlias", + Description: "Grants permission to attach a resource policy to a specified stream or consumer", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, - ResourceType: "rolealias*", + DependentActions: []string{}, + ResourceType: "consumer*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a scheduled audit that is run at a specified time interval", - Privilege: "CreateScheduledAudit", + Description: "Grants permission to register a stream consumer with a Kinesis data stream", + Privilege: "RegisterStreamConsumer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "scheduledaudit*", + ResourceType: "stream*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified Kinesis data stream. Removed tags are deleted and cannot be recovered after this operation successfully completes", + Privilege: "RemoveTagsFromStream", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Device Defender security profile", - Privilege: "CreateSecurityProfile", + Description: "Grants permission to split a shard into two new shards in the Kinesis data stream, to increase the stream's capacity to ingest and transport data", + Privilege: "SplitShard", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "securityprofile*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "custommetric", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dimension", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new AWS IoT stream", - Privilege: "CreateStream", + Description: "Grants permission to enable or update server-side encryption using an AWS KMS key for a specified stream", + Privilege: "StartStreamEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "kmsKey*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a thing in the thing registry", - Privilege: "CreateThing", + Description: "Grants permission to disable server-side encryption for a specified stream", + Privilege: "StopStreamEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "kmsKey*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "billinggroup", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a thing group", - Privilege: "CreateThingGroup", + AccessLevel: "Read", + Description: "Grants permission to listen to a specific shard with enhanced fan-out", + Privilege: "SubscribeToShard", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thinggroup*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "consumer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new thing type", - Privilege: "CreateThingType", + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for the specified Amazon Kinesis resource. Each resource can have up to 50 tags", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "thingtype*", + ResourceType: "consumer*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a rule", - Privilege: "CreateTopicRule", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified Kinesis data resource. Removed tags are deleted and cannot be recovered after this operation successfully completes", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "consumer*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a TopicRuleDestination", - Privilege: "CreateTopicRuleDestination", + Description: "Grants permission to update the shard count of the specified stream to the specified number of shards", + Privilege: "UpdateShardCount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the audit configuration associated with the account", - Privilege: "DeleteAccountAuditConfiguration", + Description: "Grants permission to update the capacity mode of the data stream", + Privilege: "UpdateStreamMode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -146949,462 +188843,533 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete a Device Defender audit suppression", - Privilege: "DeleteAuditSuppression", + Arn: "arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "stream", + }, + { + Arn: "arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}", + ConditionKeys: []string{}, + Resource: "consumer", + }, + { + Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", + ConditionKeys: []string{}, + Resource: "kmsKey", + }, + }, + ServiceName: "Amazon Kinesis Data Streams", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "kinesis", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for the specified Amazon Kinesis stream. Each stream can have up to 10 tags", + Privilege: "AddTagsToStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified authorizer", - Privilege: "DeleteAuthorizer", + Description: "Grants permission to create a Amazon Kinesis stream", + Privilege: "CreateStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified billing group", - Privilege: "DeleteBillingGroup", + Description: "Grants permission to decrease the stream's retention period, which is the length of time data records are accessible after they are added to the stream", + Privilege: "DecreaseStreamRetentionPeriod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a registered CA certificate", - Privilege: "DeleteCACertificate", + Description: "Grants permission to delete a stream and all its shards and data", + Privilege: "DeleteStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cacert*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified certificate", - Privilege: "DeleteCertificate", + Description: "Grants permission to deregister a stream consumer with a Kinesis data stream", + Privilege: "DeregisterStreamConsumer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "consumer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a certificate provider", - Privilege: "DeleteCertificateProvider", + AccessLevel: "Read", + Description: "Grants permission to describe the shard limits and usage for the account", + Privilege: "DescribeLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificateprovider*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deletes the specified custom metric from your AWS account", - Privilege: "DeleteCustomMetric", + AccessLevel: "Read", + Description: "Grants permission to describe the specified stream", + Privilege: "DescribeStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custommetric*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the specified dimension from your AWS account", - Privilege: "DeleteDimension", + AccessLevel: "Read", + Description: "Grants permission to get the description of a registered stream consumer", + Privilege: "DescribeStreamConsumer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension*", + ResourceType: "consumer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a domain configuration", - Privilege: "DeleteDomainConfiguration", + AccessLevel: "Read", + Description: "Grants permission to provide a summarized description of the specified Kinesis data stream without the shard list", + Privilege: "DescribeStreamSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domainconfiguration*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified Dynamic Thing Group", - Privilege: "DeleteDynamicThingGroup", + Description: "Grants permission to disables enhanced monitoring", + Privilege: "DisableEnhancedMonitoring", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dynamicthinggroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified fleet metric", - Privilege: "DeleteFleetMetric", + Description: "Grants permission to enable enhanced Kinesis data stream monitoring for shard-level metrics", + Privilege: "EnableEnhancedMonitoring", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleetmetric*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a job and its related job executions", - Privilege: "DeleteJob", + AccessLevel: "Read", + Description: "Grants permission to get data records from a shard", + Privilege: "GetRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a job execution", - Privilege: "DeleteJobExecution", + AccessLevel: "Read", + Description: "Grants permission to get a shard iterator. A shard iterator expires five minutes after it is returned to the requester", + Privilege: "GetShardIterator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a job template", - Privilege: "DeleteJobTemplate", + Description: "Grants permission to increase the stream's retention period, which is the length of time data records are accessible after they are added to the stream", + Privilege: "IncreaseStreamRetentionPeriod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobtemplate*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a defined mitigation action from your AWS account", - Privilege: "DeleteMitigationAction", + AccessLevel: "List", + Description: "Grants permission to list the shards in a stream and provides information about each shard", + Privilege: "ListShards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mitigationaction*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an OTA update job", - Privilege: "DeleteOTAUpdate", + AccessLevel: "List", + Description: "Grants permission to list the stream consumers registered to receive data from a Kinesis stream using enhanced fan-out, and provides information about each consumer", + Privilege: "ListStreamConsumers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "otaupdate*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a package", - Privilege: "DeletePackage", + AccessLevel: "List", + Description: "Grants permission to list your streams", + Privilege: "ListStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a version of the specified package", - Privilege: "DeletePackageVersion", + AccessLevel: "Read", + Description: "Grants permission to list the tags for the specified Amazon Kinesis stream", + Privilege: "ListTagsForStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "packageversion*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified policy", - Privilege: "DeletePolicy", + Description: "Grants permission to merge two adjacent shards in a stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data", + Privilege: "MergeShards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to Delete the specified version of the specified policy", - Privilege: "DeletePolicyVersion", + Description: "Grants permission to write a single data record from a producer into an Amazon Kinesis stream", + Privilege: "PutRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a fleet provisioning template", - Privilege: "DeleteProvisioningTemplate", + Description: "Grants permission to write multiple data records from a producer into an Amazon Kinesis stream in a single call (also referred to as a PutRecords request)", + Privilege: "PutRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a fleet provisioning template version", - Privilege: "DeleteProvisioningTemplateVersion", + Description: "Grants permission to register a stream consumer with a Kinesis data stream", + Privilege: "RegisterStreamConsumer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a CA certificate registration code", - Privilege: "DeleteRegistrationCode", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified Kinesis data stream. Removed tags are deleted and cannot be recovered after this operation successfully completes", + Privilege: "RemoveTagsFromStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified role alias", - Privilege: "DeleteRoleAlias", + Description: "Grants permission to split a shard into two new shards in the Kinesis data stream, to increase the stream's capacity to ingest and transport data", + Privilege: "SplitShard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rolealias*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a scheduled audit", - Privilege: "DeleteScheduledAudit", + Description: "Grants permission to enable or update server-side encryption using an AWS KMS key for a specified stream", + Privilege: "StartStreamEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scheduledaudit*", + ResourceType: "kmsKey*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Device Defender security profile", - Privilege: "DeleteSecurityProfile", + Description: "Grants permission to disable server-side encryption for a specified stream", + Privilege: "StopStreamEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile*", + ResourceType: "kmsKey*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custommetric", + ResourceType: "stream*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to listen to a specific shard with enhanced fan-out", + Privilege: "SubscribeToShard", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "consumer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified stream", - Privilege: "DeleteStream", + Description: "Grants permission to update the shard count of the specified stream to the specified number of shards", + Privilege: "UpdateShardCount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified thing", - Privilege: "DeleteThing", + Description: "Grants permission to update the capacity mode of the data stream", + Privilege: "UpdateStreamMode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}", + ConditionKeys: []string{}, + Resource: "stream", + }, + { + Arn: "arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}", + ConditionKeys: []string{}, + Resource: "consumer", + }, + { + Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", + ConditionKeys: []string{}, + Resource: "kmsKey", + }, + }, + ServiceName: "Amazon Kinesis", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value assoicated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "kinesisanalytics", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete the specified thing group", - Privilege: "DeleteThingGroup", + Description: "Grants permission to add input to the application", + Privilege: "AddApplicationInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified thing shadow", - Privilege: "DeleteThingShadow", + Description: "Grants permission to add output to the application", + Privilege: "AddApplicationOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified thing type", - Privilege: "DeleteThingType", + Description: "Grants permission to add reference data source to the application", + Privilege: "AddApplicationReferenceDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingtype*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified rule", - Privilege: "DeleteTopicRule", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a TopicRuleDestination", - Privilege: "DeleteTopicRuleDestination", + Description: "Grants permission to delete the application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified v2 logging level", - Privilege: "DeleteV2LoggingLevel", + Description: "Grants permission to delete the specified output of the application", + Privilege: "DeleteApplicationOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deprecate the specified thing type", - Privilege: "DeprecateThingType", + Description: "Grants permission to delete the specified reference data source of the application", + Privilege: "DeleteApplicationReferenceDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingtype*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about audit configurations for the account", - Privilege: "DescribeAccountAuditConfiguration", + Description: "Grants permission to describe the specified application", + Privilege: "DescribeApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a single audit finding. Properties include the reason for noncompliance, the severity of the issue, and when the audit that returned the finding was started", - Privilege: "DescribeAuditFinding", + Description: "Grants permission to discover the input schema for the application", + Privilege: "DiscoverInputSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -147415,20 +189380,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about an audit mitigation task that is used to apply mitigation actions to a set of audit findings", - Privilege: "DescribeAuditMitigationActionsTask", + Description: "Grants permission to Kinesis Data Analytics console to display stream results for Kinesis Data Analytics SQL runtime applications", + Privilege: "GetApplicationState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a Device Defender audit suppression", - Privilege: "DescribeAuditSuppression", + AccessLevel: "List", + Description: "Grants permission to list applications for the account", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -147439,349 +189404,422 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about a Device Defender audit", - Privilege: "DescribeAuditTask", + Description: "Grants permission to fetch the tags associated with the application", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an authorizer", - Privilege: "DescribeAuthorizer", + AccessLevel: "Write", + Description: "Grants permission to start the application", + Privilege: "StartApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified billing group", - Privilege: "DescribeBillingGroup", + AccessLevel: "Write", + Description: "Grants permission to stop the application", + Privilege: "StopApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a registered CA certificate", - Privilege: "DescribeCACertificate", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the application", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cacert*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified certificate", - Privilege: "DescribeCertificate", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the application", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a certificate provider", - Privilege: "DescribeCertificateProvider", + AccessLevel: "Write", + Description: "Grants permission to update the application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificateprovider*", + ResourceType: "application*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe a custom metric that is defined in your AWS account", - Privilege: "DescribeCustomMetric", + Arn: "arn:${Partition}:kinesisanalytics:${Region}:${Account}:application/${ApplicationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + }, + ServiceName: "Amazon Kinesis Analytics", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value assoicated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "kinesisanalytics", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add cloudwatch logging option to the application", + Privilege: "AddApplicationCloudWatchLoggingOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custommetric*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the default authorizer", - Privilege: "DescribeDefaultAuthorizer", + AccessLevel: "Write", + Description: "Grants permission to add input to the application", + Privilege: "AddApplicationInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a Device Defender ML Detect mitigation action", - Privilege: "DescribeDetectMitigationActionsTask", + AccessLevel: "Write", + Description: "Grants permission to add input processing configuration to the application", + Privilege: "AddApplicationInputProcessingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a dimension that is defined in your AWS account", - Privilege: "DescribeDimension", + AccessLevel: "Write", + Description: "Grants permission to add output to the application", + Privilege: "AddApplicationOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the domain configuration", - Privilege: "DescribeDomainConfiguration", + AccessLevel: "Write", + Description: "Grants permission to add reference data source to the application", + Privilege: "AddApplicationReferenceDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domainconfiguration*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a unique endpoint specific to the AWS account making the call", - Privilege: "DescribeEndpoint", + AccessLevel: "Write", + Description: "Grants permission to add VPC configuration to the application", + Privilege: "AddApplicationVpcConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get account event configurations", - Privilege: "DescribeEventConfigurations", + Description: "Grants permission to create and return a URL that you can use to connect to an application's extension", + Privilege: "CreateApplicationPresignedUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified fleet metric", - Privilege: "DescribeFleetMetric", + AccessLevel: "Write", + Description: "Grants permission to create a snapshot for an application", + Privilege: "CreateApplicationSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleetmetric*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified index", - Privilege: "DescribeIndex", + AccessLevel: "Write", + Description: "Grants permission to delete the application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a job", - Privilege: "DescribeJob", + AccessLevel: "Write", + Description: "Grants permission to delete the specified cloudwatch logging option of the application", + Privilege: "DeleteApplicationCloudWatchLoggingOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a job execution", - Privilege: "DescribeJobExecution", + AccessLevel: "Write", + Description: "Grants permission to delete the specified input processing configuration of the application", + Privilege: "DeleteApplicationInputProcessingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified output of the application", + Privilege: "DeleteApplicationOutput", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a job template", - Privilege: "DescribeJobTemplate", + AccessLevel: "Write", + Description: "Grants permission to delete the specified reference data source of the application", + Privilege: "DeleteApplicationReferenceDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobtemplate*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a managed job template", - Privilege: "DescribeManagedJobTemplate", + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot for an application", + Privilege: "DeleteApplicationSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobtemplate*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a mitigation action", - Privilege: "DescribeMitigationAction", + AccessLevel: "Write", + Description: "Grants permission to delete the specified VPC configuration of the application", + Privilege: "DeleteApplicationVpcConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mitigationaction*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a fleet provisioning template", - Privilege: "DescribeProvisioningTemplate", + Description: "Grants permission to describe the specified application", + Privilege: "DescribeApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a fleet provisioning template version", - Privilege: "DescribeProvisioningTemplateVersion", + Description: "Grants permission to describe an application operation of an application", + Privilege: "DescribeApplicationOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a role alias", - Privilege: "DescribeRoleAlias", + Description: "Grants permission to describe an application snapshot", + Privilege: "DescribeApplicationSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rolealias*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a scheduled audit", - Privilege: "DescribeScheduledAudit", + Description: "Grants permission to describe the application version of an application", + Privilege: "DescribeApplicationVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scheduledaudit*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a Device Defender security profile", - Privilege: "DescribeSecurityProfile", + Description: "Grants permission to discover the input schema for the application", + Privilege: "DiscoverInputSchema", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "securityprofile*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified stream", - Privilege: "DescribeStream", + Description: "Grants permission to list application operations of an application", + Privilege: "ListApplicationOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified thing", - Privilege: "DescribeThing", + Description: "Grants permission to list the snapshots for an application", + Privilege: "ListApplicationSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified thing group", - Privilege: "DescribeThingGroup", + Description: "Grants permission to list application versions of an application", + Privilege: "ListApplicationVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the bulk thing registration task", - Privilege: "DescribeThingRegistrationTask", + AccessLevel: "List", + Description: "Grants permission to list applications for the account", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -147792,410 +189830,467 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified thing type", - Privilege: "DescribeThingType", + Description: "Grants permission to fetch the tags associated with the application", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingtype*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a tunnel", - Privilege: "DescribeTunnel", + AccessLevel: "Write", + Description: "Grants permission to perform rollback operation on an application", + Privilege: "RollbackApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tunnel*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to detach a policy from the specified target", - Privilege: "DetachPolicy", + AccessLevel: "Write", + Description: "Grants permission to start the application", + Privilege: "StartApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "application*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove the specified policy from the specified certificate", - Privilege: "DetachPrincipalPolicy", + AccessLevel: "Write", + Description: "Grants permission to stop the application", + Privilege: "StopApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a Device Defender security profile from a thing group or from this account", - Privilege: "DetachSecurityProfile", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the application", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile*", + ResourceType: "application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "custommetric", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the application", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach the specified principal from the specified thing", - Privilege: "DetachThingPrincipal", + Description: "Grants permission to update the application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable the specified rule", - Privilege: "DisableTopicRule", + Description: "Grants permission to update the maintenance configuration of an application", + Privilege: "UpdateApplicationMaintenanceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "application*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:kinesisanalytics:${Region}:${Account}:application/${ApplicationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + }, + ServiceName: "Amazon Kinesis Analytics V2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters requests based on the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag-value assoicated with the stream", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters requests based on the presence of mandatory tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "kinesisvideo", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to enable the specified rule", - Privilege: "EnableTopicRule", + Description: "Grants permission to connect as a master to the signaling channel specified by the endpoint", + Privilege: "ConnectAsMaster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch a Device Defender's ML Detect Security Profile training model's status", - Privilege: "GetBehaviorModelTrainingSummaries", + AccessLevel: "Write", + Description: "Grants permission to connect as a viewer to the signaling channel specified by the endpoint", + Privilege: "ConnectAsViewer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get buckets aggregation for IoT fleet index", - Privilege: "GetBucketsAggregation", + AccessLevel: "Write", + Description: "Grants permission to create a signaling channel", + Privilege: "CreateSignalingChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "channel*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get cardinality for IoT fleet index", - Privilege: "GetCardinality", + AccessLevel: "Write", + Description: "Grants permission to create a Kinesis video stream", + Privilege: "CreateStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "stream*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get effective policies", - Privilege: "GetEffectivePolicies", + AccessLevel: "Write", + Description: "Grants permission to delete the edge configuration of your Kinesis Video Stream", + Privilege: "DeleteEdgeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get current fleet indexing configuration", - Privilege: "GetIndexingConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete an existing signaling channel", + Privilege: "DeleteSignalingChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a job document", - Privilege: "GetJobDocument", + AccessLevel: "Write", + Description: "Grants permission to delete an existing Kinesis video stream", + Privilege: "DeleteStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the logging options", - Privilege: "GetLoggingOptions", + Description: "Grants permission to describe the edge configuration of your Kinesis Video Stream", + Privilege: "DescribeEdgeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the information about the OTA update job", - Privilege: "GetOTAUpdate", + Description: "Grants permission to describe the image generation configuration of your Kinesis video stream", + Privilege: "DescribeImageGenerationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "otaupdate*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the information about the package", - Privilege: "GetPackage", + AccessLevel: "List", + Description: "Grants permission to describe the resource mapped to the Kinesis video stream", + Privilege: "DescribeMappedResourceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the package configuration of the account", - Privilege: "GetPackageConfiguration", + Description: "Grants permission to describe the media storage configuration of a signaling channel", + Privilege: "DescribeMediaStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the version of the package", - Privilege: "GetPackageVersion", + Description: "Grants permission to describe the notification configuration of your Kinesis video stream", + Privilege: "DescribeNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "stream*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the specified signaling channel", + Privilege: "DescribeSignalingChannel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packageversion*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get percentiles for IoT fleet index", - Privilege: "GetPercentiles", + AccessLevel: "List", + Description: "Grants permission to describe the specified Kinesis video stream", + Privilege: "DescribeStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified policy with the policy document of the default version", - Privilege: "GetPolicy", + Description: "Grants permission to get a media clip from a video stream", + Privilege: "GetClip", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified policy version", - Privilege: "GetPolicyVersion", + Description: "Grants permission to create a URL for MPEG-DASH video streaming", + Privilege: "GetDASHStreamingSessionURL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a registration code used to register a CA certificate with AWS IoT", - Privilege: "GetRegistrationCode", + Description: "Grants permission to get an endpoint for a specified stream for either reading or writing media data to Kinesis Video Streams", + Privilege: "GetDataEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the retained message on the specified topic", - Privilege: "GetRetainedMessage", + Description: "Grants permission to create a URL for HLS video streaming", + Privilege: "GetHLSStreamingSessionURL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get statistics for IoT fleet index", - Privilege: "GetStatistics", + Description: "Grants permission to get the ICE server configuration", + Privilege: "GetIceServerConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the thing shadow", - Privilege: "GetThingShadow", + Description: "Grants permission to get generated images from your Kinesis video stream", + Privilege: "GetImages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified rule", - Privilege: "GetTopicRule", + Description: "Grants permission to return media content of a Kinesis video stream", + Privilege: "GetMedia", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a TopicRuleDestination", - Privilege: "GetTopicRuleDestination", + Description: "Grants permission to read and return media data only from persisted storage", + Privilege: "GetMediaForFragmentList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get v2 logging options", - Privilege: "GetV2LoggingOptions", + Description: "Grants permission to get endpoints for a specified combination of protocol and role for a signaling channel", + Privilege: "GetSignalingChannelEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the active violations for a given Device Defender security profile or Thing", - Privilege: "ListActiveViolations", + AccessLevel: "Write", + Description: "Grants permission to join a storage session for a channel", + Privilege: "JoinStorageSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thing", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the policies attached to the specified thing group", - Privilege: "ListAttachedPolicies", + AccessLevel: "Write", + Description: "Grants permission to join a storage session for a channel as viewer", + Privilege: "JoinStorageSessionAsViewer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the findings (results) of a Device Defender audit or of the audits performed during a specified time period", - Privilege: "ListAuditFindings", + Description: "Grants permission to list an edge agent configurations", + Privilege: "ListEdgeAgentConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -148206,20 +190301,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get the status of audit mitigation action tasks that were executed", - Privilege: "ListAuditMitigationActionsExecutions", + Description: "Grants permission to list the fragments from archival storage based on the pagination token or selector type with range specified", + Privilege: "ListFragments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of audit mitigation action tasks that match the specified filters", - Privilege: "ListAuditMitigationActionsTasks", + Description: "Grants permission to list your signaling channels", + Privilege: "ListSignalingChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -148230,8 +190325,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list your Device Defender audit suppressions", - Privilege: "ListAuditSuppressions", + Description: "Grants permission to list your Kinesis video streams", + Privilege: "ListStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -148241,638 +190336,1425 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Device Defender audits that have been performed during a given time period", - Privilege: "ListAuditTasks", + AccessLevel: "Read", + Description: "Grants permission to fetch the tags associated with your resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the authorizers registered in your account", - Privilege: "ListAuthorizers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all billing groups", - Privilege: "ListBillingGroups", + AccessLevel: "Read", + Description: "Grants permission to fetch the tags associated with Kinesis video stream", + Privilege: "ListTagsForStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the CA certificates registered for your AWS account", - Privilege: "ListCACertificates", + AccessLevel: "Write", + Description: "Grants permission to send media data to a Kinesis video stream", + Privilege: "PutMedia", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list certificate providers in the account", - Privilege: "ListCertificateProviders", + AccessLevel: "Write", + Description: "Grants permission to send the Alexa SDP offer to the master", + Privilege: "SendAlexaOfferToMaster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list your certificates", - Privilege: "ListCertificates", + AccessLevel: "Write", + Description: "Grants permission to start edge configuration update of your Kinesis Video Stream", + Privilege: "StartEdgeConfigurationUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the device certificates signed by the specified CA certificate", - Privilege: "ListCertificatesByCA", + AccessLevel: "Tagging", + Description: "Grants permission to attach set of tags to your resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "channel", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the custom metrics in your AWS account", - Privilege: "ListCustomMetrics", + AccessLevel: "Tagging", + Description: "Grants permission to attach set of tags to your Kinesis video streams", + Privilege: "TagStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stream*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to lists mitigation actions executions for a Device Defender ML Detect Security Profile", - Privilege: "ListDetectMitigationActionsExecutions", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from your resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Device Defender ML Detect mitigation actions tasks", - Privilege: "ListDetectMitigationActionsTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stream", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the dimensions that are defined for your AWS account", - Privilege: "ListDimensions", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from your Kinesis video streams", + Privilege: "UntagStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "stream*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the domain configuration created by your AWS account", - Privilege: "ListDomainConfigurations", + AccessLevel: "Write", + Description: "Grants permission to update the data retention period of your Kinesis video stream", + Privilege: "UpdateDataRetention", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the fleet metrics in your account", - Privilege: "ListFleetMetrics", + AccessLevel: "Write", + Description: "Grants permission to update the image generation configuration of your Kinesis video stream", + Privilege: "UpdateImageGenerationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all indices for fleet index", - Privilege: "ListIndices", + AccessLevel: "Write", + Description: "Grants permission to create or update an mapping between a signaling channel and stream", + Privilege: "UpdateMediaStorageConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the job executions for a job", - Privilege: "ListJobExecutionsForJob", + AccessLevel: "Write", + Description: "Grants permission to update the notification configuration of your Kinesis video stream", + Privilege: "UpdateNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the job executions for the specified thing", - Privilege: "ListJobExecutionsForThing", + AccessLevel: "Write", + Description: "Grants permission to update an existing signaling channel", + Privilege: "UpdateSignalingChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list job templates", - Privilege: "ListJobTemplates", + AccessLevel: "Write", + Description: "Grants permission to update an existing Kinesis video stream", + Privilege: "UpdateStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list jobs", - Privilege: "ListJobs", + Arn: "arn:${Partition}:kinesisvideo:${Region}:${Account}:stream/${StreamName}/${CreationTime}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "stream", + }, + { + Arn: "arn:${Partition}:kinesisvideo:${Region}:${Account}:channel/${ChannelName}/${CreationTime}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel", + }, + }, + ServiceName: "Amazon Kinesis Video Streams", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access to the specified AWS KMS operations based on both the key and value of the tag in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access to the specified AWS KMS operations based on tags assigned to the AWS KMS key", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access to the specified AWS KMS operations based on tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "kms:BypassPolicyLockoutSafetyCheck", + Description: "Filters access to the CreateKey and PutKeyPolicy operations based on the value of the BypassPolicyLockoutSafetyCheck parameter in the request", + Type: "Bool", + }, + { + Condition: "kms:CallerAccount", + Description: "Filters access to specified AWS KMS operations based on the AWS account ID of the caller. You can use this condition key to allow or deny access to all IAM users and roles in an AWS account in a single policy statement", + Type: "String", + }, + { + Condition: "kms:CustomerMasterKeySpec", + Description: "The kms:CustomerMasterKeySpec condition key is deprecated. Instead, use the kms:KeySpec condition key", + Type: "String", + }, + { + Condition: "kms:CustomerMasterKeyUsage", + Description: "The kms:CustomerMasterKeyUsage condition key is deprecated. Instead, use the kms:KeyUsage condition key", + Type: "String", + }, + { + Condition: "kms:DataKeyPairSpec", + Description: "Filters access to GenerateDataKeyPair and GenerateDataKeyPairWithoutPlaintext operations based on the value of the KeyPairSpec parameter in the request", + Type: "String", + }, + { + Condition: "kms:EncryptionAlgorithm", + Description: "Filters access to encryption operations based on the value of the encryption algorithm in the request", + Type: "String", + }, + { + Condition: "kms:EncryptionContext:${EncryptionContextKey}", + Description: "Filters access to a symmetric AWS KMS key based on the encryption context in a cryptographic operation. This condition evaluates the key and value in each key-value encryption context pair", + Type: "String", + }, + { + Condition: "kms:EncryptionContextKeys", + Description: "Filters access to a symmetric AWS KMS key based on the encryption context in a cryptographic operation. This condition key evaluates only the key in each key-value encryption context pair", + Type: "ArrayOfString", + }, + { + Condition: "kms:ExpirationModel", + Description: "Filters access to the ImportKeyMaterial operation based on the value of the ExpirationModel parameter in the request", + Type: "String", + }, + { + Condition: "kms:GrantConstraintType", + Description: "Filters access to the CreateGrant operation based on the grant constraint in the request", + Type: "String", + }, + { + Condition: "kms:GrantIsForAWSResource", + Description: "Filters access to the CreateGrant operation when the request comes from a specified AWS service", + Type: "Bool", + }, + { + Condition: "kms:GrantOperations", + Description: "Filters access to the CreateGrant operation based on the operations in the grant", + Type: "ArrayOfString", + }, + { + Condition: "kms:GranteePrincipal", + Description: "Filters access to the CreateGrant operation based on the grantee principal in the grant", + Type: "String", + }, + { + Condition: "kms:KeyAgreementAlgorithm", + Description: "Filters access to the DeriveSharedSecret operation based on the value of the KeyAgreementAlgorithm parameter in the request", + Type: "String", + }, + { + Condition: "kms:KeyOrigin", + Description: "Filters access to an API operation based on the Origin property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key", + Type: "String", + }, + { + Condition: "kms:KeySpec", + Description: "Filters access to an API operation based on the KeySpec property of the AWS KMS key that is created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", + Type: "String", + }, + { + Condition: "kms:KeyUsage", + Description: "Filters access to an API operation based on the KeyUsage property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", + Type: "String", + }, + { + Condition: "kms:MacAlgorithm", + Description: "Filters access to the GenerateMac and VerifyMac operations based on the MacAlgorithm parameter in the request", + Type: "String", + }, + { + Condition: "kms:MessageType", + Description: "Filters access to the Sign and Verify operations based on the value of the MessageType parameter in the request", + Type: "String", + }, + { + Condition: "kms:MultiRegion", + Description: "Filters access to an API operation based on the MultiRegion property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", + Type: "Bool", + }, + { + Condition: "kms:MultiRegionKeyType", + Description: "Filters access to an API operation based on the MultiRegionKeyType property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", + Type: "String", + }, + { + Condition: "kms:PrimaryRegion", + Description: "Filters access to the UpdatePrimaryRegion operation based on the value of the PrimaryRegion parameter in the request", + Type: "String", + }, + { + Condition: "kms:ReEncryptOnSameKey", + Description: "Filters access to the ReEncrypt operation when it uses the same AWS KMS key that was used for the Encrypt operation", + Type: "Bool", + }, + { + Condition: "kms:RecipientAttestation:ImageSha384", + Description: "Filters access to the API operations based on the image hash in the attestation document in the request", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR0", + Description: "Filters access by the platform configuration register (PCR) 0 in the attestation document. PCR0 is a contiguous measure of the contents of the enclave image file, without the section data", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR1", + Description: "Filters access by the platform configuration register (PCR) 1 in the attestation document. PCR1 is a contiguous measurement of the Linux kernel and bootstrap data", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR10", + Description: "Filters access by the platform configuration register (PCR) 10 in the attestation document in the request. PCR10 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR11", + Description: "Filters access by the platform configuration register (PCR) 11 in the attestation document in the request. PCR11 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR12", + Description: "Filters access by the platform configuration register (PCR) 12 in the attestation document in the request. PCR12 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR13", + Description: "Filters access by the platform configuration register (PCR) 13 in the attestation document in the request. PCR13 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR14", + Description: "Filters access by the platform configuration register (PCR) 14 in the attestation document in the request. PCR14 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR15", + Description: "Filters access by the platform configuration register (PCR) 15 in the attestation document in the request. PCR15 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR16", + Description: "Filters access by the platform configuration register (PCR) 16 in the attestation document in the request. PCR16 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR17", + Description: "Filters access by the platform configuration register (PCR) 17 in the attestation document in the request. PCR17 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR18", + Description: "Filters access by the platform configuration register (PCR) 18 in the attestation document in the request. PCR18 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR19", + Description: "Filters access by the platform configuration register (PCR) 19 in the attestation document in the request. PCR19 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR2", + Description: "Filters access by the platform configuration register (PCR) 2 in the attestation document. PCR2 is a contiguous, in-order measurement of the user applications, without the boot ramfs", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR20", + Description: "Filters access by the platform configuration register (PCR) 20 in the attestation document in the request. PCR20 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR21", + Description: "Filters access by the platform configuration register (PCR) 21 in the attestation document in the request. PCR21 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR22", + Description: "Filters access by the platform configuration register (PCR) 22 in the attestation document in the request. PCR22 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR23", + Description: "Filters access by the platform configuration register (PCR) 23 in the attestation document in the request. PCR23 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR24", + Description: "Filters access by the platform configuration register (PCR) 24 in the attestation document in the request. PCR24 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR25", + Description: "Filters access by the platform configuration register (PCR) 25 in the attestation document in the request. PCR25 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR26", + Description: "Filters access by the platform configuration register (PCR) 26 in the attestation document in the request. PCR26 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR27", + Description: "Filters access by the platform configuration register (PCR) 27 in the attestation document in the request. PCR27 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR28", + Description: "Filters access by the platform configuration register (PCR) 28 in the attestation document in the request. PCR28 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR29", + Description: "Filters access by the platform configuration register (PCR) 29 in the attestation document in the request. PCR29 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR3", + Description: "Filters access by the platform configuration register (PCR) 3 in the attestation document. PCR3 is a contiguous measurement of the IAM role assigned to the parent instance", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR30", + Description: "Filters access by the platform configuration register (PCR) 30 in the attestation document in the request. PCR30 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR31", + Description: "Filters access by the platform configuration register (PCR) 31 in the attestation document in the request. PCR31 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR4", + Description: "Filters access by the platform configuration register (PCR) 4 in the attestation document. PCR4 is a contiguous measurement of the ID of the parent instance", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR5", + Description: "Filters access by the platform configuration register (PCR) 5 in the attestation document in the request. PCR5 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR6", + Description: "Filters access by the platform configuration register (PCR) 6 in the attestation document in the request. PCR6 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR7", + Description: "Filters access by platform configuration register (PCR) 7 in the attestation document in the request. PCR7 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR8", + Description: "Filters access by the platform configuration register (PCR) 8 in the attestation document. PCR8 is a measure of the signing certificate specified for the enclave image file", + Type: "String", + }, + { + Condition: "kms:RecipientAttestation:PCR9", + Description: "Filters access by the platform configuration register (PCR) 9 in the attestation document in the request. PCR9 is a custom PCR that can be defined by the user for specific use cases", + Type: "String", + }, + { + Condition: "kms:ReplicaRegion", + Description: "Filters access to the ReplicateKey operation based on the value of the ReplicaRegion parameter in the request", + Type: "String", + }, + { + Condition: "kms:RequestAlias", + Description: "Filters access to cryptographic operations, DescribeKey, and GetPublicKey based on the alias in the request", + Type: "String", + }, + { + Condition: "kms:ResourceAliases", + Description: "Filters access to specified AWS KMS operations based on aliases associated with the AWS KMS key", + Type: "ArrayOfString", + }, + { + Condition: "kms:RetiringPrincipal", + Description: "Filters access to the CreateGrant operation based on the retiring principal in the grant", + Type: "String", + }, + { + Condition: "kms:RotationPeriodInDays", + Description: "Filters access to the EnableKeyRotation operation based on the value of the RotationPeriodInDays parameter in the request", + Type: "Numeric", + }, + { + Condition: "kms:ScheduleKeyDeletionPendingWindowInDays", + Description: "Filters access to the ScheduleKeyDeletion operation based on the value of the PendingWindowInDays parameter in the request", + Type: "Numeric", + }, + { + Condition: "kms:SigningAlgorithm", + Description: "Filters access to the Sign and Verify operations based on the signing algorithm in the request", + Type: "String", + }, + { + Condition: "kms:ValidTo", + Description: "Filters access to the ImportKeyMaterial operation based on the value of the ValidTo parameter in the request. You can use this condition key to allow users to import key material only when it expires by the specified date", + Type: "Date", + }, + { + Condition: "kms:ViaService", + Description: "Filters access when a request made on the principal's behalf comes from a specified AWS service", + Type: "String", + }, + { + Condition: "kms:WrappingAlgorithm", + Description: "Filters access to the GetParametersForImport operation based on the value of the WrappingAlgorithm parameter in the request", + Type: "String", + }, + { + Condition: "kms:WrappingKeySpec", + Description: "Filters access to the GetParametersForImport operation based on the value of the WrappingKeySpec parameter in the request", + Type: "String", + }, + }, + Prefix: "kms", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Controls permission to cancel the scheduled deletion of an AWS KMS key", + Privilege: "CancelKeyDeletion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list managed job templates", - Privilege: "ListManagedJobTemplates", + AccessLevel: "Write", + Description: "Controls permission to connect or reconnect a custom key store to its associated AWS CloudHSM cluster or external key manager outside of AWS", + Privilege: "ConnectCustomKeyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permissions to list the metric values for a thing based on the metricName, and dimension if specified", - Privilege: "ListMetricValues", + AccessLevel: "Write", + Description: "Controls permission to create an alias for an AWS KMS key. Aliases are optional friendly names that you can associate with KMS keys", + Privilege: "CreateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "alias*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of all mitigation actions that match the specified filter criteria", - Privilege: "ListMitigationActions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all named shadows for a given thing", - Privilege: "ListNamedShadowsForThing", + AccessLevel: "Write", + Description: "Controls permission to create a custom key store that is backed by an AWS CloudHSM cluster or an external key manager outside of AWS", + Privilege: "CreateCustomKeyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "thing*", + ConditionKeys: []string{ + "kms:CallerAccount", + }, + DependentActions: []string{ + "cloudhsm:DescribeClusters", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list OTA update jobs in the account", - Privilege: "ListOTAUpdates", + AccessLevel: "Permissions management", + Description: "Controls permission to add a grant to an AWS KMS key. You can use grants to add permissions without changing the key policy or IAM policy", + Privilege: "CreateGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:GrantConstraintType", + "kms:GranteePrincipal", + "kms:GrantIsForAWSResource", + "kms:GrantOperations", + "kms:RetiringPrincipal", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list certificates that are being transfered but not yet accepted", - Privilege: "ListOutgoingCertificates", + AccessLevel: "Write", + Description: "Controls permission to create an AWS KMS key that can be used to protect data keys and other sensitive information", + Privilege: "CreateKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "kms:BypassPolicyLockoutSafetyCheck", + "kms:CallerAccount", + "kms:KeySpec", + "kms:KeyUsage", + "kms:KeyOrigin", + "kms:MultiRegion", + "kms:MultiRegionKeyType", + "kms:ViaService", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "kms:PutKeyPolicy", + "kms:TagResource", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to decrypt ciphertext that was encrypted under an AWS KMS key", + Privilege: "Decrypt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:RecipientAttestation:ImageSha384", + "kms:RecipientAttestation:PCR0", + "kms:RecipientAttestation:PCR1", + "kms:RecipientAttestation:PCR2", + "kms:RecipientAttestation:PCR3", + "kms:RecipientAttestation:PCR4", + "kms:RecipientAttestation:PCR5", + "kms:RecipientAttestation:PCR6", + "kms:RecipientAttestation:PCR7", + "kms:RecipientAttestation:PCR8", + "kms:RecipientAttestation:PCR9", + "kms:RecipientAttestation:PCR10", + "kms:RecipientAttestation:PCR11", + "kms:RecipientAttestation:PCR12", + "kms:RecipientAttestation:PCR13", + "kms:RecipientAttestation:PCR14", + "kms:RecipientAttestation:PCR15", + "kms:RecipientAttestation:PCR16", + "kms:RecipientAttestation:PCR17", + "kms:RecipientAttestation:PCR18", + "kms:RecipientAttestation:PCR19", + "kms:RecipientAttestation:PCR20", + "kms:RecipientAttestation:PCR21", + "kms:RecipientAttestation:PCR22", + "kms:RecipientAttestation:PCR23", + "kms:RecipientAttestation:PCR24", + "kms:RecipientAttestation:PCR25", + "kms:RecipientAttestation:PCR26", + "kms:RecipientAttestation:PCR27", + "kms:RecipientAttestation:PCR28", + "kms:RecipientAttestation:PCR29", + "kms:RecipientAttestation:PCR30", + "kms:RecipientAttestation:PCR31", + "kms:RequestAlias", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list versions for a package in the account", - Privilege: "ListPackageVersions", + AccessLevel: "Write", + Description: "Controls permission to delete an alias. Aliases are optional friendly names that you can associate with AWS KMS keys", + Privilege: "DeleteAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alias*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list packages in the account", - Privilege: "ListPackages", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list your policies", - Privilege: "ListPolicies", + AccessLevel: "Write", + Description: "Controls permission to delete a custom key store", + Privilege: "DeleteCustomKeyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the principals associated with the specified policy", - Privilege: "ListPolicyPrincipals", + AccessLevel: "Write", + Description: "Controls permission to delete cryptographic material that you imported into an AWS KMS key. This action makes the key unusable", + Privilege: "DeleteImportedKeyMaterial", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the versions of the specified policy, and identifies the default version", - Privilege: "ListPolicyVersions", + AccessLevel: "Write", + Description: "Controls permission to use the specified AWS KMS key to derive shared secrets", + Privilege: "DeriveSharedSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the policies attached to the specified principal. If you use an Amazon Cognito identity, the ID needs to be in Amazon Cognito Identity format", - Privilege: "ListPrincipalPolicies", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:KeyAgreementAlgorithm", + "kms:RecipientAttestation:ImageSha384", + "kms:RecipientAttestation:PCR0", + "kms:RecipientAttestation:PCR1", + "kms:RecipientAttestation:PCR2", + "kms:RecipientAttestation:PCR3", + "kms:RecipientAttestation:PCR4", + "kms:RecipientAttestation:PCR5", + "kms:RecipientAttestation:PCR6", + "kms:RecipientAttestation:PCR7", + "kms:RecipientAttestation:PCR8", + "kms:RecipientAttestation:PCR9", + "kms:RecipientAttestation:PCR10", + "kms:RecipientAttestation:PCR11", + "kms:RecipientAttestation:PCR12", + "kms:RecipientAttestation:PCR13", + "kms:RecipientAttestation:PCR14", + "kms:RecipientAttestation:PCR15", + "kms:RecipientAttestation:PCR16", + "kms:RecipientAttestation:PCR17", + "kms:RecipientAttestation:PCR18", + "kms:RecipientAttestation:PCR19", + "kms:RecipientAttestation:PCR20", + "kms:RecipientAttestation:PCR21", + "kms:RecipientAttestation:PCR22", + "kms:RecipientAttestation:PCR23", + "kms:RecipientAttestation:PCR24", + "kms:RecipientAttestation:PCR25", + "kms:RecipientAttestation:PCR26", + "kms:RecipientAttestation:PCR27", + "kms:RecipientAttestation:PCR28", + "kms:RecipientAttestation:PCR29", + "kms:RecipientAttestation:PCR30", + "kms:RecipientAttestation:PCR31", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the things associated with the specified principal", - Privilege: "ListPrincipalThings", + AccessLevel: "Read", + Description: "Controls permission to view detailed information about custom key stores in the account and region", + Privilege: "DescribeCustomKeyStores", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of fleet provisioning template versions", - Privilege: "ListProvisioningTemplateVersions", + AccessLevel: "Read", + Description: "Controls permission to view detailed information about an AWS KMS key", + Privilege: "DescribeKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate*", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the fleet provisioning templates in your AWS account", - Privilege: "ListProvisioningTemplates", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list related resources for a single audit finding", - Privilege: "ListRelatedResourcesForAuditFinding", + AccessLevel: "Write", + Description: "Controls permission to disable an AWS KMS key, which prevents it from being used in cryptographic operations", + Privilege: "DisableKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the retained messages for your account", - Privilege: "ListRetainedMessages", + AccessLevel: "Write", + Description: "Controls permission to disable automatic rotation of a customer managed AWS KMS key", + Privilege: "DisableKeyRotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list role aliases", - Privilege: "ListRoleAliases", + AccessLevel: "Write", + Description: "Controls permission to disconnect the custom key store from its associated AWS CloudHSM cluster or external key manager outside of AWS", + Privilege: "DisconnectCustomKeyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of your scheduled audits", - Privilege: "ListScheduledAudits", + AccessLevel: "Write", + Description: "Controls permission to change the state of an AWS KMS key to enabled. This allows the KMS key to be used in cryptographic operations", + Privilege: "EnableKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Device Defender security profiles you have created", - Privilege: "ListSecurityProfiles", + AccessLevel: "Write", + Description: "Controls permission to enable automatic rotation of the cryptographic material in an AWS KMS key", + Privilege: "EnableKeyRotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custommetric", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:RotationPeriodInDays", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Device Defender security profiles attached to a target", - Privilege: "ListSecurityProfilesForTarget", + AccessLevel: "Write", + Description: "Controls permission to use the specified AWS KMS key to encrypt data and data keys", + Privilege: "Encrypt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the streams in your account", - Privilege: "ListStreams", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags for a given resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Controls permission to use the AWS KMS key to generate data keys. You can use the data keys to encrypt data outside of AWS KMS", + Privilege: "GenerateDataKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "billinggroup", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:RecipientAttestation:ImageSha384", + "kms:RecipientAttestation:PCR0", + "kms:RecipientAttestation:PCR1", + "kms:RecipientAttestation:PCR2", + "kms:RecipientAttestation:PCR3", + "kms:RecipientAttestation:PCR4", + "kms:RecipientAttestation:PCR5", + "kms:RecipientAttestation:PCR6", + "kms:RecipientAttestation:PCR7", + "kms:RecipientAttestation:PCR8", + "kms:RecipientAttestation:PCR9", + "kms:RecipientAttestation:PCR10", + "kms:RecipientAttestation:PCR11", + "kms:RecipientAttestation:PCR12", + "kms:RecipientAttestation:PCR13", + "kms:RecipientAttestation:PCR14", + "kms:RecipientAttestation:PCR15", + "kms:RecipientAttestation:PCR16", + "kms:RecipientAttestation:PCR17", + "kms:RecipientAttestation:PCR18", + "kms:RecipientAttestation:PCR19", + "kms:RecipientAttestation:PCR20", + "kms:RecipientAttestation:PCR21", + "kms:RecipientAttestation:PCR22", + "kms:RecipientAttestation:PCR23", + "kms:RecipientAttestation:PCR24", + "kms:RecipientAttestation:PCR25", + "kms:RecipientAttestation:PCR26", + "kms:RecipientAttestation:PCR27", + "kms:RecipientAttestation:PCR28", + "kms:RecipientAttestation:PCR29", + "kms:RecipientAttestation:PCR30", + "kms:RecipientAttestation:PCR31", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "cacert", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to use the AWS KMS key to generate data key pairs", + Privilege: "GenerateDataKeyPair", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificateprovider", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:DataKeyPairSpec", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:RecipientAttestation:ImageSha384", + "kms:RecipientAttestation:PCR0", + "kms:RecipientAttestation:PCR1", + "kms:RecipientAttestation:PCR2", + "kms:RecipientAttestation:PCR3", + "kms:RecipientAttestation:PCR4", + "kms:RecipientAttestation:PCR5", + "kms:RecipientAttestation:PCR6", + "kms:RecipientAttestation:PCR7", + "kms:RecipientAttestation:PCR8", + "kms:RecipientAttestation:PCR9", + "kms:RecipientAttestation:PCR10", + "kms:RecipientAttestation:PCR11", + "kms:RecipientAttestation:PCR12", + "kms:RecipientAttestation:PCR13", + "kms:RecipientAttestation:PCR14", + "kms:RecipientAttestation:PCR15", + "kms:RecipientAttestation:PCR16", + "kms:RecipientAttestation:PCR17", + "kms:RecipientAttestation:PCR18", + "kms:RecipientAttestation:PCR19", + "kms:RecipientAttestation:PCR20", + "kms:RecipientAttestation:PCR21", + "kms:RecipientAttestation:PCR22", + "kms:RecipientAttestation:PCR23", + "kms:RecipientAttestation:PCR24", + "kms:RecipientAttestation:PCR25", + "kms:RecipientAttestation:PCR26", + "kms:RecipientAttestation:PCR27", + "kms:RecipientAttestation:PCR28", + "kms:RecipientAttestation:PCR29", + "kms:RecipientAttestation:PCR30", + "kms:RecipientAttestation:PCR31", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "custommetric", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to use the AWS KMS key to generate data key pairs. Unlike the GenerateDataKeyPair operation, this operation returns an encrypted private key without a plaintext copy", + Privilege: "GenerateDataKeyPairWithoutPlaintext", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:DataKeyPairSpec", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "domainconfiguration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to use the AWS KMS key to generate a data key. Unlike the GenerateDataKey operation, this operation returns an encrypted data key without a plaintext version of the data key", + Privilege: "GenerateDataKeyWithoutPlaintext", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dynamicthinggroup", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "fleetmetric", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to use the AWS KMS key to generate message authentication codes", + Privilege: "GenerateMac", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:MacAlgorithm", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "jobtemplate", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to get a cryptographically secure random byte string from AWS KMS", + Privilege: "GenerateRandom", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:RecipientAttestation:ImageSha384", + "kms:RecipientAttestation:PCR0", + "kms:RecipientAttestation:PCR1", + "kms:RecipientAttestation:PCR2", + "kms:RecipientAttestation:PCR3", + "kms:RecipientAttestation:PCR4", + "kms:RecipientAttestation:PCR5", + "kms:RecipientAttestation:PCR6", + "kms:RecipientAttestation:PCR7", + "kms:RecipientAttestation:PCR8", + "kms:RecipientAttestation:PCR9", + "kms:RecipientAttestation:PCR10", + "kms:RecipientAttestation:PCR11", + "kms:RecipientAttestation:PCR12", + "kms:RecipientAttestation:PCR13", + "kms:RecipientAttestation:PCR14", + "kms:RecipientAttestation:PCR15", + "kms:RecipientAttestation:PCR16", + "kms:RecipientAttestation:PCR17", + "kms:RecipientAttestation:PCR18", + "kms:RecipientAttestation:PCR19", + "kms:RecipientAttestation:PCR20", + "kms:RecipientAttestation:PCR21", + "kms:RecipientAttestation:PCR22", + "kms:RecipientAttestation:PCR23", + "kms:RecipientAttestation:PCR24", + "kms:RecipientAttestation:PCR25", + "kms:RecipientAttestation:PCR26", + "kms:RecipientAttestation:PCR27", + "kms:RecipientAttestation:PCR28", + "kms:RecipientAttestation:PCR29", + "kms:RecipientAttestation:PCR30", + "kms:RecipientAttestation:PCR31", + }, DependentActions: []string{}, - ResourceType: "mitigationaction", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Controls permission to view the key policy for the specified AWS KMS key", + Privilege: "GetKeyPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "otaupdate", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "policy", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Controls permission to view the key rotation status for an AWS KMS key", + Privilege: "GetKeyRotationStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "rolealias", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Controls permission to get data that is required to import cryptographic material into a customer managed key, including a public key and import token", + Privilege: "GetParametersForImport", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + "kms:WrappingAlgorithm", + "kms:WrappingKeySpec", + }, DependentActions: []string{}, - ResourceType: "scheduledaudit", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Controls permission to download the public key of an asymmetric AWS KMS key", + Privilege: "GetPublicKey", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:RequestAlias", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "stream", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Controls permission to import cryptographic material into an AWS KMS key", + Privilege: "ImportKeyMaterial", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ExpirationModel", + "kms:ValidTo", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "thingtype", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list targets for the specified policy", - Privilege: "ListTargetsForPolicy", + Description: "Controls permission to view the aliases that are defined in the account. Aliases are optional friendly names that you can associate with AWS KMS keys", + Privilege: "ListAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the targets associated with a given Device Defender security profile", - Privilege: "ListTargetsForSecurityProfile", + Description: "Controls permission to view all grants for an AWS KMS key", + Privilege: "ListGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile*", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all thing groups", - Privilege: "ListThingGroups", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:GrantIsForAWSResource", + "kms:ViaService", + }, DependentActions: []string{}, ResourceType: "", }, @@ -148880,23 +191762,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list thing groups to which the specified thing belongs", - Privilege: "ListThingGroupsForThing", + Description: "Controls permission to view the names of key policies for an AWS KMS key", + Privilege: "ListKeyPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the principals associated with the specified thing", - Privilege: "ListThingPrincipals", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, DependentActions: []string{}, ResourceType: "", }, @@ -148904,20 +191782,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list information about bulk thing registration tasks", - Privilege: "ListThingRegistrationTaskReports", + Description: "Controls permission to view the list of completed key rotations for an AWS KMS key", + Privilege: "ListKeyRotations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list bulk thing registration tasks", - Privilege: "ListThingRegistrationTasks", + Description: "Controls permission to view the key ID and Amazon Resource Name (ARN) of all AWS KMS keys in the account", + Privilege: "ListKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -148928,20 +191814,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all thing types", - Privilege: "ListThingTypes", + Description: "Controls permission to view all tags that are attached to an AWS KMS key", + Privilege: "ListResourceTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all things", - Privilege: "ListThings", + Description: "Controls permission to view grants in which the specified principal is the retiring principal. Other principals might be able to retire the grant and this principal might be able to retire other grants", + Privilege: "ListRetirableGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -148951,105 +191845,160 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all things in the specified billing group", - Privilege: "ListThingsInBillingGroup", + AccessLevel: "Permissions management", + Description: "Controls permission to replace the key policy for the specified AWS KMS key", + Privilege: "PutKeyPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all things in the specified thing group", - Privilege: "ListThingsInThingGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:BypassPolicyLockoutSafetyCheck", + "kms:CallerAccount", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all TopicRuleDestinations", - Privilege: "ListTopicRuleDestinations", + AccessLevel: "Write", + Description: "Controls permission to decrypt data as part of the process that decrypts and reencrypts the data within AWS KMS", + Privilege: "ReEncryptFrom", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:ReEncryptOnSameKey", + "kms:RequestAlias", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the rules for the specific topic", - Privilege: "ListTopicRules", + AccessLevel: "Write", + Description: "Controls permission to encrypt data as part of the process that decrypts and reencrypts the data within AWS KMS", + Privilege: "ReEncryptTo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionAlgorithm", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:ReEncryptOnSameKey", + "kms:RequestAlias", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tunnels", - Privilege: "ListTunnels", + AccessLevel: "Write", + Description: "Controls permission to replicate a multi-Region primary key", + Privilege: "ReplicateKey", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "kms:CreateKey", + "kms:PutKeyPolicy", + "kms:TagResource", + }, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ReplicaRegion", + "kms:ViaService", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the v2 logging levels", - Privilege: "ListV2LoggingLevels", + AccessLevel: "Permissions management", + Description: "Controls permission to retire a grant. The RetireGrant operation is typically called by the grant user after they complete the tasks that the grant allowed them to perform", + Privilege: "RetireGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:EncryptionContext:${EncryptionContextKey}", + "kms:EncryptionContextKeys", + "kms:GrantConstraintType", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Device Defender security profile violations discovered during the given time period", - Privilege: "ListViolationEvents", + AccessLevel: "Permissions management", + Description: "Controls permission to revoke a grant, which denies permission for all operations that depend on the grant", + Privilege: "RevokeGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:GrantIsForAWSResource", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "thing", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to open a tunnel", - Privilege: "OpenTunnel", + Description: "Controls permission to invoke on-demand rotation of the cryptographic material in an AWS KMS key", + Privilege: "RotateKeyOnDemand", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "iot:ThingGroupArn", - "iot:TunnelDestinationService", + "kms:CallerAccount", + "kms:ViaService", }, DependentActions: []string{}, ResourceType: "", @@ -149058,224 +192007,301 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to publish to the specified topic", - Privilege: "Publish", + Description: "Controls permission to schedule deletion of an AWS KMS key", + Privilege: "ScheduleKeyDeletion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ScheduleKeyDeletionPendingWindowInDays", + "kms:ViaService", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put verification state on a violation", - Privilege: "PutVerificationStateOnViolation", + Description: "Controls permission to produce a digital signature for a message", + Privilege: "Sign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:MessageType", + "kms:RequestAlias", + "kms:SigningAlgorithm", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to receive from the specified topic", - Privilege: "Receive", + Description: "Controls access to internal APIs that synchronize multi-Region keys", + Privilege: "SynchronizeMultiRegionKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "key*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a CA certificate with AWS IoT", - Privilege: "RegisterCACertificate", + AccessLevel: "Tagging", + Description: "Controls permission to create or update tags that are attached to an AWS KMS key", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "kms:CallerAccount", + "kms:ViaService", }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a device certificate with AWS IoT", - Privilege: "RegisterCertificate", + AccessLevel: "Tagging", + Description: "Controls permission to delete tags that are attached to an AWS KMS key", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a device certificate with AWS IoT without a registered CA (certificate authority)", - Privilege: "RegisterCertificateWithoutCA", + Description: "Controls permission to associate an alias with a different AWS KMS key. An alias is an optional friendly name that you can associate with a KMS key", + Privilege: "UpdateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alias*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register your thing", - Privilege: "RegisterThing", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject a pending certificate transfer", - Privilege: "RejectCertificateTransfer", + Description: "Controls permission to change the properties of a custom key store", + Privilege: "UpdateCustomKeyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + }, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove thing from the specified billing group", - Privilege: "RemoveThingFromBillingGroup", + Description: "Controls permission to delete or change the description of an AWS KMS key", + Privilege: "UpdateKeyDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove thing from the specified thing group", - Privilege: "RemoveThingFromThingGroup", + Description: "Controls permission to update the primary Region of a multi-Region primary key", + Privilege: "UpdatePrimaryRegion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "key*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:PrimaryRegion", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to replace the specified rule", - Privilege: "ReplaceTopicRule", + Description: "Controls permission to use the specified AWS KMS key to verify digital signatures", + Privilege: "Verify", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "key*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to publish a retained message to the specified topic", - Privilege: "RetainPublish", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "kms:CallerAccount", + "kms:MessageType", + "kms:RequestAlias", + "kms:SigningAlgorithm", + "kms:ViaService", + }, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to rotate the access token of a tunnel", - Privilege: "RotateTunnelAccessToken", + Description: "Controls permission to use the AWS KMS key to verify message authentication codes", + Privilege: "VerifyMac", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tunnel*", + ResourceType: "key*", }, { ConditionKeys: []string{ - "iot:ThingGroupArn", - "iot:TunnelDestinationService", - "iot:ClientMode", + "kms:CallerAccount", + "kms:MacAlgorithm", + "kms:RequestAlias", + "kms:ViaService", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to search IoT fleet index", - Privilege: "SearchIndex", + Arn: "arn:${Partition}:kms:${Region}:${Account}:alias/${Alias}", + ConditionKeys: []string{}, + Resource: "alias", + }, + { + Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "kms:KeyOrigin", + "kms:KeySpec", + "kms:KeyUsage", + "kms:MultiRegion", + "kms:MultiRegionKeyType", + "kms:ResourceAliases", + }, + Resource: "key", + }, + }, + ServiceName: "AWS Key Management Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "lakeformation:EnabledOnlyForMetaDataAccess", + Description: "Filters access by the presence of the key configured for role's identity-based policy", + Type: "Bool", + }, + }, + Prefix: "lakeformation", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Grants permission to attach Lake Formation tags to catalog resources", + Privilege: "AddLFTagsToResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to set the default authorizer. This will be used if a websocket connection is made without specifying an authorizer", - Privilege: "SetDefaultAuthorizer", + Description: "Grants permission to data lake permissions to one or more principals in a batch", + Privilege: "BatchGrantPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer*", + ResourceType: "", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to set the specified version of the specified policy as the policy's default (operative) version", - Privilege: "SetDefaultPolicyVersion", + Description: "Grants permission to revoke data lake permissions from one or more principals in a batch", + Privilege: "BatchRevokePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the logging options", - Privilege: "SetLoggingOptions", + Description: "Grants permission to cancel the given transaction", + Privilege: "CancelTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149286,8 +192312,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to set the v2 logging level", - Privilege: "SetV2LoggingLevel", + Description: "Grants permission to commit the given transaction", + Privilege: "CommitTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149298,8 +192324,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to set the v2 logging options", - Privilege: "SetV2LoggingOptions", + Description: "Grants permission to create a Lake Formation data cell filter", + Privilege: "CreateDataCellsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149310,8 +192336,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a task that applies a set of mitigation actions to the specified target", - Privilege: "StartAuditMitigationActionsTask", + Description: "Grants permission to create a Lake Formation tag", + Privilege: "CreateLFTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149322,20 +192348,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a Device Defender ML Detect mitigation actions task", - Privilege: "StartDetectMitigationActionsTask", + Description: "Grants permission to create a Lake Formation tag expression", + Privilege: "CreateLFTagExpression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an on-demand Device Defender audit", - Privilege: "StartOnDemandAuditTask", + Description: "Grants permission to create an IAM Identity Center connection with Lake Formation to allow IAM Identity Center users and groups to access Data Catalog resources", + Privilege: "CreateLakeFormationIdentityCenterConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149346,8 +192372,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a bulk thing registration task", - Privilege: "StartThingRegistrationTask", + Description: "Grants permission to enforce Lake Formation permissions for the given databases, tables, and principals", + Privilege: "CreateLakeFormationOptIn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149358,8 +192384,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop a bulk thing registration task", - Privilege: "StopThingRegistrationTask", + Description: "Grants permission to delete a Lake Formation data cell filter", + Privilege: "DeleteDataCellsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149370,325 +192396,427 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to subscribe to the specified TopicFilter", - Privilege: "Subscribe", + Description: "Grants permission to delete a Lake Formation tag", + Privilege: "DeleteLFTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topicfilter*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a Lake Formation expression", + Privilege: "DeleteLFTagExpression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "billinggroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cacert", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "certificateprovider", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "custommetric", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dimension", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domainconfiguration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dynamicthinggroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleetmetric", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "jobtemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mitigationaction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "otaupdate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "package", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "packageversion", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "provisioningtemplate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rolealias", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an IAM Identity Center connection with Lake Formation", + Privilege: "DeleteLakeFormationIdentityCenterConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scheduledaudit", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the Lake Formation permissions enforcement of the given databases, tables, and principals", + Privilege: "DeleteLakeFormationOptIn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified objects if the transaction is canceled", + Privilege: "DeleteObjectsOnCancel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister a registered location", + Privilege: "DeregisterResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the IAM Identity Center connection with Lake Formation", + Privilege: "DescribeLakeFormationIdentityCenterConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingtype", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to test the policies evaluation for group policies", - Privilege: "TestAuthorization", + Description: "Grants permission to describe a registered location", + Privilege: "DescribeResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to test invoke the specified custom authorizer for testing purposes", - Privilege: "TestInvokeAuthorizer", + Description: "Grants permission to get status of the given transaction", + Privilege: "DescribeTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to transfer the specified certificate to the specified AWS account", - Privilege: "TransferCertificate", + Description: "Grants permission to extend the timeout of the given transaction", + Privilege: "ExtendTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to virtual data lake access", + Privilege: "GetDataAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "lakeformation:EnabledOnlyForMetaDataAccess", + }, DependentActions: []string{}, - ResourceType: "authorizer", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a Lake Formation data cell filter", + Privilege: "GetDataCellsFilter", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the identity of the invoking principal", + Privilege: "GetDataLakePrincipal", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cacert", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve data lake settings such as the list of data lake administrators and database and table default permissions", + Privilege: "GetDataLakeSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificateprovider", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve permissions attached to resources in the given path", + Privilege: "GetEffectivePermissionsForPath", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custommetric", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a Lake Formation tag", + Privilege: "GetLFTag", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a Lake Formation tag expression", + Privilege: "GetLFTagExpression", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domainconfiguration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the state of the given query", + Privilege: "GetQueryState", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dynamicthinggroup", + ConditionKeys: []string{}, + DependentActions: []string{ + "lakeformation:StartQueryPlanning", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the statistics for the given query", + Privilege: "GetQueryStatistics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleetmetric", + ConditionKeys: []string{}, + DependentActions: []string{ + "lakeformation:StartQueryPlanning", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve lakeformation tags on a catalog resource", + Privilege: "GetResourceLFTags", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve objects from a table", + Privilege: "GetTableObjects", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "jobtemplate", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the results for the given work units", + Privilege: "GetWorkUnitResults", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mitigationaction", + ConditionKeys: []string{}, + DependentActions: []string{ + "lakeformation:GetWorkUnits", + "lakeformation:StartQueryPlanning", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the work units for the given query", + Privilege: "GetWorkUnits", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "otaupdate", + ConditionKeys: []string{}, + DependentActions: []string{ + "lakeformation:StartQueryPlanning", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to data lake permissions to a principal", + Privilege: "GrantPermissions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cell filters", + Privilege: "ListDataCellsFilter", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packageversion", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list Lake Foramtion tag expressions", + Privilege: "ListLFTagExpressions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list Lake Formation tags", + Privilege: "ListLFTags", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "provisioningtemplate", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the current list of resources and principals that are opt in to enforce Lake Formation permissions", + Privilege: "ListLakeFormationOptIns", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rolealias", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list permissions filtered by principal or resource", + Privilege: "ListPermissions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to List registered locations", + Privilege: "ListResources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scheduledaudit", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the storage optimizers for the Governed table", + Privilege: "ListTableStorageOptimizers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all transactions in the system", + Privilege: "ListTransactions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to overwrite data lake settings such as the list of data lake administrators and database and table default permissions", + Privilege: "PutDataLakeSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register a new location to be managed by Lake Formation", + Privilege: "RegisterResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thingtype", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configure or reconfigure the Device Defender audit settings for this account", - Privilege: "UpdateAccountAuditConfiguration", + Description: "Grants permission to register a new location to be managed by Lake Formation, with privileged access", + Privilege: "RegisterResourceWithPrivilegedAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149698,9 +192826,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Device Defender audit suppression", - Privilege: "UpdateAuditSuppression", + AccessLevel: "Tagging", + Description: "Grants permission to remove lakeformation tags from catalog resources", + Privilege: "RemoveLFTagsFromResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149710,119 +192838,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an authorizer", - Privilege: "UpdateAuthorizer", + AccessLevel: "Permissions management", + Description: "Grants permission to revoke data lake permissions from a principal", + Privilege: "RevokePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "authorizer*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information associated with the specified billing group", - Privilege: "UpdateBillingGroup", + AccessLevel: "Read", + Description: "Grants permission to list catalog databases with Lake Formation tags", + Privilege: "SearchDatabasesByLFTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "billinggroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a registered CA certificate", - Privilege: "UpdateCACertificate", + AccessLevel: "Read", + Description: "Grants permission to list catalog tables with Lake Formation tags", + Privilege: "SearchTablesByLFTags", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "cacert*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of the specified certificate. This operation is idempotent", - Privilege: "UpdateCertificate", + Description: "Grants permission to initiate the planning of the given query", + Privilege: "StartQueryPlanning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a certificate provider", - Privilege: "UpdateCertificateProvider", + Description: "Grants permission to start a new transaction", + Privilege: "StartTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "certificateprovider*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the specified custom metric", - Privilege: "UpdateCustomMetric", + Description: "Grants permission to update a Lake Formation data cell filter", + Privilege: "UpdateDataCellsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custommetric*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the definition for a dimension", - Privilege: "UpdateDimension", + Description: "Grants permission to update a Lake Formation tag", + Privilege: "UpdateLFTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a domain configuration", - Privilege: "UpdateDomainConfiguration", + Description: "Grants permission to update a Lake Formation expression", + Privilege: "UpdateLFTagExpression", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domainconfiguration*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Dynamic Thing Group", - Privilege: "UpdateDynamicThingGroup", + Description: "Grants permission to update the IAM Identity Center connection parameters", + Privilege: "UpdateLakeFormationIdentityCenterConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dynamicthinggroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update event configurations", - Privilege: "UpdateEventConfigurations", + Description: "Grants permission to update a registered location", + Privilege: "UpdateResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -149833,574 +192959,680 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a fleet metric", - Privilege: "UpdateFleetMetric", + Description: "Grants permission to add or delete the specified objects to or from a table", + Privilege: "UpdateTableObjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleetmetric*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of the storage optimizer for the Governed table", + Privilege: "UpdateTableStorageOptimizer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Lake Formation", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, { - AccessLevel: "Write", - Description: "Grants permission to update fleet indexing configuration", - Privilege: "UpdateIndexingConfiguration", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "lambda:CodeSigningConfigArn", + Description: "Filters access by the ARN of an AWS Lambda code signing config", + Type: "ARN", + }, + { + Condition: "lambda:EventSourceToken", + Description: "Filters access by the ID from a non-AWS event source configured for the AWS Lambda function", + Type: "String", + }, + { + Condition: "lambda:FunctionArn", + Description: "Filters access by the ARN of an AWS Lambda function", + Type: "ARN", + }, + { + Condition: "lambda:FunctionUrlAuthType", + Description: "Filters access by authorization type specified in request. Available during CreateFunctionUrlConfig, UpdateFunctionUrlConfig, DeleteFunctionUrlConfig, GetFunctionUrlConfig, ListFunctionUrlConfig, AddPermission and RemovePermission operations", + Type: "String", + }, + { + Condition: "lambda:Layer", + Description: "Filters access by the ARN of a version of an AWS Lambda layer", + Type: "ArrayOfString", + }, + { + Condition: "lambda:Principal", + Description: "Filters access by restricting the AWS service or account that can invoke a function", + Type: "String", + }, + { + Condition: "lambda:SecurityGroupIds", + Description: "Filters access by the ID of security groups configured for the AWS Lambda function", + Type: "ArrayOfString", + }, + { + Condition: "lambda:SourceFunctionArn", + Description: "Filters access by the ARN of the AWS Lambda function from which the request originated", + Type: "ARN", + }, + { + Condition: "lambda:SubnetIds", + Description: "Filters access by the ID of subnets configured for the AWS Lambda function", + Type: "ArrayOfString", + }, + { + Condition: "lambda:VpcIds", + Description: "Filters access by the ID of the VPC configured for the AWS Lambda function", + Type: "String", + }, + }, + Prefix: "lambda", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to add permissions to the resource-based policy of a version of an AWS Lambda layer", + Privilege: "AddLayerVersionPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "layerVersion*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a job", - Privilege: "UpdateJob", + AccessLevel: "Permissions management", + Description: "Grants permission to give an AWS service or another account permission to use an AWS Lambda function", + Privilege: "AddPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "function*", + }, + { + ConditionKeys: []string{ + "lambda:Principal", + "lambda:FunctionUrlAuthType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the definition for the specified mitigation action", - Privilege: "UpdateMitigationAction", + Description: "Grants permission to create an alias for a Lambda function version", + Privilege: "CreateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mitigationaction*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a package", - Privilege: "UpdatePackage", + Description: "Grants permission to create an AWS Lambda code signing config", + Privilege: "CreateCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:GetIndexingConfiguration", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "package*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the package configuration of the account", - Privilege: "UpdatePackageConfiguration", + Description: "Grants permission to create a mapping between an event source and an AWS Lambda function", + Privilege: "CreateEventSourceMapping", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{ + "lambda:FunctionArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the version of the specified package", - Privilege: "UpdatePackageVersion", + Description: "Grants permission to create an AWS Lambda function", + Privilege: "CreateFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iot:GetIndexingConfiguration", + "iam:PassRole", }, - ResourceType: "package*", + ResourceType: "function*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "lambda:Layer", + "lambda:VpcIds", + "lambda:SubnetIds", + "lambda:SecurityGroupIds", + "lambda:CodeSigningConfigArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "packageversion*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a fleet provisioning template", - Privilege: "UpdateProvisioningTemplate", + Description: "Grants permission to create a function url configuration for a Lambda function", + Privilege: "CreateFunctionUrlConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, + { + ConditionKeys: []string{ + "lambda:FunctionUrlAuthType", + "lambda:FunctionArn", }, - ResourceType: "provisioningtemplate*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the role alias", - Privilege: "UpdateRoleAlias", + Description: "Grants permission to delete an AWS Lambda function alias", + Privilege: "DeleteAlias", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "rolealias*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a scheduled audit, including what checks are performed and how often the audit takes place", - Privilege: "UpdateScheduledAudit", + Description: "Grants permission to delete an AWS Lambda code signing config", + Privilege: "DeleteCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scheduledaudit*", + ResourceType: "code signing config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Device Defender security profile", - Privilege: "UpdateSecurityProfile", + Description: "Grants permission to delete an AWS Lambda event source mapping", + Privilege: "DeleteEventSourceMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securityprofile*", + ResourceType: "eventSourceMapping*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "lambda:FunctionArn", + }, DependentActions: []string{}, - ResourceType: "custommetric", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Lambda function", + Privilege: "DeleteFunction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dimension", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the data for a stream", - Privilege: "UpdateStream", + Description: "Grants permission to detach a code signing config from an AWS Lambda function", + Privilege: "DeleteFunctionCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update information associated with the specified thing", - Privilege: "UpdateThing", + Description: "Grants permission to remove a concurrent execution limit from an AWS Lambda function", + Privilege: "DeleteFunctionConcurrency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update information associated with the specified thing group", - Privilege: "UpdateThingGroup", + Description: "Grants permission to delete the configuration for asynchronous invocation for an AWS Lambda function, version, or alias", + Privilege: "DeleteFunctionEventInvokeConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thinggroup*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the thing groups to which the thing belongs", - Privilege: "UpdateThingGroupsForThing", + Description: "Grants permission to delete function url configuration for a Lambda function", + Privilege: "DeleteFunctionUrlConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "function*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "lambda:FunctionUrlAuthType", + "lambda:FunctionArn", + }, DependentActions: []string{}, - ResourceType: "thinggroup", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the thing shadow", - Privilege: "UpdateThingShadow", + Description: "Grants permission to delete a version of an AWS Lambda layer", + Privilege: "DeleteLayerVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "layerVersion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a TopicRuleDestination", - Privilege: "UpdateTopicRuleDestination", + Description: "Grants permission to delete the provisioned concurrency configuration for an AWS Lambda function", + Privilege: "DeleteProvisionedConcurrencyConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "function alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function version", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to validate a Device Defender security profile behaviors specification", - Privilege: "ValidateSecurityProfileBehaviors", + AccessLevel: "Permissions management", + Description: "Grants permission to disable replication for a Lambda@Edge function", + Privilege: "DisableReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:client/${ClientId}", - ConditionKeys: []string{}, - Resource: "client", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:index/${IndexName}", - ConditionKeys: []string{}, - Resource: "index", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:fleetmetric/${FleetMetricName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "fleetmetric", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:job/${JobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "job", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:jobtemplate/${JobTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "jobtemplate", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:tunnel/${TunnelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "tunnel", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", - ConditionKeys: []string{}, - Resource: "thing", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thinggroup/${ThingGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "thinggroup", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:billinggroup/${BillingGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "billinggroup", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thinggroup/${ThingGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dynamicthinggroup", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thingtype/${ThingTypeName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "thingtype", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:topic/${TopicName}", - ConditionKeys: []string{}, - Resource: "topic", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:topicfilter/${TopicFilter}", - ConditionKeys: []string{}, - Resource: "topicfilter", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:rolealias/${RoleAlias}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rolealias", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:authorizer/${AuthorizerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "authorizer", - }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:policy/${PolicyName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Permissions management", + Description: "Grants permission to enable replication for a Lambda@Edge function", + Privilege: "EnableReplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "policy", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:cert/${Certificate}", - ConditionKeys: []string{}, - Resource: "cert", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:cacert/${CACertificate}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about an account's limits and usage in an AWS Region", + Privilege: "GetAccountSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "cacert", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:stream/${StreamId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Lambda function alias", + Privilege: "GetAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "stream", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:otaupdate/${OtaUpdateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Lambda code signing config", + Privilege: "GetCodeSigningConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "code signing config*", + }, }, - Resource: "otaupdate", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:scheduledaudit/${ScheduleName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Lambda event source mapping", + Privilege: "GetEventSourceMapping", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventSourceMapping*", + }, + { + ConditionKeys: []string{ + "lambda:FunctionArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "scheduledaudit", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:mitigationaction/${MitigationActionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Lambda function", + Privilege: "GetFunction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "mitigationaction", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:securityprofile/${SecurityProfileName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view the code signing config arn attached to an AWS Lambda function", + Privilege: "GetFunctionCodeSigningConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "securityprofile", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:custommetric/${MetricName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about the reserved concurrency configuration for a function", + Privilege: "GetFunctionConcurrency", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "custommetric", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:dimension/${DimensionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about the version-specific settings of an AWS Lambda function or version", + Privilege: "GetFunctionConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "dimension", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:rule/${RuleName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view the configuration for asynchronous invocation for a function, version, or alias", + Privilege: "GetFunctionEventInvokeConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "rule", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:destination/${DestinationType}/${Uuid}", - ConditionKeys: []string{}, - Resource: "destination", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:provisioningtemplate/${ProvisioningTemplate}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view the recursion configuration of an AWS Lambda function", + Privilege: "GetFunctionRecursionConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "provisioningtemplate", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:domainconfiguration/${DomainConfigurationName}/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to read function url configuration for a Lambda function", + Privilege: "GetFunctionUrlConfig", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, + { + ConditionKeys: []string{ + "lambda:FunctionUrlAuthType", + "lambda:FunctionArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "domainconfiguration", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:package/${PackageName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view details about a version of an AWS Lambda layer. Note this action also supports GetLayerVersionByArn API", + Privilege: "GetLayerVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "layerVersion*", + }, }, - Resource: "package", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:package/${PackageName}/version/${VersionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view the resource-based policy for a version of an AWS Lambda layer", + Privilege: "GetLayerVersionPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "layerVersion*", + }, }, - Resource: "packageversion", }, { - Arn: "arn:${Partition}:iot:${Region}:${Account}:certificateprovider/${CertificateProviderName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to view the resource-based policy for an AWS Lambda function, version, or alias", + Privilege: "GetPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, }, - Resource: "certificateprovider", }, - }, - ServiceName: "AWS IoT", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "iot-device-tester", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to IoT Device Tester to check if a given set of product, test suite and device tester version are compatible", - Privilege: "CheckVersion", + Description: "Grants permission to view the provisioned concurrency configuration for an AWS Lambda function's alias or version", + Privilege: "GetProvisionedConcurrencyConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function version", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to IoT Device Tester to download compatible test suite versions", - Privilege: "DownloadTestSuite", + Description: "Grants permission to view the runtime management configuration of an AWS Lambda function", + Privilege: "GetRuntimeManagementConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to IoT Device Tester to get information on latest version of device tester available", - Privilege: "LatestIdt", + AccessLevel: "Write", + Description: "Grants permission to invoke a function asynchronously (Deprecated)", + Privilege: "InvokeAsync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to IoT Device Tester to send usage metrics on your behalf", - Privilege: "SendMetrics", + Description: "Grants permission to invoke an AWS Lambda function", + Privilege: "InvokeFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "function*", + }, + { + ConditionKeys: []string{ + "lambda:EventSourceToken", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to IoT Device Tester to get list of supported products and test suite versions", - Privilege: "SupportedVersion", + AccessLevel: "Write", + Description: "Grants permission to invoke an AWS Lambda function through url", + Privilege: "InvokeFunctionUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "function*", + }, + { + ConditionKeys: []string{ + "lambda:FunctionUrlAuthType", + "lambda:FunctionArn", + "lambda:EventSourceToken", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS IoT Device Tester", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with the resource", - Type: "String", - }, { - Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", - Type: "ArrayOfString", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of aliases for an AWS Lambda function", + Privilege: "ListAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, + }, }, - }, - Prefix: "iot1click", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate a device to a placement", - Privilege: "AssociateDeviceWithPlacement", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of AWS Lambda code signing configs", + Privilege: "ListCodeSigningConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to claim a batch of devices with a claim code", - Privilege: "ClaimDevicesByClaimCode", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of AWS Lambda event source mappings", + Privilege: "ListEventSourceMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -150410,31 +193642,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new placement in a project", - Privilege: "CreatePlacement", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of configurations for asynchronous invocation for a function", + Privilege: "ListFunctionEventInvokeConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "function*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new project", - Privilege: "CreateProject", + AccessLevel: "List", + Description: "Grants permission to read function url configurations for a function", + Privilege: "ListFunctionUrlConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "function*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "lambda:FunctionUrlAuthType", }, DependentActions: []string{}, ResourceType: "", @@ -150442,224 +193673,263 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a placement from a project", - Privilege: "DeletePlacement", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of AWS Lambda functions, with the version-specific configuration of each function", + Privilege: "ListFunctions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of AWS Lambda functions by the code signing config assigned", + Privilege: "ListFunctionsByCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "code signing config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a device", - Privilege: "DescribeDevice", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of versions of an AWS Lambda layer", + Privilege: "ListLayerVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a placement", - Privilege: "DescribePlacement", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of AWS Lambda layers, with details about the latest version of each layer", + Privilege: "ListLayers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a project", - Privilege: "DescribeProject", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of provisioned concurrency configurations for an AWS Lambda function", + Privilege: "ListProvisionedConcurrencyConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "function*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a device from a placement", - Privilege: "DisassociateDeviceFromPlacement", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of tags for an AWS Lambda function, event source mapping or code signing configuration resource", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "code signing config", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventSourceMapping", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to finalize a device claim", - Privilege: "FinalizeDeviceClaim", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of versions for an AWS Lambda function", + Privilege: "ListVersionsByFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "function*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Lambda layer", + Privilege: "PublishLayerVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "layer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get available methods of a device", - Privilege: "GetDeviceMethods", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Lambda function version", + Privilege: "PublishVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "function*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get devices associated to a placement", - Privilege: "GetDevicesInPlacement", + AccessLevel: "Write", + Description: "Grants permission to attach a code signing config to an AWS Lambda function", + Privilege: "PutFunctionCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "code signing config*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function*", + }, + { + ConditionKeys: []string{ + "lambda:CodeSigningConfigArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to initialize a device claim", - Privilege: "InitiateDeviceClaim", + AccessLevel: "Write", + Description: "Grants permission to configure reserved concurrency for an AWS Lambda function", + Privilege: "PutFunctionConcurrency", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke a device method", - Privilege: "InvokeDeviceMethod", + Description: "Grants permission to configures options for asynchronous invocation on an AWS Lambda function, version, or alias", + Privilege: "PutFunctionEventInvokeConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "function*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list past events published by a device", - Privilege: "ListDeviceEvents", + AccessLevel: "Write", + Description: "Grants permission to update the recursion configuration of an AWS Lambda function", + Privilege: "PutFunctionRecursionConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "function*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all devices", - Privilege: "ListDevices", + AccessLevel: "Write", + Description: "Grants permission to configure provisioned concurrency for an AWS Lambda function's alias or version", + Privilege: "PutProvisionedConcurrencyConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function version", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list placements in a project", - Privilege: "ListPlacements", + AccessLevel: "Write", + Description: "Grants permission to update the runtime management configuration of an AWS Lambda function", + Privilege: "PutRuntimeManagementConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "function*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all projects", - Privilege: "ListProjects", + AccessLevel: "Permissions management", + Description: "Grants permission to remove a statement from the permissions policy for a version of an AWS Lambda layer", + Privilege: "RemoveLayerVersionPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "layerVersion*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists the tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Permissions management", + Description: "Grants permission to revoke function-use permission from an AWS service or another account", + Privilege: "RemovePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "function*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "lambda:Principal", + "lambda:FunctionUrlAuthType", + }, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add or modify the tags of a resource", + Description: "Grants permission to add tags to an AWS Lambda function, event source mapping or code signing configuration resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "code signing config", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "eventSourceMapping", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "function", }, { ConditionKeys: []string{ @@ -150672,31 +193942,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to unclaim a device", - Privilege: "UnclaimDevice", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an AWS Lambda function, event source mapping or code signing configuration resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "code signing config", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove the given tags (metadata) from a resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "eventSourceMapping", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "function", }, { ConditionKeys: []string{ @@ -150709,137 +193972,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update device state", - Privilege: "UpdateDeviceState", + Description: "Grants permission to update the configuration of an AWS Lambda function's alias", + Privilege: "UpdateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a placement", - Privilege: "UpdatePlacement", + Description: "Grants permission to update an AWS Lambda code signing config", + Privilege: "UpdateCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "code signing config*", }, }, }, { AccessLevel: "Write", - Description: "Update a project", - Privilege: "UpdateProject", + Description: "Grants permission to update the configuration of an AWS Lambda event source mapping", + Privilege: "UpdateEventSourceMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "eventSourceMapping*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iot1click:${Region}:${Account}:devices/${DeviceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "device", - }, - { - Arn: "arn:${Partition}:iot1click:${Region}:${Account}:projects/${ProjectName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "project", - }, - }, - ServiceName: "AWS IoT 1-Click", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "iotanalytics:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", - }, - }, - Prefix: "iotanalytics", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Puts a batch of messages into the specified channel", - Privilege: "BatchPutMessage", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "lambda:FunctionArn", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Cancels reprocessing for the specified pipeline", - Privilege: "CancelPipelineReprocessing", + Description: "Grants permission to update the code of an AWS Lambda function", + Privilege: "UpdateFunctionCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Creates a channel", - Privilege: "CreateChannel", + Description: "Grants permission to update the code signing config of an AWS Lambda function", + Privilege: "UpdateFunctionCodeSigningConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "code signing config*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Creates a dataset", - Privilege: "CreateDataset", + Description: "Grants permission to modify the version-specific settings of an AWS Lambda function", + Privilege: "UpdateFunctionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "function*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "lambda:Layer", + "lambda:VpcIds", + "lambda:SubnetIds", + "lambda:SecurityGroupIds", }, DependentActions: []string{}, ResourceType: "", @@ -150848,192 +194066,265 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Generates content from the specified dataset (by executing the dataset actions)", - Privilege: "CreateDatasetContent", + Description: "Grants permission to modify the configuration for asynchronous invocation for an AWS Lambda function, version, or alias", + Privilege: "UpdateFunctionEventInvokeConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "function*", }, }, }, { AccessLevel: "Write", - Description: "Creates a datastore", - Privilege: "CreateDatastore", + Description: "Grants permission to update a function url configuration for a Lambda function", + Privilege: "UpdateFunctionUrlConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "function*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "lambda:FunctionUrlAuthType", + "lambda:FunctionArn", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:code-signing-config:${CodeSigningConfigId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "code signing config", + }, + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:event-source-mapping:${UUID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "eventSourceMapping", + }, + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:function:${FunctionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "function", + }, + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:function:${FunctionName}:${Alias}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "function alias", + }, + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:function:${FunctionName}:${Version}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "function version", + }, + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:layer:${LayerName}", + ConditionKeys: []string{}, + Resource: "layer", + }, + { + Arn: "arn:${Partition}:lambda:${Region}:${Account}:layer:${LayerName}:${LayerVersion}", + ConditionKeys: []string{}, + Resource: "layerVersion", + }, + }, + ServiceName: "AWS Lambda", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "launchwizard", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Creates a pipeline", - Privilege: "CreatePipeline", + Description: "Delete an application", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes the specified channel", - Privilege: "DeleteChannel", + AccessLevel: "Read", + Description: "Describe provisioning applications", + Privilege: "DescribeProvisionedApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes the specified dataset", - Privilege: "DeleteDataset", + AccessLevel: "Read", + Description: "Describe provisioning events", + Privilege: "DescribeProvisioningEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes the content of the specified dataset", - Privilege: "DeleteDatasetContent", + AccessLevel: "Read", + Description: "Get infrastructure suggestion", + Privilege: "GetInfrastructureSuggestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes the specified datastore", - Privilege: "DeleteDatastore", + AccessLevel: "Read", + Description: "Get customer's ip address", + Privilege: "GetIpAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes the specified pipeline", - Privilege: "DeletePipeline", + AccessLevel: "Read", + Description: "Get resource cost estimate", + Privilege: "GetResourceCostEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Describes the specified channel", - Privilege: "DescribeChannel", + AccessLevel: "List", + Description: "List provisioning applications", + Privilege: "ListProvisionedApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Describes the specified dataset", - Privilege: "DescribeDataset", + AccessLevel: "Write", + Description: "Start a provisioning", + Privilege: "StartProvisioning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Launch Wizard", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access based on the presence of tag key-value pairs in the request", + Type: "String", + }, { - AccessLevel: "Read", - Description: "Describes the specified datastore", - Privilege: "DescribeDatastore", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "launchwizard", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an additional node", + Privilege: "CreateAdditionalNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Describes logging options for the the account", - Privilege: "DescribeLoggingOptions", + AccessLevel: "Write", + Description: "Grants permission to create a deployment", + Privilege: "CreateDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment*", }, }, }, { - AccessLevel: "Read", - Description: "Describes the specified pipeline", - Privilege: "DescribePipeline", + AccessLevel: "Write", + Description: "Grants permission to create an application settings set", + Privilege: "CreateSettingsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Gets the content of the specified dataset", - Privilege: "GetDatasetContent", + AccessLevel: "Write", + Description: "Grants permission to delete an additional node", + Privilege: "DeleteAdditionalNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Lists the channels for the account", - Privilege: "ListChannels", + AccessLevel: "Write", + Description: "Grants permission to delete an application", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151043,21 +194334,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Lists information about dataset contents that have been created", - Privilege: "ListDatasetContents", + AccessLevel: "Write", + Description: "Grants permission to delete a deployment", + Privilege: "DeleteDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "deployment*", }, }, }, { - AccessLevel: "List", - Description: "Lists the datasets for the account", - Privilege: "ListDatasets", + AccessLevel: "Write", + Description: "Grants permission to delete a settings set", + Privilege: "DeleteSettingsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151067,9 +194360,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Lists the datastores for the account", - Privilege: "ListDatastores", + AccessLevel: "Read", + Description: "Grants permission to describe an additional node", + Privilege: "DescribeAdditionalNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151079,9 +194372,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Lists the pipelines for the account", - Privilege: "ListPipelines", + AccessLevel: "Read", + Description: "Grants permission to describe provisioning applications", + Privilege: "DescribeProvisionedApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151092,35 +194385,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Lists the tags (metadata) which you have assigned to the resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe provisioning events", + Privilege: "DescribeProvisioningEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an application settings set", + Privilege: "DescribeSettingsSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a deployment", + Privilege: "GetDeployment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "pipeline", + ResourceType: "deployment*", }, }, }, { - AccessLevel: "Write", - Description: "Puts logging options for the the account", - Privilege: "PutLoggingOptions", + AccessLevel: "Read", + Description: "Grants permission to get infrastructure suggestion", + Privilege: "GetInfrastructureSuggestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151131,8 +194435,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Runs the specified pipeline activity", - Privilege: "RunPipelineActivity", + Description: "Grants permission to get customer's ip address", + Privilege: "GetIpAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151143,238 +194447,140 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Samples the specified channel's data", - Privilege: "SampleChannelData", + Description: "Grants permission to get resource cost estimate", + Privilege: "GetResourceCostEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Starts reprocessing for the specified pipeline", - Privilege: "StartPipelineReprocessing", + AccessLevel: "Read", + Description: "Grants permission to get recommendation for a resource", + Privilege: "GetResourceRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get a settings set", + Privilege: "GetSettingsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datastore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pipeline", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Removes the given tags (metadata) from the resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get a workload", + Privilege: "GetWorkload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a workload's asset", + Privilege: "GetWorkloadAsset", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Updates the specified channel", - Privilege: "UpdateChannel", + AccessLevel: "Read", + Description: "Grants permission to get workload assets", + Privilege: "GetWorkloadAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Updates the specified dataset", - Privilege: "UpdateDataset", + AccessLevel: "Read", + Description: "Grants permission to get a deployment pattern", + Privilege: "GetWorkloadDeploymentPattern", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Updates the specified datastore", - Privilege: "UpdateDatastore", + AccessLevel: "List", + Description: "Grants permission to list additional nodes", + Privilege: "ListAdditionalNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Updates the specified pipeline", - Privilege: "UpdatePipeline", + AccessLevel: "List", + Description: "Grants permission to list the allowed resources", + Privilege: "ListAllowedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:channel/${ChannelName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "iotanalytics:ResourceTag/${TagKey}", - }, - Resource: "channel", - }, - { - Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:dataset/${DatasetName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "iotanalytics:ResourceTag/${TagKey}", - }, - Resource: "dataset", - }, - { - Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:datastore/${DatastoreName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "iotanalytics:ResourceTag/${TagKey}", - }, - Resource: "datastore", - }, - { - Arn: "arn:${Partition}:iotanalytics:${Region}:${Account}:pipeline/${PipelineName}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "iotanalytics:ResourceTag/${TagKey}", - }, - Resource: "pipeline", - }, - }, - ServiceName: "AWS IoT Analytics", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "iotdeviceadvisor", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a suite definition", - Privilege: "CreateSuiteDefinition", + AccessLevel: "List", + Description: "Grants permission to list the events that occured during a deployment", + Privilege: "ListDeploymentEvents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a suite definition", - Privilege: "DeleteSuiteDefinition", + AccessLevel: "List", + Description: "Grants permission to list deployments", + Privilege: "ListDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suitedefinition*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a Device Advisor endpoint", - Privilege: "GetEndpoint", + AccessLevel: "List", + Description: "Grants permission to list provisioning applications", + Privilege: "ListProvisionedApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151384,45 +194590,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a suite definition", - Privilege: "GetSuiteDefinition", + AccessLevel: "List", + Description: "Grants permission to list the cost estimates of resources", + Privilege: "ListResourceCostEstimates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suitedefinition*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a suite run", - Privilege: "GetSuiteRun", + AccessLevel: "List", + Description: "Grants permission to list settings sets", + Privilege: "ListSettingsSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suiterun*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the qualification report for a suite run", - Privilege: "GetSuiteRunReport", + Description: "Grants permission to list tags for a LaunchWizard resource.", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Suiterun*", + ResourceType: "deployment", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list suite definitions", - Privilege: "ListSuiteDefinitions", + Description: "Grants permission to list deployment options of a given workload", + Privilege: "ListWorkloadDeploymentOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151433,43 +194641,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list suite runs", - Privilege: "ListSuiteRuns", + Description: "Grants permission to list the deployment patterns of a workload", + Privilege: "ListWorkloadDeploymentPatterns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suitedefinition*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags (metadata) assigned to a resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list workloads", + Privilege: "ListWorkloads", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suitedefinition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Suiterun", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a suite run", - Privilege: "StartSuiteRun", + Description: "Grants permission to create a settings set", + Privilege: "PutSettingsSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -151477,365 +194677,407 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to stop a suite run", - Privilege: "StopSuiteRun", + Description: "Grants permission to start a provisioning", + Privilege: "StartProvisioning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suiterun*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add to or modify the tags of the given resource. Tags are metadata which can be used to manage a resource", + Description: "Grants permission to tag a LaunchWizard resource.", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Suitedefinition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Suiterun", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to remove the given tags (metadata) from a resource", + Description: "Grants permission to untag a LaunchWizard resource.", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Suitedefinition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Suiterun", - }, { ConditionKeys: []string{ "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a suite definition", - Privilege: "UpdateSuiteDefinition", + Description: "Grants permission to update an application settings set", + Privilege: "UpdateSettingsSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Suitedefinition*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:iotdeviceadvisor:${Region}:${Account}:suitedefinition/${SuiteDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Suitedefinition", - }, - { - Arn: "arn:${Partition}:iotdeviceadvisor:${Region}:${Account}:suiterun/${SuiteDefinitionId}/${SuiteRunId}", + Arn: "arn:${Partition}:launchwizard:${Region}:${Account}:deployment/${DeploymentId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Suiterun", + Resource: "deployment", }, }, - ServiceName: "AWS IoT Core Device Advisor", + ServiceName: "AWS Launch Wizard", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", + Description: "Filters access based on the tags in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to the resource", + Description: "Filters access by the tags attached to a Lex resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions by the tag keys in the request", + Description: "Filters access based on the set of tag keys in the request", Type: "ArrayOfString", }, { - Condition: "iotevents:keyValue", - Description: "Filters access by the instanceId (key-value) of the message", + Condition: "lex:associatedIntents", + Description: "Enables you to control access based on the intents included in the request", + Type: "ArrayOfString", + }, + { + Condition: "lex:associatedSlotTypes", + Description: "Enables you to control access based on the slot types included in the request", + Type: "ArrayOfString", + }, + { + Condition: "lex:channelType", + Description: "Enables you to control access based on the channel type included in the request", Type: "String", }, }, - Prefix: "iotevents", + Prefix: "lex", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to send one or more acknowledge action requests to AWS IoT Events", - Privilege: "BatchAcknowledgeAlarm", + Description: "Creates a new version based on the $LATEST version of the specified bot", + Privilege: "CreateBotVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "bot version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a detector instance within the AWS IoT Events system", - Privilege: "BatchDeleteDetector", + Description: "Creates a new version based on the $LATEST version of the specified intent", + Privilege: "CreateIntentVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "intent version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable one or more alarm instances", - Privilege: "BatchDisableAlarm", + Description: "Creates a new version based on the $LATEST version of the specified slot type", + Privilege: "CreateSlotTypeVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "slottype version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable one or more alarm instances", - Privilege: "BatchEnableAlarm", + Description: "Deletes all versions of a bot", + Privilege: "DeleteBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "bot version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send a set of messages to the AWS IoT Events system", - Privilege: "BatchPutMessage", + Description: "Deletes an alias for a specific bot", + Privilege: "DeleteBotAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "bot alias*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset one or more alarm instances", - Privilege: "BatchResetAlarm", + Description: "Deletes the association between a Amazon Lex bot alias and a messaging platform", + Privilege: "DeleteBotChannelAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change one or more alarm instances to the snooze mode", - Privilege: "BatchSnoozeAlarm", + Description: "Deletes a specific version of a bot", + Privilege: "DeleteBotVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "bot version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a detector instance within the AWS IoT Events system", - Privilege: "BatchUpdateDetector", + Description: "Deletes all versions of an intent", + Privilege: "DeleteIntent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "intent version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an alarm model to monitor an AWS IoT Events input attribute or an AWS IoT SiteWise asset property", - Privilege: "CreateAlarmModel", + Description: "Deletes a specific version of an intent", + Privilege: "DeleteIntentVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "intent version*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Removes session information for a specified bot, alias, and user ID", + Privilege: "DeleteSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot version", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a detector model to monitor an AWS IoT Events input attribute", - Privilege: "CreateDetectorModel", + Description: "Deletes all versions of a slot type", + Privilege: "DeleteSlotType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "slottype version*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Deletes a specific version of a slot type", + Privilege: "DeleteSlotTypeVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "slottype version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Input in IotEvents", - Privilege: "CreateInput", + Description: "Deletes the information Amazon Lex maintains for utterances on a specific bot and userId", + Privilege: "DeleteUtterances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "bot version*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Returns information for a specific bot. In addition to the bot name, the bot version or alias is required", + Privilege: "GetBot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot version", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Returns information about a Amazon Lex bot alias", + Privilege: "GetBotAlias", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Returns a list of aliases for a given Amazon Lex bot", + Privilege: "GetBotAliases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an alarm model", - Privilege: "DeleteAlarmModel", + AccessLevel: "Read", + Description: "Returns information about the association between a Amazon Lex bot and a messaging platform", + Privilege: "GetBotChannelAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Returns a list of all of the channels associated with a single bot", + Privilege: "GetBotChannelAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a detector model", - Privilege: "DeleteDetectorModel", + AccessLevel: "List", + Description: "Returns information for all versions of a specific bot", + Privilege: "GetBotVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "bot version*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an input", - Privilege: "DeleteInput", + AccessLevel: "List", + Description: "Returns information for the $LATEST version of all bots, subject to filters provided by the client", + Privilege: "GetBots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an alarm instance", - Privilege: "DescribeAlarm", + Description: "Returns information about a built-in intent", + Privilege: "GetBuiltinIntent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an alarm model", - Privilege: "DescribeAlarmModel", + Description: "Gets a list of built-in intents that meet the specified criteria", + Privilege: "GetBuiltinIntents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retriev information about a detector instance", - Privilege: "DescribeDetector", + Description: "Gets a list of built-in slot types that meet the specified criteria", + Privilege: "GetBuiltinSlotTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a detector model", - Privilege: "DescribeDetectorModel", + Description: "Exports Amazon Lex Resource in a requested format", + Privilege: "GetExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "bot version*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the detector model analysis information", - Privilege: "DescribeDetectorModelAnalysis", + Description: "Gets information about an import job started with StartImport", + Privilege: "GetImport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151846,32 +195088,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an information about Input", - Privilege: "DescribeInput", + Description: "Returns information for a specific intent. In addition to the intent name, you must also specify the intent version", + Privilege: "GetIntent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "intent version*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current settings of the AWS IoT Events logging options", - Privilege: "DescribeLoggingOptions", + AccessLevel: "List", + Description: "Returns information for all versions of a specific intent", + Privilege: "GetIntentVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "intent version*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the detector model analysis results", - Privilege: "GetDetectorModelAnalysisResults", + AccessLevel: "List", + Description: "Returns information for the $LATEST version of all intents, subject to filters provided by the client", + Privilege: "GetIntents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151881,21 +195123,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the versions of an alarm model", - Privilege: "ListAlarmModelVersions", + AccessLevel: "Read", + Description: "Grants permission to view an ongoing or completed migration", + Privilege: "GetMigration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the alarm models that you created", - Privilege: "ListAlarmModels", + Description: "Grants permission to view list of migrations from Amazon Lex v1 to Amazon Lex v2", + Privilege: "GetMigrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151905,57 +195147,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all alarm instances per alarmModel", - Privilege: "ListAlarms", + AccessLevel: "Read", + Description: "Returns session information for a specified bot, alias, and user ID", + Privilege: "GetSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "bot alias", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all the versions of a detector model", - Privilege: "ListDetectorModelVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "bot version", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the detector models that you created", - Privilege: "ListDetectorModels", + AccessLevel: "Read", + Description: "Returns information about a specific version of a slot type. In addition to specifying the slot type name, you must also specify the slot type version", + Privilege: "GetSlotType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "slottype version*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve information about all detector instances per detectormodel", - Privilege: "ListDetectors", + Description: "Returns information for all versions of a specific slot type", + Privilege: "GetSlotTypeVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "slottype version*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list one or more input routings", - Privilege: "ListInputRoutings", + Description: "Returns information for the $LATEST version of all slot types, subject to filters provided by the client", + Privilege: "GetSlotTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -151966,86 +195201,86 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to lists the inputs you have created", - Privilege: "ListInputs", + Description: "Returns a view of aggregate utterance data for versions of a bot for a recent time period", + Privilege: "GetUtterancesView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot version*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags (metadata) which you have assigned to the resource", + Description: "Lists tags for a Lex resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel", + ResourceType: "bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel", + ResourceType: "bot alias", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input", + ResourceType: "channel", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set or update the AWS IoT Events logging options", - Privilege: "PutLoggingOptions", + Description: "Sends user input (text or speech) to Amazon Lex", + Privilege: "PostContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot alias", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start the detector model analysis", - Privilege: "StartDetectorModelAnalysis", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot version", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to adds to or modifies the tags of the given resource.Tags are metadata which can be used to manage a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Sends user input (text-only) to Amazon Lex", + Privilege: "PostText", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel", + ResourceType: "bot alias", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel", + ResourceType: "bot version", }, + }, + }, + { + AccessLevel: "Write", + Description: "Creates or updates the $LATEST version of a Amazon Lex conversational bot", + Privilege: "PutBot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input", + ResourceType: "bot version*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -152053,28 +195288,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the given tags (metadata) from the resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Creates or updates an alias for the specific bot", + Privilege: "PutBotAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "detectorModel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input", + ResourceType: "bot alias*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -152083,175 +195309,88 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an alarm model", - Privilege: "UpdateAlarmModel", + Description: "Creates or updates the $LATEST version of an intent", + Privilege: "PutIntent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alarmModel*", + ResourceType: "intent version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a detector model", - Privilege: "UpdateDetectorModel", + Description: "Creates a new session or modifies an existing session with an Amazon Lex bot", + Privilege: "PutSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "detectorModel*", + ResourceType: "bot alias", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an input", - Privilege: "UpdateInput", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "bot version", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update input routing", - Privilege: "UpdateInputRouting", + Description: "Creates or updates the $LATEST version of a slot type", + Privilege: "PutSlotType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "slottype version*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iotevents:${Region}:${Account}:detectorModel/${DetectorModelName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "detectorModel", - }, - { - Arn: "arn:${Partition}:iotevents:${Region}:${Account}:alarmModel/${AlarmModelName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "alarmModel", - }, - { - Arn: "arn:${Partition}:iotevents:${Region}:${Account}:input/${InputName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "input", - }, - }, - ServiceName: "AWS IoT Events", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions by the tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "iotfleethub", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", + Description: "Starts a job to import a resource to Amazon Lex", + Privilege: "StartImport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "sso:CreateManagedApplicationInstance", - "sso:DescribeRegisteredRegions", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApplication", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteManagedApplicationInstance", - }, - ResourceType: "application*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an application", - Privilege: "DescribeApplication", + Description: "Grants permission to migrate a bot from Amazon Lex v1 to Amazon Lex v2", + Privilege: "StartMigration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "bot version*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all applications", - Privilege: "ListApplications", + AccessLevel: "Tagging", + Description: "Adds or overwrites tags to a Lex resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all tags for a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "bot alias", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "channel", }, { ConditionKeys: []string{ @@ -152265,192 +195404,164 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", + Description: "Removes tags from a Lex resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "bot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update an application", - Privilege: "UpdateApplication", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:lex:${Region}:${Account}:bot:${BotName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "bot", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:iotfleethub:${Region}:${Account}:application/${ApplicationId}", + Arn: "arn:${Partition}:lex:${Region}:${Account}:bot:${BotName}:${BotVersion}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "application", + Resource: "bot version", + }, + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:bot:${BotName}:${BotAlias}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "bot alias", + }, + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:bot-channel:${BotName}:${BotAlias}:${ChannelName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel", + }, + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:intent:${IntentName}:${IntentVersion}", + ConditionKeys: []string{}, + Resource: "intent version", + }, + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:slottype:${SlotName}:${SlotVersion}", + ConditionKeys: []string{}, + Resource: "slottype version", }, }, - ServiceName: "AWS IoT Fleet Hub for Device Management", + ServiceName: "Amazon Lex", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by the tags in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", + Description: "Filters access by the tags attached to a Lex resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Description: "Filters access by the set of tag keys in the request", Type: "ArrayOfString", }, - { - Condition: "iotfleetwise:DestinationArn", - Description: "Filters access by campaign destination ARN, eg. an S3 bucket ARN or a Timestream ARN", - Type: "ARN", - }, - { - Condition: "iotfleetwise:UpdateToDecoderManifestArn", - Description: "Filters access by a list of IoT FleetWise Decoder Manifest ARNs", - Type: "ARN", - }, - { - Condition: "iotfleetwise:UpdateToModelManifestArn", - Description: "Filters access by a list of IoT FleetWise Model Manifest ARNs", - Type: "ARN", - }, }, - Prefix: "iotfleetwise", + Prefix: "lex", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate the given vehicle to a fleet", - Privilege: "AssociateVehicleFleet", + Description: "Grants permission to create new items in an existing custom vocabulary", + Privilege: "BatchCreateCustomVocabularyItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a batch of vehicles", - Privilege: "BatchCreateVehicle", + Description: "Grants permission to delete existing items in an existing custom vocabulary", + Privilege: "BatchDeleteCustomVocabularyItem", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:CreateThing", - "iot:DescribeThing", - }, - ResourceType: "decodermanifest*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "modelmanifest*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a batch of vehicles", - Privilege: "BatchUpdateVehicle", + Description: "Grants permission to update existing items in an existing custom vocabulary", + Privilege: "BatchUpdateCustomVocabularyItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "decodermanifest", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "modelmanifest", - }, - { - ConditionKeys: []string{ - "iotfleetwise:UpdateToModelManifestArn", - "iotfleetwise:UpdateToDecoderManifestArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a campaign", - Privilege: "CreateCampaign", + Description: "Grants permission to build an existing bot locale in a bot", + Privilege: "BuildBotLocale", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new bot and a test bot alias pointing to the DRAFT bot version", + Privilege: "CreateBot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", + ResourceType: "bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "bot alias*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "iotfleetwise:DestinationArn", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -152459,23 +195570,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a decoder manifest for an existing model", - Privilege: "CreateDecoderManifest", + Description: "Grants permission to create a new bot alias in a bot", + Privilege: "CreateBotAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "bot alias*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -152484,1385 +195590,1261 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a fleet", - Privilege: "CreateFleet", + Description: "Grants permission to create a bot channel in an existing bot", + Privilege: "CreateBotChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new bot locale in an existing bot", + Privilege: "CreateBotLocale", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a model manifest definition", - Privilege: "CreateModelManifest", + Description: "Grants permission to create bot replica for a bot", + Privilege: "CreateBotReplica", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new version of an existing bot", + Privilege: "CreateBotVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a signal catalog", - Privilege: "CreateSignalCatalog", + Description: "Grants permission to create a new custom vocabulary in an existing bot locale", + Privilege: "CreateCustomVocabulary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a vehicle", - Privilege: "CreateVehicle", + Description: "Grants permission to create an export for an existing resource", + Privilege: "CreateExport", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:CreateThing", - "iot:DescribeThing", - }, - ResourceType: "decodermanifest*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "test set", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new intent in an existing bot locale", + Privilege: "CreateIntent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a campaign", - Privilege: "DeleteCampaign", + Description: "Grants permission to create a new resource policy for a Lex resource", + Privilege: "CreateResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "bot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the given decoder manifest", - Privilege: "DeleteDecoderManifest", + Description: "Grants permission to create a new slot in an intent", + Privilege: "CreateSlot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a fleet", - Privilege: "DeleteFleet", + Description: "Grants permission to create a new slot type in an existing bot locale", + Privilege: "CreateSlotType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the given model manifest", - Privilege: "DeleteModelManifest", + Description: "Grants permission to import a new test-set", + Privilege: "CreateTestSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specific signal catalog", - Privilege: "DeleteSignalCatalog", + Description: "Grants permission to create a test set discrepancy report", + Privilege: "CreateTestSetDiscrepancyReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", + ResourceType: "test set*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a vehicle", - Privilege: "DeleteVehicle", + Description: "Grants permission to create an upload url for import file", + Privilege: "CreateUploadUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a vehicle from an existing fleet", - Privilege: "DisassociateVehicleFleet", + Description: "Grants permission to delete an existing bot", + Privilege: "DeleteBot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet*", + ConditionKeys: []string{}, + DependentActions: []string{ + "lex:DeleteBotAlias", + "lex:DeleteBotChannel", + "lex:DeleteBotLocale", + "lex:DeleteBotVersion", + "lex:DeleteIntent", + "lex:DeleteSlot", + "lex:DeleteSlotType", + }, + ResourceType: "bot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "bot alias*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get summary information for a given campaign", - Privilege: "GetCampaign", + AccessLevel: "Write", + Description: "Grants permission to delete an existing bot alias in a bot", + Privilege: "DeleteBotAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "bot alias*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get summary information for a given decoder manifest definition", - Privilege: "GetDecoderManifest", + AccessLevel: "Write", + Description: "Grants permission to delete an existing bot channel", + Privilege: "DeleteBotChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get KMS-based encryption status for the AWS account", - Privilege: "GetEncryptionConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete an existing bot locale in a bot", + Privilege: "DeleteBotLocale", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "lex:DeleteIntent", + "lex:DeleteSlot", + "lex:DeleteSlotType", + }, + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get summary information for a fleet", - Privilege: "GetFleet", + AccessLevel: "Write", + Description: "Grants permission to delete an existing bot replica", + Privilege: "DeleteBotReplica", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the logging options for the AWS account", - Privilege: "GetLoggingOptions", + AccessLevel: "Write", + Description: "Grants permission to delete an existing bot version", + Privilege: "DeleteBotVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get summary information for a given model manifest definition", - Privilege: "GetModelManifest", + AccessLevel: "Write", + Description: "Grants permission to delete an existing custom vocabulary in a bot locale", + Privilege: "DeleteCustomVocabulary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the account registration status with IoT FleetWise", - Privilege: "GetRegisterAccountStatus", + AccessLevel: "Write", + Description: "Grants permission to delete an existing export", + Privilege: "DeleteExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get summary information for a specific signal catalog", - Privilege: "GetSignalCatalog", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", + ResourceType: "test set", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get summary information for a vehicle", - Privilege: "GetVehicle", + AccessLevel: "Write", + Description: "Grants permission to delete an existing import", + Privilege: "DeleteImport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "bot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the status of the campaigns running on a specific vehicle", - Privilege: "GetVehicleStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "test set", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import an existing decoder manifest", - Privilege: "ImportDecoderManifest", + Description: "Grants permission to delete an existing intent in a bot locale", + Privilege: "DeleteIntent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a signal catalog by importing existing definitions", - Privilege: "ImportSignalCatalog", + Description: "Grants permission to delete an existing resource policy for a Lex resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", + ResourceType: "bot", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot alias", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list campaigns", - Privilege: "ListCampaigns", + AccessLevel: "Write", + Description: "Grants permission to delete session information for a bot alias and user ID", + Privilege: "DeleteSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot alias*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list network interfaces associated to the existing decoder manifest", - Privilege: "ListDecoderManifestNetworkInterfaces", + AccessLevel: "Write", + Description: "Grants permission to delete an existing slot in an intent", + Privilege: "DeleteSlot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list decoder manifest signals", - Privilege: "ListDecoderManifestSignals", + AccessLevel: "Write", + Description: "Grants permission to delete an existing slot type in a bot locale", + Privilege: "DeleteSlotType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all decoder manifests, with an optional filter on model manifest", - Privilege: "ListDecoderManifests", + AccessLevel: "Write", + Description: "Grants permission to delete an existing test set", + Privilege: "DeleteTestSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "test set*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all fleets", - Privilege: "ListFleets", + AccessLevel: "Write", + Description: "Grants permission to delete utterance data for a bot", + Privilege: "DeleteUtterances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the fleets that the given vehicle is associated with", - Privilege: "ListFleetsForVehicle", + Description: "Grants permission to retrieve an existing bot", + Privilege: "DescribeBot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all nodes for the given model manifest", - Privilege: "ListModelManifestNodes", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing bot alias", + Privilege: "DescribeBotAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "bot alias*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all model manifests, with an optional filter on signal catalog", - Privilege: "ListModelManifests", + Description: "Grants permission to retrieve an existing bot channel", + Privilege: "DescribeBotChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all nodes for a given signal catalog", - Privilege: "ListSignalCatalogNodes", + Description: "Grants permission to retrieve an existing bot locale", + Privilege: "DescribeBotLocale", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all signal catalogs", - Privilege: "ListSignalCatalogs", + Description: "Grants permission to retrieve metadata information about a bot recommendation", + Privilege: "DescribeBotRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve an existing bot replica", + Privilege: "DescribeBotReplica", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "decodermanifest", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "fleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "modelmanifest", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "signalcatalog", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "vehicle", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all vehicles, with an optional filter on model manifest", - Privilege: "ListVehicles", + Description: "Grants permission to retrieve metadata information for a bot resource generation", + Privilege: "DescribeBotResourceGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list vehicles in the given fleet", - Privilege: "ListVehiclesInFleet", + Description: "Grants permission to retrieve an existing bot version", + Privilege: "DescribeBotVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable KMS-based encryption for the AWS account", - Privilege: "PutEncryptionConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing custom vocabulary", + Privilege: "DescribeCustomVocabulary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put the logging options for the AWS account", - Privilege: "PutLoggingOptions", + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata of an existing custom vocabulary", + Privilege: "DescribeCustomVocabularyMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register an AWS account to IoT FleetWise", - Privilege: "RegisterAccount", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing export", + Privilege: "DescribeExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "lex:DescribeBot", + "lex:DescribeBotLocale", + "lex:DescribeIntent", + "lex:DescribeSlot", + "lex:DescribeSlotType", + "lex:ListBotLocales", + "lex:ListIntents", + "lex:ListSlotTypes", + "lex:ListSlots", }, - ResourceType: "", + ResourceType: "bot", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign", + ResourceType: "test set", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing import", + Privilege: "DescribeImport", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest", + ResourceType: "bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "test set", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing intent", + Privilege: "DescribeIntent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing resource policy for a Lex resource", + Privilege: "DescribeResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog", + ResourceType: "bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot alias", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing slot", + Privilege: "DescribeSlot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "decodermanifest", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing slot type", + Privilege: "DescribeSlotType", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve test execution metadata", + Privilege: "DescribeTestExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest", + ResourceType: "test set*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing test set", + Privilege: "DescribeTestSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog", + ResourceType: "test set*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve test set discrepancy report metadata", + Privilege: "DescribeTestSetDiscrepancyReport", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle", + ResourceType: "test set*", }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve test set generation metadata", + Privilege: "DescribeTestSetGeneration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "test set", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the given campaign", - Privilege: "UpdateCampaign", + AccessLevel: "Read", + Description: "Grants permission to generate supported fields or elements for a bot", + Privilege: "GenerateBotElement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a decoder manifest defnition", - Privilege: "UpdateDecoderManifest", + AccessLevel: "Read", + Description: "Grants permission to retrieve session information for a bot alias and user ID", + Privilege: "GetSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest*", + ResourceType: "bot alias*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the fleet", - Privilege: "UpdateFleet", + AccessLevel: "Read", + Description: "Grants permission to retrieve artifacts URL for a test execution", + Privilege: "GetTestExecutionArtifactsUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "fleet*", + ResourceType: "test set*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the given model manifest definition", - Privilege: "UpdateModelManifest", + AccessLevel: "List", + Description: "Grants permission to list utterances and statistics for a bot", + Privilege: "ListAggregatedUtterances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific signal catalog definition", - Privilege: "UpdateSignalCatalog", + AccessLevel: "List", + Description: "Grants permission to list alias replicas in a bot replica", + Privilege: "ListBotAliasReplicas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signalcatalog*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the vehicle", - Privilege: "UpdateVehicle", + AccessLevel: "List", + Description: "Grants permission to list bot aliases in an bot", + Privilege: "ListBotAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vehicle*", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list bot channels", + Privilege: "ListBotChannels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "decodermanifest", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list bot locales in a bot", + Privilege: "ListBotLocales", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "modelmanifest", - }, - { - ConditionKeys: []string{ - "iotfleetwise:UpdateToModelManifestArn", - "iotfleetwise:UpdateToDecoderManifestArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:campaign/${CampaignName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "campaign", - }, - { - Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:decoder-manifest/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "decodermanifest", - }, - { - Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:fleet/${FleetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "fleet", - }, - { - Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:model-manifest/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "modelmanifest", - }, { - Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:signal-catalog/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to get a list of bot recommendations that meet the specified criteria", + Privilege: "ListBotRecommendations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot*", + }, }, - Resource: "signalcatalog", }, { - Arn: "arn:${Partition}:iotfleetwise:${Region}:${Account}:vehicle/${VehicleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list replicas of a bot", + Privilege: "ListBotReplicas", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot*", + }, }, - Resource: "vehicle", - }, - }, - ServiceName: "AWS IoT FleetWise", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "iot:JobId", - Description: "Filters access by jobId for iotjobsdata:DescribeJobExecution and iotjobsdata:UpdateJobExecution APIs", - Type: "String", }, - }, - Prefix: "iotjobsdata", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to describe a job execution", - Privilege: "DescribeJobExecution", + AccessLevel: "List", + Description: "Grants permission to list the resource generations for a bot", + Privilege: "ListBotResourceGenerations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list version replicas in a bot replica", + Privilege: "ListBotVersionReplicas", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "iot:JobId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the list of all jobs for a thing that are not in a terminal state", - Privilege: "GetPendingJobExecutions", + AccessLevel: "List", + Description: "Grants permission to list existing bot versions", + Privilege: "ListBotVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to get and start the next pending job execution for a thing", - Privilege: "StartNextPendingJobExecution", + AccessLevel: "List", + Description: "Grants permission to list existing bots", + Privilege: "ListBots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a job execution", - Privilege: "UpdateJobExecution", + AccessLevel: "List", + Description: "Grants permission to list built-in intents", + Privilege: "ListBuiltInIntents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list built-in slot types", + Privilege: "ListBuiltInSlotTypes", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "iot:JobId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", - ConditionKeys: []string{}, - Resource: "thing", - }, - }, - ServiceName: "AWS IoT Jobs DataPlane", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "iotroborunner:DestinationResourceId", - Description: "Filters access by the destination's identifier", - Type: "String", - }, - { - Condition: "iotroborunner:SiteResourceId", - Description: "Filters access by the site's identifier", - Type: "String", - }, - { - Condition: "iotroborunner:WorkerFleetResourceId", - Description: "Filters access by the worker fleet's identifier", - Type: "String", - }, - { - Condition: "iotroborunner:WorkerResourceId", - Description: "Filters access by the workers identifier", - Type: "String", - }, - }, - Prefix: "iotroborunner", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a destination", - Privilege: "CreateDestination", + AccessLevel: "List", + Description: "Grants permission to list items of an existing custom vocabulary", + Privilege: "ListCustomVocabularyItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a site", - Privilege: "CreateSite", + AccessLevel: "List", + Description: "Grants permission to list existing exports", + Privilege: "ListExports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a worker", - Privilege: "CreateWorker", + AccessLevel: "List", + Description: "Grants permission to list existing imports", + Privilege: "ListImports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerFleetResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a worker fleet", - Privilege: "CreateWorkerFleet", + AccessLevel: "List", + Description: "Grants permission to list intent analytics metrics for a bot", + Privilege: "ListIntentMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a destination", - Privilege: "DeleteDestination", + AccessLevel: "List", + Description: "Grants permission to list intent path analytics for a bot", + Privilege: "ListIntentPaths", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DestinationResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a site", - Privilege: "DeleteSite", + AccessLevel: "List", + Description: "Grants permission to list intentStage analytics metrics for a bot", + Privilege: "ListIntentStageMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a worker", - Privilege: "DeleteWorker", + AccessLevel: "List", + Description: "Grants permission to list intents in a bot", + Privilege: "ListIntents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a worker fleet", - Privilege: "DeleteWorkerFleet", + AccessLevel: "List", + Description: "Grants permission to get a list of recommended intents provided by the bot recommendation", + Privilege: "ListRecommendedIntents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerFleetResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a destination", - Privilege: "GetDestination", + AccessLevel: "List", + Description: "Grants permission to list session analytics data for a bot", + Privilege: "ListSessionAnalyticsData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DestinationResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a site", - Privilege: "GetSite", + AccessLevel: "List", + Description: "Grants permission to list session analytics metrics for a bot", + Privilege: "ListSessionMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a worker", - Privilege: "GetWorker", + AccessLevel: "List", + Description: "Grants permission to list slot types in a bot", + Privilege: "ListSlotTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerResource*", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a worker fleet", - Privilege: "GetWorkerFleet", + AccessLevel: "List", + Description: "Grants permission to list slots in an intent", + Privilege: "ListSlots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerFleetResource*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list destinations", - Privilege: "ListDestinations", + Description: "Grants permission to lists tags for a Lex resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "bot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "test set", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list sites", - Privilege: "ListSites", + Description: "Grants permission to retrieve test results data for a test execution", + Privilege: "ListTestExecutionResultItems", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "lex:ListTestSetRecords", + }, + ResourceType: "test set*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list worker fleets", - Privilege: "ListWorkerFleets", + AccessLevel: "List", + Description: "Grants permission to list test executions", + Privilege: "ListTestExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list workers", - Privilege: "ListWorkers", + Description: "Grants permission to retrieve records inside an existing test set", + Privilege: "ListTestSetRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "test set*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a destination", - Privilege: "UpdateDestination", + AccessLevel: "List", + Description: "Grants permission to list test sets", + Privilege: "ListTestSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DestinationResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a site", - Privilege: "UpdateSite", + Description: "Grants permission to create a new session or modify an existing session for a bot alias and user ID", + Privilege: "PutSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SiteResource*", + ResourceType: "bot alias*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a worker", - Privilege: "UpdateWorker", + Description: "Grants permission to send user input (text-only) to an bot alias", + Privilege: "RecognizeText", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerResource*", + ResourceType: "bot alias*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a worker fleet", - Privilege: "UpdateWorkerFleet", + Description: "Grants permission to send user input (text or speech) to an bot alias", + Privilege: "RecognizeUtterance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WorkerFleetResource*", + ResourceType: "bot alias*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:site/${SiteId}/destination/${DestinationId}", - ConditionKeys: []string{ - "iotroborunner:DestinationResourceId", - }, - Resource: "DestinationResource", - }, - { - Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:site/${SiteId}", - ConditionKeys: []string{ - "iotroborunner:SiteResourceId", - }, - Resource: "SiteResource", - }, - { - Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:site/${SiteId}/worker-fleet/${WorkerFleetId}", - ConditionKeys: []string{ - "iotroborunner:WorkerFleetResourceId", - }, - Resource: "WorkerFleetResource", - }, - { - Arn: "arn:${Partition}:iotroborunner:${Region}:${Account}:site/${SiteId}/worker-fleet/${WorkerFleetId}/worker/${WorkerId}", - ConditionKeys: []string{ - "iotroborunner:WorkerResourceId", - }, - Resource: "WorkerResource", - }, - }, - ServiceName: "AWS IoT RoboRunner", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "iotsitewise:assetHierarchyPath", - Description: "Filters access by an asset hierarchy path, which is the string of asset IDs in the asset's hierarchy, each separated by a forward slash", - Type: "String", - }, - { - Condition: "iotsitewise:childAssetId", - Description: "Filters access by the ID of a child asset being associated whith a parent asset", - Type: "String", - }, - { - Condition: "iotsitewise:group", - Description: "Filters access by the ID of an AWS Single Sign-On group", - Type: "String", - }, - { - Condition: "iotsitewise:iam", - Description: "Filters access by the ID of an AWS IAM identity", - Type: "String", - }, - { - Condition: "iotsitewise:isAssociatedWithAssetProperty", - Description: "Filters access by data streams associated with or not associated with asset properties", - Type: "String", - }, - { - Condition: "iotsitewise:portal", - Description: "Filters access by the ID of a portal", - Type: "String", - }, - { - Condition: "iotsitewise:project", - Description: "Filters access by the ID of a project", - Type: "String", - }, - { - Condition: "iotsitewise:propertyAlias", - Description: "Filters access by the property alias", - Type: "String", - }, { - Condition: "iotsitewise:propertyId", - Description: "Filters access by the ID of an asset property", - Type: "String", - }, - { - Condition: "iotsitewise:user", - Description: "Filters access by the ID of an AWS Single Sign-On user", - Type: "String", - }, - }, - Prefix: "iotsitewise", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate a child asset with a parent asset through a hierarchy", - Privilege: "AssociateAssets", + AccessLevel: "List", + Description: "Grants permission to search for associated transcripts that meet the specified criteria", + Privilege: "SearchAssociatedTranscripts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a time series with an asset property", - Privilege: "AssociateTimeSeriesToAssetProperty", + Description: "Grants permission to start a bot recommendation for an existing bot locale", + Privilege: "StartBotRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "time-series*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate assets to a project", - Privilege: "BatchAssociateProjectAssets", + Description: "Grants permission to start a resource generation for an existing bot locale", + Privilege: "StartBotResourceGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate assets from a project", - Privilege: "BatchDisassociateProjectAssets", + Description: "Grants permission to stream user input (speech/text/DTMF) to a bot alias", + Privilege: "StartConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "bot alias*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve computed aggregates for multiple asset properties", - Privilege: "BatchGetAssetPropertyAggregates", + AccessLevel: "Write", + Description: "Grants permission to start a new import with the uploaded import file", + Privilege: "StartImport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "asset", + ConditionKeys: []string{}, + DependentActions: []string{ + "lex:CreateBot", + "lex:CreateBotLocale", + "lex:CreateCustomVocabulary", + "lex:CreateIntent", + "lex:CreateSlot", + "lex:CreateSlotType", + "lex:CreateTestSet", + "lex:DeleteBotLocale", + "lex:DeleteCustomVocabulary", + "lex:DeleteIntent", + "lex:DeleteSlot", + "lex:DeleteSlotType", + "lex:UpdateBot", + "lex:UpdateBotLocale", + "lex:UpdateCustomVocabulary", + "lex:UpdateIntent", + "lex:UpdateSlot", + "lex:UpdateSlotType", + "lex:UpdateTestSet", + }, + ResourceType: "bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "bot alias", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the latest value for multiple asset properties", - Privilege: "BatchGetAssetPropertyValue", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "test set", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the value history for multiple asset properties", - Privilege: "BatchGetAssetPropertyValueHistory", + AccessLevel: "Write", + Description: "Grants permission to start a test execution using a test set", + Privilege: "StartTestExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "test set*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put property values for asset properties", - Privilege: "BatchPutAssetPropertyValue", + Description: "Grants permission to generate a test set", + Privilege: "StartTestSetGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "test set", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a bot recommendation for an existing bot locale", + Privilege: "StopBotRecommendation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "bot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an access policy for a portal or a project", - Privilege: "CreateAccessPolicy", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite tags of a Lex resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal", + ResourceType: "bot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "bot alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "test set", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -153870,18 +196852,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an asset from an asset model", - Privilege: "CreateAsset", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a Lex resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "bot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot alias", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "test set", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -153891,343 +196882,389 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an asset model", - Privilege: "CreateAssetModel", + Description: "Grants permission to update an existing bot", + Privilege: "UpdateBot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an asset model composite model inside an asset model", - Privilege: "CreateAssetModelCompositeModel", + Description: "Grants permission to update an existing bot alias", + Privilege: "UpdateBotAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "bot alias*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create bulk import job", - Privilege: "CreateBulkImportJob", + Description: "Grants permission to update an existing bot locale", + Privilege: "UpdateBotLocale", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a dashboard in a project", - Privilege: "CreateDashboard", + Description: "Grants permission to update an existing bot recommendation request", + Privilege: "UpdateBotRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "bot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing custom vocabulary", + Privilege: "UpdateCustomVocabulary", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a gateway", - Privilege: "CreateGateway", + Description: "Grants permission to update an existing export", + Privilege: "UpdateExport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a portal", - Privilege: "CreatePortal", + Description: "Grants permission to update an existing intent", + Privilege: "UpdateIntent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "sso:CreateManagedApplicationInstance", - "sso:DescribeRegisteredRegions", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a project in a portal", - Privilege: "CreateProject", + Description: "Grants permission to update an existing resource policy for a Lex resource", + Privilege: "UpdateResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal*", + ResourceType: "bot", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bot alias", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an access policy", - Privilege: "DeleteAccessPolicy", + Description: "Grants permission to update an existing slot", + Privilege: "UpdateSlot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-policy*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an asset", - Privilege: "DeleteAsset", + Description: "Grants permission to update an existing slot type", + Privilege: "UpdateSlotType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "bot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an asset model", - Privilege: "DeleteAssetModel", + Description: "Grants permission to update an existing test set", + Privilege: "UpdateTestSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "test set*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:bot/${BotId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "bot", + }, + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:bot-alias/${BotId}/${BotAliasId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "bot alias", + }, + { + Arn: "arn:${Partition}:lex:${Region}:${Account}:test-set/${TestSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "test set", + }, + }, + ServiceName: "Amazon Lex V2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "license-manager:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + }, + Prefix: "license-manager", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete an asset model composite model", - Privilege: "DeleteAssetModelCompositeModel", + Description: "Grants permission to accept a grant", + Privilege: "AcceptGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "grant*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a dashboard", - Privilege: "DeleteDashboard", + Description: "Grants permission to check in license entitlements back to pool", + Privilege: "CheckInLicense", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a gateway", - Privilege: "DeleteGateway", + Description: "Grants permission to check out license entitlements for borrow use case", + Privilege: "CheckoutBorrowLicense", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway*", + ResourceType: "license*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a portal", - Privilege: "DeletePortal", + Description: "Grants permission to check out license entitlements", + Privilege: "CheckoutLicense", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteManagedApplicationInstance", - }, - ResourceType: "portal*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", + Description: "Grants permission to create a new grant for license", + Privilege: "CreateGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "license*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a time series", - Privilege: "DeleteTimeSeries", + Description: "Grants permission to create new version of grant", + Privilege: "CreateGrantVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "grant*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new license", + Privilege: "CreateLicense", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an access policy", - Privilege: "DescribeAccessPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a new license configuration", + Privilege: "CreateLicenseConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "access-policy*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe actions", - Privilege: "DescribeAction", + AccessLevel: "Write", + Description: "Grants permission to create a license conversion task for a resource", + Privilege: "CreateLicenseConversionTaskForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an asset", - Privilege: "DescribeAsset", + AccessLevel: "Write", + Description: "Grants permission to create a report generator for a license configuration", + Privilege: "CreateLicenseManagerReportGenerator", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an asset composite model", - Privilege: "DescribeAssetCompositeModel", + AccessLevel: "Write", + Description: "Grants permission to create new version of license", + Privilege: "CreateLicenseVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "license*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an asset model", - Privilege: "DescribeAssetModel", + AccessLevel: "Write", + Description: "Grants permission to create a new token for license", + Privilege: "CreateToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "license*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an asset model composite model", - Privilege: "DescribeAssetModelCompositeModel", + AccessLevel: "Write", + Description: "Grants permission to delete a grant", + Privilege: "DeleteGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "grant*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an asset property", - Privilege: "DescribeAssetProperty", + AccessLevel: "Write", + Description: "Grants permission to delete a license", + Privilege: "DeleteLicense", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "license*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe bulk import job", - Privilege: "DescribeBulkImportJob", + AccessLevel: "Write", + Description: "Grants permission to permanently delete a license configuration", + Privilege: "DeleteLicenseConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "license-configuration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dashboard", - Privilege: "DescribeDashboard", + AccessLevel: "Write", + Description: "Grants permission to delete a report generator", + Privilege: "DeleteLicenseManagerReportGenerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "report-generator*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the default encryption configuration for the AWS account", - Privilege: "DescribeDefaultEncryptionConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete token", + Privilege: "DeleteToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -154237,69 +197274,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a gateway", - Privilege: "DescribeGateway", + AccessLevel: "Write", + Description: "Grants permission to extend consumption period of already checkout license entitlements", + Privilege: "ExtendLicenseConsumption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a capability configuration for a gateway", - Privilege: "DescribeGatewayCapabilityConfiguration", + Description: "Grants permission to get access token", + Privilege: "GetAccessToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe logging options for the AWS account", - Privilege: "DescribeLoggingOptions", + Description: "Grants permission to get a grant", + Privilege: "GetGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "grant*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a portal", - Privilege: "DescribePortal", + Description: "Grants permission to get a license", + Privilege: "GetLicense", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal*", + ResourceType: "license*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a project", - Privilege: "DescribeProject", + Description: "Grants permission to get a license configuration", + Privilege: "GetLicenseConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "license-configuration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the storage configuration for the AWS account", - Privilege: "DescribeStorageConfiguration", + Description: "Grants permission to retrieve a license conversion task", + Privilege: "GetLicenseConversionTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -154310,62 +197347,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a time series", - Privilege: "DescribeTimeSeries", + Description: "Grants permission to get a report generator", + Privilege: "GetLicenseManagerReportGenerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "time-series", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "report-generator*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a child asset from a parent asset by a hierarchy", - Privilege: "DisassociateAssets", + AccessLevel: "Read", + Description: "Grants permission to get a license usage", + Privilege: "GetLicenseUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "license*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a time series from an asset property", - Privilege: "DisassociateTimeSeriesFromAssetProperty", + AccessLevel: "List", + Description: "Grants permission to get service settings", + Privilege: "GetServiceSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list associations for a selected license configuration", + Privilege: "ListAssociationsForLicenseConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series*", + ResourceType: "license-configuration*", }, }, }, - { - AccessLevel: "Write", - Description: "Grants permission to allow IoT SiteWise integrate with other services", - Privilege: "EnableSiteWiseIntegration", + { + AccessLevel: "List", + Description: "Grants permission to list distributed grants", + Privilege: "ListDistributedGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -154375,21 +197406,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to execute actions", - Privilege: "ExecuteAction", + AccessLevel: "List", + Description: "Grants permission to list the license configuration operations that failed", + Privilege: "ListFailuresForLicenseConfigurationOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "license-configuration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to execute query", - Privilege: "ExecuteQuery", + Description: "Grants permission to list license configurations", + Privilege: "ListLicenseConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -154399,130 +197430,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve computed aggregates for an asset property", - Privilege: "GetAssetPropertyAggregates", + AccessLevel: "List", + Description: "Grants permission to list license conversion tasks", + Privilege: "ListLicenseConversionTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the latest value for an asset property", - Privilege: "GetAssetPropertyValue", + AccessLevel: "List", + Description: "Grants permission to list report generators", + Privilege: "ListLicenseManagerReportGenerators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "license-configuration", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the value history for an asset property", - Privilege: "GetAssetPropertyValueHistory", + AccessLevel: "List", + Description: "Grants permission to list license specifications associated with a selected resource", + Privilege: "ListLicenseSpecificationsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list license versions", + Privilege: "ListLicenseVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "license*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve interpolated values for an asset property", - Privilege: "GetInterpolatedAssetPropertyValues", + Description: "Grants permission to list licenses", + Privilege: "ListLicenses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all access policies for an identity or a resource", - Privilege: "ListAccessPolicies", + Description: "Grants permission to list received grants", + Privilege: "ListReceivedGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all actions", - Privilege: "ListActions", + Description: "Grants permission to list received grants for organization", + Privilege: "ListReceivedGrantsForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all asset model composite models", - Privilege: "ListAssetModelCompositeModels", + Description: "Grants permission to list received licenses", + Privilege: "ListReceivedLicenses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list asset model properties", - Privilege: "ListAssetModelProperties", + Description: "Grants permission to list received licenses for organization", + Privilege: "ListReceivedLicensesForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all asset models", - Privilege: "ListAssetModels", + Description: "Grants permission to list resource inventory", + Privilege: "ListResourceInventory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -154532,185 +197550,295 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list asset properties", - Privilege: "ListAssetProperties", + AccessLevel: "Read", + Description: "Grants permission to list tags for a selected resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "license-configuration*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the asset relationship graph for an asset", - Privilege: "ListAssetRelationships", + Description: "Grants permission to list tokens", + Privilege: "ListTokens", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all assets", - Privilege: "ListAssets", + Description: "Grants permission to list usage records for selected license configuration", + Privilege: "ListUsageForLicenseConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model", + ResourceType: "license-configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all assets associated with an asset through a hierarchy", - Privilege: "ListAssociatedAssets", + AccessLevel: "Write", + Description: "Grants permission to reject a grant", + Privilege: "RejectGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "grant*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list bulk import jobs", - Privilege: "ListBulkImportJobs", + AccessLevel: "Tagging", + Description: "Grants permission to tag a selected resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "license-configuration*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all asset model composition relationships", - Privilege: "ListCompositionRelationships", + AccessLevel: "Tagging", + Description: "Grants permission to untag a selected resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "license-configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all dashboards in a project", - Privilege: "ListDashboards", + AccessLevel: "Write", + Description: "Grants permission to update an existing license configuration", + Privilege: "UpdateLicenseConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "license-configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all gateways", - Privilege: "ListGateways", + AccessLevel: "Write", + Description: "Grants permission to update a report generator for a license configuration", + Privilege: "UpdateLicenseManagerReportGenerator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "report-generator*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all portals", - Privilege: "ListPortals", + AccessLevel: "Write", + Description: "Grants permission to updates license specifications for a selected resource", + Privilege: "UpdateLicenseSpecificationsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "license-configuration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all assets associated with a project", - Privilege: "ListProjectAssets", + AccessLevel: "Permissions management", + Description: "Grants permission to updates service settings", + Privilege: "UpdateServiceSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list all projects in a portal", - Privilege: "ListProjects", + Arn: "arn:${Partition}:license-manager:${Region}:${Account}:license-configuration:${LicenseConfigurationId}", + ConditionKeys: []string{ + "license-manager:ResourceTag/${TagKey}", + }, + Resource: "license-configuration", + }, + { + Arn: "arn:${Partition}:license-manager::${Account}:license:${LicenseId}", + ConditionKeys: []string{}, + Resource: "license", + }, + { + Arn: "arn:${Partition}:license-manager::${Account}:grant:${GrantId}", + ConditionKeys: []string{}, + Resource: "grant", + }, + { + Arn: "arn:${Partition}:license-manager:${Region}:${Account}:report-generator:${ReportGeneratorId}", + ConditionKeys: []string{ + "license-manager:ResourceTag/${TagKey}", + }, + Resource: "report-generator", + }, + }, + ServiceName: "AWS License Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "license-manager-linux-subscriptions", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to permanently delete a subscription provider in AWS License Manager", + Privilege: "DeregisterSubscriptionProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal*", + ResourceType: "subscription-provider*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get a subscription provider in AWS License Manager", + Privilege: "GetRegisteredSubscriptionProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-policy", + ResourceType: "subscription-provider*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the service settings for Linux subscriptions in AWS License Manager", + Privilege: "GetServiceSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all instances with Linux subscriptions in AWS License Manager", + Privilege: "ListLinuxSubscriptionInstances", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all Linux subscriptions in AWS License Manager", + Privilege: "ListLinuxSubscriptions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list subscription providers in AWS License Manager", + Privilege: "ListRegisteredSubscriptionProviders", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a selected resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal", + ResourceType: "subscription-provider*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new subscription provider in AWS License Manager", + Privilege: "RegisterSubscriptionProvider", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a selected resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "subscription-provider*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -154718,21 +197846,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list time series", - Privilege: "ListTimeSeries", + AccessLevel: "Tagging", + Description: "Grants permission to untag a selected resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "subscription-provider*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the default encryption configuration for the AWS account", - Privilege: "PutDefaultEncryptionConfiguration", + Description: "Grants permission to update the service settings for Linux subscriptions in AWS License Manager", + Privilege: "UpdateServiceSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -154741,132 +197876,239 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:license-manager-linux-subscriptions:${Region}:${Account}:subscription-provider/${SubscriptionProviderId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "subscription-provider", + }, + }, + ServiceName: "AWS License Manager Linux Subscriptions Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "license-manager-user-subscriptions", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to set logging options for the AWS account", - Privilege: "PutLoggingOptions", + Description: "Grants permission to associate a subscribed user to an instance launched with license manager user subscriptions products", + Privilege: "AssociateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "identity-provider*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configure storage settings for the AWS account", - Privilege: "PutStorageConfiguration", + Description: "Grants permission to create a license server endpoint for a given server type for a given Identity Provider", + Privilege: "CreateLicenseServerEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "identity-provider*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a license server endpoint for a given server type for a given Identity Provider", + Privilege: "DeleteLicenseServerEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-policy", + ResourceType: "identity-provider*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "license-server-endpoint*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister Microsoft Active Directory with license-manager-user-subscriptions for a product", + Privilege: "DeregisterIdentityProvider", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model", + ResourceType: "identity-provider*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a subscribed user from an instance launched with license manager user subscriptions products", + Privilege: "DisassociateUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard", + ResourceType: "identity-provider*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway", + ResourceType: "instance-user*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the identity providers on license manager user subscriptions", + Privilege: "ListIdentityProviders", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the instances launched with license manager user subscription products", + Privilege: "ListInstances", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list license server endpoints", + Privilege: "ListLicenseServerEndpoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to lists all the product subscriptions for a product and identity provider", + Privilege: "ListProductSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-policy", + ResourceType: "identity-provider*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a selected resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset", + ResourceType: "identity-provider*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model", + ResourceType: "instance-user*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard", + ResourceType: "license-server-endpoint*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway", + ResourceType: "product-subscription*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the users associated to an instance launched for a product", + Privilege: "ListUserAssociations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal", + ResourceType: "identity-provider*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to registers Microsoft Active Directory with license-manager-user-subscriptions for a product", + Privilege: "RegisterIdentityProvider", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start product subscription for a user on a registered active directory for a product", + Privilege: "StartProductSubscription", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "time-series", + ResourceType: "identity-provider*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -154876,327 +198118,259 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an access policy", - Privilege: "UpdateAccessPolicy", + Description: "Grants permission to stop product subscription for a user on a registered active directory for a product", + Privilege: "StopProductSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-policy*", + ResourceType: "identity-provider*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an asset", - Privilege: "UpdateAsset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "product-subscription*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an asset model", - Privilege: "UpdateAssetModel", + AccessLevel: "Tagging", + Description: "Grants permission to tag a selected resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "identity-provider*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update asset model composite model", - Privilege: "UpdateAssetModelCompositeModel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "instance-user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an AssetModel property routing", - Privilege: "UpdateAssetModelPropertyRouting", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset-model*", + ResourceType: "license-server-endpoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an asset property", - Privilege: "UpdateAssetProperty", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "asset*", + ResourceType: "product-subscription*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a dashboard", - Privilege: "UpdateDashboard", + AccessLevel: "Tagging", + Description: "Grants permission to untag a selected resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "identity-provider*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a gateway", - Privilege: "UpdateGateway", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway*", + ResourceType: "instance-user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a capability configuration for a gateway", - Privilege: "UpdateGatewayCapabilityConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "gateway*", + ResourceType: "license-server-endpoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a portal", - Privilege: "UpdatePortal", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "portal*", + ResourceType: "product-subscription*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a project", - Privilege: "UpdateProject", + Description: "Grants permission to update the identity provider configuration", + Privilege: "UpdateIdentityProviderSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "identity-provider*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "asset", - }, - { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "asset-model", - }, - { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:time-series/${TimeSeriesId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "time-series", - }, - { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "gateway", - }, - { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}", + Arn: "arn:${Partition}:license-manager-user-subscriptions:${Region}:${Account}:identity-provider/${IdentityProviderId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "portal", + Resource: "identity-provider", }, { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}", + Arn: "arn:${Partition}:license-manager-user-subscriptions:${Region}:${Account}:product-subscription/${ProductSubscriptionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "project", + Resource: "product-subscription", }, { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}", + Arn: "arn:${Partition}:license-manager-user-subscriptions:${Region}:${Account}:instance-user/${InstanceUserId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "dashboard", + Resource: "instance-user", }, { - Arn: "arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}", + Arn: "arn:${Partition}:license-manager-user-subscriptions:${Region}:${Account}:license-server-endpoint/${LicenseServerEndpointId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "access-policy", + Resource: "license-server-endpoint", }, }, - ServiceName: "AWS IoT SiteWise", + ServiceName: "AWS License Manager User Subscriptions", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", + Description: "Filters access by a tag key and value pair that is allowed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to the resource", + Description: "Filters access by a tag key and value pair of a resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "iottwinmaker:destinationType", - Description: "Filters access by destination type of metadata transfer job", - Type: "ArrayOfString", - }, - { - Condition: "iottwinmaker:linkedServices", - Description: "Filters access by workspace linked to services", - Type: "ArrayOfString", - }, - { - Condition: "iottwinmaker:sourceType", - Description: "Filters access by source type of metadata transfer job", + Description: "Filters access by a list of tag keys that are allowed in the request", Type: "ArrayOfString", }, }, - Prefix: "iottwinmaker", + Prefix: "lightsail", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to set values for multiple time series properties", - Privilege: "BatchPutPropertyValues", + Description: "Grants permission to create a static IP address that can be attached to an instance", + Privilege: "AllocateStaticIp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iottwinmaker:GetComponentType", - "iottwinmaker:GetEntity", - "iottwinmaker:GetWorkspace", - }, - ResourceType: "workspace*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach an SSL/TLS certificate to your Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "AttachCertificateToDistribution", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Certificate*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity", + ResourceType: "Distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a metadata transfer job", - Privilege: "CancelMetadataTransferJob", + Description: "Grants permission to attach a disk to an instance", + Privilege: "AttachDisk", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metadataTransferJob*", + ResourceType: "Disk*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a componentType", - Privilege: "CreateComponentType", + Description: "Grants permission to attach one or more instances to a load balancer", + Privilege: "AttachInstancesToLoadBalancer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "LoadBalancer*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach a TLS certificate to a load balancer", + Privilege: "AttachLoadBalancerTlsCertificate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LoadBalancer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an entity", - Privilege: "CreateEntity", + Description: "Grants permission to attach a static IP address to an instance", + Privilege: "AttachStaticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "StaticIp*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a metadata transfer job", - Privilege: "CreateMetadataTransferJob", + Description: "Grants permission to close a public port of an instance", + Privilege: "CloseInstancePublicPorts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a scene", - Privilege: "CreateScene", + Description: "Grants permission to copy a snapshot from one AWS Region to another in Amazon Lightsail", + Privilege: "CopySnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Lightsail bucket", + Privilege: "CreateBucket", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -155209,441 +198383,437 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a sync job", - Privilege: "CreateSyncJob", + Description: "Grants permission to create a new access key for the specified bucket", + Privilege: "CreateBucketAccessKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Bucket*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workspace", - Privilege: "CreateWorkspace", + Description: "Grants permission to create an SSL/TLS certificate", + Privilege: "CreateCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "lightsail:CreateDomainEntry", + "lightsail:GetDomains", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a componentType", - Privilege: "DeleteComponentType", + Description: "Grants permission to create a new Amazon EC2 instance from an exported Amazon Lightsail snapshot", + Privilege: "CreateCloudFormationStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentType*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an entity", - Privilege: "DeleteEntity", + Description: "Grants permission to create an email or SMS text message contact method", + Privilege: "CreateContactMethod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a scene", - Privilege: "DeleteScene", + Description: "Grants permission to create an Amazon Lightsail container service", + Privilege: "CreateContainerService", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "scene*", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a sync job", - Privilege: "DeleteSyncJob", + Description: "Grants permission to create a deployment for your Amazon Lightsail container service", + Privilege: "CreateContainerServiceDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "syncJob*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "ContainerService*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a workspace", - Privilege: "DeleteWorkspace", + Description: "Grants permission to create a temporary set of log in credentials that you can use to log in to the Docker process on your local machine", + Privilege: "CreateContainerServiceRegistryLogin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to execute query", - Privilege: "ExecuteQuery", + AccessLevel: "Write", + Description: "Grants permission to create a disk", + Privilege: "CreateDisk", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a componentType", - Privilege: "GetComponentType", + AccessLevel: "Write", + Description: "Grants permission to create a disk from snapshot", + Privilege: "CreateDiskFromSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentType*", + ResourceType: "DiskSnapshot*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an entity", - Privilege: "GetEntity", + AccessLevel: "Write", + Description: "Grants permission to create a disk snapshot", + Privilege: "CreateDiskSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity*", + ResourceType: "Disk", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "Instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a metadata transfer job", - Privilege: "GetMetadataTransferJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "metadataTransferJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get pricing plan", - Privilege: "GetPricingPlan", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "CreateDistribution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the property values", - Privilege: "GetPropertyValue", + AccessLevel: "Write", + Description: "Grants permission to create a domain resource for the specified domain name", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{ - "iottwinmaker:GetComponentType", - "iottwinmaker:GetEntity", - "iottwinmaker:GetWorkspace", + "route53:DeleteHostedZone", + "route53:GetHostedZone", + "route53:ListHostedZonesByName", + "route53domains:GetDomainDetail", + "route53domains:GetOperationDetail", + "route53domains:ListDomains", + "route53domains:ListOperations", + "route53domains:UpdateDomainNameservers", }, - ResourceType: "workspace*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "componentType", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the time series value history", - Privilege: "GetPropertyValueHistory", + AccessLevel: "Write", + Description: "Grants permission to create one or more DNS record entries for a domain resource: Address (A), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT)", + Privilege: "CreateDomainEntry", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iottwinmaker:GetComponentType", - "iottwinmaker:GetEntity", - "iottwinmaker:GetWorkspace", - }, - ResourceType: "workspace*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "componentType", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity", + ResourceType: "Domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a scene", - Privilege: "GetScene", + AccessLevel: "Write", + Description: "Grants permission to create URLs that are used to access an instance's graphical user interface (GUI) session", + Privilege: "CreateGUISessionAccessDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scene*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a sync job", - Privilege: "GetSyncJob", + AccessLevel: "Write", + Description: "Grants permission to create an instance snapshot", + Privilege: "CreateInstanceSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "syncJob*", + ResourceType: "Instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a workspace", - Privilege: "GetWorkspace", + AccessLevel: "Write", + Description: "Grants permission to create one or more instances", + Privilege: "CreateInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all componentTypes in a workspace", - Privilege: "ListComponentTypes", + AccessLevel: "Write", + Description: "Grants permission to create one or more instances based on an instance snapshot", + Privilege: "CreateInstancesFromSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "InstanceSnapshot*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list components attached to an entity", - Privilege: "ListComponents", + AccessLevel: "Write", + Description: "Grants permission to create a key pair used to authenticate and connect to an instance", + Privilege: "CreateKeyPair", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "entity*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a load balancer", + Privilege: "CreateLoadBalancer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "lightsail:CreateDomainEntry", + "lightsail:GetDomains", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all entities in a workspace", - Privilege: "ListEntities", + AccessLevel: "Write", + Description: "Grants permission to create a load balancer TLS certificate", + Privilege: "CreateLoadBalancerTlsCertificate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ConditionKeys: []string{}, + DependentActions: []string{ + "lightsail:CreateDomainEntry", + "lightsail:GetDomains", + }, + ResourceType: "LoadBalancer*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all metadata transfer jobs", - Privilege: "ListMetadataTransferJobs", + AccessLevel: "Write", + Description: "Grants permission to create a new relational database", + Privilege: "CreateRelationalDatabase", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list properties of an entity component", - Privilege: "ListProperties", + AccessLevel: "Write", + Description: "Grants permission to create a new relational database from a snapshot", + Privilege: "CreateRelationalDatabaseFromSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity*", + ResourceType: "RelationalDatabaseSnapshot*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all scenes in a workspace", - Privilege: "ListScenes", + AccessLevel: "Write", + Description: "Grants permission to create a relational database snapshot", + Privilege: "CreateRelationalDatabaseSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all sync jobs in a workspace", - Privilege: "ListSyncJobs", + AccessLevel: "Write", + Description: "Grants permission to delete an alarm", + Privilege: "DeleteAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "Alarm*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all sync resources for a sync job", - Privilege: "ListSyncResources", + AccessLevel: "Write", + Description: "Grants permission to delete an automatic snapshot of an instance or disk", + Privilege: "DeleteAutoSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "syncJob*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Lightsail bucket", + Privilege: "DeleteBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentType", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "scene", + ResourceType: "Bucket*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an access key for the specified Amazon Lightsail bucket", + Privilege: "DeleteBucketAccessKey", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "syncJob", + ResourceType: "Bucket*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an SSL/TLS certificate", + Privilege: "DeleteCertificate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Certificate*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all workspaces", - Privilege: "ListWorkspaces", + AccessLevel: "Write", + Description: "Grants permission to delete a contact method", + Privilege: "DeleteContactMethod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -155653,583 +198823,574 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a container image that is registered to your Amazon Lightsail container service", + Privilege: "DeleteContainerImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentType", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "entity", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "scene", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "syncJob", + ResourceType: "ContainerService*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete your Amazon Lightsail container service", + Privilege: "DeleteContainerService", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ContainerService*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a disk", + Privilege: "DeleteDisk", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentType", + ResourceType: "Disk*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a disk snapshot", + Privilege: "DeleteDiskSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity", + ResourceType: "DiskSnapshot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete your Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "DeleteDistribution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scene", + ResourceType: "Distribution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a domain resource and all of its DNS records", + Privilege: "DeleteDomain", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "syncJob", + ResourceType: "Domain*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a DNS record entry for a domain resource", + Privilege: "DeleteDomainEntry", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a componentType", - Privilege: "UpdateComponentType", + Description: "Grants permission to delete an instance", + Privilege: "DeleteInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "componentType*", + ResourceType: "Instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an instance snapshot", + Privilege: "DeleteInstanceSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "InstanceSnapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an entity", - Privilege: "UpdateEntity", + Description: "Grants permission to delete a key pair used to authenticate and connect to an instance", + Privilege: "DeleteKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "entity*", + ResourceType: "KeyPair*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the known host key or certificate used by the Amazon Lightsail browser-based SSH or RDP clients to authenticate an instance", + Privilege: "DeleteKnownHostKeys", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update pricing plan", - Privilege: "UpdatePricingPlan", + Description: "Grants permission to delete a load balancer", + Privilege: "DeleteLoadBalancer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LoadBalancer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a scene", - Privilege: "UpdateScene", + Description: "Grants permission to delete a load balancer TLS certificate", + Privilege: "DeleteLoadBalancerTlsCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "scene*", + ResourceType: "LoadBalancer*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a relational database", + Privilege: "DeleteRelationalDatabase", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "RelationalDatabase*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a workspace", - Privilege: "UpdateWorkspace", + Description: "Grants permission to delete a relational database snapshot", + Privilege: "DeleteRelationalDatabaseSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workspace*", + ResourceType: "RelationalDatabaseSnapshot*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "workspace", - }, - { - Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/entity/${EntityId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "entity", - }, - { - Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/component-type/${ComponentTypeId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "componentType", - }, - { - Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/scene/${SceneId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "scene", - }, - { - Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}/sync-job/${SyncJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "syncJob", - }, - { - Arn: "arn:${Partition}:iottwinmaker:${Region}:${Account}:metadata-transfer-job/${MetadataTransferJobId}", - ConditionKeys: []string{}, - Resource: "metadataTransferJob", - }, - }, - ServiceName: "AWS IoT TwinMaker", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key that is present in the request that the user makes to IoT Wireless", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key component of a tag attached to an IoT Wireless resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names associated with the resource in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "iotwireless", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to link partner accounts with AWS account", - Privilege: "AssociateAwsAccountWithPartnerAccount", + Description: "Grants permission to detach an SSL/TLS certificate from your Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "DetachCertificateFromDistribution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the MulticastGroup with FuotaTask", - Privilege: "AssociateMulticastGroupWithFuotaTask", + Description: "Grants permission to detach a disk from an instance", + Privilege: "DetachDisk", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "Disk*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to detach one or more instances from a load balancer", + Privilege: "DetachInstancesFromLoadBalancer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "LoadBalancer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the wireless device with FuotaTask", - Privilege: "AssociateWirelessDeviceWithFuotaTask", + Description: "Grants permission to detach a static IP from an instance to which it is attached", + Privilege: "DetachStaticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "StaticIp*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable an add-on for an Amazon Lightsail resource", + Privilege: "DisableAddOn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the WirelessDevice with MulticastGroup", - Privilege: "AssociateWirelessDeviceWithMulticastGroup", + Description: "Grants permission to download the default key pair used to authenticate and connect to instances in a specific AWS Region", + Privilege: "DownloadDefaultKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable or modify an add-on for an Amazon Lightsail resource", + Privilege: "EnableAddOn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the wireless device with AWS IoT thing for a given wirelessDeviceId", - Privilege: "AssociateWirelessDeviceWithThing", + Description: "Grants permission to export an Amazon Lightsail snapshot to Amazon EC2", + Privilege: "ExportSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iot:DescribeThing", + "iam:CreateServiceLinkedRole", + "iam:PutRolePolicy", }, - ResourceType: "WirelessDevice*", + ResourceType: "DiskSnapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "InstanceSnapshot", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a WirelessGateway with the IoT Core Identity certificate", - Privilege: "AssociateWirelessGatewayWithCertificate", + AccessLevel: "Read", + Description: "Grants permission to get the names of all active (not deleted) resources", + Privilege: "GetActiveNames", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about the configured alarms", + Privilege: "GetAlarms", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate the wireless gateway with AWS IoT thing for a given wirelessGatewayId", - Privilege: "AssociateWirelessGatewayWithThing", + AccessLevel: "Read", + Description: "Grants permission to view the available automatic snapshots for an instance or disk", + Privilege: "GetAutoSnapshots", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeThing", - }, - ResourceType: "WirelessGateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of instance images, or blueprints. You can use a blueprint to create a new instance already running a specific operating system, as well as a pre-installed application or development stack. The software that runs on your instance depends on the blueprint you define when creating the instance", + Privilege: "GetBlueprints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel the MulticastGroup session", - Privilege: "CancelMulticastGroupSession", + AccessLevel: "Read", + Description: "Grants permission to get the existing access key IDs for the specified Amazon Lightsail bucket", + Privilege: "GetBucketAccessKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Destination resource", - Privilege: "CreateDestination", + AccessLevel: "Read", + Description: "Grants permission to get the bundles that can be applied to an Amazon Lightsail bucket", + Privilege: "GetBucketBundles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a DeviceProfile resource", - Privilege: "CreateDeviceProfile", + AccessLevel: "Read", + Description: "Grants permission to get the data points of a specific metric for an Amazon Lightsail bucket", + Privilege: "GetBucketMetricData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a FuotaTask resource", - Privilege: "CreateFuotaTask", + AccessLevel: "Read", + Description: "Grants permission to get information about one or more Amazon Lightsail buckets", + Privilege: "GetBuckets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a MulticastGroup resource", - Privilege: "CreateMulticastGroup", + AccessLevel: "Read", + Description: "Grants permission to get a list of instance bundles. You can use a bundle to create a new instance with a set of performance specifications, such as CPU count, disk size, RAM size, and network transfer allowance. The cost of your instance depends on the bundle you define when creating the instance", + Privilege: "GetBundles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a NetworkAnalyzerConfiguration resource", - Privilege: "CreateNetworkAnalyzerConfiguration", + AccessLevel: "Read", + Description: "Grants permission to view information about one or more Amazon Lightsail SSL/TLS certificates", + Privilege: "GetCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about all CloudFormation stacks used to create Amazon EC2 resources from exported Amazon Lightsail snapshots", + Privilege: "GetCloudFormationStackRecords", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about the configured contact methods", + Privilege: "GetContactMethods", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about Amazon Lightsail containers, such as the current version of the Lightsail Control (lightsailctl) plugin", + Privilege: "GetContainerAPIMetadata", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a ServiceProfile resource", - Privilege: "CreateServiceProfile", + AccessLevel: "Read", + Description: "Grants permission to view the container images that are registered to your Amazon Lightsail container service", + Privilege: "GetContainerImages", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a WirelessDevice resource with given Destination", - Privilege: "CreateWirelessDevice", + AccessLevel: "Read", + Description: "Grants permission to view the log events of a container of your Amazon Lightsail container service", + Privilege: "GetContainerLog", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a WirelessGateway resource", - Privilege: "CreateWirelessGateway", + AccessLevel: "Read", + Description: "Grants permission to view the deployments for your Amazon Lightsail container service", + Privilege: "GetContainerServiceDeployments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a task for a given WirelessGateway", - Privilege: "CreateWirelessGatewayTask", + AccessLevel: "Read", + Description: "Grants permission to view the data points of a specific metric of your Amazon Lightsail container service", + Privilege: "GetContainerServiceMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a WirelessGateway task definition", - Privilege: "CreateWirelessGatewayTaskDefinition", + AccessLevel: "Read", + Description: "Grants permission to view the list of powers that can be specified for your Amazon Lightsail container services", + Privilege: "GetContainerServicePowers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Destination", - Privilege: "DeleteDestination", + AccessLevel: "Read", + Description: "Grants permission to view information about one or more of your Amazon Lightsail container services", + Privilege: "GetContainerServices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Destination*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a DeviceProfile", - Privilege: "DeleteDeviceProfile", + AccessLevel: "Read", + Description: "Grants permission to get the information about the cost estimate for a specified resource", + Privilege: "GetCostEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DeviceProfile*", + ResourceType: "Disk", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the FuotaTask", - Privilege: "DeleteFuotaTask", + AccessLevel: "Read", + Description: "Grants permission to get information about a disk", + Privilege: "GetDisk", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the MulticastGroup", - Privilege: "DeleteMulticastGroup", + AccessLevel: "Read", + Description: "Grants permission to get information about a disk snapshot", + Privilege: "GetDiskSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the NetworkAnalyzerConfiguration", - Privilege: "DeleteNetworkAnalyzerConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get information about all disk snapshots", + Privilege: "GetDiskSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete QueuedMessages", - Privilege: "DeleteQueuedMessages", + AccessLevel: "Read", + Description: "Grants permission to get information about all disks", + Privilege: "GetDisks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156239,235 +199400,249 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a ServiceProfile", - Privilege: "DeleteServiceProfile", + AccessLevel: "Read", + Description: "Grants permission to view the list of bundles that can be applied to you Amazon Lightsail content delivery network (CDN) distributions", + Privilege: "GetDistributionBundles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ServiceProfile*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a WirelessDevice", - Privilege: "DeleteWirelessDevice", + AccessLevel: "Read", + Description: "Grants permission to view the timestamp and status of the last cache reset of a specific Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "GetDistributionLatestCacheReset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the wireless device import task", - Privilege: "DeleteWirelessDeviceImportTask", + AccessLevel: "Read", + Description: "Grants permission to view the data points of a specific metric for an Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "GetDistributionMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a WirelessGateway", - Privilege: "DeleteWirelessGateway", + AccessLevel: "Read", + Description: "Grants permission to view information about one or more of your Amazon Lightsail content delivery network (CDN) distributions", + Privilege: "GetDistributions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete task for a given WirelessGateway", - Privilege: "DeleteWirelessGatewayTask", + AccessLevel: "Read", + Description: "Grants permission to get DNS records for a domain resource", + Privilege: "GetDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a WirelessGateway task definition", - Privilege: "DeleteWirelessGatewayTaskDefinition", + AccessLevel: "Read", + Description: "Grants permission to get DNS records for all domain resources", + Privilege: "GetDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGatewayTaskDefinition*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister wireless device", - Privilege: "DeregisterWirelessDevice", + AccessLevel: "Read", + Description: "Grants permission to get information about all records of exported Amazon Lightsail snapshots to Amazon EC2", + Privilege: "GetExportSnapshotRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an AWS account from a partner account", - Privilege: "DisassociateAwsAccountFromPartnerAccount", + AccessLevel: "Read", + Description: "Grants permission to get information about an instance", + Privilege: "GetInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the MulticastGroup from FuotaTask", - Privilege: "DisassociateMulticastGroupFromFuotaTask", + Description: "Grants permission to get temporary keys you can use to authenticate and connect to an instance", + Privilege: "GetInstanceAccessDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "Instance*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the data points for the specified metric of an instance", + Privilege: "GetInstanceMetricData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate the wireless device from FuotaTask", - Privilege: "DisassociateWirelessDeviceFromFuotaTask", + AccessLevel: "Read", + Description: "Grants permission to get the port states of an instance", + Privilege: "GetInstancePortStates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about an instance snapshot", + Privilege: "GetInstanceSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate the wireless device from MulticastGroup", - Privilege: "DisassociateWirelessDeviceFromMulticastGroup", + AccessLevel: "Read", + Description: "Grants permission to get information about all instance snapshots", + Privilege: "GetInstanceSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the state of an instance", + Privilege: "GetInstanceState", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a wireless device from a AWS IoT thing", - Privilege: "DisassociateWirelessDeviceFromThing", + AccessLevel: "Read", + Description: "Grants permission to get information about all instances", + Privilege: "GetInstances", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeThing", - }, - ResourceType: "WirelessDevice*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a WirelessGateway from a IoT Core Identity certificate", - Privilege: "DisassociateWirelessGatewayFromCertificate", + AccessLevel: "Read", + Description: "Grants permission to get information about a key pair", + Privilege: "GetKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about all key pairs", + Privilege: "GetKeyPairs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cert*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a WirelessGateway from a IoT Core thing", - Privilege: "DisassociateWirelessGatewayFromThing", + AccessLevel: "Read", + Description: "Grants permission to get information about a load balancer", + Privilege: "GetLoadBalancer", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iot:DescribeThing", - }, - ResourceType: "WirelessGateway*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thing*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the Destination", - Privilege: "GetDestination", + Description: "Grants permission to get the data points for the specified metric of a load balancer", + Privilege: "GetLoadBalancerMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Destination*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the DeviceProfile", - Privilege: "GetDeviceProfile", + Description: "Grants permission to get information about a load balancer's TLS certificates", + Privilege: "GetLoadBalancerTlsCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DeviceProfile*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get event configuration by resource types", - Privilege: "GetEventConfigurationByResourceTypes", + Description: "Grants permission to get a list of TLS security policies that you can apply to Lightsail load balancers", + Privilege: "GetLoadBalancerTlsPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156478,20 +199653,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the FuotaTask", - Privilege: "GetFuotaTask", + Description: "Grants permission to get information about load balancers", + Privilege: "GetLoadBalancers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get log levels by resource types", - Privilege: "GetLogLevelsByResourceTypes", + Description: "Grants permission to get information about an operation. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on", + Privilege: "GetOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156502,8 +199677,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get metric configuration", - Privilege: "GetMetricConfiguration", + Description: "Grants permission to get information about all operations. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on", + Privilege: "GetOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156514,8 +199689,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get metrics", - Privilege: "GetMetrics", + Description: "Grants permission to get operations for a resource", + Privilege: "GetOperationsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156526,90 +199701,104 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the MulticastGroup", - Privilege: "GetMulticastGroup", + Description: "Grants permission to get a list of all valid AWS Regions for Amazon Lightsail", + Privilege: "GetRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the MulticastGroup session", - Privilege: "GetMulticastGroupSession", + Description: "Grants permission to get information about a relational database", + Privilege: "GetRelationalDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the NetworkAnalyzerConfiguration", - Privilege: "GetNetworkAnalyzerConfiguration", + Description: "Grants permission to get a list of relational database images, or blueprints. You can use a blueprint to create a new database running a specific database engine. The database engine that runs on your database depends on the blueprint you define when creating the relational database", + Privilege: "GetRelationalDatabaseBlueprints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the associated PartnerAccount", - Privilege: "GetPartnerAccount", + Description: "Grants permission to get a list of relational database bundles. You can use a bundle to create a new database with a set of performance specifications, such as CPU count, disk size, RAM size, network transfer allowance, and standard of high availability. The cost of your database depends on the bundle you define when creating the relational database", + Privilege: "GetRelationalDatabaseBundles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get position for a given resource", - Privilege: "GetPosition", + Description: "Grants permission to get events for a relational database", + Privilege: "GetRelationalDatabaseEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get events for the specified log stream of a relational database", + Privilege: "GetRelationalDatabaseLogEvents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get position configuration for a given resource", - Privilege: "GetPositionConfiguration", + Description: "Grants permission to get the log streams available for a relational database", + Privilege: "GetRelationalDatabaseLogStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get the master user password of a relational database", + Privilege: "GetRelationalDatabaseMasterUserPassword", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "RelationalDatabase*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get position estimate", - Privilege: "GetPositionEstimate", + Description: "Grants permission to get the data points for the specified metric of a relational database", + Privilege: "GetRelationalDatabaseMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156620,64 +199809,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an event configuration for an identifier", - Privilege: "GetResourceEventConfiguration", + Description: "Grants permission to get the parameters of a relational database", + Privilege: "GetRelationalDatabaseParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a relational database snapshot", + Privilege: "GetRelationalDatabaseSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about all relational database snapshots", + Privilege: "GetRelationalDatabaseSnapshots", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get resource log level", - Privilege: "GetResourceLogLevel", + Description: "Grants permission to get information about all relational databases", + Privilege: "GetRelationalDatabases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get detailed information for setup requests that were run on the specified resource", + Privilege: "GetSetupHistory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "Instance", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get position for a given resource", - Privilege: "GetResourcePosition", + Description: "Grants permission to get information about a static IP", + Privilege: "GetStaticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about all static IPs", + Privilege: "GetStaticIps", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the customer account specific endpoint for CUPS protocol connection or LoRaWAN Network Server (LNS) protocol connection, and optionally server trust certificate in PEM format", - Privilege: "GetServiceEndpoint", + AccessLevel: "Write", + Description: "Grants permission to import a public key from a key pair", + Privilege: "ImportKeyPair", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156688,128 +199905,128 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the ServiceProfile", - Privilege: "GetServiceProfile", + Description: "Grants permission to get a boolean value indicating whether the Amazon Lightsail virtual private cloud (VPC) is peered", + Privilege: "IsVpcPeered", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ServiceProfile*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the WirelessDevice", - Privilege: "GetWirelessDevice", + AccessLevel: "Write", + Description: "Grants permission to add, or open a public port of an instance", + Privilege: "OpenInstancePublicPorts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the wireless device import task", - Privilege: "GetWirelessDeviceImportTask", + AccessLevel: "Write", + Description: "Grants permission to try to peer the Amazon Lightsail virtual private cloud (VPC) with the default VPC", + Privilege: "PeerVpc", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get statistics info for a given WirelessDevice", - Privilege: "GetWirelessDeviceStatistics", + AccessLevel: "Write", + Description: "Grants permission to creates or update an alarm, and associate it with the specified metric", + Privilege: "PutAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "Alarm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the WirelessGateway", - Privilege: "GetWirelessGateway", + AccessLevel: "Write", + Description: "Grants permission to set the specified open ports for an instance, and closes all ports for every protocol not included in the request", + Privilege: "PutInstancePublicPorts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the IoT Core Identity certificate id associated with the WirelessGateway", - Privilege: "GetWirelessGatewayCertificate", + AccessLevel: "Write", + Description: "Grants permission to reboot an instance that is in a running state", + Privilege: "RebootInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Current firmware version and other information for the WirelessGateway", - Privilege: "GetWirelessGatewayFirmwareInformation", + AccessLevel: "Write", + Description: "Grants permission to reboot a relational database that is in a running state", + Privilege: "RebootRelationalDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "RelationalDatabase*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get statistics info for a given WirelessGateway", - Privilege: "GetWirelessGatewayStatistics", + AccessLevel: "Write", + Description: "Grants permission to register a container image to your Amazon Lightsail container service", + Privilege: "RegisterContainerImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "ContainerService*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the task for a given WirelessGateway", - Privilege: "GetWirelessGatewayTask", + AccessLevel: "Write", + Description: "Grants permission to delete a static IP", + Privilege: "ReleaseStaticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "StaticIp*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the given WirelessGateway task definition", - Privilege: "GetWirelessGatewayTaskDefinition", + AccessLevel: "Write", + Description: "Grants permission to delete currently cached content from your Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "ResetDistributionCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGatewayTaskDefinition*", + ResourceType: "Distribution*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available Destinations based on the AWS account", - Privilege: "ListDestinations", + AccessLevel: "Write", + Description: "Grants permission to send a verification request to an email contact method to ensure it's owned by the requester", + Privilege: "SendContactMethodVerification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -156819,239 +200036,231 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available DeviceProfiles based on the AWS account", - Privilege: "ListDeviceProfiles", + AccessLevel: "Write", + Description: "Grants permission to set the IP address type for a Amazon Lightsail resource", + Privilege: "SetIpAddressType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Distribution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "LoadBalancer", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of devices by wireless device import task based on the AWS account", - Privilege: "ListDevicesForWirelessDeviceImportTask", + AccessLevel: "Write", + Description: "Grants permission to set the Amazon Lightsail resources that can access the specified Amazon Lightsail bucket", + Privilege: "SetResourceAccessForBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask*", + ResourceType: "Bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list information of available event configurations based on the AWS account", - Privilege: "ListEventConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available FuotaTasks based on the AWS account", - Privilege: "ListFuotaTasks", + AccessLevel: "Write", + Description: "Grants permission to create an SSL/TLS certificate and install it on a specified instance", + Privilege: "SetupInstanceHttps", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "lightsail:GetInstanceAccessDetails", + }, + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available MulticastGroups based on the AWS account", - Privilege: "ListMulticastGroups", + AccessLevel: "Write", + Description: "Grants permission to initiate a graphical user interface (GUI) session used to access an instance's operating system or application", + Privilege: "StartGUISession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available MulticastGroups by FuotaTask based on the AWS account", - Privilege: "ListMulticastGroupsByFuotaTask", + AccessLevel: "Write", + Description: "Grants permission to start an instance that is in a stopped state", + Privilege: "StartInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available NetworkAnalyzerConfigurations based on the AWS account", - Privilege: "ListNetworkAnalyzerConfigurations", + AccessLevel: "Write", + Description: "Grants permission to start a relational database that is in a stopped state", + Privilege: "StartRelationalDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RelationalDatabase*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the available partner accounts", - Privilege: "ListPartnerAccounts", + AccessLevel: "Write", + Description: "Grants permission to terminate a graphical user interface (GUI) session used to access an instance's operating system or application", + Privilege: "StopGUISession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available position configurations based on the AWS account", - Privilege: "ListPositionConfigurations", + AccessLevel: "Write", + Description: "Grants permission to stop an instance that is in a running state", + Privilege: "StopInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the Queued Messages", - Privilege: "ListQueuedMessages", + AccessLevel: "Write", + Description: "Grants permission to stop a relational database that is in a running state", + Privilege: "StopRelationalDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RelationalDatabase*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available ServiceProfiles based on the AWS account", - Privilege: "ListServiceProfiles", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Bucket", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all tags for a given resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Destination", + ResourceType: "Certificate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DeviceProfile", + ResourceType: "ContainerService", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask", + ResourceType: "Disk", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask", + ResourceType: "DiskSnapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup", + ResourceType: "Distribution", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration", + ResourceType: "Domain", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ServiceProfile", + ResourceType: "Instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount", + ResourceType: "InstanceSnapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "KeyPair", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "LoadBalancer", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGatewayTaskDefinition", + ResourceType: "RelationalDatabase", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list wireless device import tasks information of based on the AWS account", - Privilege: "ListWirelessDeviceImportTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RelationalDatabaseSnapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list information of available WirelessDevices based on the AWS account", - Privilege: "ListWirelessDevices", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "StaticIp", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available WirelessGateway task definitions based on the AWS account", - Privilege: "ListWirelessGatewayTaskDefinitions", + AccessLevel: "Write", + Description: "Grants permission to test an alarm by displaying a banner on the Amazon Lightsail console or if a notification trigger is configured for the specified alarm, by sending a notification to the notification protocol", + Privilege: "TestAlarm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Alarm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list information of available WirelessGateways based on the AWS account", - Privilege: "ListWirelessGateways", + AccessLevel: "Write", + Description: "Grants permission to try to unpeer the Amazon Lightsail virtual private cloud (VPC) from the default VPC", + Privilege: "UnpeerVpc", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157061,251 +200270,479 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to put position configuration for a given resource", - Privilege: "PutPositionConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "Bucket", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "Certificate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put resource log level", - Privilege: "PutResourceLogLevel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "ContainerService", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "Disk", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reset all resource log levels", - Privilege: "ResetAllResourceLogLevels", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DiskSnapshot", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reset resource log level", - Privilege: "ResetResourceLogLevel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "Distribution", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "Domain", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "InstanceSnapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KeyPair", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "LoadBalancer", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RelationalDatabase", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RelationalDatabaseSnapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StaticIp", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send data to the MulticastGroup", - Privilege: "SendDataToMulticastGroup", + Description: "Grants permission to update an existing Amazon Lightsail bucket", + Privilege: "UpdateBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "Bucket*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send the decrypted application data frame to the target device", - Privilege: "SendDataToWirelessDevice", + Description: "Grants permission to update the bundle, or storage plan, of an existing Amazon Lightsail bucket", + Privilege: "UpdateBucketBundle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "Bucket*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the WirelessDevices with MulticastGroup", - Privilege: "StartBulkAssociateWirelessDeviceWithMulticastGroup", + Description: "Grants permission to update the configuration of your Amazon Lightsail container service, such as its power, scale, and public domain names", + Privilege: "UpdateContainerService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "ContainerService*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to bulk disassociate the WirelessDevices from MulticastGroup", - Privilege: "StartBulkDisassociateWirelessDeviceFromMulticastGroup", + Description: "Grants permission to update an existing Amazon Lightsail content delivery network (CDN) distribution or its configuration", + Privilege: "UpdateDistribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "Distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the FuotaTask", - Privilege: "StartFuotaTask", + Description: "Grants permission to update the bundle of your Amazon Lightsail content delivery network (CDN) distribution", + Privilege: "UpdateDistributionBundle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "Distribution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the MulticastGroup session", - Privilege: "StartMulticastGroupSession", + Description: "Grants permission to update a domain recordset after it is created", + Privilege: "UpdateDomainEntry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "Domain*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start NetworkAnalyzer stream", - Privilege: "StartNetworkAnalyzerStream", + Description: "Grants permission to update metadata options for an instance", + Privilege: "UpdateInstanceMetadataOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the single wireless device import task", - Privilege: "StartSingleWirelessDeviceImportTask", + Description: "Grants permission to update a load balancer attribute, such as the health check path and session stickiness", + Privilege: "UpdateLoadBalancerAttribute", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LoadBalancer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the wireless device import task", - Privilege: "StartWirelessDeviceImportTask", + Description: "Grants permission to update a relational database", + Privilege: "UpdateRelationalDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask*", + ResourceType: "RelationalDatabase*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the parameters of a relational database", + Privilege: "UpdateRelationalDatabaseParameters", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RelationalDatabase*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Tagging", - Description: "Grants permission to tag a given resource", - Privilege: "TagResource", + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Domain/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Domain", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Instance/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Instance", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:InstanceSnapshot/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "InstanceSnapshot", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:KeyPair/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "KeyPair", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:StaticIp/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "StaticIp", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Disk/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Disk", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:DiskSnapshot/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "DiskSnapshot", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:LoadBalancer/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "LoadBalancer", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:LoadBalancerTlsCertificate/${Id}", + ConditionKeys: []string{}, + Resource: "LoadBalancerTlsCertificate", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:ExportSnapshotRecord/${Id}", + ConditionKeys: []string{}, + Resource: "ExportSnapshotRecord", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:CloudFormationStackRecord/${Id}", + ConditionKeys: []string{}, + Resource: "CloudFormationStackRecord", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:RelationalDatabase/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "RelationalDatabase", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:RelationalDatabaseSnapshot/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "RelationalDatabaseSnapshot", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Alarm/${Id}", + ConditionKeys: []string{}, + Resource: "Alarm", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Certificate/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Certificate", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:ContactMethod/${Id}", + ConditionKeys: []string{}, + Resource: "ContactMethod", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:ContainerService/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ContainerService", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Distribution/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Distribution", + }, + { + Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Bucket/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Bucket", + }, + }, + ServiceName: "Amazon Lightsail", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "logs:DeliveryDestinationResourceArn", + Description: "Filters access by the Log Destination ARN passed in the request", + Type: "ARN", + }, + { + Condition: "logs:LogGeneratingResourceArns", + Description: "Filters access by the Log Generating Resource ARNs passed in the request", + Type: "ArrayOfARN", + }, + }, + Prefix: "logs", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group", + Privilege: "AssociateKmsKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Destination", + ResourceType: "log-group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel an export task if it is in PENDING or RUNNING state", + Privilege: "CancelExportTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DeviceProfile", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a delivery connecting a delivery source to a delivery destination", + Privilege: "CreateDelivery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask", + ResourceType: "delivery*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask", + ResourceType: "delivery-destination*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup", + ResourceType: "delivery-source*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an ExportTask which allows you to efficiently export data from a Log Group to your Amazon S3 bucket", + Privilege: "CreateExportTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ServiceProfile", + ResourceType: "log-group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a log anomaly detector", + Privilege: "CreateLogAnomalyDetector", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount", + ResourceType: "log-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create the log delivery", + Privilege: "CreateLogDelivery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new log group with the specified name", + Privilege: "CreateLogGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGatewayTaskDefinition", + ResourceType: "log-group*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -157314,125 +200751,188 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to simulate a provisioned device to send an uplink data with payload of 'Hello'", - Privilege: "TestWirelessDevice", + Description: "Grants permission to create a new log stream with the specified name", + Privilege: "CreateLogStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "log-stream*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the given tags from the resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete an account policy", + Privilege: "DeleteAccountPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Destination", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a data protection policy attached to a log group", + Privilege: "DeleteDataProtectionPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DeviceProfile", + ResourceType: "log-group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a delivery", + Privilege: "DeleteDelivery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask", + ResourceType: "delivery*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a delivery destination after all associated deliveries are deleted", + Privilege: "DeleteDeliveryDestination", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask", + ResourceType: "delivery-destination*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a delivery destination policy associated with a delivery destination", + Privilege: "DeleteDeliveryDestinationPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup", + ResourceType: "delivery-destination*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a delivery source after all associated deliveries are deleted", + Privilege: "DeleteDeliverySource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration", + ResourceType: "delivery-destination*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the destination with the specified name", + Privilege: "DeleteDestination", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ServiceProfile", + ResourceType: "destination*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an index policy attached to a log group", + Privilege: "DeleteIndexPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the integration", + Privilege: "DeleteIntegration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a log anomaly detector", + Privilege: "DeleteLogAnomalyDetector", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "anomaly-detector*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the log delivery information for specified log delivery", + Privilege: "DeleteLogDelivery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGatewayTaskDefinition", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Destination resource", - Privilege: "UpdateDestination", + Description: "Grants permission to delete the log group with the specified name", + Privilege: "DeleteLogGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Destination*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update event configuration by resource types", - Privilege: "UpdateEventConfigurationByResourceTypes", + Description: "Grants permission to delete a log stream", + Privilege: "DeleteLogStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "log-stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the FuotaTask", - Privilege: "UpdateFuotaTask", + Description: "Grants permission to delete a metric filter associated with the specified log group", + Privilege: "DeleteMetricFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FuotaTask*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update log levels by resource types", - Privilege: "UpdateLogLevelsByResourceTypes", + Description: "Grants permission to delete a saved CloudWatch Logs Insights query definition", + Privilege: "DeleteQueryDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157442,9 +200942,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update metric configuration", - Privilege: "UpdateMetricConfiguration", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a resource policy from this account", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157455,331 +200955,416 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the MulticastGroup", - Privilege: "UpdateMulticastGroup", + Description: "Grants permission to delete the retention policy of the specified log group", + Privilege: "DeleteRetentionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the NetworkAnalyzerConfiguration", - Privilege: "UpdateNetworkAnalyzerConfiguration", + Description: "Grants permission to delete a subscription filter associated with the specified log group", + Privilege: "DeleteSubscriptionFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MulticastGroup*", + ResourceType: "log-group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a transformer associated with the specified log group", + Privilege: "DeleteTransformer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NetworkAnalyzerConfiguration*", + ResourceType: "log-group*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve account policies", + Privilege: "DescribeAccountPolicies", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of configuration templates of available log types", + Privilege: "DescribeConfigurationTemplates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a partner account", - Privilege: "UpdatePartnerAccount", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of deliveries an account", + Privilege: "DescribeDeliveries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update position for a given resource", - Privilege: "UpdatePosition", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of delivery destinations an account", + Privilege: "DescribeDeliveryDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of delivery sources in an account", + Privilege: "DescribeDeliverySources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an event configuration for an identifier", - Privilege: "UpdateResourceEventConfiguration", + AccessLevel: "List", + Description: "Grants permission to return all the destinations that are associated with the AWS account making the request", + Privilege: "DescribeDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SidewalkAccount", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return all the export tasks that are associated with the AWS account making the request", + Privilege: "DescribeExportTasks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return all the indexing attributes that are attached with the log groups", + Privilege: "DescribeFieldIndexes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update position for a given resource", - Privilege: "UpdateResourcePosition", + AccessLevel: "List", + Description: "Grants permission to return all the index policies that are attached with the log groups", + Privilege: "DescribeIndexPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return all the log groups that are associated with the AWS account making the request", + Privilege: "DescribeLogGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a WirelessDevice resource", - Privilege: "UpdateWirelessDevice", + AccessLevel: "List", + Description: "Grants permission to return all the log streams that are associated with the specified log group", + Privilege: "DescribeLogStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessDevice*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a wireless device import task", - Privilege: "UpdateWirelessDeviceImportTask", + AccessLevel: "List", + Description: "Grants permission to return all the metrics filters associated with the specified log group", + Privilege: "DescribeMetricFilters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportTask*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a WirelessGateway resource", - Privilege: "UpdateWirelessGateway", + AccessLevel: "List", + Description: "Grants permission to return a list of CloudWatch Logs Insights queries that are scheduled, executing, or have been executed recently in this account", + Privilege: "DescribeQueries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WirelessGateway*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessDevice/${WirelessDeviceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to return a paginated list of your saved CloudWatch Logs Insights query definitions", + Privilege: "DescribeQueryDefinitions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "WirelessDevice", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessGateway/${WirelessGatewayId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to return all the resource policies in this account", + Privilege: "DescribeResourcePolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "WirelessGateway", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:DeviceProfile/${DeviceProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to return all the subscription filters associated with the specified log group", + Privilege: "DescribeSubscriptionFilters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "log-group*", + }, }, - Resource: "DeviceProfile", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:ServiceProfile/${ServiceProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to disassociate the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group", + Privilege: "DisassociateKmsKey", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "log-group*", + }, }, - Resource: "ServiceProfile", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:Destination/${DestinationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve log events, optionally filtered by a filter pattern from the specified log group", + Privilege: "FilterLogEvents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "log-group*", + }, }, - Resource: "Destination", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:SidewalkAccount/${SidewalkAccountId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve a data protection policy attached to a log group", + Privilege: "GetDataProtectionPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "log-group*", + }, }, - Resource: "SidewalkAccount", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:WirelessGatewayTaskDefinition/${WirelessGatewayTaskDefinitionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve a single delivery", + Privilege: "GetDelivery", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery*", + }, }, - Resource: "WirelessGatewayTaskDefinition", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:FuotaTask/${FuotaTaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve a single delivery destination", + Privilege: "GetDeliveryDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery-destination*", + }, }, - Resource: "FuotaTask", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:MulticastGroup/${MulticastGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve a delivery destination policy attached to a delivery destination", + Privilege: "GetDeliveryDestinationPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery-destination*", + }, }, - Resource: "MulticastGroup", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:NetworkAnalyzerConfiguration/${NetworkAnalyzerConfigurationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve a single delivery source", + Privilege: "GetDeliverySource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery-source*", + }, }, - Resource: "NetworkAnalyzerConfiguration", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}", - ConditionKeys: []string{}, - Resource: "thing", - }, - { - Arn: "arn:${Partition}:iot:${Region}:${Account}:cert/${Certificate}", - ConditionKeys: []string{}, - Resource: "cert", }, { - Arn: "arn:${Partition}:iotwireless:${Region}:${Account}:ImportTask/${ImportTaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve a single integration", + Privilege: "GetIntegration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "ImportTask", }, - }, - ServiceName: "AWS IoT Wireless", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "iq", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept an incoming voice/video call", - Privilege: "AcceptCall", + AccessLevel: "Read", + Description: "Grants permission to get a log anomaly detector", + Privilege: "GetLogAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "call*", + ResourceType: "anomaly-detector*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to approve a payment request", - Privilege: "ApprovePaymentRequest", + AccessLevel: "Read", + Description: "Grants permission to get the log delivery information for specified log delivery", + Privilege: "GetLogDelivery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "paymentRequest*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to approve a proposal", - Privilege: "ApproveProposal", + AccessLevel: "Read", + Description: "Grants permission to retrieve log events from the specified log stream", + Privilege: "GetLogEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "log-stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to archive a conversation", - Privilege: "ArchiveConversation", + AccessLevel: "Read", + Description: "Grants permission to return a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field", + Privilege: "GetLogGroupFields", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to complete a proposal", - Privilege: "CompleteProposal", + AccessLevel: "Read", + Description: "Grants permission to retrieve all the fields and values of a single log event", + Privilege: "GetLogRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to respond to a request or send a direct message to initiate a conversation", - Privilege: "CreateConversation", + AccessLevel: "Read", + Description: "Grants permission to return the results from the specified query", + Privilege: "GetQueryResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an expert profile", - Privilege: "CreateExpert", + AccessLevel: "Read", + Description: "Grants permission to return transformer associated with the specified log group", + Privilege: "GetTransformer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a listing", - Privilege: "CreateListing", + Description: "Grants permission to share CloudWatch resources with a monitoring account", + Privilege: "Link", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157789,21 +201374,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a milestone proposal", - Privilege: "CreateMilestoneProposal", + AccessLevel: "List", + Description: "Grants permission to list all anomalies detected in the AWS account making the request", + Privilege: "ListAnomalies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "anomaly-detector", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a payment request", - Privilege: "CreatePaymentRequest", + AccessLevel: "List", + Description: "Grants permission to retrieve all the entities that are associated with log group", + Privilege: "ListEntitiesForLogGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157813,9 +201398,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit new requests", - Privilege: "CreateProject", + AccessLevel: "List", + Description: "Grants permission to list all integrations associated with the AWS account making the request", + Privilege: "ListIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157825,21 +201410,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit new requests", - Privilege: "CreateRequest", + AccessLevel: "List", + Description: "Grants permission to return all the anomaly detectors that are associated with the AWS account making the request", + Privilege: "ListLogAnomalyDetectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "anomaly-detector", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a scheduled proposal", - Privilege: "CreateScheduledProposal", + AccessLevel: "List", + Description: "Grants permission to list all the log deliveries for specified account and/or log source", + Privilege: "ListLogDeliveries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157849,9 +201434,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a seller profile", - Privilege: "CreateSeller", + AccessLevel: "List", + Description: "Grants permission to retrieve all the log groups that are associated with entity", + Privilege: "ListLogGroupsForEntity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157861,9 +201446,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an upfront proposal", - Privilege: "CreateUpfrontProposal", + AccessLevel: "List", + Description: "Grants permission to return all the log groups that are associated with the specified query", + Privilege: "ListLogGroupsForQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -157873,978 +201458,983 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to decline an incoming voice/video call", - Privilege: "DeclineCall", + AccessLevel: "List", + Description: "Grants permission to list the tags for the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "call*", + ResourceType: "anomaly-detector", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery-destination", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "delivery-source", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "destination", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "log-group", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing attachment", - Privilege: "DeleteAttachment", + AccessLevel: "List", + Description: "Grants permission to list the tags for the specified log group", + Privilege: "ListTagsLogGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable individual public profile page", - Privilege: "DisableIndividualPublicProfile", + Description: "Grants permission to attach an account policy", + Privilege: "PutAccountPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "expert*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to download existing attachment", - Privilege: "DownloadAttachment", + AccessLevel: "Write", + Description: "Grants permission to attach a data protection policy to detect and redact sensitive information from log events", + Privilege: "PutDataProtectionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable individual public profile page", - Privilege: "EnableIndividualPublicProfile", + Description: "Grants permission to create/update a delivery destination", + Privilege: "PutDeliveryDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "expert*", + ResourceType: "delivery-destination*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "logs:DeliveryDestinationResourceArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to end a voice/video call", - Privilege: "EndCall", + Description: "Grants permission to attach a delivery destination policy to a delivery destination", + Privilege: "PutDeliveryDestinationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "call*", + ResourceType: "delivery-destination*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read buyer information", - Privilege: "GetBuyer", + AccessLevel: "Write", + Description: "Grants permission to create/update a delivery source", + Privilege: "PutDeliverySource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "buyer*", + ResourceType: "delivery-source*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "logs:LogGeneratingResourceArns", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read details of a voice/video call", - Privilege: "GetCall", + AccessLevel: "Write", + Description: "Grants permission to create or update a Destination", + Privilege: "PutDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "destination*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "call*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the chat environment details about a conversation", - Privilege: "GetChatInfo", + AccessLevel: "Write", + Description: "Grants permission to create or update an access policy associated with an existing Destination", + Privilege: "PutDestinationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "destination*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read chat messages in a conversation", - Privilege: "GetChatMessages", + AccessLevel: "Write", + Description: "Grants permission to attach an index policy at log group level to optimize search and query", + Privilege: "PutIndexPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to request a websocket token for the conversation notifications", - Privilege: "GetChatToken", + AccessLevel: "Write", + Description: "Grants permission to create integration between cloudwatch logs and opensearch", + Privilege: "PutIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "token*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read chat messages in a company conversation", - Privilege: "GetCompanyChatMessages", + AccessLevel: "Write", + Description: "Grants permission to upload a batch of log events to the specified log stream", + Privilege: "PutLogEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "log-stream*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read a company profile", - Privilege: "GetCompanyProfile", + AccessLevel: "Write", + Description: "Grants permission to create or update a metric filter and associates it with the specified log group", + Privilege: "PutMetricFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "company*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read details of a conversation", - Privilege: "GetConversation", + AccessLevel: "Write", + Description: "Grants permission to create or update a query definition", + Privilege: "PutQueryDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read expert information", - Privilege: "GetExpert", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update a resource policy allowing other AWS services to put log events to this account", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "expert*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read a listing", - Privilege: "GetListing", + AccessLevel: "Write", + Description: "Grants permission to set the retention of the specified log group", + Privilege: "PutRetentionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listing*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read a seller profile information", - Privilege: "GetMarketplaceSeller", + AccessLevel: "Write", + Description: "Grants permission to create or update a subscription filter and associates it with the specified log group", + Privilege: "PutSubscriptionFilter", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "log-group*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "seller*", + ResourceType: "destination", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read a payment request", - Privilege: "GetPaymentRequest", + AccessLevel: "Write", + Description: "Grants permission to create or update a transformer and associates it with the specified log group", + Privilege: "PutTransformer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "paymentRequest*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read a proposal", - Privilege: "GetProposal", + Description: "Grants permission to start a Live Tail session in CloudWatch Logs", + Privilege: "StartLiveTail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a created request", - Privilege: "GetRequest", + Description: "Grants permission to schedule a query of a log group using CloudWatch Logs Insights", + Privilege: "StartQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "request*", + ResourceType: "log-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read a review for an expert", - Privilege: "GetReview", + Description: "Grants permission to stop a Live Tail session that is in progress", + Privilege: "StopLiveTail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "seller*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to hide a request", - Privilege: "HideRequest", + AccessLevel: "Read", + Description: "Grants permission to stop a CloudWatch Logs Insights query that is in progress", + Privilege: "StopQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "request*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a voice/video call", - Privilege: "InitiateCall", + AccessLevel: "Tagging", + Description: "Grants permission to add or update the specified tags for the specified log group", + Privilege: "TagLogGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "log-group*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to link an AWS certification to individual profile", - Privilege: "LinkAwsCertification", + AccessLevel: "Tagging", + Description: "Grants permission to add or update the specified tags for the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "expert*", + ResourceType: "anomaly-detector", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing attachments", - Privilege: "ListAttachments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "delivery", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list existing conversations", - Privilege: "ListConversations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "delivery-destination", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list access logs of expert activity", - Privilege: "ListExpertAccessLogs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "delivery-source", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list listings", - Privilege: "ListListings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listing*", + ResourceType: "destination", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list payment requests", - Privilege: "ListPaymentRequests", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "paymentRequest", + ResourceType: "log-group", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "paymentSchedule", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list proposals", - Privilege: "ListProposals", + Description: "Grants permission to test the filter pattern of a metric filter against a sample of log event messages", + Privilege: "TestMetricFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list requests that are created", - Privilege: "ListRequests", + Description: "Grants permission to test the transformer against a sample of log event messages", + Privilege: "TestTransformer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "request*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list reviews for an expert", - Privilege: "ListReviews", + Description: "Grants permission to fetch unmasked log events that have been redacted with a data protection policy", + Privilege: "Unmask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "seller*", + ResourceType: "log-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to mark a message as read in a conversation", - Privilege: "MarkChatMessageRead", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the specified log group", + Privilege: "UntagLogGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "log-group*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reject a payment request", - Privilege: "RejectPaymentRequest", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "paymentRequest*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject a proposal", - Privilege: "RejectProposal", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "anomaly-detector", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send a message in a conversation as a company", - Privilege: "SendCompanyChatMessage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "delivery", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send a message in a conversation as an individual", - Privilege: "SendIndividualChatMessage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "delivery-destination", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to unarchive a conversation", - Privilege: "UnarchiveConversation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "delivery-source", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to unlink an AWS certification from individual profile", - Privilege: "UnlinkAwsCertification", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "expert*", + ResourceType: "destination", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a company profile", - Privilege: "UpdateCompanyProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "company*", + ResourceType: "log-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add more participants into a conversation", - Privilege: "UpdateConversationMembers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "conversation*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an expert information", - Privilege: "UpdateExpert", + Description: "Grants permission to update an anomaly reported by a log anomaly detector", + Privilege: "UpdateAnomaly", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "expert*", + ResourceType: "anomaly-detector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a listing", - Privilege: "UpdateListing", + Description: "Grants permission to update configuration related to a delivery", + Privilege: "UpdateDeliveryConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "listing*", + ResourceType: "delivery*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a request", - Privilege: "UpdateRequest", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "request*", + ResourceType: "delivery-destination*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to upload an attachment", - Privilege: "UploadAttachment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "delivery-source*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to withdraw a payment request", - Privilege: "WithdrawPaymentRequest", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "paymentRequest*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to withdraw a proposal", - Privilege: "WithdrawProposal", + Description: "Grants permission to update a log anomaly detector", + Privilege: "UpdateLogAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "anomaly-detector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to write a review for an expert", - Privilege: "WriteReview", + Description: "Grants permission to update the log delivery information for specified log delivery", + Privilege: "UpdateLogDelivery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "seller*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:iq:${Region}::conversation/${ConversationId}", - ConditionKeys: []string{}, - Resource: "conversation", - }, - { - Arn: "arn:${Partition}:iq:${Region}::buyer/${BuyerId}", - ConditionKeys: []string{}, - Resource: "buyer", - }, - { - Arn: "arn:${Partition}:iq:${Region}::expert/${ExpertId}", - ConditionKeys: []string{}, - Resource: "expert", - }, - { - Arn: "arn:${Partition}:iq:${Region}::call/${CallId}", - ConditionKeys: []string{}, - Resource: "call", + Arn: "arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "log-group", }, { - Arn: "arn:${Partition}:iq:${Region}::token/${TokenId}", - ConditionKeys: []string{}, - Resource: "token", + Arn: "arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "log-stream", }, { - Arn: "arn:${Partition}:iq:${Region}::proposal/${ConversationId}/${ProposalId}", - ConditionKeys: []string{}, - Resource: "proposal", + Arn: "arn:${Partition}:logs:${Region}:${Account}:destination:${DestinationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "destination", }, { - Arn: "arn:${Partition}:iq:${Region}::paymentRequest/${ConversationId}/${ProposalId}/${PaymentRequestId}", - ConditionKeys: []string{}, - Resource: "paymentRequest", + Arn: "arn:${Partition}:logs:${Region}:${Account}:delivery-source:${DeliverySourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "delivery-source", }, { - Arn: "arn:${Partition}:iq:${Region}::paymentSchedule/${ConversationId}/${ProposalId}/${VersionId}", - ConditionKeys: []string{}, - Resource: "paymentSchedule", + Arn: "arn:${Partition}:logs:${Region}:${Account}:delivery:${DeliveryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "delivery", }, { - Arn: "arn:${Partition}:iq:${Region}::seller/${SellerAwsAccountId}", - ConditionKeys: []string{}, - Resource: "seller", + Arn: "arn:${Partition}:logs:${Region}:${Account}:delivery-destination:${DeliveryDestinationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "delivery-destination", }, { - Arn: "arn:${Partition}:iq:${Region}::company/${CompanyId}", - ConditionKeys: []string{}, - Resource: "company", + Arn: "arn:${Partition}:logs:${Region}:${Account}:anomaly-detector:${DetectorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "anomaly-detector", }, + }, + ServiceName: "Amazon CloudWatch Logs", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:iq:${Region}::request/${RequestId}", - ConditionKeys: []string{}, - Resource: "request", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", }, { - Arn: "arn:${Partition}:iq:${Region}::listing/${ListingId}", - ConditionKeys: []string{}, - Resource: "listing", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", }, { - Arn: "arn:${Partition}:iq:${Region}::attachment/${AttachmentId}", - ConditionKeys: []string{}, - Resource: "attachment", + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", }, { - Arn: "arn:${Partition}:iq-permission:${Region}::permission/${PermissionRequestId}", - ConditionKeys: []string{}, - Resource: "permission", + Condition: "lookoutequipment:IsImportingData", + Description: "Filters access by the import strategy of underlying data", + Type: "Bool", }, }, - ServiceName: "AWS IQ", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "iq-permission", + Prefix: "lookoutequipment", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to approve a permission request", - Privilege: "ApproveAccessGrant", + Description: "Grants permission to create a dataset", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "dataset*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to approve a permission request", - Privilege: "ApprovePermissionRequest", + Description: "Grants permission to create an inference scheduler for a trained model", + Privilege: "CreateInferenceScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "inference-scheduler*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to obtain a set of temporary security credentials for experts which they can use to access buyers' AWS resources", - Privilege: "AssumePermissionRole", + Description: "Grants permission to create a label", + Privilege: "CreateLabel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "label-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a permission request", - Privilege: "CreatePermissionRequest", + Description: "Grants permission to create a label group", + Privilege: "CreateLabelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "label-group*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a permission request", - Privilege: "GetPermissionRequest", + AccessLevel: "Write", + Description: "Grants permission to create a model that is trained on a dataset", + Privilege: "CreateModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "dataset*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list permission requests", - Privilege: "ListPermissionRequests", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label-group", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject a permission request", - Privilege: "RejectPermissionRequest", + Description: "Grants permission to create a retraining scheduler for a trained model", + Privilege: "CreateRetrainingScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to revoke a permission request which was previously approved", - Privilege: "RevokePermissionRequest", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to withdraw a permission request that has not been approved or declined", - Privilege: "WithdrawPermissionRequest", + Description: "Grants permission to delete an inference scheduler", + Privilege: "DeleteInferenceScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "inference-scheduler*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:iq-permission:${Region}::permission/${PermissionRequestId}", - ConditionKeys: []string{}, - Resource: "permission", - }, - }, - ServiceName: "AWS IQ Permissions", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags associated with the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "ivs", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to get multiple channels simultaneously by channel ARN", - Privilege: "BatchGetChannel", + AccessLevel: "Write", + Description: "Grants permission to delete a label", + Privilege: "DeleteLabel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "label-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get multiple stream keys simultaneously by stream key ARN", - Privilege: "BatchGetStreamKey", + AccessLevel: "Write", + Description: "Grants permission to delete a label group", + Privilege: "DeleteLabelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "label-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to perform StartViewerSessionRevocation on multiple channel ARN and viewer ID pairs simultaneously", - Privilege: "BatchStartViewerSessionRevocation", + Description: "Grants permission to delete a model", + Privilege: "DeleteModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new channel and an associated stream key", - Privilege: "CreateChannel", + Description: "Grants permission to delete a resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "model", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-version", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new encoder configuration", - Privilege: "CreateEncoderConfiguration", + Description: "Grants permission to delete a retraining scheduler of a trained model", + Privilege: "DeleteRetrainingScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Encoder-Configuration*", + ResourceType: "model*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a data ingestion job", + Privilege: "DescribeDataIngestionJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a participant token", - Privilege: "CreateParticipantToken", + AccessLevel: "Read", + Description: "Grants permission to describe a dataset", + Privilege: "DescribeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an inference scheduler", + Privilege: "DescribeInferenceScheduler", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-scheduler*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a playback restriction policy", - Privilege: "CreatePlaybackRestrictionPolicy", + AccessLevel: "Read", + Description: "Grants permission to describe a label group", + Privilege: "DescribeLabelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy*", + ResourceType: "label-group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a model", + Privilege: "DescribeModel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a a new recording configuration", - Privilege: "CreateRecordingConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe a model version", + Privilege: "DescribeModelVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recording-Configuration*", + ResourceType: "model-version*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a resource policy", + Privilege: "DescribeResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a stage", - Privilege: "CreateStage", + AccessLevel: "Read", + Description: "Grants permission to describe a retraining scheduler of a trained model", + Privilege: "DescribeRetrainingScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "model*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a label", + Privilege: "Describelabel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "label-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new storage configuration", - Privilege: "CreateStorageConfiguration", + Description: "Grants permission to import a dataset", + Privilege: "ImportDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration*", + ResourceType: "dataset*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -158853,18 +202443,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a stream key", - Privilege: "CreateStreamKey", + Description: "Grants permission to import a model version", + Privilege: "ImportModelVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "dataset*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label-group", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "lookoutequipment:IsImportingData", }, DependentActions: []string{}, ResourceType: "", @@ -158872,288 +202473,285 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a channel and channel's stream keys", - Privilege: "DeleteChannel", + AccessLevel: "List", + Description: "Grants permission to list the data ingestion jobs in your account or for a particular dataset", + Privilege: "ListDataIngestionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the datasets in your account", + Privilege: "ListDatasets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an encoder configuration for the specified ARN", - Privilege: "DeleteEncoderConfiguration", + AccessLevel: "Read", + Description: "Grants permission to list the inference events for an inference scheduler", + Privilege: "ListInferenceEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Encoder-Configuration*", + ResourceType: "inference-scheduler*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the playback key pair for a specified ARN", - Privilege: "DeletePlaybackKeyPair", + AccessLevel: "Read", + Description: "Grants permission to list the inference executions for an inference scheduler", + Privilege: "ListInferenceExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Key-Pair*", + ResourceType: "inference-scheduler*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the playback restriction policy for a specified ARN", - Privilege: "DeletePlaybackRestrictionPolicy", + AccessLevel: "List", + Description: "Grants permission to list the inference schedulers in your account", + Privilege: "ListInferenceSchedulers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a recording configuration for the specified ARN", - Privilege: "DeleteRecordingConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the label groups in your account", + Privilege: "ListLabelGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recording-Configuration*", + ResourceType: "label-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the stage for a specified ARN", - Privilege: "DeleteStage", + AccessLevel: "List", + Description: "Grants permission to list the labels in your account", + Privilege: "ListLabels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "label-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an storage configuration for the specified ARN", - Privilege: "DeleteStorageConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the model versions in your account", + Privilege: "ListModelVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration*", + ResourceType: "model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the stream key for a specified ARN", - Privilege: "DeleteStreamKey", + AccessLevel: "List", + Description: "Grants permission to list the models in your account", + Privilege: "ListModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disconnect a participant from for the specified stage ARN", - Privilege: "DisconnectParticipant", + AccessLevel: "List", + Description: "Grants permission to list the retraining schedulers in your account", + Privilege: "ListRetrainingSchedulers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the channel configuration for a specified channel ARN", - Privilege: "GetChannel", + AccessLevel: "List", + Description: "Grants permission to list the sensor statistics for a particular dataset or an ingestion job", + Privilege: "ListSensorStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the composition for the specified ARN", - Privilege: "GetComposition", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Composition*", + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-scheduler", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "label-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the encoder configuration for the specified ARN", - Privilege: "GetEncoderConfiguration", + AccessLevel: "Write", + Description: "Grants permission to put a resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Encoder-Configuration*", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get participant information for a specified stage ARN, session, and participant", - Privilege: "GetParticipant", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "model", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the playback keypair information for a specified ARN", - Privilege: "GetPlaybackKeyPair", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Key-Pair*", + ResourceType: "model-version", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the playback restriction policy for a specified ARN", - Privilege: "GetPlaybackRestrictionPolicy", + AccessLevel: "Write", + Description: "Grants permission to start a data ingestion job for a dataset", + Privilege: "StartDataIngestionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the recording configuration for the specified ARN", - Privilege: "GetRecordingConfiguration", + AccessLevel: "Write", + Description: "Grants permission to start an inference scheduler", + Privilege: "StartInferenceScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recording-Configuration*", + ResourceType: "inference-scheduler*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get stage information for a specified ARN", - Privilege: "GetStage", + AccessLevel: "Write", + Description: "Grants permission to start a retraining scheduler of a trained model", + Privilege: "StartRetrainingScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "model*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get stage session information for a specified stage ARN and session", - Privilege: "GetStageSession", + AccessLevel: "Write", + Description: "Grants permission to stop an inference scheduler", + Privilege: "StopInferenceScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "inference-scheduler*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the storage configuration for the specified ARN", - Privilege: "GetStorageConfiguration", + AccessLevel: "Write", + Description: "Grants permission to stop a retraining scheduler of a trained model", + Privilege: "StopRetrainingScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration*", + ResourceType: "model*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the active (live) stream on a specified channel", - Privilege: "GetStream", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get stream-key information for a specified ARN", - Privilege: "GetStreamKey", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "inference-scheduler", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about the stream session on a specified channel", - Privilege: "GetStreamSession", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "label-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to import the public key", - Privilege: "ImportPlaybackKeyPair", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Key-Pair*", + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -159161,380 +202759,538 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about channels", - Privilege: "ListChannels", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get summary information about compositions", - Privilege: "ListCompositions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Encoder-Configuration", + ResourceType: "inference-scheduler", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage", + ResourceType: "label-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get summary information about encoder configurations", - Privilege: "ListEncoderConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-version", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list participant events for a specified stage ARN, session, and participant", - Privilege: "ListParticipantEvents", + AccessLevel: "Write", + Description: "Grants permission to set the active model version for a given machine learning model", + Privilege: "UpdateActiveModelVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "model*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list participants for a specified stage ARN and session", - Privilege: "ListParticipants", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "model-version*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about playback key pairs", - Privilege: "ListPlaybackKeyPairs", + AccessLevel: "Write", + Description: "Grants permission to update an inference scheduler", + Privilege: "UpdateInferenceScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Key-Pair*", + ResourceType: "inference-scheduler*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about playback restriction policies", - Privilege: "ListPlaybackRestrictionPolicies", + AccessLevel: "Write", + Description: "Grants permission to update a label group", + Privilege: "UpdateLabelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "label-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about recording configurations", - Privilege: "ListRecordingConfigurations", + AccessLevel: "Write", + Description: "Grants permission to update a trained model", + Privilege: "UpdateModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recording-Configuration*", + ResourceType: "model*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list stage sessions for a specified stage ARN", - Privilege: "ListStageSessions", + AccessLevel: "Write", + Description: "Grants permission to update a retraining scheduler of a trained model", + Privilege: "UpdateRetrainingScheduler", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "model*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to get summary information about stages", - Privilege: "ListStages", + Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:dataset/${DatasetName}/${DatasetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dataset", + }, + { + Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:model/${ModelName}/${ModelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model", + }, + { + Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:model/${ModelName}/${ModelId}/model-version/${ModelVersionNumber}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "model-version", + }, + { + Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:inference-scheduler/${InferenceSchedulerName}/${InferenceSchedulerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "inference-scheduler", + }, + { + Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:label-group/${LabelGroupName}/${LabelGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "label-group", + }, + }, + ServiceName: "Amazon Lookout for Equipment", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "lookoutmetrics", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to activate an anomaly detector", + Privilege: "ActivateAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "AnomalyDetector*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about storage configurations", - Privilege: "ListStorageConfigurations", + AccessLevel: "Write", + Description: "Grants permission to run a backtest with an anomaly detector", + Privilege: "BackTestAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnomalyDetector*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about stream keys", - Privilege: "ListStreamKeys", + AccessLevel: "Write", + Description: "Grants permission to create an alert for an anomaly detector", + Privilege: "CreateAlert", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "Alert*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key*", + ResourceType: "AnomalyDetector*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get summary information about streams sessions on a specified channel", - Privilege: "ListStreamSessions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about live streams", - Privilege: "ListStreams", + AccessLevel: "Write", + Description: "Grants permission to create an anomaly detector", + Privilege: "CreateAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "AnomalyDetector*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the tags for a specified ARN", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a dataset", + Privilege: "CreateMetricSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", + ResourceType: "AnomalyDetector*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Composition", + ResourceType: "MetricSet*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Encoder-Configuration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deactivate an anomaly detector", + Privilege: "DeactivateAnomalyDetector", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Key-Pair", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an alert", + Privilege: "DeleteAlert", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy", + ResourceType: "Alert*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an anomaly detector", + Privilege: "DeleteAnomalyDetector", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recording-Configuration", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about an alert", + Privilege: "DescribeAlert", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage", + ResourceType: "Alert*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about an anomaly detection job", + Privilege: "DescribeAnomalyDetectionExecutions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about an anomaly detector", + Privilege: "DescribeAnomalyDetector", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about a dataset", + Privilege: "DescribeMetricSet", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "MetricSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to insert metadata into an RTMP stream for a specified channel", - Privilege: "PutMetadata", + Description: "Grants permission to detect metric set config from data source", + Privilege: "DetectMetricSetConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "AnomalyDetector*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new composition", - Privilege: "StartComposition", + AccessLevel: "Read", + Description: "Grants permission to get details about a group of affected metrics", + Privilege: "GetAnomalyGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Encoder-Configuration*", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get data quality metrics for an anomaly detector", + Privilege: "GetDataQualityMetrics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get feedback on affected metrics for an anomaly group", + Privilege: "GetFeedback", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a selection of sample records from an Amazon S3 datasource", + Privilege: "GetSampleData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of alerts for a detector", + Privilege: "ListAlerts", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnomalyDetector", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the process of revoking the viewer session associated with a specified channel ARN and viewer ID", - Privilege: "StartViewerSessionRevocation", + AccessLevel: "List", + Description: "Grants permission to get a list of anomaly detectors", + Privilege: "ListAnomalyDetectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the composition for the specified ARN", - Privilege: "StopComposition", + AccessLevel: "List", + Description: "Grants permission to get a list of related measures in an anomaly group", + Privilege: "ListAnomalyGroupRelatedMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Composition*", + ResourceType: "AnomalyDetector*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disconnect a streamer on a specified channel", - Privilege: "StopStream", + AccessLevel: "List", + Description: "Grants permission to get a list of anomaly groups", + Privilege: "ListAnomalyGroupSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "AnomalyDetector*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update tags for a resource with a specified ARN", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to get a list of affected metrics for a measure in an anomaly group", + Privilege: "ListAnomalyGroupTimeSeries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of datasets", + Privilege: "ListMetricSets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Composition", + ResourceType: "AnomalyDetector", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of tags for a detector, dataset, or alert", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Encoder-Configuration", + ResourceType: "Alert", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Key-Pair", + ResourceType: "AnomalyDetector", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy", + ResourceType: "MetricSet", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add feedback for an affected metric in an anomaly group", + Privilege: "PutFeedback", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Recording-Configuration", + ResourceType: "AnomalyDetector*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a detector, dataset, or alert", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage", + ResourceType: "Alert", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration", + ResourceType: "AnomalyDetector", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key", + ResourceType: "MetricSet", }, { ConditionKeys: []string{ "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -159543,53 +203299,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags for a resource with a specified ARN", + Description: "Grants permission to remove tags from a detector, dataset, or alert", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Composition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Encoder-Configuration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Playback-Key-Pair", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Recording-Configuration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Stage", + ResourceType: "Alert", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Storage-Configuration", + ResourceType: "AnomalyDetector", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stream-Key", + ResourceType: "MetricSet", }, { ConditionKeys: []string{ @@ -159602,113 +203328,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a channel's configuration", - Privilege: "UpdateChannel", + Description: "Grants permission to update an alert for an anomaly detector", + Privilege: "UpdateAlert", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "Alert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a playback restriction policy for a specified ARN", - Privilege: "UpdatePlaybackRestrictionPolicy", + Description: "Grants permission to update an anomaly detector", + Privilege: "UpdateAnomalyDetector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Playback-Restriction-Policy*", + ResourceType: "AnomalyDetector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a stage's configuration", - Privilege: "UpdateStage", + Description: "Grants permission to update a dataset", + Privilege: "UpdateMetricSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Stage*", + ResourceType: "MetricSet*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:channel/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Channel", - }, - { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:stream-key/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Stream-Key", - }, - { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:playback-key/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Playback-Key-Pair", - }, - { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:playback-restriction-policy/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Playback-Restriction-Policy", - }, - { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:recording-configuration/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Recording-Configuration", - }, - { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:stage/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Stage", - }, - { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:composition/${ResourceId}", + Arn: "arn:${Partition}:lookoutmetrics:${Region}:${Account}:AnomalyDetector:${AnomalyDetectorName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Composition", + Resource: "AnomalyDetector", }, { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:encoder-configuration/${ResourceId}", + Arn: "arn:${Partition}:lookoutmetrics:${Region}:${Account}:MetricSet/${AnomalyDetectorName}/${MetricSetName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Encoder-Configuration", + Resource: "MetricSet", }, { - Arn: "arn:${Partition}:ivs:${Region}:${Account}:storage-configuration/${ResourceId}", + Arn: "arn:${Partition}:lookoutmetrics:${Region}:${Account}:Alert:${AlertName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Storage-Configuration", + Resource: "Alert", }, }, - ServiceName: "Amazon Interactive Video Service", + ServiceName: "Amazon Lookout for Metrics", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags associated with the request", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { @@ -159722,42 +203406,34 @@ func getParliamentIamPermissions() ParliamentPermissions { Type: "ArrayOfString", }, }, - Prefix: "ivschat", + Prefix: "lookoutvision", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an encrypted token that is used to establish an individual WebSocket connection to a room", - Privilege: "CreateChatToken", + Description: "Grants permission to create a dataset manifest", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a logging configuration that allows clients to record room messages", - Privilege: "CreateLoggingConfiguration", + Description: "Grants permission to create a new anomaly detection model", + Privilege: "CreateModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration*", + ResourceType: "model*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -159766,19 +203442,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a room that allows clients to connect and pass messages", - Privilege: "CreateRoom", + Description: "Grants permission to create a new project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataset", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -159786,296 +203466,229 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the logging configuration for a specified logging configuration ARN", - Privilege: "DeleteLoggingConfiguration", + Description: "Grants permission to delete a model and all associated assets", + Privilege: "DeleteModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration*", + ResourceType: "model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an event to a specific room which directs clients to delete a specific message", - Privilege: "DeleteMessage", + Description: "Grants permission to permanently remove a project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the room for a specified room ARN", - Privilege: "DeleteRoom", + AccessLevel: "Read", + Description: "Grants permission to show detailed information about dataset manifest", + Privilege: "DescribeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disconnect all connections using a specified user ID from a room", - Privilege: "DisconnectUser", + AccessLevel: "Read", + Description: "Grants permission to show detailed information about a model", + Privilege: "DescribeModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "model*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the logging configuration for a specified logging configuration ARN", - Privilege: "GetLoggingConfiguration", + Description: "Grants permission to show detailed information about a model packaging job", + Privilege: "DescribeModelPackagingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the room configuration for a specified room ARN", - Privilege: "GetRoom", + Description: "Grants permission to show detailed information about a project", + Privilege: "DescribeProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about logging configurations", - Privilege: "ListLoggingConfigurations", + AccessLevel: "Read", + Description: "Grants permission to provides state information about a running anomaly detection job", + Privilege: "DescribeTrialDetection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get summary information about rooms", - Privilege: "ListRooms", + AccessLevel: "Write", + Description: "Grants permission to invoke detection of anomalies", + Privilege: "DetectAnomalies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "model*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the tags for a specified ARN", - Privilege: "ListTagsForResource", + Description: "Grants permission to list the contents of dataset manifest", + Privilege: "ListDatasetEntries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send an event to a room", - Privilege: "SendEvent", + AccessLevel: "List", + Description: "Grants permission to list all model packaging jobs associated with a project", + Privilege: "ListModelPackagingJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update tags for a resource with a specified ARN", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list all models associated with a project", + Privilege: "ListModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all projects", + Privilege: "ListProjects", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags for a resource with a specified ARN", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration", + ResourceType: "model", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all anomaly detection jobs", + Privilege: "ListTrialDetections", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the logging configuration for a specified logging configuration ARN", - Privilege: "UpdateLoggingConfiguration", + Description: "Grants permission to start anomaly detection model", + Privilege: "StartModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Logging-Configuration*", + ResourceType: "model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the room configuration for a specified room ARN", - Privilege: "UpdateRoom", + Description: "Grants permission to start a model packaging job", + Privilege: "StartModelPackagingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Room*", + ResourceType: "model*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ivschat:${Region}:${Account}:room/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Room", - }, - { - Arn: "arn:${Partition}:ivschat:${Region}:${Account}:logging-configuration/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Logging-Configuration", - }, - }, - ServiceName: "Amazon Interactive Video Service Chat", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "kafka:publicAccessEnabled", - Description: "Filters access by the presence of public access enabled in the request", - Type: "Bool", - }, - }, - Prefix: "kafka", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate one or more Scram Secrets with an Amazon MSK cluster", - Privilege: "BatchAssociateScramSecret", + Description: "Grants permission to start bulk detection of anomalies for a set of images stored in an S3 bucket", + Privilege: "StartTrialDetection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:CreateGrant", - "kms:RetireGrant", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate one or more Scram Secrets from an Amazon MSK cluster", - Privilege: "BatchDisassociateScramSecret", + Description: "Grants permission to stop anomaly detection model", + Privilege: "StopModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:RetireGrant", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an MSK cluster", - Privilege: "CreateCluster", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource with given key value pairs", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "kms:CreateGrant", - "kms:DescribeKey", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", }, { ConditionKeys: []string{ @@ -160088,32 +203701,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an MSK cluster", - Privilege: "CreateClusterV2", + AccessLevel: "Tagging", + Description: "Grants permission to remove the tag with the given key from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "ec2:DeleteVpcEndpoints", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - "kms:CreateGrant", - "kms:DescribeKey", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -160123,273 +203721,306 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an MSK configuration", - Privilege: "CreateConfiguration", + Description: "Grants permission to update a training or test dataset manifest", + Privilege: "UpdateDatasetEntries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to create a MSK replicator", - Privilege: "CreateReplicator", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "iam:PutRolePolicy", - "kafka:DescribeClusterV2", - "kafka:GetBootstrapBrokers", - }, - ResourceType: "replicator*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:lookoutvision:${Region}:${Account}:model/${ProjectName}/${ModelVersion}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "model", + }, + { + Arn: "arn:${Partition}:lookoutvision:${Region}:${Account}:project/${ProjectName}", + ConditionKeys: []string{}, + Resource: "project", + }, + }, + ServiceName: "Amazon Lookout for Vision", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "m2", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a MSK VPC connection", - Privilege: "CreateVpcConnection", + Description: "Grants permission to cancel the execution of a batch job", + Privilege: "CancelBatchJobExecution", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-connection*", + ResourceType: "Application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an MSK cluster", - Privilege: "DeleteCluster", + Description: "Grants permission to create a data set export task", + Privilege: "CreateDataSetExportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", + "s3:GetObject", }, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a cluster resource-based policy", - Privilege: "DeleteClusterPolicy", + Description: "Grants permission to create a data set import task", + Privilege: "CreateDataSetImportTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + }, + ResourceType: "Application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified MSK configuration", - Privilege: "DeleteConfiguration", + Description: "Grants permission to create a deployment", + Privilege: "CreateDeployment", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:AddTags", + "elasticloadbalancing:CreateListener", + "elasticloadbalancing:CreateTargetGroup", + "elasticloadbalancing:RegisterTargets", + }, + ResourceType: "Application*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "Environment", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a MSK replicator", - Privilege: "DeleteReplicator", + Description: "Grants permission to Create an environment", + Privilege: "CreateEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "replicator*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcs", + "ec2:ModifyNetworkInterfaceAttribute", + "elasticfilesystem:DescribeMountTargets", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:CreateLoadBalancer", + "fsx:DescribeFileSystems", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a MSK VPC connection", - Privilege: "DeleteVpcConnection", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeVpcEndpoints", + "elasticloadbalancing:DeleteListener", + "elasticloadbalancing:DeleteTargetGroup", }, - ResourceType: "vpc-connection*", + ResourceType: "Application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an MSK cluster", - Privilege: "DescribeCluster", + AccessLevel: "Write", + Description: "Grants permission to delete an application from a runtime environment", + Privilege: "DeleteApplicationFromEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:DeleteListener", + "elasticloadbalancing:DeleteTargetGroup", + }, + ResourceType: "Application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the cluster operation that is specified by the given ARN", - Privilege: "DescribeClusterOperation", + AccessLevel: "Write", + Description: "Grants permission to delete a runtime environment", + Privilege: "DeleteEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "elasticloadbalancing:DeleteLoadBalancer", + }, + ResourceType: "Environment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the cluster operation that is specified by the given ARN", - Privilege: "DescribeClusterOperationV2", + Description: "Grants permission to retrieve an application", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an MSK cluster", - Privilege: "DescribeClusterV2", + Description: "Grants permission to retrieve an application version", + Privilege: "GetApplicationVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an MSK configuration", - Privilege: "DescribeConfiguration", + Description: "Grants permission to retrieve a batch job execution", + Privilege: "GetBatchJobExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an MSK configuration revision", - Privilege: "DescribeConfigurationRevision", + Description: "Grants permission to retrieve data set details", + Privilege: "GetDataSetDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a MSK replicator", - Privilege: "DescribeReplicator", + Description: "Grants permission to export a data set at the specified S3 location", + Privilege: "GetDataSetExportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicator*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a MSK VPC connection", - Privilege: "DescribeVpcConnection", + Description: "Grants permission to retrieve a data set import task", + Privilege: "GetDataSetImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-connection*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get connection details for the brokers in an MSK cluster", - Privilege: "GetBootstrapBrokers", + Description: "Grants permission to retrieve a deployment", + Privilege: "GetDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a cluster resource-based policy", - Privilege: "GetClusterPolicy", + Description: "Grants permission to retrieve a runtime environment", + Privilege: "GetEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Environment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of the Apache Kafka versions to which you can update an MSK cluster", - Privilege: "GetCompatibleKafkaVersions", + AccessLevel: "Read", + Description: "Grants permission to create a signed Bluinsights url", + Privilege: "GetSignedBluinsightsUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -160399,117 +204030,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all MSK VPC connections created for a cluster", - Privilege: "ListClientVpcConnections", + AccessLevel: "Read", + Description: "Grants permission to list the versions of an application", + Privilege: "ListApplicationVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of all the operations that have been performed on the specified MSK cluster", - Privilege: "ListClusterOperations", + Description: "Grants permission to list applications", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of all the operations that have been performed on the specified MSK cluster", - Privilege: "ListClusterOperationsV2", + AccessLevel: "Read", + Description: "Grants permission to list batch job definitions", + Privilege: "ListBatchJobDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all MSK clusters in this account", - Privilege: "ListClusters", + AccessLevel: "Read", + Description: "Grants permission to list executions for a batch job", + Privilege: "ListBatchJobExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all MSK clusters in this account", - Privilege: "ListClustersV2", + AccessLevel: "Read", + Description: "Grants permission to retrieve a batch job execution", + Privilege: "ListBatchJobRestartPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all revisions for an MSK configuration in this account", - Privilege: "ListConfigurationRevisions", + AccessLevel: "Read", + Description: "Grants permission to list data set export history", + Privilege: "ListDataSetExportHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all MSK configurations in this account", - Privilege: "ListConfigurations", + AccessLevel: "Read", + Description: "Grants permission to list data set import history", + Privilege: "ListDataSetImportHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Apache Kafka versions supported by Amazon MSK", - Privilege: "ListKafkaVersions", + AccessLevel: "Read", + Description: "Grants permission to list data sets", + Privilege: "ListDataSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list brokers in an MSK cluster", - Privilege: "ListNodes", + AccessLevel: "Read", + Description: "Grants permission to list deployments", + Privilege: "ListDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all MSK replicators in this account", - Privilege: "ListReplicators", + AccessLevel: "Read", + Description: "Grants permission to list engine versions", + Privilege: "ListEngineVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -160520,32 +204151,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the Scram Secrets associated with an Amazon MSK cluster", - Privilege: "ListScramSecrets", + Description: "Grants permission to list runtime environments", + Privilege: "ListEnvironments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags of an MSK resource", + Description: "Grants permission to list tags for a resource", Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all MSK VPC connections that this account uses", - Privilege: "ListVpcConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -160556,59 +204175,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update the resource-based policy for a cluster", - Privilege: "PutClusterPolicy", + Description: "Grants permission to start an application", + Privilege: "StartApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reboot broker", - Privilege: "RebootBroker", + Description: "Grants permission to start a batch job", + Privilege: "StartBatchJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject a MSK VPC connection", - Privilege: "RejectClientVpcConnection", + Description: "Grants permission to stop an application", + Privilege: "StopApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "vpc-connection*", + ResourceType: "Application*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag an MSK resource", + Description: "Grants permission to tag a resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "Application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-connection", + ResourceType: "Environment", }, { ConditionKeys: []string{ @@ -160622,18 +204236,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an MSK resource", + Description: "Grants permission to untag a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "Application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpc-connection", + ResourceType: "Environment", }, { ConditionKeys: []string{ @@ -160646,581 +204260,317 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the number of brokers of the MSK cluster", - Privilege: "UpdateBrokerCount", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + "s3:ListBucket", + }, + ResourceType: "Application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the storage size of the brokers of the MSK cluster", - Privilege: "UpdateBrokerStorage", + Description: "Grants permission to update a runtime environment", + Privilege: "UpdateEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "Environment*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update the broker type of an Amazon MSK cluster", - Privilege: "UpdateBrokerType", + Arn: "arn:${Partition}:m2:${Region}:${Account}:app/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Application", + }, + { + Arn: "arn:${Partition}:m2:${Region}:${Account}:env/${EnvironmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Environment", + }, + }, + ServiceName: "AWS Mainframe Modernization Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "machinelearning", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Tagging", + Description: "Adds one or more tags to an object, up to a limit of 10. Each tag consists of a key and an optional value", + Privilege: "AddTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "batchprediction", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the configuration of the MSK cluster", - Privilege: "UpdateClusterConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "datasource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "evaluation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the MSK cluster to the specified Apache Kafka version", - Privilege: "UpdateClusterKafkaVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "mlmodel", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new revision of the MSK configuration", - Privilege: "UpdateConfiguration", + Description: "Generates predictions for a group of observations", + Privilege: "CreateBatchPrediction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "batchprediction*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the connectivity settings for the MSK cluster", - Privilege: "UpdateConnectivity", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRouteTables", - "ec2:DescribeSubnets", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", }, { - ConditionKeys: []string{ - "kafka:publicAccessEnabled", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlmodel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the monitoring settings for the MSK cluster", - Privilege: "UpdateMonitoring", + Description: "Creates a DataSource object from an Amazon RDS", + Privilege: "CreateDataSourceFromRDS", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "datasource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the replication info of the MSK replicator", - Privilege: "UpdateReplicationInfo", + Description: "Creates a DataSource from a database hosted on an Amazon Redshift cluster", + Privilege: "CreateDataSourceFromRedshift", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replicator*", + ResourceType: "datasource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the security settings for the MSK cluster", - Privilege: "UpdateSecurity", + Description: "Creates a DataSource object from S3", + Privilege: "CreateDataSourceFromS3", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:RetireGrant", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the EBS storage (size or provisioned throughput) associated with MSK brokers or set cluster storage mode to TIERED", - Privilege: "UpdateStorage", + Description: "Creates a new Evaluation of an MLModel", + Privilege: "CreateEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "datasource*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:cluster/${ClusterName}/${Uuid}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:configuration/${ConfigurationName}/${Uuid}", - ConditionKeys: []string{}, - Resource: "configuration", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${VpcOwnerAccount}:vpc-connection/${ClusterOwnerAccount}/${ClusterName}/${Uuid}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "vpc-connection", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:replicator/${ReplicatorName}/${Uuid}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "replicator", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:topic/${ClusterName}/${ClusterUuid}/${TopicName}", - ConditionKeys: []string{}, - Resource: "topic", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:group/${ClusterName}/${ClusterUuid}/${GroupName}", - ConditionKeys: []string{}, - Resource: "group", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:transactional-id/${ClusterName}/${ClusterUuid}/${TransactionalId}", - ConditionKeys: []string{}, - Resource: "transactional-id", - }, - }, - ServiceName: "Amazon Managed Streaming for Apache Kafka", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource. The resource tag context key will only apply to the cluster resource, not topics, groups and transactional IDs", - Type: "String", - }, - }, - Prefix: "kafka-cluster", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to alter various aspects of the cluster, equivalent to Apache Kafka's ALTER CLUSTER ACL", - Privilege: "AlterCluster", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeCluster", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "evaluation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to alter the dynamic configuration of a cluster, equivalent to Apache Kafka's ALTER_CONFIGS CLUSTER ACL", - Privilege: "AlterClusterDynamicConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeClusterDynamicConfiguration", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlmodel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to join groups on a cluster, equivalent to Apache Kafka's READ GROUP ACL", - Privilege: "AlterGroup", + Description: "Creates a new MLModel", + Privilege: "CreateMLModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeGroup", - }, - ResourceType: "group*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to alter topics on a cluster, equivalent to Apache Kafka's ALTER TOPIC ACL", - Privilege: "AlterTopic", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeTopic", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlmodel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to alter the dynamic configuration of topics on a cluster, equivalent to Apache Kafka's ALTER_CONFIGS TOPIC ACL", - Privilege: "AlterTopicDynamicConfiguration", + Description: "Creates a real-time endpoint for the MLModel", + Privilege: "CreateRealtimeEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeTopicDynamicConfiguration", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlmodel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to alter transactional IDs on a cluster, equivalent to Apache Kafka's WRITE TRANSACTIONAL_ID ACL", - Privilege: "AlterTransactionalId", + Description: "Assigns the DELETED status to a BatchPrediction, rendering it unusable", + Privilege: "DeleteBatchPrediction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeTransactionalId", - "kafka-cluster:WriteData", - }, - ResourceType: "transactional-id*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batchprediction*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to connect and authenticate to the cluster", - Privilege: "Connect", + Description: "Assigns the DELETED status to a DataSource, rendering it unusable", + Privilege: "DeleteDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "datasource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create topics on a cluster, equivalent to Apache Kafka's CREATE CLUSTER/TOPIC ACL", - Privilege: "CreateTopic", + Description: "Assigns the DELETED status to an Evaluation, rendering it unusable", + Privilege: "DeleteEvaluation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "evaluation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete groups on a cluster, equivalent to Apache Kafka's DELETE GROUP ACL", - Privilege: "DeleteGroup", + Description: "Assigns the DELETED status to an MLModel, rendering it unusable", + Privilege: "DeleteMLModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeGroup", - }, - ResourceType: "group*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlmodel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete topics on a cluster, equivalent to Apache Kafka's DELETE TOPIC ACL", - Privilege: "DeleteTopic", + Description: "Deletes a real time endpoint of an MLModel", + Privilege: "DeleteRealtimeEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeTopic", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlmodel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe various aspects of the cluster, equivalent to Apache Kafka's DESCRIBE CLUSTER ACL", - Privilege: "DescribeCluster", + AccessLevel: "Tagging", + Description: "Deletes the specified tags associated with an ML object. After this operation is complete, you can't recover deleted tags", + Privilege: "DeleteTags", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batchprediction", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the dynamic configuration of a cluster, equivalent to Apache Kafka's DESCRIBE_CONFIGS CLUSTER ACL", - Privilege: "DescribeClusterDynamicConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe groups on a cluster, equivalent to Apache Kafka's DESCRIBE GROUP ACL", - Privilege: "DescribeGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "group*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "evaluation", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe topics on a cluster, equivalent to Apache Kafka's DESCRIBE TOPIC ACL", - Privilege: "DescribeTopic", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlmodel", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe the dynamic configuration of topics on a cluster, equivalent to Apache Kafka's DESCRIBE_CONFIGS TOPIC ACL", - Privilege: "DescribeTopicDynamicConfiguration", + Description: "Returns a list of BatchPrediction operations that match the search criteria in the request", + Privilege: "DescribeBatchPredictions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe transactional IDs on a cluster, equivalent to Apache Kafka's DESCRIBE TRANSACTIONAL_ID ACL", - Privilege: "DescribeTransactionalId", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - }, - ResourceType: "transactional-id*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to read data from topics on a cluster, equivalent to Apache Kafka's READ TOPIC ACL", - Privilege: "ReadData", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:AlterGroup", - "kafka-cluster:Connect", - "kafka-cluster:DescribeTopic", - }, - ResourceType: "topic*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to write data to topics on a cluster, equivalent to Apache Kafka's WRITE TOPIC ACL", - Privilege: "WriteData", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:DescribeTopic", - }, - ResourceType: "topic*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to write data idempotently on a cluster, equivalent to Apache Kafka's IDEMPOTENT_WRITE CLUSTER ACL", - Privilege: "WriteDataIdempotently", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "kafka-cluster:Connect", - "kafka-cluster:WriteData", - }, - ResourceType: "cluster*", - }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:cluster/${ClusterName}/${ClusterUuid}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:topic/${ClusterName}/${ClusterUuid}/${TopicName}", - ConditionKeys: []string{}, - Resource: "topic", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:group/${ClusterName}/${ClusterUuid}/${GroupName}", - ConditionKeys: []string{}, - Resource: "group", - }, - { - Arn: "arn:${Partition}:kafka:${Region}:${Account}:transactional-id/${ClusterName}/${ClusterUuid}/${TransactionalId}", - ConditionKeys: []string{}, - Resource: "transactional-id", - }, - }, - ServiceName: "Apache Kafka APIs for Amazon MSK clusters", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "kafkaconnect", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create an MSK Connect connector", - Privilege: "CreateConnector", + Description: "Returns a list of DataSource that match the search criteria in the request", + Privilege: "DescribeDataSources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "firehose:TagDeliveryStream", - "iam:AttachRolePolicy", - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "iam:PutRolePolicy", - "logs:CreateLogDelivery", - "logs:DescribeLogGroups", - "logs:DescribeResourcePolicies", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:PutResourcePolicy", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an MSK Connect custom plugin", - Privilege: "CreateCustomPlugin", + AccessLevel: "List", + Description: "Returns a list of DescribeEvaluations that match the search criteria in the request", + Privilege: "DescribeEvaluations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an MSK Connect worker configuration", - Privilege: "CreateWorkerConfiguration", + AccessLevel: "List", + Description: "Returns a list of MLModel that match the search criteria in the request", + Privilege: "DescribeMLModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -161230,400 +204580,330 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an MSK Connect connector", - Privilege: "DeleteConnector", + AccessLevel: "List", + Description: "Describes one or more of the tags for your Amazon ML object", + Privilege: "DescribeTags", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - }, - ResourceType: "connector*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "batchprediction", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an MSK Connect custom plugin", - Privilege: "DeleteCustomPlugin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom plugin*", + ResourceType: "datasource", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an MSK Connect worker configuration", - Privilege: "DeleteWorkerConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker configuration*", + ResourceType: "evaluation", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an MSK Connect connector", - Privilege: "DescribeConnector", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connector*", + ResourceType: "mlmodel", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an MSK Connect custom plugin", - Privilege: "DescribeCustomPlugin", + Description: "Returns a BatchPrediction that includes detailed metadata, status, and data file information", + Privilege: "GetBatchPrediction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom plugin*", + ResourceType: "batchprediction*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an MSK Connect worker configuration", - Privilege: "DescribeWorkerConfiguration", + Description: "Returns a DataSource that includes metadata and data file information, as well as the current status of the DataSource", + Privilege: "GetDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker configuration*", + ResourceType: "datasource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all MSK Connect connectors in this account", - Privilege: "ListConnectors", + Description: "Returns an Evaluation that includes metadata as well as the current status of the Evaluation", + Privilege: "GetEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datasource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all MSK Connect custom plugins in this account", - Privilege: "ListCustomPlugins", + Description: "Returns an MLModel that includes detailed metadata, and data source information as well as the current status of the MLModel", + Privilege: "GetMLModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlmodel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags of an MSK Connect resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Generates a prediction for the observation using the specified ML Model", + Privilege: "Predict", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "connector", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "custom plugin", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worker configuration", + ResourceType: "mlmodel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all MSK Connect worker configurations in this account", - Privilege: "ListWorkerConfigurations", + AccessLevel: "Write", + Description: "Updates the BatchPredictionName of a BatchPrediction", + Privilege: "UpdateBatchPrediction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "batchprediction*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an MSK Connect resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Updates the DataSourceName of a DataSource", + Privilege: "UpdateDataSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "connector", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "custom plugin", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "worker configuration", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datasource*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an MSK Connect resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Updates the EvaluationName of an Evaluation", + Privilege: "UpdateEvaluation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "connector", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "custom plugin", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "worker configuration", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "evaluation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an MSK Connect connector", - Privilege: "UpdateConnector", + Description: "Updates the MLModelName and the ScoreThreshold of an MLModel", + Privilege: "UpdateMLModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connector*", + ResourceType: "mlmodel*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:connector/${ConnectorName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "connector", + Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:batchprediction/${BatchPredictionId}", + ConditionKeys: []string{}, + Resource: "batchprediction", }, { - Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:custom-plugin/${CustomPluginName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "custom plugin", + Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:datasource/${DatasourceId}", + ConditionKeys: []string{}, + Resource: "datasource", }, { - Arn: "arn:${Partition}:kafkaconnect:${Region}:${Account}:worker-configuration/${WorkerConfigurationName}/${UUID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "worker configuration", + Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:evaluation/${EvaluationId}", + ConditionKeys: []string{}, + Resource: "evaluation", + }, + { + Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:mlmodel/${MlModelId}", + ConditionKeys: []string{}, + Resource: "mlmodel", }, }, - ServiceName: "Amazon Managed Streaming for Kafka Connect", + ServiceName: "Amazon Machine Learning", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + Condition: "aws:SourceArn", + Description: "Allow access to the specified actions only when the request operates on the specified aws resource", + Type: "Arn", }, }, - Prefix: "kendra", + Prefix: "macie", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to put principal mapping in index", - Privilege: "AssociateEntitiesToExperience", + Description: "Enables the user to associate a specified AWS account with Amazon Macie as a member account.", + Privilege: "AssociateMemberAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Defines the specific permissions of users or groups in your AWS SSO identity source with access to your Amazon Kendra experience", - Privilege: "AssociatePersonasToEntities", + Description: "Enables the user to associate specified S3 resources with Amazon Macie for monitoring and data classification.", + Privilege: "AssociateS3Resources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experience*", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:SourceArn", + }, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch delete document", - Privilege: "BatchDeleteDocument", + Description: "Enables the user to remove the specified member account from Amazon Macie.", + Privilege: "DisassociateMemberAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a featured results set", - Privilege: "BatchDeleteFeaturedResultsSet", + Description: "Enables the user to remove specified S3 resources from being monitored by Amazon Macie.", + Privilege: "DisassociateS3Resources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:SourceArn", + }, DependentActions: []string{}, - ResourceType: "featured-results-set*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Enables the user to list all Amazon Macie member accounts for the current Macie master account.", + Privilege: "ListMemberAccounts", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to do batch get document status", - Privilege: "BatchGetDocumentStatus", + AccessLevel: "List", + Description: "Enables the user to list all the S3 resources associated with Amazon Macie.", + Privilege: "ListS3Resources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch put document", - Privilege: "BatchPutDocument", + Description: "Enables the user to update the classification types for the specified S3 resources.", + Privilege: "UpdateS3Resources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:SourceArn", + }, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Macie Classic", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "macie2", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to clear out the suggestions for a given index, generated so far", - Privilege: "ClearQuerySuggestions", + Description: "Grants permission to accept an Amazon Macie membership invitation", + Privilege: "AcceptInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an access control configuration", - Privilege: "CreateAccessControlConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about one or more custom data identifiers", + Privilege: "BatchGetCustomDataIdentifiers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "CustomDataIdentifier*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a data source", - Privilege: "CreateDataSource", + Description: "Grants permission to an Amazon Macie administrator to change the status of automated sensitive data discovery for one or more accounts in their organization", + Privilege: "BatchUpdateAutomatedDiscoveryAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create and define the settings for an allow list", + Privilege: "CreateAllowList", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -161636,25 +204916,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Creates an Amazon Kendra experience such as a search application", - Privilege: "CreateExperience", + Description: "Grants permission to create and define the settings for a sensitive data discovery job", + Privilege: "CreateClassificationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "ClassificationJob*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Faq", - Privilege: "CreateFaq", + Description: "Grants permission to create and define the settings for a custom data identifier", + Privilege: "CreateCustomDataIdentifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "CustomDataIdentifier*", }, { ConditionKeys: []string{ @@ -161668,13 +204956,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a featured results set", - Privilege: "CreateFeaturedResultsSet", + Description: "Grants permission to create and define the settings for a findings filter", + Privilege: "CreateFindingsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "FindingsFilter*", }, { ConditionKeys: []string{ @@ -161688,14 +204976,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Index", - Privilege: "CreateIndex", + Description: "Grants permission to send an Amazon Macie membership invitation", + Privilege: "CreateInvitations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -161703,13 +204988,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a QuerySuggestions BlockList", - Privilege: "CreateQuerySuggestionsBlockList", + Description: "Grants permission to associate an account with an Amazon Macie administrator account", + Privilege: "CreateMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "Member*", }, { ConditionKeys: []string{ @@ -161723,19 +205008,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Thesaurus", - Privilege: "CreateThesaurus", + Description: "Grants permission to create sample findings", + Privilege: "CreateSampleFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to decline Amazon Macie membership invitations", + Privilege: "DeclineInvitations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -161743,485 +205032,596 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an access control configuration", - Privilege: "DeleteAccessControlConfiguration", + Description: "Grants permission to delete an allow list", + Privilege: "DeleteAllowList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-control-configuration*", + ResourceType: "AllowList*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a custom data identifier", + Privilege: "DeleteCustomDataIdentifier", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "CustomDataIdentifier*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a data source", - Privilege: "DeleteDataSource", + Description: "Grants permission to delete a findings filter", + Privilege: "DeleteFindingsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "FindingsFilter*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete Amazon Macie membership invitations", + Privilege: "DeleteInvitations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Deletes your Amazon Kendra experience such as a search application", - Privilege: "DeleteExperience", + Description: "Grants permission to delete the association between an Amazon Macie administrator account and an account", + Privilege: "DeleteMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", + ResourceType: "Member*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve statistical data and other information about S3 buckets that Amazon Macie monitors and analyzes", + Privilege: "DescribeBuckets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Faq", - Privilege: "DeleteFaq", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the status and settings for a sensitive data discovery job", + Privilege: "DescribeClassificationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "faq*", + ResourceType: "ClassificationJob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the Amazon Macie configuration settings for an AWS organization", + Privilege: "DescribeOrganizationConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Index", - Privilege: "DeleteIndex", + Description: "Grants permission to disable an Amazon Macie account, which also deletes Macie resources for the account", + Privilege: "DisableMacie", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete principal mapping from index", - Privilege: "DeletePrincipalMapping", + Description: "Grants permission to disable an account as the delegated Amazon Macie administrator account for an AWS organization", + Privilege: "DisableOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to an Amazon Macie member account to disassociate from its Macie administrator account", + Privilege: "DisassociateFromAdministratorAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a QuerySuggestions BlockList", - Privilege: "DeleteQuerySuggestionsBlockList", + Description: "Grants permission to an Amazon Macie member account to disassociate from its Macie administrator account", + Privilege: "DisassociateFromMasterAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to an Amazon Macie administrator account to disassociate from a Macie member account", + Privilege: "DisassociateMember", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query-suggestions-block-list*", + ResourceType: "Member*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Thesaurus", - Privilege: "DeleteThesaurus", + Description: "Grants permission to enable and specify the configuration settings for a new Amazon Macie account", + Privilege: "EnableMacie", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable an account as the delegated Amazon Macie administrator account for an AWS organization", + Privilege: "EnableOrganizationAdminAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thesaurus*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an access control configuration", - Privilege: "DescribeAccessControlConfiguration", + Description: "Grants permission to retrieve information about the Amazon Macie administrator account for an account", + Privilege: "GetAdministratorAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-control-configuration*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a data source", - Privilege: "DescribeDataSource", + Description: "Grants permission to retrieve the settings and status of an allow list", + Privilege: "GetAllowList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "AllowList*", }, }, }, { AccessLevel: "Read", - Description: "Gets information about your Amazon Kendra experience such as a search application", - Privilege: "DescribeExperience", + Description: "Grants permission to retrieve the configuration settings and status of automated sensitive data discovery for an Amazon Macie administrator account, organization, or standalone account", + Privilege: "GetAutomatedDiscoveryConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve aggregated statistical data for all the S3 buckets that Amazon Macie monitors and analyzes", + Privilege: "GetBucketStatistics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an Faq", - Privilege: "DescribeFaq", + Description: "Grants permission to retrieve the settings for exporting sensitive data discovery results", + Privilege: "GetClassificationExportConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "faq*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the classification scope settings for an account", + Privilege: "GetClassificationScope", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a featured results set", - Privilege: "DescribeFeaturedResultsSet", + Description: "Grants permission to retrieve information about the settings for a custom data identifier", + Privilege: "GetCustomDataIdentifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "featured-results-set*", + ResourceType: "CustomDataIdentifier*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve aggregated statistical data about findings", + Privilege: "GetFindingStatistics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an Index", - Privilege: "DescribeIndex", + Description: "Grants permission to retrieve the details of one or more findings", + Privilege: "GetFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe principal mapping from index", - Privilege: "DescribePrincipalMapping", + Description: "Grants permission to retrieve information about the settings for a findings filter", + Privilege: "GetFindingsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "FindingsFilter*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the configuration settings for publishing findings to AWS Security Hub", + Privilege: "GetFindingsPublicationConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a QuerySuggestions BlockList", - Privilege: "DescribeQuerySuggestionsBlockList", + Description: "Grants permission to retrieve the count of Amazon Macie membership invitations that were received by an account", + Privilege: "GetInvitationsCount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the status and configuration settings for an Amazon Macie account", + Privilege: "GetMacieSession", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query-suggestions-block-list*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the query suggestions configuration for an index", - Privilege: "DescribeQuerySuggestionsConfig", + Description: "Grants permission to retrieve information about the Amazon Macie administrator account for an account", + Privilege: "GetMasterAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a Thesaurus", - Privilege: "DescribeThesaurus", + Description: "Grants permission to retrieve information about an account that's associated with an Amazon Macie administrator account", + Privilege: "GetMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "Member*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve sensitive data discovery statistics and the sensitivity score for an S3 bucket", + Privilege: "GetResourceProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thesaurus*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Prevents users or groups in your AWS SSO identity source from accessing your Amazon Kendra experience", - Privilege: "DisassociateEntitiesFromExperience", + AccessLevel: "Read", + Description: "Grants permission to retrieve the status and configuration settings for retrieving occurrences of sensitive data reported by findings", + Privilege: "GetRevealConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve occurrences of sensitive data reported by a finding", + Privilege: "GetSensitiveDataOccurrences", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Removes the specific permissions of users or groups in your AWS SSO identity source with access to your Amazon Kendra experience", - Privilege: "DisassociatePersonasFromEntities", + AccessLevel: "Read", + Description: "Grants permission to check whether occurrences of sensitive data can be retrieved for a finding", + Privilege: "GetSensitiveDataOccurrencesAvailability", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the sensitivity inspection template settings for an account", + Privilege: "GetSensitivityInspectionTemplate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get suggestions for a query prefix", - Privilege: "GetQuerySuggestions", + Description: "Grants permission to retrieve quotas and aggregated usage data for one or more accounts", + Privilege: "GetUsageStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Retrieves search metrics data", - Privilege: "GetSnapshots", + Description: "Grants permission to retrieve aggregated usage data for an account", + Privilege: "GetUsageTotals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the access control configurations", - Privilege: "ListAccessControlConfigurations", + Description: "Grants permission to retrieve a subset of information about all the allow lists for an account", + Privilege: "ListAllowLists", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get Data Source sync job history", - Privilege: "ListDataSourceSyncJobs", + Description: "Grants permission to retrieve the status of automated sensitive data discovery for an account", + Privilege: "ListAutomatedDiscoveryAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the data sources", - Privilege: "ListDataSources", + Description: "Grants permission to retrieve a subset of information about the status and settings for one or more sensitive data discovery jobs", + Privilege: "ListClassificationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Lists specific permissions of users and groups with access to your Amazon Kendra experience", - Privilege: "ListEntityPersonas", + Description: "Grants permission to retrieve a subset of information about the classification scope for an account", + Privilege: "ListClassificationScopes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve information about all custom data identifiers", + Privilege: "ListCustomDataIdentifiers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Lists users or groups in your AWS SSO identity source that are granted access to your Amazon Kendra experience", - Privilege: "ListExperienceEntities", + Description: "Grants permission to retrieve a subset of information about one or more findings", + Privilege: "ListFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experience*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve information about all findings filters", + Privilege: "ListFindingsFilters", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Lists one or more Amazon Kendra experiences. You can create an Amazon Kendra experience such as a search application", - Privilege: "ListExperiences", + Description: "Grants permission to retrieve information about all the Amazon Macie membership invitations that were received by an account", + Privilege: "ListInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the Faqs", - Privilege: "ListFaqs", + Description: "Grants permission to retrieve information about managed data identifiers", + Privilege: "ListManagedDataIdentifiers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the featured results sets", - Privilege: "ListFeaturedResultsSets", + Description: "Grants permission to retrieve information about the Amazon Macie member accounts that are associated with a Macie administrator account", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list groups that are older than an ordering id", - Privilege: "ListGroupsOlderThanOrderingId", + Description: "Grants permission to retrieve information about the delegated Amazon Macie administrator account for an AWS organization", + Privilege: "ListOrganizationAdminAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve information about objects that Amazon Macie selected from an S3 bucket for automated sensitive data discovery", + Privilege: "ListResourceProfileArtifacts", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the indexes", - Privilege: "ListIndices", + Description: "Grants permission to retrieve information about the types and amount of sensitive data that Amazon Macie found in an S3 bucket", + Privilege: "ListResourceProfileDetections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -162232,190 +205632,168 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the QuerySuggestions BlockLists", - Privilege: "ListQuerySuggestionsBlockLists", + Description: "Grants permission to retrieve a subset of information about the sensitivity inspection template for an account", + Privilege: "ListSensitivityInspectionTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", + Description: "Grants permission to retrieve the tags for an Amazon Macie resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "faq", + ResourceType: "AllowList", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "featured-results-set", + ResourceType: "ClassificationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "CustomDataIdentifier", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query-suggestions-block-list", + ResourceType: "FindingsFilter", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thesaurus", + ResourceType: "Member", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Thesauri", - Privilege: "ListThesauri", + AccessLevel: "Write", + Description: "Grants permission to create or update the settings for storing sensitive data discovery results", + Privilege: "PutClassificationExportConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put principal mapping in index", - Privilege: "PutPrincipalMapping", + Description: "Grants permission to update the configuration settings for publishing findings to AWS Security Hub", + Privilege: "PutFindingsPublicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-source", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to query documents and faqs", - Privilege: "Query", + Description: "Grants permission to retrieve statistical data and other information about AWS resources that Amazon Macie monitors and analyzes", + Privilege: "SearchResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve relevant content from an index", - Privilege: "Retrieve", + AccessLevel: "Tagging", + Description: "Grants permission to add or update the tags for an Amazon Macie resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "AllowList", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start Data Source sync job", - Privilege: "StartDataSourceSyncJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "ClassificationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "CustomDataIdentifier", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop Data Source sync job", - Privilege: "StopDataSourceSyncJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "FindingsFilter", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "Member", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send feedback about a query results", - Privilege: "SubmitFeedback", + Description: "Grants permission to test a custom data identifier", + Privilege: "TestCustomDataIdentifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a resource with given key value pairs", - Privilege: "TagResource", + Description: "Grants permission to remove tags from an Amazon Macie resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "faq", + ResourceType: "AllowList", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "featured-results-set", + ResourceType: "ClassificationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "CustomDataIdentifier", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query-suggestions-block-list", + ResourceType: "FindingsFilter", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thesaurus", + ResourceType: "Member", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -162424,42 +205802,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the tag with the given key from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update the settings for an allow list", + Privilege: "UpdateAllowList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "faq", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "featured-results-set", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index", + ResourceType: "AllowList*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the status of automated sensitive data discovery for an Amazon Macie administrator account, organization, or standalone account", + Privilege: "UpdateAutomatedDiscoveryConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query-suggestions-block-list", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the status of a sensitive data discovery job", + Privilege: "UpdateClassificationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thesaurus", + ResourceType: "ClassificationJob*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -162469,211 +205847,189 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an access control configuration", - Privilege: "UpdateAccessControlConfiguration", + Description: "Grants permission to update the classification scope settings for an account", + Privilege: "UpdateClassificationScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "access-control-configuration*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a data source", - Privilege: "UpdateDataSource", + Description: "Grants permission to update the settings for a findings filter", + Privilege: "UpdateFindingsFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "FindingsFilter*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Updates your Amazon Kendra experience such as a search application", - Privilege: "UpdateExperience", + Description: "Grants permission to an Amazon Macie administrator account to suspend or re-enable Macie for a member account", + Privilege: "UpdateMacieSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a featured results set", - Privilege: "UpdateFeaturedResultsSet", + Description: "Grants permission to an Amazon Macie administrator account to suspend or re-enable a Macie member account", + Privilege: "UpdateMemberSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "featured-results-set*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Index", - Privilege: "UpdateIndex", + Description: "Grants permission to update Amazon Macie configuration settings for an AWS organization", + Privilege: "UpdateOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a QuerySuggestions BlockList", - Privilege: "UpdateQuerySuggestionsBlockList", + Description: "Grants permission to update the sensitivity score for an S3 bucket", + Privilege: "UpdateResourceProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "query-suggestions-block-list*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the query suggestions configuration for an index", - Privilege: "UpdateQuerySuggestionsConfig", + Description: "Grants permission to update the sensitivity scoring settings for an S3 bucket", + Privilege: "UpdateResourceProfileDetections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a thesaurus", - Privilege: "UpdateThesaurus", + Description: "Grants permission to update the status and configuration settings for retrieving occurrences of sensitive data reported by findings", + Privilege: "UpdateRevealConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the sensitivity inspection template settings for an account", + Privilege: "UpdateSensitivityInspectionTemplate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "thesaurus*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "index", - }, - { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/data-source/${DataSourceId}", + Arn: "arn:${Partition}:macie2:${Region}:${Account}:allow-list/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "data-source", + Resource: "AllowList", }, { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/faq/${FaqId}", + Arn: "arn:${Partition}:macie2:${Region}:${Account}:classification-job/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "faq", - }, - { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/experience/${ExperienceId}", - ConditionKeys: []string{}, - Resource: "experience", + Resource: "ClassificationJob", }, { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/thesaurus/${ThesaurusId}", + Arn: "arn:${Partition}:macie2:${Region}:${Account}:custom-data-identifier/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "thesaurus", + Resource: "CustomDataIdentifier", }, { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/query-suggestions-block-list/${QuerySuggestionsBlockListId}", + Arn: "arn:${Partition}:macie2:${Region}:${Account}:findings-filter/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "query-suggestions-block-list", + Resource: "FindingsFilter", }, { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/featured-results-set/${FeaturedResultsSetId}", + Arn: "arn:${Partition}:macie2:${Region}:${Account}:member/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "featured-results-set", - }, - { - Arn: "arn:${Partition}:kendra:${Region}:${Account}:index/${IndexId}/access-control-configuration/${AccessControlConfigurationId}", - ConditionKeys: []string{}, - Resource: "access-control-configuration", + Resource: "Member", }, }, - ServiceName: "Amazon Kendra", + ServiceName: "Amazon Macie", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", + Description: "Filters actions based on the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Description: "Filters actions based on the tags associated with an Amazon Managed Blockchain resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", + Description: "Filters actions based on the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "kendra-ranking", + Prefix: "managedblockchain", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a RescoreExecutionPlan", - Privilege: "CreateRescoreExecutionPlan", + Description: "Grants permission to create an Amazon Managed Blockchain accessor", + Privilege: "CreateAccessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -162682,78 +206038,64 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a RescoreExecutionPlan", - Privilege: "DeleteRescoreExecutionPlan", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rescore-execution-plan*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a RescoreExecutionPlan", - Privilege: "DescribeRescoreExecutionPlan", + Description: "Grants permission to create a member of an Amazon Managed Blockchain network", + Privilege: "CreateMember", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rescore-execution-plan*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "network*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all RescoreExecutionPlans", - Privilege: "ListRescoreExecutionPlans", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Managed Blockchain network", + Privilege: "CreateNetwork", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rescore-execution-plan", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to Rescore documents with Kendra Intelligent Ranking", - Privilege: "Rescore", + AccessLevel: "Write", + Description: "Grants permission to create a node within a member of an Amazon Managed Blockchain network", + Privilege: "CreateNode", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rescore-execution-plan*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "member", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource with given key value pairs", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rescore-execution-plan", + ResourceType: "network", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -162761,18 +206103,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the tag with the given key from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a proposal that other blockchain network members can vote on to add or remove a member in an Amazon Managed Blockchain network", + Privilege: "CreateProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rescore-execution-plan", + ResourceType: "network*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -162781,161 +206124,116 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a RescoreExecutionPlan", - Privilege: "UpdateRescoreExecutionPlan", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rescore-execution-plan*", - }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:kendra-ranking:${Region}:${Account}:rescore-execution-plan/${RescoreExecutionPlanId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rescore-execution-plan", - }, - }, - ServiceName: "Amazon Kendra Intelligent Ranking", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "kinesis", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Tagging", - Description: "Grants permission to add or update tags for the specified Amazon Kinesis stream. Each stream can have up to 10 tags", - Privilege: "AddTagsToStream", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Amazon Kinesis stream", - Privilege: "CreateStream", + Description: "Grants permission to delete an Amazon Managed Blockchain accessor", + Privilege: "DeleteAccessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "accessor*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to decrease the stream's retention period, which is the length of time data records are accessible after they are added to the stream", - Privilege: "DecreaseStreamRetentionPeriod", + Description: "Grants permission to delete a member and all associated resources from an Amazon Managed Blockchain network", + Privilege: "DeleteMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "member*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy associated with a specified stream or consumer", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to delete a node from a member of an Amazon Managed Blockchain network", + Privilege: "DeleteNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "consumer*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "node*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a stream and all its shards and data", - Privilege: "DeleteStream", + AccessLevel: "Permissions management", + Description: "Grants permission to send HTTP GET requests to an Ethereum node", + Privilege: "GET", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister a stream consumer with a Kinesis data stream", - Privilege: "DeregisterStreamConsumer", + AccessLevel: "Read", + Description: "Grants permission to return detailed information about an Amazon Managed Blockchain accessor", + Privilege: "GetAccessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "consumer*", + ResourceType: "accessor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the shard limits and usage for the account", - Privilege: "DescribeLimits", + Description: "Grants permission to return detailed information about a member of an Amazon Managed Blockchain network", + Privilege: "GetMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "member*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the specified stream", - Privilege: "DescribeStream", + Description: "Grants permission to return detailed information about an Amazon Managed Blockchain network", + Privilege: "GetNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "network*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the description of a registered stream consumer", - Privilege: "DescribeStreamConsumer", + Description: "Grants permission to return detailed information about a node within a member of an Amazon Managed Blockchain network", + Privilege: "GetNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "consumer*", + ResourceType: "node*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to provide a summarized description of the specified Kinesis data stream without the shard list", - Privilege: "DescribeStreamSummary", + Description: "Grants permission to return detailed information about a proposal of an Amazon Managed Blockchain network", + Privilege: "GetProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "proposal*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disables enhanced monitoring", - Privilege: "DisableEnhancedMonitoring", + AccessLevel: "Permissions management", + Description: "Grants permission to create WebSocket connections to an Ethereum node", + Privilege: "Invoke", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -162945,9 +206243,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable enhanced Kinesis data stream monitoring for shard-level metrics", - Privilege: "EnableEnhancedMonitoring", + AccessLevel: "Read", + Description: "Grants permission to invoke the Bitcoin Mainnet RPCs", + Privilege: "InvokeRpcBitcoinMainnet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -162958,85 +206256,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get data records from a shard", - Privilege: "GetRecords", + Description: "Grants permission to invoke the Bitcoin Testnet RPCs", + Privilege: "InvokeRpcBitcoinTestnet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a resource policy associated with a specified stream or consumer", - Privilege: "GetResourcePolicy", + Description: "Grants permission to invoke the Polygon Mainnet RPCs", + Privilege: "InvokeRpcPolygonMainnet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "consumer*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a shard iterator. A shard iterator expires five minutes after it is returned to the requester", - Privilege: "GetShardIterator", + Description: "Grants permission to invoke the Polygon Mumbai Testnet RPCs", + Privilege: "InvokeRpcPolygonMumbaiTestnet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to increase the stream's retention period, which is the length of time data records are accessible after they are added to the stream", - Privilege: "IncreaseStreamRetentionPeriod", + AccessLevel: "List", + Description: "Grants permission to list the Amazon Managed Blockchain accessors owned by the current AWS account", + Privilege: "ListAccessors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the shards in a stream and provides information about each shard", - Privilege: "ListShards", + Description: "Grants permission to list the invitations extended to the active AWS account from any Managed Blockchain network", + Privilege: "ListInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the stream consumers registered to receive data from a Kinesis stream using enhanced fan-out, and provides information about each consumer", - Privilege: "ListStreamConsumers", + Description: "Grants permission to list the members of an Amazon Managed Blockchain network and the properties of their memberships", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "network*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list your streams", - Privilege: "ListStreams", + Description: "Grants permission to list the Amazon Managed Blockchain networks in which the current AWS account participates", + Privilege: "ListNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -163046,319 +206339,387 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for the specified Amazon Kinesis stream", - Privilege: "ListTagsForStream", + AccessLevel: "List", + Description: "Grants permission to list the nodes within a member of an Amazon Managed Blockchain network", + Privilege: "ListNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "member", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to merge two adjacent shards in a stream and combines them into a single shard to reduce the stream's capacity to ingest and transport data", - Privilege: "MergeShards", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "network", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to write a single data record from a producer into an Amazon Kinesis stream", - Privilege: "PutRecord", + AccessLevel: "Read", + Description: "Grants permission to list all votes for a proposal, including the value of the vote and the unique identifier of the member that cast the vote for the given Amazon Managed Blockchain network", + Privilege: "ListProposalVotes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "proposal*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to write multiple data records from a producer into an Amazon Kinesis stream in a single call (also referred to as a PutRecords request)", - Privilege: "PutRecords", + AccessLevel: "List", + Description: "Grants permission to list proposals for the given Amazon Managed Blockchain network", + Privilege: "ListProposals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a resource policy to a specified stream or consumer", - Privilege: "PutResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to view tags associated with an Amazon Managed Blockchain resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "consumer*", + ResourceType: "accessor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "invitation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register a stream consumer with a Kinesis data stream", - Privilege: "RegisterStreamConsumer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "member", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "node", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "proposal", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified Kinesis data stream. Removed tags are deleted and cannot be recovered after this operation successfully completes", - Privilege: "RemoveTagsFromStream", + AccessLevel: "Permissions management", + Description: "Grants permission to send HTTP POST requests to an Ethereum node", + Privilege: "POST", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to split a shard into two new shards in the Kinesis data stream, to increase the stream's capacity to ingest and transport data", - Privilege: "SplitShard", + Description: "Grants permission to reject the invitation to join the blockchain network", + Privilege: "RejectInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "invitation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or update server-side encryption using an AWS KMS key for a specified stream", - Privilege: "StartStreamEncryption", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an Amazon Managed Blockchain resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kmsKey*", + ResourceType: "accessor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "invitation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "member", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "node", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "proposal", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable server-side encryption for a specified stream", - Privilege: "StopStreamEncryption", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an Amazon Managed Blockchain resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "kmsKey*", + ResourceType: "accessor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "invitation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "member", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "node", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "proposal", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to listen to a specific shard with enhanced fan-out", - Privilege: "SubscribeToShard", + AccessLevel: "Write", + Description: "Grants permission to update a member of an Amazon Managed Blockchain network", + Privilege: "UpdateMember", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "consumer*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "member*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the shard count of the specified stream to the specified number of shards", - Privilege: "UpdateShardCount", + Description: "Grants permission to update a node from a member of an Amazon Managed Blockchain network", + Privilege: "UpdateNode", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "node*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the capacity mode of the data stream", - Privilege: "UpdateStreamMode", + Description: "Grants permission to cast a vote for a proposal on behalf of the blockchain network member specified", + Privilege: "VoteOnProposal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proposal*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}", - ConditionKeys: []string{}, - Resource: "stream", + Arn: "arn:${Partition}:managedblockchain:${Region}::networks/${NetworkId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "network", }, { - Arn: "arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}", - ConditionKeys: []string{}, - Resource: "consumer", + Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:members/${MemberId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "member", }, { - Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", - ConditionKeys: []string{}, - Resource: "kmsKey", + Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:nodes/${NodeId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "node", }, - }, - ServiceName: "Amazon Kinesis Data Streams", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by set of values for each of the tags", - Type: "String", + Arn: "arn:${Partition}:managedblockchain:${Region}::proposals/${ProposalId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "proposal", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value assoicated with the resource", - Type: "String", + Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:invitations/${InvitationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "invitation", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tag keys in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:accessors/${AccessorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "accessor", }, }, - Prefix: "kinesisanalytics", + ServiceName: "Amazon Managed Blockchain", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "managedblockchain-query", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add input to the application", - Privilege: "AddApplicationInput", + AccessLevel: "Read", + Description: "Grants permission to batch calls for GetTokenBalance API", + Privilege: "BatchGetTokenBalance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add output to the application", - Privilege: "AddApplicationOutput", + AccessLevel: "Read", + Description: "Grants permission to fetch information about a contract on the blockchain", + Privilege: "GetAssetContract", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add reference data source to the application", - Privilege: "AddApplicationReferenceDataSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve balance of a token for an address on the blockchain", + Privilege: "GetTokenBalance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", + AccessLevel: "Read", + Description: "Grants permission to retrieve a transaction on the blockchain", + Privilege: "GetTransaction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the application", - Privilege: "DeleteApplication", + AccessLevel: "List", + Description: "Grants permission to fetch multiple contracts on the blockchain", + Privilege: "ListAssetContracts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified output of the application", - Privilege: "DeleteApplicationOutput", + AccessLevel: "List", + Description: "Grants permission to retrieve events on the blockchain with additional filters", + Privilege: "ListFilteredTransactionEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified reference data source of the application", - Privilege: "DeleteApplicationReferenceDataSource", + AccessLevel: "List", + Description: "Grants permission to retrieve multiple balances on the blockchain", + Privilege: "ListTokenBalances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified application", - Privilege: "DescribeApplication", + AccessLevel: "List", + Description: "Grants permission to retrieve events in a transaction on the blockchain", + Privilege: "ListTransactionEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to discover the input schema for the application", - Privilege: "DiscoverInputSchema", + AccessLevel: "List", + Description: "Grants permission to retrieve a multiple transactions on a blockchain", + Privilege: "ListTransactions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -163367,100 +206728,139 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Managed Blockchain Query", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "mapcredits", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to Kinesis Data Analytics console to display stream results for Kinesis Data Analytics SQL runtime applications", - Privilege: "GetApplicationState", + AccessLevel: "List", + Description: "Grants permission to view the user's associated Migration Acceleration Program agreements", + Privilege: "ListAssociatedPrograms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "agreement*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list applications for the account", - Privilege: "ListApplications", + Description: "Grants permission to view Migration Acceleration Program agreements credits associated with the user's payer account", + Privilege: "ListQuarterCredits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "agreement*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the tags associated with the application", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to view Migration Acceleration Program agreements eligible spend associated with the user's payer account", + Privilege: "ListQuarterSpend", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "agreement*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:mapcredits:::${Agreement}/${AgreementId}", + ConditionKeys: []string{}, + Resource: "agreement", + }, + }, + ServiceName: "AWS Migration Acceleration Program Credits", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "marketplacecommerceanalytics", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to start the application", - Privilege: "StartApplication", + Description: "Request a data set to be published to your Amazon S3 bucket.", + Privilege: "GenerateDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop the application", - Privilege: "StopApplication", + Description: "Request a support data set to be published to your Amazon S3 bucket.", + Privilege: "StartSupportDataExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Marketplace Commerce Analytics Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "mechanicalturk", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the application", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "The AcceptQualificationRequest operation grants a Worker's request for a Qualification", + Privilege: "AcceptQualificationRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "The ApproveAssignment operation approves the results of a completed assignment", + Privilege: "ApproveAssignment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the application", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "The AssociateQualificationWithWorker operation gives a Worker a Qualification", + Privilege: "AssociateQualificationWithWorker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "The CreateAdditionalAssignmentsForHIT operation increases the maximum number of assignments of an existing HIT", + Privilege: "CreateAdditionalAssignmentsForHIT", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -163468,323 +206868,296 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the application", - Privilege: "UpdateApplication", + Description: "The CreateHIT operation creates a new HIT (Human Intelligence Task)", + Privilege: "CreateHIT", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:kinesisanalytics:${Region}:${Account}:application/${ApplicationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "The CreateHITType operation creates a new HIT type", + Privilege: "CreateHITType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "application", - }, - }, - ServiceName: "Amazon Kinesis Analytics", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value assoicated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tag keys in the request", - Type: "ArrayOfString", }, - }, - Prefix: "kinesisanalytics", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add cloudwatch logging option to the application", - Privilege: "AddApplicationCloudWatchLoggingOption", + Description: "The CreateHITWithHITType operation creates a new Human Intelligence Task (HIT) using an existing HITTypeID generated by the CreateHITType operation", + Privilege: "CreateHITWithHITType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add input to the application", - Privilege: "AddApplicationInput", + Description: "The CreateQualificationType operation creates a new Qualification type, which is represented by a QualificationType data structure", + Privilege: "CreateQualificationType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add input processing configuration to the application", - Privilege: "AddApplicationInputProcessingConfiguration", + Description: "The CreateWorkerBlock operation allows you to prevent a Worker from working on your HITs", + Privilege: "CreateWorkerBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add output to the application", - Privilege: "AddApplicationOutput", + Description: "The DeleteHIT operation disposes of a HIT that is no longer needed", + Privilege: "DeleteHIT", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add reference data source to the application", - Privilege: "AddApplicationReferenceDataSource", + Description: "The DeleteQualificationType disposes a Qualification type and disposes any HIT types that are associated with the Qualification type", + Privilege: "DeleteQualificationType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add VPC configuration to the application", - Privilege: "AddApplicationVpcConfiguration", + Description: "The DeleteWorkerBlock operation allows you to reinstate a blocked Worker to work on your HITs", + Privilege: "DeleteWorkerBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", + Description: "The DisassociateQualificationFromWorker revokes a previously granted Qualification from a user", + Privilege: "DisassociateQualificationFromWorker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to create and return a URL that you can use to connect to an application's extension", - Privilege: "CreateApplicationPresignedUrl", + Description: "The GetAccountBalance operation retrieves the amount of money in your Amazon Mechanical Turk account", + Privilege: "GetAccountBalance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot for an application", - Privilege: "CreateApplicationSnapshot", + AccessLevel: "Read", + Description: "The GetAssignment retrieves an assignment with an AssignmentStatus value of Submitted, Approved, or Rejected, using the assignment's ID", + Privilege: "GetAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the application", - Privilege: "DeleteApplication", + AccessLevel: "Read", + Description: "The GetFileUploadURL operation generates and returns a temporary URL", + Privilege: "GetFileUploadURL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified cloudwatch logging option of the application", - Privilege: "DeleteApplicationCloudWatchLoggingOption", + AccessLevel: "Read", + Description: "The GetHIT operation retrieves the details of the specified HIT", + Privilege: "GetHIT", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified input processing configuration of the application", - Privilege: "DeleteApplicationInputProcessingConfiguration", + AccessLevel: "Read", + Description: "The GetQualificationScore operation returns the value of a Worker's Qualification for a given Qualification type", + Privilege: "GetQualificationScore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified output of the application", - Privilege: "DeleteApplicationOutput", + AccessLevel: "Read", + Description: "The GetQualificationType operation retrieves information about a Qualification type using its ID", + Privilege: "GetQualificationType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified reference data source of the application", - Privilege: "DeleteApplicationReferenceDataSource", + AccessLevel: "List", + Description: "The ListAssignmentsForHIT operation retrieves completed assignments for a HIT", + Privilege: "ListAssignmentsForHIT", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a snapshot for an application", - Privilege: "DeleteApplicationSnapshot", + AccessLevel: "List", + Description: "The ListBonusPayments operation retrieves the amounts of bonuses you have paid to Workers for a given HIT or assignment", + Privilege: "ListBonusPayments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified VPC configuration of the application", - Privilege: "DeleteApplicationVpcConfiguration", + AccessLevel: "List", + Description: "The ListHITs operation returns all of a Requester's HITs", + Privilege: "ListHITs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specified application", - Privilege: "DescribeApplication", + AccessLevel: "List", + Description: "The ListHITsForQualificationType operation returns the HITs that use the given QualififcationType for a QualificationRequirement", + Privilege: "ListHITsForQualificationType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an application snapshot", - Privilege: "DescribeApplicationSnapshot", + AccessLevel: "List", + Description: "The ListQualificationRequests operation retrieves requests for Qualifications of a particular Qualification type", + Privilege: "ListQualificationRequests", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the application version of an application", - Privilege: "DescribeApplicationVersion", + AccessLevel: "List", + Description: "The ListQualificationTypes operation searches for Qualification types using the specified search query, and returns a list of Qualification types", + Privilege: "ListQualificationTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to discover the input schema for the application", - Privilege: "DiscoverInputSchema", + AccessLevel: "List", + Description: "The ListReviewPolicyResultsForHIT operation retrieves the computed results and the actions taken in the course of executing your Review Policies during a CreateHIT operation", + Privilege: "ListReviewPolicyResultsForHIT", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the snapshots for an application", - Privilege: "ListApplicationSnapshots", + AccessLevel: "List", + Description: "The ListReviewableHITs operation returns all of a Requester's HITs that have not been approved or rejected", + Privilege: "ListReviewableHITs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list application versions of an application", - Privilege: "ListApplicationVersions", + AccessLevel: "List", + Description: "The ListWorkersBlocks operation retrieves a list of Workers who are blocked from working on your HITs", + Privilege: "ListWorkerBlocks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list applications for the account", - Privilege: "ListApplications", + Description: "The ListWorkersWithQualificationType operation returns all of the Workers with a given Qualification type", + Privilege: "ListWorkersWithQualificationType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -163794,87 +207167,96 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the tags associated with the application", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "The NotifyWorkers operation sends an email to one or more Workers that you specify with the Worker ID", + Privilege: "NotifyWorkers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to perform rollback operation on an application", - Privilege: "RollbackApplication", + Description: "The RejectAssignment operation rejects the results of a completed assignment", + Privilege: "RejectAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the application", - Privilege: "StartApplication", + Description: "The RejectQualificationRequest operation rejects a user's request for a Qualification", + Privilege: "RejectQualificationRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop the application", - Privilege: "StopApplication", + Description: "The SendBonus operation issues a payment of money from your account to a Worker", + Privilege: "SendBonus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the application", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "The SendTestEventNotification operation causes Amazon Mechanical Turk to send a notification message as if a HIT event occurred, according to the provided notification specification", + Privilege: "SendTestEventNotification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "The UpdateExpirationForHIT operation allows you extend the expiration time of a HIT beyond is current expiration or expire a HIT immediately", + Privilege: "UpdateExpirationForHIT", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the application", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "The UpdateHITReviewStatus operation toggles the status of a HIT", + Privilege: "UpdateHITReviewStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "The UpdateHITTypeOfHIT operation allows you to change the HITType properties of a HIT", + Privilege: "UpdateHITTypeOfHIT", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -163882,99 +207264,127 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the application", - Privilege: "UpdateApplication", + Description: "The UpdateNotificationSettings operation creates, updates, disables or re-enables notifications for a HIT type", + Privilege: "UpdateNotificationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the maintenance configuration of an application", - Privilege: "UpdateApplicationMaintenanceConfiguration", + Description: "The UpdateQualificationType operation modifies the attributes of an existing Qualification type, which is represented by a QualificationType data structure", + Privilege: "UpdateQualificationType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, }, - Resources: []ParliamentResource{ + Resources: []ParliamentResource{}, + ServiceName: "Amazon Mechanical Turk", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "mediaconnect", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:kinesisanalytics:${Region}:${Account}:application/${ApplicationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to add outputs to an existing bridge", + Privilege: "AddBridgeOutputs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Bridge*", + }, }, - Resource: "application", }, - }, - ServiceName: "Amazon Kinesis Analytics V2", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters requests based on the allowed set of values for each of the tags", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to add sources to an existing bridge", + Privilege: "AddBridgeSources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Bridge*", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag-value assoicated with the stream", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to add media streams to any flow", + Privilege: "AddFlowMediaStreams", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters requests based on the presence of mandatory tag keys in the request", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to add outputs to any flow", + Privilege: "AddFlowOutputs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - Prefix: "kinesisvideo", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to connect as a master to the signaling channel specified by the endpoint", - Privilege: "ConnectAsMaster", + Description: "Grants permission to add sources to any flow", + Privilege: "AddFlowSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to connect as a viewer to the signaling channel specified by the endpoint", - Privilege: "ConnectAsViewer", + Description: "Grants permission to add VPC interfaces to any flow", + Privilege: "AddFlowVpcInterfaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a signaling channel", - Privilege: "CreateSignalingChannel", + Description: "Grants permission to create bridges", + Privilege: "CreateBridge", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Bridge*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create flows", + Privilege: "CreateFlow", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -163982,292 +207392,332 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Kinesis video stream", - Privilege: "CreateStream", + Description: "Grants permission to create gateways", + Privilege: "CreateGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "Gateway*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete bridges", + Privilege: "DeleteBridge", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Bridge*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the edge configuration of your Kinesis Video Stream", - Privilege: "DeleteEdgeConfiguration", + Description: "Grants permission to delete flows", + Privilege: "DeleteFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing signaling channel", - Privilege: "DeleteSignalingChannel", + Description: "Grants permission to delete gateways", + Privilege: "DeleteGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing Kinesis video stream", - Privilege: "DeleteStream", + Description: "Grants permission to deregister gateway instance", + Privilege: "DeregisterGatewayInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "GatewayInstance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the edge configuration of your Kinesis Video Stream", - Privilege: "DescribeEdgeConfiguration", + Description: "Grants permission to display the details of a bridge", + Privilege: "DescribeBridge", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "Bridge*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the image generation configuration of your Kinesis video stream", - Privilege: "DescribeImageGenerationConfiguration", + Description: "Grants permission to display the details of a flow including the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements", + Privilege: "DescribeFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the resource mapped to the Kinesis video stream", - Privilege: "DescribeMappedResourceConfiguration", + AccessLevel: "Read", + Description: "Grants permission to view information about the flow's source transport stream and programs", + Privilege: "DescribeFlowSourceMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the media storage configuration of a signaling channel", - Privilege: "DescribeMediaStorageConfiguration", + Description: "Grants permission to view flow's source thumbnail", + Privilege: "DescribeFlowSourceThumbnail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the notification configuration of your Kinesis video stream", - Privilege: "DescribeNotificationConfiguration", + Description: "Grants permission to display the details of a gateway including the gateway ARN, name, and CIDR blocks, as well as details about the networks", + Privilege: "DescribeGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "Gateway*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the specified signaling channel", - Privilege: "DescribeSignalingChannel", + AccessLevel: "Read", + Description: "Grants permission to display the details of a gateway instance", + Privilege: "DescribeGatewayInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "GatewayInstance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the specified Kinesis video stream", - Privilege: "DescribeStream", + AccessLevel: "Read", + Description: "Grants permission to display the details of an offering", + Privilege: "DescribeOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to display the details of a reservation", + Privilege: "DescribeReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to discover gateway poll endpoint", + Privilege: "DiscoverGatewayPollEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to grant entitlements on any flow", + Privilege: "GrantFlowEntitlements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a media clip from a video stream", - Privilege: "GetClip", + AccessLevel: "List", + Description: "Grants permission to display a list of bridges that are associated with this account and an optionally specified Arn", + Privilege: "ListBridges", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "Bridge*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to create a URL for MPEG-DASH video streaming", - Privilege: "GetDASHStreamingSessionURL", + AccessLevel: "List", + Description: "Grants permission to display a list of all entitlements that have been granted to the account", + Privilege: "ListEntitlements", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an endpoint for a specified stream for either reading or writing media data to Kinesis Video Streams", - Privilege: "GetDataEndpoint", + AccessLevel: "List", + Description: "Grants permission to display a list of flows that are associated with this account", + Privilege: "ListFlows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to create a URL for HLS video streaming", - Privilege: "GetHLSStreamingSessionURL", + AccessLevel: "List", + Description: "Grants permission to display a list of instances that are associated with this gateway", + Privilege: "ListGatewayInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "GatewayInstance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the ICE server configuration", - Privilege: "GetIceServerConfig", + AccessLevel: "List", + Description: "Grants permission to display a list of gateways that are associated with this account", + Privilege: "ListGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get generated images from your Kinesis video stream", - Privilege: "GetImages", + AccessLevel: "List", + Description: "Grants permission to display a list of all offerings that are available to the account in the current AWS Region", + Privilege: "ListOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return media content of a Kinesis video stream", - Privilege: "GetMedia", + AccessLevel: "List", + Description: "Grants permission to display a list of all reservations that have been purchased by the account in the current AWS Region", + Privilege: "ListReservations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read and return media data only from persisted storage", - Privilege: "GetMediaForFragmentList", + Description: "Grants permission to display a list of all tags associated with a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get endpoints for a specified combination of protocol and role for a signaling channel", - Privilege: "GetSignalingChannelEndpoint", + AccessLevel: "Write", + Description: "Grants permission to poll gateway", + Privilege: "PollGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to join a storage session for a channel", - Privilege: "JoinStorageSession", + Description: "Grants permission to purchase an offering", + Privilege: "PurchaseOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list an edge agent configurations", - Privilege: "ListEdgeAgentConfigurations", + AccessLevel: "Write", + Description: "Grants permission to remove an output of an existing bridge", + Privilege: "RemoveBridgeOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Bridge*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the fragments from archival storage based on the pagination token or selector type with range specified", - Privilege: "ListFragments", + AccessLevel: "Write", + Description: "Grants permission to remove a source of an existing bridge", + Privilege: "RemoveBridgeSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "Bridge*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list your signaling channels", - Privilege: "ListSignalingChannels", + AccessLevel: "Write", + Description: "Grants permission to remove media streams from any flow", + Privilege: "RemoveFlowMediaStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -164277,9 +207727,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list your Kinesis video streams", - Privilege: "ListStreams", + AccessLevel: "Write", + Description: "Grants permission to remove outputs from any flow", + Privilege: "RemoveFlowOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -164289,502 +207739,347 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the tags associated with your resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to remove sources from any flow", + Privilege: "RemoveFlowSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove VPC interfaces from any flow", + Privilege: "RemoveFlowVpcInterface", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the tags associated with Kinesis video stream", - Privilege: "ListTagsForStream", + AccessLevel: "Write", + Description: "Grants permission to revoke entitlements on any flow", + Privilege: "RevokeFlowEntitlement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send media data to a Kinesis video stream", - Privilege: "PutMedia", + Description: "Grants permission to start flows", + Privilege: "StartFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send the Alexa SDP offer to the master", - Privilege: "SendAlexaOfferToMaster", + Description: "Grants permission to stop flows", + Privilege: "StopFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start edge configuration update of your Kinesis Video Stream", - Privilege: "StartEdgeConfigurationUpdate", + Description: "Grants permission to submit gateway state change", + Privilege: "SubmitGatewayStateChange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to attach set of tags to your resource", + Description: "Grants permission to associate tags with resources", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to attach set of tags to your Kinesis video streams", - Privilege: "TagStream", + Description: "Grants permission to remove tags from resources", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from your resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update bridges", + Privilege: "UpdateBridge", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "Bridge*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an output of an existing bridge", + Privilege: "UpdateBridgeOutput", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Bridge*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from your Kinesis video streams", - Privilege: "UntagStream", + AccessLevel: "Write", + Description: "Grants permission to update a source of an existing bridge", + Privilege: "UpdateBridgeSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "Bridge*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the state of an existing bridge", + Privilege: "UpdateBridgeState", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Bridge*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the data retention period of your Kinesis video stream", - Privilege: "UpdateDataRetention", + Description: "Grants permission to update flows", + Privilege: "UpdateFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the image generation configuration of your Kinesis video stream", - Privilege: "UpdateImageGenerationConfiguration", + Description: "Grants permission to update entitlements on any flow", + Privilege: "UpdateFlowEntitlement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update an mapping between a signaling channel and stream", - Privilege: "UpdateMediaStorageConfiguration", + Description: "Grants permission to update media streams on any flow", + Privilege: "UpdateFlowMediaStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the notification configuration of your Kinesis video stream", - Privilege: "UpdateNotificationConfiguration", + Description: "Grants permission to update outputs on any flow", + Privilege: "UpdateFlowOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing signaling channel", - Privilege: "UpdateSignalingChannel", + Description: "Grants permission to update the source of any flow", + Privilege: "UpdateFlowSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing Kinesis video stream", - Privilege: "UpdateStream", + Description: "Grants permission to update the configuration of an existing Gateway Instance", + Privilege: "UpdateGatewayInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "GatewayInstance*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:kinesisvideo:${Region}:${Account}:stream/${StreamName}/${CreationTime}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "stream", - }, - { - Arn: "arn:${Partition}:kinesisvideo:${Region}:${Account}:channel/${ChannelName}/${CreationTime}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "channel", - }, - }, - ServiceName: "Amazon Kinesis Video Streams", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access to the specified AWS KMS operations based on both the key and value of the tag in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access to the specified AWS KMS operations based on tags assigned to the AWS KMS key", - Type: "String", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:entitlement:${FlowId}:${EntitlementName}", + ConditionKeys: []string{}, + Resource: "Entitlement", }, { - Condition: "aws:TagKeys", - Description: "Filters access to the specified AWS KMS operations based on tag keys in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:flow:${FlowId}:${FlowName}", + ConditionKeys: []string{}, + Resource: "Flow", }, { - Condition: "kms:BypassPolicyLockoutSafetyCheck", - Description: "Filters access to the CreateKey and PutKeyPolicy operations based on the value of the BypassPolicyLockoutSafetyCheck parameter in the request", - Type: "Bool", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:output:${OutputId}:${OutputName}", + ConditionKeys: []string{}, + Resource: "Output", }, { - Condition: "kms:CallerAccount", - Description: "Filters access to specified AWS KMS operations based on the AWS account ID of the caller. You can use this condition key to allow or deny access to all IAM users and roles in an AWS account in a single policy statement", - Type: "String", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:source:${SourceId}:${SourceName}", + ConditionKeys: []string{}, + Resource: "Source", }, { - Condition: "kms:CustomerMasterKeySpec", - Description: "The kms:CustomerMasterKeySpec condition key is deprecated. Instead, use the kms:KeySpec condition key", - Type: "String", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:gateway:${GatewayId}:${GatewayName}", + ConditionKeys: []string{}, + Resource: "Gateway", }, { - Condition: "kms:CustomerMasterKeyUsage", - Description: "The kms:CustomerMasterKeyUsage condition key is deprecated. Instead, use the kms:KeyUsage condition key", - Type: "String", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:bridge:${FlowId}:${FlowName}", + ConditionKeys: []string{}, + Resource: "Bridge", }, { - Condition: "kms:DataKeyPairSpec", - Description: "Filters access to GenerateDataKeyPair and GenerateDataKeyPairWithoutPlaintext operations based on the value of the KeyPairSpec parameter in the request", - Type: "String", + Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:gateway:${GatewayId}:${GatewayName}:instance:${InstanceId}", + ConditionKeys: []string{}, + Resource: "GatewayInstance", }, + }, + ServiceName: "AWS Elemental MediaConnect", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Condition: "kms:EncryptionAlgorithm", - Description: "Filters access to encryption operations based on the value of the encryption algorithm in the request", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tag key-value pairs in the request", Type: "String", }, { - Condition: "kms:EncryptionContext:${EncryptionContextKey}", - Description: "Filters access to a symmetric AWS KMS key based on the encryption context in a cryptographic operation. This condition evaluates the key and value in each key-value encryption context pair", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, { - Condition: "kms:EncryptionContextKeys", - Description: "Filters access to a symmetric AWS KMS key based on the encryption context in a cryptographic operation. This condition key evaluates only the key in each key-value encryption context pair", + Condition: "aws:TagKeys", + Description: "Filters access by tag keys in the request", Type: "ArrayOfString", }, { - Condition: "kms:ExpirationModel", - Description: "Filters access to the ImportKeyMaterial operation based on the value of the ExpirationModel parameter in the request", - Type: "String", - }, - { - Condition: "kms:GrantConstraintType", - Description: "Filters access to the CreateGrant operation based on the grant constraint in the request", - Type: "String", - }, - { - Condition: "kms:GrantIsForAWSResource", - Description: "Filters access to the CreateGrant operation when the request comes from a specified AWS service", + Condition: "mediaconvert:HttpInputsAllowed", + Description: "Filters access by an HTTP input policy present in the account", Type: "Bool", }, { - Condition: "kms:GrantOperations", - Description: "Filters access to the CreateGrant operation based on the operations in the grant", - Type: "ArrayOfString", - }, - { - Condition: "kms:GranteePrincipal", - Description: "Filters access to the CreateGrant operation based on the grantee principal in the grant", - Type: "String", - }, - { - Condition: "kms:KeyAgreementAlgorithm", - Description: "Filters access to the DeriveSharedSecret operation based on the value of the KeyAgreementAlgorithm parameter in the request", - Type: "String", - }, - { - Condition: "kms:KeyOrigin", - Description: "Filters access to an API operation based on the Origin property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key", - Type: "String", - }, - { - Condition: "kms:KeySpec", - Description: "Filters access to an API operation based on the KeySpec property of the AWS KMS key that is created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", - Type: "String", - }, - { - Condition: "kms:KeyUsage", - Description: "Filters access to an API operation based on the KeyUsage property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", - Type: "String", - }, - { - Condition: "kms:MacAlgorithm", - Description: "Filters access to the GenerateMac and VerifyMac operations based on the MacAlgorithm parameter in the request", - Type: "String", - }, - { - Condition: "kms:MessageType", - Description: "Filters access to the Sign and Verify operations based on the value of the MessageType parameter in the request", - Type: "String", - }, - { - Condition: "kms:MultiRegion", - Description: "Filters access to an API operation based on the MultiRegion property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", + Condition: "mediaconvert:HttpsInputsAllowed", + Description: "Filters access by an HTTPS input policy present in the account", Type: "Bool", }, { - Condition: "kms:MultiRegionKeyType", - Description: "Filters access to an API operation based on the MultiRegionKeyType property of the AWS KMS key created by or used in the operation. Use it to qualify authorization of the CreateKey operation or any operation that is authorized for a KMS key resource", - Type: "String", - }, - { - Condition: "kms:PrimaryRegion", - Description: "Filters access to the UpdatePrimaryRegion operation based on the value of the PrimaryRegion parameter in the request", - Type: "String", - }, - { - Condition: "kms:ReEncryptOnSameKey", - Description: "Filters access to the ReEncrypt operation when it uses the same AWS KMS key that was used for the Encrypt operation", + Condition: "mediaconvert:S3InputsAllowed", + Description: "Filters access by an S3 input policy present in the account", Type: "Bool", }, - { - Condition: "kms:RecipientAttestation:ImageSha384", - Description: "Filters access to the Decrypt, DeriveSharedSecret, GenerateDataKey, GenerateDataKeyPair, and GenerateRandom operations based on the image hash in the attestation document in the request", - Type: "String", - }, - { - Condition: "kms:RecipientAttestation:PCR", - Description: "Filters access to the Decrypt, GenerateDataKey, and GenerateRandom operations based on the platform configuration registers (PCRs) in the attestation document in the request", - Type: "String", - }, - { - Condition: "kms:ReplicaRegion", - Description: "Filters access to the ReplicateKey operation based on the value of the ReplicaRegion parameter in the request", - Type: "String", - }, - { - Condition: "kms:RequestAlias", - Description: "Filters access to cryptographic operations, DescribeKey, and GetPublicKey based on the alias in the request", - Type: "String", - }, - { - Condition: "kms:ResourceAliases", - Description: "Filters access to specified AWS KMS operations based on aliases associated with the AWS KMS key", - Type: "ArrayOfString", - }, - { - Condition: "kms:RetiringPrincipal", - Description: "Filters access to the CreateGrant operation based on the retiring principal in the grant", - Type: "String", - }, - { - Condition: "kms:RotationPeriodInDays", - Description: "Filters access to the EnableKeyRotation operation based on the value of the RotationPeriodInDays parameter in the request", - Type: "Numeric", - }, - { - Condition: "kms:ScheduleKeyDeletionPendingWindowInDays", - Description: "Filters access to the ScheduleKeyDeletion operation based on the value of the PendingWindowInDays parameter in the request", - Type: "Numeric", - }, - { - Condition: "kms:SigningAlgorithm", - Description: "Filters access to the Sign and Verify operations based on the signing algorithm in the request", - Type: "String", - }, - { - Condition: "kms:ValidTo", - Description: "Filters access to the ImportKeyMaterial operation based on the value of the ValidTo parameter in the request. You can use this condition key to allow users to import key material only when it expires by the specified date", - Type: "Date", - }, - { - Condition: "kms:ViaService", - Description: "Filters access when a request made on the principal's behalf comes from a specified AWS service", - Type: "String", - }, - { - Condition: "kms:WrappingAlgorithm", - Description: "Filters access to the GetParametersForImport operation based on the value of the WrappingAlgorithm parameter in the request", - Type: "String", - }, - { - Condition: "kms:WrappingKeySpec", - Description: "Filters access to the GetParametersForImport operation based on the value of the WrappingKeySpec parameter in the request", - Type: "String", - }, }, - Prefix: "kms", + Prefix: "mediaconvert", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Controls permission to cancel the scheduled deletion of an AWS KMS key", - Privilege: "CancelKeyDeletion", + Description: "Grants permission to associate an AWS Certificate Manager (ACM) Amazon Resource Name (ARN) with AWS Elemental MediaConvert", + Privilege: "AssociateCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to connect or reconnect a custom key store to its associated AWS CloudHSM cluster or external key manager outside of AWS", - Privilege: "ConnectCustomKeyStore", + Description: "Grants permission to cancel an AWS Elemental MediaConvert job that is waiting in queue", + Privilege: "CancelJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Job*", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to create an alias for an AWS KMS key. Aliases are optional friendly names that you can associate with KMS keys", - Privilege: "CreateAlias", + Description: "Grants permission to create and submit an AWS Elemental MediaConvert job", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "JobTemplate", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Preset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Queue", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "mediaconvert:HttpInputsAllowed", + "mediaconvert:HttpsInputsAllowed", + "mediaconvert:S3InputsAllowed", }, DependentActions: []string{}, ResourceType: "", @@ -164793,42 +208088,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to create a custom key store that is backed by an AWS CloudHSM cluster or an external key manager outside of AWS", - Privilege: "CreateCustomKeyStore", + Description: "Grants permission to create an AWS Elemental MediaConvert custom job template", + Privilege: "CreateJobTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - }, - DependentActions: []string{ - "cloudhsm:DescribeClusters", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Preset", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Controls permission to add a grant to an AWS KMS key. You can use grants to add permissions without changing the key policy or IAM policy", - Privilege: "CreateGrant", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Queue", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:GrantConstraintType", - "kms:GranteePrincipal", - "kms:GrantIsForAWSResource", - "kms:GrantOperations", - "kms:RetiringPrincipal", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -164837,51 +208113,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to create an AWS KMS key that can be used to protect data keys and other sensitive information", - Privilege: "CreateKey", + Description: "Grants permission to create an AWS Elemental MediaConvert custom output preset", + Privilege: "CreatePreset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "kms:BypassPolicyLockoutSafetyCheck", - "kms:CallerAccount", - "kms:KeySpec", - "kms:KeyUsage", - "kms:KeyOrigin", - "kms:MultiRegion", - "kms:MultiRegionKeyType", - "kms:ViaService", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "kms:PutKeyPolicy", - "kms:TagResource", + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to decrypt ciphertext that was encrypted under an AWS KMS key", - Privilege: "Decrypt", + Description: "Grants permission to create an AWS Elemental MediaConvert job queue", + Privilege: "CreateQueue", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key*", - }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:RecipientAttestation:ImageSha384", - "kms:RequestAlias", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -164890,58 +208145,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to delete an alias. Aliases are optional friendly names that you can associate with AWS KMS keys", - Privilege: "DeleteAlias", + Description: "Grants permission to delete an AWS Elemental MediaConvert custom job template", + Privilege: "DeleteJobTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "JobTemplate*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Elemental MediaConvert policy", + Privilege: "DeletePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to delete a custom key store", - Privilege: "DeleteCustomKeyStore", + Description: "Grants permission to delete an AWS Elemental MediaConvert custom output preset", + Privilege: "DeletePreset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Preset*", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to delete cryptographic material that you imported into an AWS KMS key. This action makes the key unusable", - Privilege: "DeleteImportedKeyMaterial", + Description: "Grants permission to delete an AWS Elemental MediaConvert job queue", + Privilege: "DeleteQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Queue*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to subscribe to the AWS Elemental MediaConvert service, by sending a request for an account-specific endpoint. All transcoding requests must be sent to the endpoint that the service returns", + Privilege: "DescribeEndpoints", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -164949,176 +208205,170 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to use the specified AWS KMS key to derive shared secrets", - Privilege: "DeriveSharedSecret", + Description: "Grants permission to remove an association between the Amazon Resource Name (ARN) of an AWS Certificate Manager (ACM) certificate and an AWS Elemental MediaConvert resource", + Privilege: "DisassociateCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an AWS Elemental MediaConvert job", + Privilege: "GetJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:KeyAgreementAlgorithm", - "kms:RecipientAttestation:ImageSha384", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Job*", }, }, }, { AccessLevel: "Read", - Description: "Controls permission to view detailed information about custom key stores in the account and region", - Privilege: "DescribeCustomKeyStores", + Description: "Grants permission to get an AWS Elemental MediaConvert job template", + Privilege: "GetJobTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "JobTemplate*", }, }, }, { AccessLevel: "Read", - Description: "Controls permission to view detailed information about an AWS KMS key", - Privilege: "DescribeKey", + Description: "Grants permission to get an AWS Elemental MediaConvert policy", + Privilege: "GetPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an AWS Elemental MediaConvert output preset", + Privilege: "GetPreset", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Preset*", }, }, }, { - AccessLevel: "Write", - Description: "Controls permission to disable an AWS KMS key, which prevents it from being used in cryptographic operations", - Privilege: "DisableKey", + AccessLevel: "Read", + Description: "Grants permission to get an AWS Elemental MediaConvert job queue", + Privilege: "GetQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Queue*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list AWS Elemental MediaConvert job templates", + Privilege: "ListJobTemplates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Controls permission to disable automatic rotation of a customer managed AWS KMS key", - Privilege: "DisableKeyRotation", + AccessLevel: "List", + Description: "Grants permission to list AWS Elemental MediaConvert jobs", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Queue", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list AWS Elemental MediaConvert output presets", + Privilege: "ListPresets", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Controls permission to disconnect the custom key store from its associated AWS CloudHSM cluster or external key manager outside of AWS", - Privilege: "DisconnectCustomKeyStore", + AccessLevel: "List", + Description: "Grants permission to list AWS Elemental MediaConvert job queues", + Privilege: "ListQueues", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Controls permission to change the state of an AWS KMS key to enabled. This allows the KMS key to be used in cryptographic operations", - Privilege: "EnableKey", + AccessLevel: "Read", + Description: "Grants permission to retrieve the tags for a MediaConvert queue, preset, or job template", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Job", }, { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "JobTemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Controls permission to enable automatic rotation of the cryptographic material in an AWS KMS key", - Privilege: "EnableKeyRotation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Preset", }, { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:RotationPeriodInDays", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Queue", }, }, }, { - AccessLevel: "Write", - Description: "Controls permission to use the specified AWS KMS key to encrypt data and data keys", - Privilege: "Encrypt", + AccessLevel: "List", + Description: "Grants permission to list AWS Elemental MediaConvert job engine versions", + Privilege: "ListVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to probe a file", + Privilege: "Probe", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -165126,73 +208376,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to use the AWS KMS key to generate data keys. You can use the data keys to encrypt data outside of AWS KMS", - Privilege: "GenerateDataKey", + Description: "Grants permission to put an AWS Elemental MediaConvert policy", + Privilege: "PutPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to search AWS Elemental MediaConvert jobs", + Privilege: "SearchJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:RecipientAttestation:ImageSha384", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Queue", }, }, }, { - AccessLevel: "Write", - Description: "Controls permission to use the AWS KMS key to generate data key pairs", - Privilege: "GenerateDataKeyPair", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a MediaConvert queue, preset, or job template", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Job", }, { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:DataKeyPairSpec", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "JobTemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Controls permission to use the AWS KMS key to generate data key pairs. Unlike the GenerateDataKeyPair operation, this operation returns an encrypted private key without a plaintext copy", - Privilege: "GenerateDataKeyPairWithoutPlaintext", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Preset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Queue", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:DataKeyPairSpec", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:RequestAlias", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165200,23 +208434,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Controls permission to use the AWS KMS key to generate a data key. Unlike the GenerateDataKey operation, this operation returns an encrypted data key without a plaintext version of the data key", - Privilege: "GenerateDataKeyWithoutPlaintext", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a MediaConvert queue, preset, or job template", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "Job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "JobTemplate", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Preset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Queue", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:RequestAlias", - "kms:ViaService", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165225,149 +208469,168 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to use the AWS KMS key to generate message authentication codes", - Privilege: "GenerateMac", + Description: "Grants permission to update an AWS Elemental MediaConvert custom job template", + Privilege: "UpdateJobTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "JobTemplate*", }, { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:MacAlgorithm", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Preset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Queue", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to get a cryptographically secure random byte string from AWS KMS", - Privilege: "GenerateRandom", + Description: "Grants permission to update an AWS Elemental MediaConvert custom output preset", + Privilege: "UpdatePreset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:RecipientAttestation:ImageSha384", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Preset*", }, }, }, { - AccessLevel: "Read", - Description: "Controls permission to view the key policy for the specified AWS KMS key", - Privilege: "GetKeyPolicy", + AccessLevel: "Write", + Description: "Grants permission to update an AWS Elemental MediaConvert job queue", + Privilege: "UpdateQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Queue*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:jobs/${JobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Job", + }, { - AccessLevel: "Read", - Description: "Controls permission to view the key rotation status for an AWS KMS key", - Privilege: "GetKeyRotationStatus", + Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:queues/${QueueName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Queue", + }, + { + Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:presets/${PresetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Preset", + }, + { + Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:jobTemplates/${JobTemplateName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "JobTemplate", + }, + { + Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:certificates/${CertificateArn}", + ConditionKeys: []string{}, + Resource: "CertificateAssociation", + }, + }, + ServiceName: "AWS Elemental MediaConvert", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "mediaimport", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a database binary snapshot on the customer's aws account", + Privilege: "CreateDatabaseBinarySnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AmazonMediaImport", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Controls permission to get data that is required to import cryptographic material into a customer managed key, including a public key and import token", - Privilege: "GetParametersForImport", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "medialive", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept an input device transfer", + Privilege: "AcceptInputDeviceTransfer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - "kms:WrappingAlgorithm", - "kms:WrappingKeySpec", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "Read", - Description: "Controls permission to download the public key of an asymmetric AWS KMS key", - Privilege: "GetPublicKey", + AccessLevel: "Write", + Description: "Grants permission to delete channels, inputs, input security groups, and multiplexes", + Privilege: "BatchDelete", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:RequestAlias", - "kms:ViaService", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to import cryptographic material into an AWS KMS key", - Privilege: "ImportKeyMaterial", + Description: "Grants permission to start channels and multiplexes", + Privilege: "BatchStart", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ExpirationModel", - "kms:ValidTo", - "kms:ViaService", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Controls permission to view the aliases that are defined in the account. Aliases are optional friendly names that you can associate with AWS KMS keys", - Privilege: "ListAliases", + AccessLevel: "Write", + Description: "Grants permission to stop channels and multiplexes", + Privilege: "BatchStop", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -165377,92 +208640,60 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Controls permission to view all grants for an AWS KMS key", - Privilege: "ListGrants", + AccessLevel: "Write", + Description: "Grants permission to add and remove actions from a channel's schedule", + Privilege: "BatchUpdateSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:GrantIsForAWSResource", - "kms:ViaService", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Controls permission to view the names of key policies for an AWS KMS key", - Privilege: "ListKeyPolicies", + AccessLevel: "Write", + Description: "Grants permission to cancel an input device transfer", + Privilege: "CancelInputDeviceTransfer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "List", - Description: "Controls permission to view the list of completed key rotations for an AWS KMS key", - Privilege: "ListKeyRotations", + AccessLevel: "Write", + Description: "Grants permission to claim an input device", + Privilege: "ClaimDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "List", - Description: "Controls permission to view the key ID and Amazon Resource Name (ARN) of all AWS KMS keys in the account", - Privilege: "ListKeys", + AccessLevel: "Write", + Description: "Grants permission to create a channel", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Controls permission to view all tags that are attached to an AWS KMS key", - Privilege: "ListResourceTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "input*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165470,32 +208701,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Controls permission to view grants in which the specified principal is the retiring principal. Other principals might be able to retire the grant and this principal might be able to retire other grants", - Privilege: "ListRetirableGrants", + AccessLevel: "Write", + Description: "Grants permission to create a cluster", + Privilege: "CreateChannelPlacementGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-placement-group*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Controls permission to replace the key policy for the specified AWS KMS key", - Privilege: "PutKeyPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "kms:BypassPolicyLockoutSafetyCheck", - "kms:CallerAccount", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165504,23 +208727,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to decrypt data as part of the process that decrypts and reencrypts the data within AWS KMS", - Privilege: "ReEncryptFrom", + Description: "Grants permission to create a cloudwatch alarm template", + Privilege: "CreateCloudWatchAlarmTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "cloudwatch-alarm-template*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cloudwatch-alarm-template-group*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:ReEncryptOnSameKey", - "kms:RequestAlias", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165529,23 +208752,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to encrypt data as part of the process that decrypts and reencrypts the data within AWS KMS", - Privilege: "ReEncryptTo", + Description: "Grants permission to create a cloudwatch alarm template group", + Privilege: "CreateCloudWatchAlarmTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "cloudwatch-alarm-template-group*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:EncryptionAlgorithm", - "kms:EncryptionContext:${EncryptionContextKey}", - "kms:EncryptionContextKeys", - "kms:ReEncryptOnSameKey", - "kms:RequestAlias", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165554,24 +208772,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to replicate a multi-Region primary key", - Privilege: "ReplicateKey", + Description: "Grants permission to create a cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "kms:CreateKey", - "kms:PutKeyPolicy", - "kms:TagResource", - }, - ResourceType: "key*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ReplicaRegion", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165579,32 +208791,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Controls permission to retire a grant. The RetireGrant operation is typically called by the grant user after they complete the tasks that the grant allowed them to perform", - Privilege: "RetireGrant", + AccessLevel: "Write", + Description: "Grants permission to create a eventbridge rule template", + Privilege: "CreateEventBridgeRuleTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "eventbridge-rule-template*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Controls permission to revoke a grant, which denies permission for all operations that depend on the grant", - Privilege: "RevokeGrant", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "eventbridge-rule-template-group*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:GrantIsForAWSResource", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165613,18 +208817,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to invoke on-demand rotation of the cryptographic material in an AWS KMS key", - Privilege: "RotateKeyOnDemand", + Description: "Grants permission to create a eventbridge rule template group", + Privilege: "CreateEventBridgeRuleTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "eventbridge-rule-template-group*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165633,19 +208837,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to schedule deletion of an AWS KMS key", - Privilege: "ScheduleKeyDeletion", + Description: "Grants permission to create an input", + Privilege: "CreateInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "input*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "input-security-group*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ScheduleKeyDeletionPendingWindowInDays", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165654,21 +208862,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to produce a digital signature for a message", - Privilege: "Sign", + Description: "Grants permission to create an input security group", + Privilege: "CreateInputSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "input-security-group*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:MessageType", - "kms:RequestAlias", - "kms:SigningAlgorithm", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165677,32 +208882,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls access to internal APIs that synchronize multi-Region keys", - Privilege: "SynchronizeMultiRegionKey", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key*", - }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Controls permission to create or update tags that are attached to an AWS KMS key", - Privilege: "TagResource", + Description: "Grants permission to create a multiplex", + Privilege: "CreateMultiplex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "multiplex*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "kms:CallerAccount", - "kms:ViaService", }, DependentActions: []string{}, ResourceType: "", @@ -165710,20 +208901,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Controls permission to delete tags that are attached to an AWS KMS key", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a multiplex program", + Privilege: "CreateMultiplexProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "multiplex*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a network", + Privilege: "CreateNetwork", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", - "kms:CallerAccount", - "kms:ViaService", }, DependentActions: []string{}, ResourceType: "", @@ -165732,23 +208934,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to associate an alias with a different AWS KMS key. An alias is an optional friendly name that you can associate with a KMS key", - Privilege: "UpdateAlias", + Description: "Grants permission to create a node", + Privilege: "CreateNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "node*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165757,32 +208959,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to change the properties of a custom key store", - Privilege: "UpdateCustomKeyStore", + Description: "Grants permission to create a node registration script", + Privilege: "CreateNodeRegistrationScript", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "kms:CallerAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Controls permission to delete or change the description of an AWS KMS key", - Privilege: "UpdateKeyDescription", + Description: "Grants permission to create a partner input", + Privilege: "CreatePartnerInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "input*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165791,19 +208991,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to update the primary Region of a multi-Region primary key", - Privilege: "UpdatePrimaryRegion", + Description: "Grants permission to create a SDI source", + Privilege: "CreateSdiSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "sdi-source*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:PrimaryRegion", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165812,21 +209011,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Controls permission to use the specified AWS KMS key to verify digital signatures", - Privilege: "Verify", + Description: "Grants permission to create a signal map", + Privilege: "CreateSignalMap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "signal-map*", }, { ConditionKeys: []string{ - "kms:CallerAccount", - "kms:MessageType", - "kms:RequestAlias", - "kms:SigningAlgorithm", - "kms:ViaService", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -165834,607 +209030,392 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Controls permission to use the AWS KMS key to verify message authentication codes", - Privilege: "VerifyMac", + AccessLevel: "Tagging", + Description: "Grants permission to create tags for channels, inputs, input security groups, multiplexes, reservations, nodes, networks, clusters, channel placement groups, signal maps, SDI sources, template groups, and templates", + Privilege: "CreateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "channel", }, { - ConditionKeys: []string{ - "kms:CallerAccount", - "kms:MacAlgorithm", - "kms:RequestAlias", - "kms:ViaService", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-placement-group", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:kms:${Region}:${Account}:alias/${Alias}", - ConditionKeys: []string{}, - Resource: "alias", - }, - { - Arn: "arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "kms:KeyOrigin", - "kms:KeySpec", - "kms:KeyUsage", - "kms:MultiRegion", - "kms:MultiRegionKeyType", - "kms:ResourceAliases", - }, - Resource: "key", - }, - }, - ServiceName: "AWS Key Management Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "lakeformation", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Tagging", - Description: "Grants permission to attach Lake Formation tags to catalog resources", - Privilege: "AddLFTagsToResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to data lake permissions to one or more principals in a batch", - Privilege: "BatchGrantPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template-group", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to revoke data lake permissions from one or more principals in a batch", - Privilege: "BatchRevokePermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel the given transaction", - Privilege: "CancelTransaction", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventbridge-rule-template", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to commit the given transaction", - Privilege: "CommitTransaction", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventbridge-rule-template-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Lake Formation data cell filter", - Privilege: "CreateDataCellsFilter", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Lake Formation tag", - Privilege: "CreateLFTag", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-security-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an IAM Identity Center connection with Lake Formation to allow IAM Identity Center users and groups to access Data Catalog resources", - Privilege: "CreateLakeFormationIdentityCenterConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiplex", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enforce Lake Formation permissions for the given databases, tables, and principals", - Privilege: "CreateLakeFormationOptIn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a Lake Formation data cell filter", - Privilege: "DeleteDataCellsFilter", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "node", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a Lake Formation tag", - Privilege: "DeleteLFTag", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reservation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an IAM Identity Center connection with Lake Formation", - Privilege: "DeleteLakeFormationIdentityCenterConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sdi-source", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove the Lake Formation permissions enforcement of the given databases, tables, and principals", - Privilege: "DeleteLakeFormationOptIn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "signal-map", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified objects if the transaction is canceled", - Privilege: "DeleteObjectsOnCancel", + Description: "Grants permission to delete a channel", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a registered location", - Privilege: "DeregisterResource", + Description: "Grants permission to delete a cluster", + Privilege: "DeleteChannelPlacementGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-placement-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the IAM Identity Center connection with Lake Formation", - Privilege: "DescribeLakeFormationIdentityCenterConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete a cloudwatch alarm template", + Privilege: "DeleteCloudWatchAlarmTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a registered location", - Privilege: "DescribeResource", + AccessLevel: "Write", + Description: "Grants permission to delete a cloudwatch alarm template group", + Privilege: "DeleteCloudWatchAlarmTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get status of the given transaction", - Privilege: "DescribeTransaction", + AccessLevel: "Write", + Description: "Grants permission to delete a cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to extend the timeout of the given transaction", - Privilege: "ExtendTransaction", + Description: "Grants permission to delete a eventbridge rule template", + Privilege: "DeleteEventBridgeRuleTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventbridge-rule-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to virtual data lake access", - Privilege: "GetDataAccess", + Description: "Grants permission to delete a eventbridge rule template group", + Privilege: "DeleteEventBridgeRuleTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventbridge-rule-template-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a Lake Formation data cell filter", - Privilege: "GetDataCellsFilter", + AccessLevel: "Write", + Description: "Grants permission to delete an input", + Privilege: "DeleteInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the identity of the invoking principal", - Privilege: "GetDataLakePrincipal", + AccessLevel: "Write", + Description: "Grants permission to delete an input security group", + Privilege: "DeleteInputSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-security-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve data lake settings such as the list of data lake administrators and database and table default permissions", - Privilege: "GetDataLakeSettings", + AccessLevel: "Write", + Description: "Grants permission to delete a multiplex", + Privilege: "DeleteMultiplex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiplex*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve permissions attached to resources in the given path", - Privilege: "GetEffectivePermissionsForPath", + AccessLevel: "Write", + Description: "Grants permission to delete a multiplex program", + Privilege: "DeleteMultiplexProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiplex*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a Lake Formation tag", - Privilege: "GetLFTag", + AccessLevel: "Write", + Description: "Grants permission to delete a network", + Privilege: "DeleteNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the state of the given query", - Privilege: "GetQueryState", + AccessLevel: "Write", + Description: "Grants permission to delete a node", + Privilege: "DeleteNode", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lakeformation:StartQueryPlanning", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "node*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the statistics for the given query", - Privilege: "GetQueryStatistics", + AccessLevel: "Write", + Description: "Grants permission to delete an expired reservation", + Privilege: "DeleteReservation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lakeformation:StartQueryPlanning", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reservation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve lakeformation tags on a catalog resource", - Privilege: "GetResourceLFTags", + AccessLevel: "Write", + Description: "Grants permission to delete all schedule actions for a channel", + Privilege: "DeleteSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve objects from a table", - Privilege: "GetTableObjects", + AccessLevel: "Write", + Description: "Grants permission to delete a SDI source", + Privilege: "DeleteSdiSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sdi-source*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the results for the given work units", - Privilege: "GetWorkUnitResults", + AccessLevel: "Write", + Description: "Grants permission to delete a signal map", + Privilege: "DeleteSignalMap", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lakeformation:GetWorkUnits", - "lakeformation:StartQueryPlanning", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "signal-map*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the work units for the given query", - Privilege: "GetWorkUnits", + AccessLevel: "Tagging", + Description: "Grants permission to delete tags from channels, inputs, input security groups, multiplexes, reservations, nodes, clusters, networks, channel placement groups, SDI source, signal maps, template groups, and templates", + Privilege: "DeleteTags", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lakeformation:StartQueryPlanning", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to data lake permissions to a principal", - Privilege: "GrantPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-placement-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list cell filters", - Privilege: "ListDataCellsFilter", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list Lake Formation tags", - Privilege: "ListLFTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve the current list of resources and principals that are opt in to enforce Lake Formation permissions", - Privilege: "ListLakeFormationOptIns", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list permissions filtered by principal or resource", - Privilege: "ListPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventbridge-rule-template", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to List registered locations", - Privilege: "ListResources", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventbridge-rule-template-group", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all the storage optimizers for the Governed table", - Privilege: "ListTableStorageOptimizers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all transactions in the system", - Privilege: "ListTransactions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-security-group", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to overwrite data lake settings such as the list of data lake administrators and database and table default permissions", - Privilege: "PutDataLakeSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiplex", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register a new location to be managed by Lake Formation", - Privilege: "RegisterResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove lakeformation tags from catalog resources", - Privilege: "RemoveLFTagsFromResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "node", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to revoke data lake permissions from a principal", - Privilege: "RevokePermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reservation", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list catalog databases with Lake Formation tags", - Privilege: "SearchDatabasesByLFTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sdi-source", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list catalog tables with Lake Formation tags", - Privilege: "SearchTablesByLFTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "signal-map", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initiate the planning of the given query", - Privilege: "StartQueryPlanning", + AccessLevel: "Read", + Description: "Grants permission to view the account configuration of the customer", + Privilege: "DescribeAccountConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -166444,448 +209425,333 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new transaction", - Privilege: "StartTransaction", + AccessLevel: "Read", + Description: "Grants permission to get details about a channel", + Privilege: "DescribeChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Lake Formation data cell filter", - Privilege: "UpdateDataCellsFilter", + AccessLevel: "Read", + Description: "Grants permission to describe a channel placement group", + Privilege: "DescribeChannelPlacementGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel-placement-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Lake Formation tag", - Privilege: "UpdateLFTag", + AccessLevel: "Read", + Description: "Grants permission to describe a cluster", + Privilege: "DescribeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the IAM Identity Center connection parameters", - Privilege: "UpdateLakeFormationIdentityCenterConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe an input", + Privilege: "DescribeInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a registered location", - Privilege: "UpdateResource", + AccessLevel: "Read", + Description: "Grants permission to describe an input device", + Privilege: "DescribeInputDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or delete the specified objects to or from a table", - Privilege: "UpdateTableObjects", + AccessLevel: "Read", + Description: "Grants permission to describe an input device thumbnail", + Privilege: "DescribeInputDeviceThumbnail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the configuration of the storage optimizer for the Governed table", - Privilege: "UpdateTableStorageOptimizer", + AccessLevel: "Read", + Description: "Grants permission to describe an input security group", + Privilege: "DescribeInputSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-security-group*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Lake Formation", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "lambda:CodeSigningConfigArn", - Description: "Filters access by the ARN of an AWS Lambda code signing config", - Type: "ARN", - }, - { - Condition: "lambda:EventSourceToken", - Description: "Filters access by the ID from a non-AWS event source configured for the AWS Lambda function", - Type: "String", - }, - { - Condition: "lambda:FunctionArn", - Description: "Filters access by the ARN of an AWS Lambda function", - Type: "ARN", - }, - { - Condition: "lambda:FunctionUrlAuthType", - Description: "Filters access by authorization type specified in request. Available during CreateFunctionUrlConfig, UpdateFunctionUrlConfig, DeleteFunctionUrlConfig, GetFunctionUrlConfig, ListFunctionUrlConfig, AddPermission and RemovePermission operations", - Type: "String", - }, { - Condition: "lambda:Layer", - Description: "Filters access by the ARN of a version of an AWS Lambda layer", - Type: "ArrayOfString", - }, - { - Condition: "lambda:Principal", - Description: "Filters access by restricting the AWS service or account that can invoke a function", - Type: "String", - }, - { - Condition: "lambda:SecurityGroupIds", - Description: "Filters access by the ID of security groups configured for the AWS Lambda function", - Type: "ArrayOfString", - }, - { - Condition: "lambda:SourceFunctionArn", - Description: "Filters access by the ARN of the AWS Lambda function from which the request originated", - Type: "ARN", - }, - { - Condition: "lambda:SubnetIds", - Description: "Filters access by the ID of subnets configured for the AWS Lambda function", - Type: "ArrayOfString", - }, - { - Condition: "lambda:VpcIds", - Description: "Filters access by the ID of the VPC configured for the AWS Lambda function", - Type: "String", - }, - }, - Prefix: "lambda", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Permissions management", - Description: "Grants permission to add permissions to the resource-based policy of a version of an AWS Lambda layer", - Privilege: "AddLayerVersionPermission", + AccessLevel: "Read", + Description: "Grants permission to describe a multiplex", + Privilege: "DescribeMultiplex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "layerVersion*", + ResourceType: "multiplex*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to give an AWS service or another account permission to use an AWS Lambda function", - Privilege: "AddPermission", + AccessLevel: "Read", + Description: "Grants permission to describe a multiplex program", + Privilege: "DescribeMultiplexProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "lambda:Principal", - "lambda:FunctionUrlAuthType", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiplex*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an alias for a Lambda function version", - Privilege: "CreateAlias", + AccessLevel: "Read", + Description: "Grants permission to describe a network", + Privilege: "DescribeNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Lambda code signing config", - Privilege: "CreateCodeSigningConfig", + AccessLevel: "Read", + Description: "Grants permission to describe a node", + Privilege: "DescribeNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "node*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a mapping between an event source and an AWS Lambda function", - Privilege: "CreateEventSourceMapping", + AccessLevel: "Read", + Description: "Grants permission to get details about a reservation offering", + Privilege: "DescribeOffering", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "lambda:FunctionArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "offering*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Lambda function", - Privilege: "CreateFunction", + AccessLevel: "Read", + Description: "Grants permission to get details about a reservation", + Privilege: "DescribeReservation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "lambda:Layer", - "lambda:VpcIds", - "lambda:SubnetIds", - "lambda:SecurityGroupIds", - "lambda:CodeSigningConfigArn", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reservation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a function url configuration for a Lambda function", - Privilege: "CreateFunctionUrlConfig", + AccessLevel: "Read", + Description: "Grants permission to view a list of actions scheduled on a channel", + Privilege: "DescribeSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "lambda:FunctionUrlAuthType", - "lambda:FunctionArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Lambda function alias", - Privilege: "DeleteAlias", + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a SDI source", + Privilege: "DescribeSdiSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "sdi-source*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Lambda code signing config", - Privilege: "DeleteCodeSigningConfig", + AccessLevel: "Read", + Description: "Grants permission to view the thumbnails for a channel", + Privilege: "DescribeThumbnails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code signing config*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Lambda event source mapping", - Privilege: "DeleteEventSourceMapping", + AccessLevel: "Read", + Description: "Grants permission to get a cloudwatch alarm template", + Privilege: "GetCloudWatchAlarmTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventSourceMapping*", - }, - { - ConditionKeys: []string{ - "lambda:FunctionArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cloudwatch-alarm-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Lambda function", - Privilege: "DeleteFunction", + AccessLevel: "Read", + Description: "Grants permission to get a cloudwatch alarm template group", + Privilege: "GetCloudWatchAlarmTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "cloudwatch-alarm-template-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to detach a code signing config from an AWS Lambda function", - Privilege: "DeleteFunctionCodeSigningConfig", + AccessLevel: "Read", + Description: "Grants permission to get a eventbridge rule template", + Privilege: "GetEventBridgeRuleTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "eventbridge-rule-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a concurrent execution limit from an AWS Lambda function", - Privilege: "DeleteFunctionConcurrency", + AccessLevel: "Read", + Description: "Grants permission to get a eventbridge rule template group", + Privilege: "GetEventBridgeRuleTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "eventbridge-rule-template-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the configuration for asynchronous invocation for an AWS Lambda function, version, or alias", - Privilege: "DeleteFunctionEventInvokeConfig", + AccessLevel: "Read", + Description: "Grants permission to get a signal map", + Privilege: "GetSignalMap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "signal-map*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete function url configuration for a Lambda function", - Privilege: "DeleteFunctionUrlConfig", + AccessLevel: "List", + Description: "Grants permission to list channel placement groups", + Privilege: "ListChannelPlacementGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "lambda:FunctionUrlAuthType", - "lambda:FunctionArn", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a version of an AWS Lambda layer", - Privilege: "DeleteLayerVersion", + AccessLevel: "List", + Description: "Grants permission to list channels", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "layerVersion*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the provisioned concurrency configuration for an AWS Lambda function", - Privilege: "DeleteProvisionedConcurrencyConfig", + AccessLevel: "List", + Description: "Grants permission to list cloudwatch alarm template groups", + Privilege: "ListCloudWatchAlarmTemplateGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function alias", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cloudwatch alarm templates", + Privilege: "ListCloudWatchAlarmTemplates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function version", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disable replication for a Lambda@Edge function", - Privilege: "DisableReplication", + AccessLevel: "List", + Description: "Grants permission to list clusters", + Privilege: "ListClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to enable replication for a Lambda@Edge function", - Privilege: "EnableReplication", + AccessLevel: "List", + Description: "Grants permission to list eventbridge rule template groups", + Privilege: "ListEventBridgeRuleTemplateGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an account's limits and usage in an AWS Region", - Privilege: "GetAccountSettings", + AccessLevel: "List", + Description: "Grants permission to list eventbridge rule templates", + Privilege: "ListEventBridgeRuleTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -166895,218 +209761,274 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Lambda function alias", - Privilege: "GetAlias", + AccessLevel: "List", + Description: "Grants permission to list input device transfers", + Privilege: "ListInputDeviceTransfers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Lambda code signing config", - Privilege: "GetCodeSigningConfig", + AccessLevel: "List", + Description: "Grants permission to list input devices", + Privilege: "ListInputDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code signing config*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Lambda event source mapping", - Privilege: "GetEventSourceMapping", + AccessLevel: "List", + Description: "Grants permission to list input security groups", + Privilege: "ListInputSecurityGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventSourceMapping*", - }, - { - ConditionKeys: []string{ - "lambda:FunctionArn", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Lambda function", - Privilege: "GetFunction", + AccessLevel: "List", + Description: "Grants permission to list inputs", + Privilege: "ListInputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the code signing config arn attached to an AWS Lambda function", - Privilege: "GetFunctionCodeSigningConfig", + AccessLevel: "List", + Description: "Grants permission to list multiplex programs", + Privilege: "ListMultiplexPrograms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about the reserved concurrency configuration for a function", - Privilege: "GetFunctionConcurrency", + AccessLevel: "List", + Description: "Grants permission to list multiplexes", + Privilege: "ListMultiplexes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about the version-specific settings of an AWS Lambda function or version", - Privilege: "GetFunctionConfiguration", + AccessLevel: "List", + Description: "Grants permission to list networks", + Privilege: "ListNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the configuration for asynchronous invocation for a function, version, or alias", - Privilege: "GetFunctionEventInvokeConfig", + AccessLevel: "List", + Description: "Grants permission to list nodes", + Privilege: "ListNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read function url configuration for a Lambda function", - Privilege: "GetFunctionUrlConfig", + AccessLevel: "List", + Description: "Grants permission to list reservation offerings", + Privilege: "ListOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "lambda:FunctionUrlAuthType", - "lambda:FunctionArn", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a version of an AWS Lambda layer. Note this action also supports GetLayerVersionByArn API", - Privilege: "GetLayerVersion", + AccessLevel: "List", + Description: "Grants permission to list reservations", + Privilege: "ListReservations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "layerVersion*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the resource-based policy for a version of an AWS Lambda layer", - Privilege: "GetLayerVersionPolicy", + AccessLevel: "List", + Description: "Grants permission to list SDI sources", + Privilege: "ListSdiSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "layerVersion*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the resource-based policy for an AWS Lambda function, version, or alias", - Privilege: "GetPolicy", + AccessLevel: "List", + Description: "Grants permission to list signal maps", + Privilege: "ListSignalMaps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the provisioned concurrency configuration for an AWS Lambda function's alias or version", - Privilege: "GetProvisionedConcurrencyConfig", + AccessLevel: "List", + Description: "Grants permission to list tags for channels, inputs, input security groups, multiplexes, reservations, nodes, clusters, networks, channel placement groups, SDI sources, signal maps, template groups, and templates", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function alias", + ResourceType: "channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function version", + ResourceType: "channel-placement-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cloudwatch-alarm-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cloudwatch-alarm-template-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventbridge-rule-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventbridge-rule-template-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "input", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "input-security-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "multiplex", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "node", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reservation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "sdi-source", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "signal-map", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the runtime management configuration of an AWS Lambda function", - Privilege: "GetRuntimeManagementConfig", + AccessLevel: "List", + Description: "Grants permission to list available versions of MediaLive", + Privilege: "ListVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke a function asynchronously (Deprecated)", - Privilege: "InvokeAsync", + Description: "Grants permission to the node to poll the cluster", + Privilege: "PollAnywhere", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke an AWS Lambda function", - Privilege: "InvokeFunction", + Description: "Grants permission to purchase a reservation offering", + Privilege: "PurchaseOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "offering*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reservation*", }, { ConditionKeys: []string{ - "lambda:EventSourceToken", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -167115,218 +210037,234 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to invoke an AWS Lambda function through url", - Privilege: "InvokeFunctionUrl", + Description: "Grants permission to reboot an input device", + Privilege: "RebootInputDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "input-device*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reject an input device transfer", + Privilege: "RejectInputDeviceTransfer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "lambda:FunctionUrlAuthType", - "lambda:FunctionArn", - "lambda:EventSourceToken", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of aliases for an AWS Lambda function", - Privilege: "ListAliases", + AccessLevel: "Write", + Description: "Grants permission to restart pipelines on a running channel", + Privilege: "RestartChannelPipelines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of AWS Lambda code signing configs", - Privilege: "ListCodeSigningConfigs", + AccessLevel: "Write", + Description: "Grants permission to start a channel", + Privilege: "StartChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of AWS Lambda event source mappings", - Privilege: "ListEventSourceMappings", + AccessLevel: "Write", + Description: "Grants permission to start deletion of a signal map's monitor", + Privilege: "StartDeleteMonitorDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signal-map*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of configurations for asynchronous invocation for a function", - Privilege: "ListFunctionEventInvokeConfigs", + AccessLevel: "Write", + Description: "Grants permission to start an input device attached to a MediaConnect flow", + Privilege: "StartInputDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to read function url configurations for a function", - Privilege: "ListFunctionUrlConfigs", + AccessLevel: "Write", + Description: "Grants permission to start a maintenance window for an input device", + Privilege: "StartInputDeviceMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "input-device*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a signal map monitor deployment", + Privilege: "StartMonitorDeployment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "lambda:FunctionUrlAuthType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signal-map*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of AWS Lambda functions, with the version-specific configuration of each function", - Privilege: "ListFunctions", + AccessLevel: "Write", + Description: "Grants permission to start a multiplex", + Privilege: "StartMultiplex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiplex*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of AWS Lambda functions by the code signing config assigned", - Privilege: "ListFunctionsByCodeSigningConfig", + AccessLevel: "Write", + Description: "Grants permission to start a signal map update", + Privilege: "StartUpdateSignalMap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code signing config*", + ResourceType: "signal-map*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of versions of an AWS Lambda layer", - Privilege: "ListLayerVersions", + AccessLevel: "Write", + Description: "Grants permission to stop a channel", + Privilege: "StopChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of AWS Lambda layers, with details about the latest version of each layer", - Privilege: "ListLayers", + AccessLevel: "Write", + Description: "Grants permission to stop an input device attached to a MediaConnect flow", + Privilege: "StopInputDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of provisioned concurrency configurations for an AWS Lambda function", - Privilege: "ListProvisionedConcurrencyConfigs", + AccessLevel: "Write", + Description: "Grants permission to stop a multiplex", + Privilege: "StopMultiplex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "multiplex*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of tags for an AWS Lambda function", - Privilege: "ListTags", + AccessLevel: "Write", + Description: "Grants permission to the node to submit state changes to the cluster", + Privilege: "SubmitAnywhereStateChange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of versions for an AWS Lambda function", - Privilege: "ListVersionsByFunction", + AccessLevel: "Write", + Description: "Grants permission to transfer an input device", + Privilege: "TransferInputDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "input-device*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Lambda layer", - Privilege: "PublishLayerVersion", + Description: "Grants permission to update a customer's account configuration", + Privilege: "UpdateAccountConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "layer*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Lambda function version", - Privilege: "PublishVersion", + Description: "Grants permission to update a channel", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a code signing config to an AWS Lambda function", - Privilege: "PutFunctionCodeSigningConfig", + Description: "Grants permission to update the class of a channel", + Privilege: "UpdateChannelClass", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code signing config*", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a node", + Privilege: "UpdateChannelPlacementGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "channel-placement-group*", }, { ConditionKeys: []string{ - "lambda:CodeSigningConfigArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -167335,121 +210273,119 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to configure reserved concurrency for an AWS Lambda function", - Privilege: "PutFunctionConcurrency", + Description: "Grants permission to update a cloudwatch alarm template", + Privilege: "UpdateCloudWatchAlarmTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "cloudwatch-alarm-template*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cloudwatch-alarm-template-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configures options for asynchronous invocation on an AWS Lambda function, version, or alias", - Privilege: "PutFunctionEventInvokeConfig", + Description: "Grants permission to update a cloudwatch alarm template group", + Privilege: "UpdateCloudWatchAlarmTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "cloudwatch-alarm-template-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configure provisioned concurrency for an AWS Lambda function's alias or version", - Privilege: "PutProvisionedConcurrencyConfig", + Description: "Grants permission to update a cluster", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function alias", + ResourceType: "cluster*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "function version", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the runtime management configuration of an AWS Lambda function", - Privilege: "PutRuntimeManagementConfig", + Description: "Grants permission to update a eventbridge rule template", + Privilege: "UpdateEventBridgeRuleTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "eventbridge-rule-template*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "eventbridge-rule-template-group*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove a statement from the permissions policy for a version of an AWS Lambda layer", - Privilege: "RemoveLayerVersionPermission", + AccessLevel: "Write", + Description: "Grants permission to update a eventbridge rule template group", + Privilege: "UpdateEventBridgeRuleTemplateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "layerVersion*", + ResourceType: "eventbridge-rule-template-group*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to revoke function-use permission from an AWS service or another account", - Privilege: "RemovePermission", + AccessLevel: "Write", + Description: "Grants permission to update an input", + Privilege: "UpdateInput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "lambda:Principal", - "lambda:FunctionUrlAuthType", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "input*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an AWS Lambda function", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update an input device", + Privilege: "UpdateInputDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "input-device*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an AWS Lambda function", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update an input security group", + Privilege: "UpdateInputSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "input-security-group*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -167459,41 +210395,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of an AWS Lambda function's alias", - Privilege: "UpdateAlias", + Description: "Grants permission to update a multiplex", + Privilege: "UpdateMultiplex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "multiplex*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an AWS Lambda code signing config", - Privilege: "UpdateCodeSigningConfig", + Description: "Grants permission to update a multiplex program", + Privilege: "UpdateMultiplexProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code signing config*", + ResourceType: "multiplex*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of an AWS Lambda event source mapping", - Privilege: "UpdateEventSourceMapping", + Description: "Grants permission to update the state of a node", + Privilege: "UpdateNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventSourceMapping*", + ResourceType: "network*", }, { ConditionKeys: []string{ - "lambda:FunctionArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -167502,49 +210439,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the code of an AWS Lambda function", - Privilege: "UpdateFunctionCode", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "function*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the code signing config of an AWS Lambda function", - Privilege: "UpdateFunctionCodeSigningConfig", + Description: "Grants permission to update a node", + Privilege: "UpdateNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code signing config*", + ResourceType: "node*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the version-specific settings of an AWS Lambda function", - Privilege: "UpdateFunctionConfiguration", + Description: "Grants permission to update the state of a node", + Privilege: "UpdateNodeState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "node*", }, { ConditionKeys: []string{ - "lambda:Layer", - "lambda:VpcIds", - "lambda:SubnetIds", - "lambda:SecurityGroupIds", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -167553,30 +210479,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify the configuration for asynchronous invocation for an AWS Lambda function, version, or alias", - Privilege: "UpdateFunctionEventInvokeConfig", + Description: "Grants permission to update a reservation", + Privilege: "UpdateReservation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "reservation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a function url configuration for a Lambda function", - Privilege: "UpdateFunctionUrlConfig", + Description: "Grants permission to update the state of a sdi source", + Privilege: "UpdateSdiSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "function*", + ResourceType: "sdi-source*", }, { ConditionKeys: []string{ - "lambda:FunctionUrlAuthType", - "lambda:FunctionArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -167586,85 +210512,161 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:code-signing-config:${CodeSigningConfigId}", - ConditionKeys: []string{}, - Resource: "code signing config", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:channel:${ChannelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:input:${InputId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "input", }, { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:event-source-mapping:${UUID}", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:inputDevice:${DeviceId}", ConditionKeys: []string{}, - Resource: "eventSourceMapping", + Resource: "input-device", }, { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:function:${FunctionName}", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:inputSecurityGroup:${InputSecurityGroupId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "function", + Resource: "input-security-group", }, { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:function:${FunctionName}:${Alias}", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:multiplex:${MultiplexId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "function alias", + Resource: "multiplex", }, { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:function:${FunctionName}:${Version}", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:reservation:${ReservationId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "function version", + Resource: "reservation", }, { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:layer:${LayerName}", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:offering:${OfferingId}", ConditionKeys: []string{}, - Resource: "layer", + Resource: "offering", }, { - Arn: "arn:${Partition}:lambda:${Region}:${Account}:layer:${LayerName}:${LayerVersion}", - ConditionKeys: []string{}, - Resource: "layerVersion", + Arn: "arn:${Partition}:medialive:${Region}:${Account}:signal-map:${SignalMapId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "signal-map", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:cloudwatch-alarm-template-group:${CloudWatchAlarmTemplateGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cloudwatch-alarm-template-group", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:cloudwatch-alarm-template:${CloudWatchAlarmTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cloudwatch-alarm-template", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:eventbridge-rule-template-group:${EventBridgeRuleTemplateGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "eventbridge-rule-template-group", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:eventbridge-rule-template:${EventBridgeRuleTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "eventbridge-rule-template", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:cluster:${ClusterId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:node:${ClusterId}/${NodeId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "node", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:network:${NetworkId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "network", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:channelPlacementGroup:${ClusterId}/${ChannelPlacementGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel-placement-group", + }, + { + Arn: "arn:${Partition}:medialive:${Region}:${Account}:sdiSource:${SdiSourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "sdi-source", }, }, - ServiceName: "AWS Lambda", + ServiceName: "AWS Elemental MediaLive", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the presence of tag key-value pairs in the request", + Description: "Filters access by the tag for a MediaPackage request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on tag key-value pairs attached to the resource", + Description: "Filters access by the tag for a MediaPackage resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access based on the presence of tag keys in the request", + Description: "Filters access by the tag keys for a MediaPackage resource or request", Type: "ArrayOfString", }, }, - Prefix: "launchwizard", + Prefix: "mediapackage", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an additional node", - Privilege: "CreateAdditionalNode", + Description: "Grants permission to configure access logs for a Channel", + Privilege: "ConfigureLogs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "channels*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a deployment", - Privilege: "CreateDeployment", + Description: "Grants permission to create a channel in AWS Elemental MediaPackage", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -167672,17 +210674,20 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "deployment*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an application settings set", - Privilege: "CreateSettingsSet", + Description: "Grants permission to create a harvest job in AWS Elemental MediaPackage", + Privilege: "CreateHarvestJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -167690,11 +210695,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an additional node", - Privilege: "DeleteAdditionalNode", + Description: "Grants permission to create an endpoint in AWS Elemental MediaPackage", + Privilege: "CreateOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -167702,70 +210710,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApp", + Description: "Grants permission to delete a channel in AWS Elemental MediaPackage", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channels*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a deployment", - Privilege: "DeleteDeployment", + Description: "Grants permission to delete an endpoint in AWS Elemental MediaPackage", + Privilege: "DeleteOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment*", + ResourceType: "origin_endpoints*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a settings set", - Privilege: "DeleteSettingsSet", + AccessLevel: "Read", + Description: "Grants permission to view the details of a channel in AWS Elemental MediaPackage", + Privilege: "DescribeChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channels*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an additional node", - Privilege: "DescribeAdditionalNode", + Description: "Grants permission to view the details of a harvest job in AWS Elemental MediaPackage", + Privilege: "DescribeHarvestJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "harvest_jobs*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe provisioning applications", - Privilege: "DescribeProvisionedApp", + Description: "Grants permission to view the details of an endpoint in AWS Elemental MediaPackage", + Privilege: "DescribeOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "origin_endpoints*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe provisioning events", - Privilege: "DescribeProvisioningEvents", + Description: "Grants permission to view a list of channels in AWS Elemental MediaPackage", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -167776,8 +210782,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe an application settings set", - Privilege: "DescribeSettingsSet", + Description: "Grants permission to view a list of harvest jobs in AWS Elemental MediaPackage", + Privilege: "ListHarvestJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -167788,228 +210794,326 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a deployment", - Privilege: "GetDeployment", + Description: "Grants permission to view a list of endpoints in AWS Elemental MediaPackage", + Privilege: "ListOriginEndpoints", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get infrastructure suggestion", - Privilege: "GetInfrastructureSuggestion", + Description: "Grants permission to list the tags assigned to a Channel or OriginEndpoint", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channels", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "harvest_jobs", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "origin_endpoints", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get customer's ip address", - Privilege: "GetIpAddress", + AccessLevel: "Write", + Description: "Grants permission to rotate credentials for the first IngestEndpoint of a Channel in AWS Elemental MediaPackage", + Privilege: "RotateChannelCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channels*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get resource cost estimate", - Privilege: "GetResourceCostEstimate", + AccessLevel: "Write", + Description: "Grants permission to rotate IngestEndpoint credentials for a Channel in AWS Elemental MediaPackage", + Privilege: "RotateIngestEndpointCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channels*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get recommendation for a resource", - Privilege: "GetResourceRecommendation", + AccessLevel: "Tagging", + Description: "Grants permission to tag a MediaPackage resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "channels", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "harvest_jobs", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "origin_endpoints", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a settings set", - Privilege: "GetSettingsSet", + AccessLevel: "Tagging", + Description: "Grants permission to delete tags to a Channel or OriginEndpoint", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "channels", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "harvest_jobs", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "origin_endpoints", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a workload", - Privilege: "GetWorkload", + AccessLevel: "Write", + Description: "Grants permission to make changes to a channel in AWS Elemental MediaPackage", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channels*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a workload's asset", - Privilege: "GetWorkloadAsset", + AccessLevel: "Write", + Description: "Grants permission to make changes to an endpoint in AWS Elemental MediaPackage", + Privilege: "UpdateOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "origin_endpoints*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get workload assets", - Privilege: "GetWorkloadAssets", + Arn: "arn:${Partition}:mediapackage:${Region}:${Account}:channels/${ChannelIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channels", + }, + { + Arn: "arn:${Partition}:mediapackage:${Region}:${Account}:origin_endpoints/${OriginEndpointIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "origin_endpoints", + }, + { + Arn: "arn:${Partition}:mediapackage:${Region}:${Account}:harvest_jobs/${HarvestJobIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "harvest_jobs", + }, + }, + ServiceName: "AWS Elemental MediaPackage", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "mediapackage-vod", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to configure egress access logs for a PackagingGroup", + Privilege: "ConfigureLogs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "packaging-groups*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a deployment pattern", - Privilege: "GetWorkloadDeploymentPattern", + AccessLevel: "Write", + Description: "Grants permission to create an asset in AWS Elemental MediaPackage", + Privilege: "CreateAsset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list additional nodes", - Privilege: "ListAdditionalNodes", + AccessLevel: "Write", + Description: "Grants permission to create a packaging configuration in AWS Elemental MediaPackage", + Privilege: "CreatePackagingConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the allowed resources", - Privilege: "ListAllowedResources", + AccessLevel: "Write", + Description: "Grants permission to create a packaging group in AWS Elemental MediaPackage", + Privilege: "CreatePackagingGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the events that occured during a deployment", - Privilege: "ListDeploymentEvents", + AccessLevel: "Write", + Description: "Grants permission to delete an asset in AWS Elemental MediaPackage", + Privilege: "DeleteAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assets*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list deployments", - Privilege: "ListDeployments", + AccessLevel: "Write", + Description: "Grants permission to delete a packaging configuration in AWS Elemental MediaPackage", + Privilege: "DeletePackagingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "packaging-configurations*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list provisioning applications", - Privilege: "ListProvisionedApps", + AccessLevel: "Write", + Description: "Grants permission to delete a packaging group in AWS Elemental MediaPackage", + Privilege: "DeletePackagingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "packaging-groups*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the cost estimates of resources", - Privilege: "ListResourceCostEstimates", + AccessLevel: "Read", + Description: "Grants permission to view the details of an asset in AWS Elemental MediaPackage", + Privilege: "DescribeAsset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assets*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list settings sets", - Privilege: "ListSettingsSets", + AccessLevel: "Read", + Description: "Grants permission to view the details of a packaging configuration in AWS Elemental MediaPackage", + Privilege: "DescribePackagingConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "packaging-configurations*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a LaunchWizard resource.", - Privilege: "ListTagsForResource", + Description: "Grants permission to view the details of a packaging group in AWS Elemental MediaPackage", + Privilege: "DescribePackagingGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "packaging-groups*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list deployment options of a given workload", - Privilege: "ListWorkloadDeploymentOptions", + Description: "Grants permission to view a list of assets in AWS Elemental MediaPackage", + Privilege: "ListAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -168020,8 +211124,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the deployment patterns of a workload", - Privilege: "ListWorkloadDeploymentPatterns", + Description: "Grants permission to view a list of packaging configurations in AWS Elemental MediaPackage", + Privilege: "ListPackagingConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -168032,8 +211136,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list workloads", - Privilege: "ListWorkloads", + Description: "Grants permission to view a list of packaging groups in AWS Elemental MediaPackage", + Privilege: "ListPackagingGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -168043,738 +211147,753 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a settings set", - Privilege: "PutSettingsSet", + AccessLevel: "Read", + Description: "Grants permission to list the tags assigned to a PackagingGroup, PackagingConfiguration, or Asset", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assets", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a provisioning", - Privilege: "StartProvisioning", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "packaging-configurations", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packaging-groups", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a LaunchWizard resource.", + Description: "Grants permission to assign tags to a PackagingGroup, PackagingConfiguration, or Asset", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "assets", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packaging-configurations", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packaging-groups", + }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to untag a LaunchWizard resource.", + Description: "Grants permission to delete tags from a PackagingGroup, PackagingConfiguration, or Asset", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "assets", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packaging-configurations", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "packaging-groups", + }, { ConditionKeys: []string{ "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an application settings set", - Privilege: "UpdateSettingsSet", + Description: "Grants permission to update a packaging group in AWS Elemental MediaPackage", + Privilege: "UpdatePackagingGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "packaging-groups*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:launchwizard:${Region}:${Account}:deployment/${DeploymentId}", + Arn: "arn:${Partition}:mediapackage-vod:${Region}:${Account}:assets/${AssetIdentifier}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "deployment", + Resource: "assets", + }, + { + Arn: "arn:${Partition}:mediapackage-vod:${Region}:${Account}:packaging-configurations/${PackagingConfigurationIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "packaging-configurations", + }, + { + Arn: "arn:${Partition}:mediapackage-vod:${Region}:${Account}:packaging-groups/${PackagingGroupIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "packaging-groups", }, }, - ServiceName: "AWS Launch Wizard", + ServiceName: "AWS Elemental MediaPackage VOD", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags in the request", + Description: "Filters access by tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to a Lex resource", + Description: "Filters access by tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access based on the set of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "lex:associatedIntents", - Description: "Enables you to control access based on the intents included in the request", - Type: "ArrayOfString", - }, - { - Condition: "lex:associatedSlotTypes", - Description: "Enables you to control access based on the slot types included in the request", + Description: "Filters access by tag keys that are passed in the request", Type: "ArrayOfString", }, - { - Condition: "lex:channelType", - Description: "Enables you to control access based on the channel type included in the request", - Type: "String", - }, }, - Prefix: "lex", + Prefix: "mediapackagev2", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Creates a new version based on the $LATEST version of the specified bot", - Privilege: "CreateBotVersion", + Description: "Grants permission to cancel a harvest job", + Privilege: "CancelHarvestJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Creates a new version based on the $LATEST version of the specified intent", - Privilege: "CreateIntentVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "intent version*", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Creates a new version based on the $LATEST version of the specified slot type", - Privilege: "CreateSlotTypeVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slottype version*", + ResourceType: "HarvestJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Write", - Description: "Deletes all versions of a bot", - Privilege: "DeleteBot", + Description: "Grants permission to create a channel in a channel group", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Deletes an alias for a specific bot", - Privilege: "DeleteBotAlias", + Description: "Grants permission to create a channel group", + Privilege: "CreateChannelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Deletes the association between a Amazon Lex bot alias and a messaging platform", - Privilege: "DeleteBotChannelAssociation", + Description: "Grants permission to create a harvest job", + Privilege: "CreateHarvestJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "HarvestJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Deletes a specific version of a bot", - Privilege: "DeleteBotVersion", + Description: "Grants permission to create an origin endpoint for a channel", + Privilege: "CreateOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Deletes all versions of an intent", - Privilege: "DeleteIntent", + Description: "Grants permission to delete a channel in a channel group", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "intent version*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", }, }, }, { AccessLevel: "Write", - Description: "Deletes a specific version of an intent", - Privilege: "DeleteIntentVersion", + Description: "Grants permission to delete a channel group", + Privilege: "DeleteChannelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "intent version*", + ResourceType: "ChannelGroup*", }, }, }, { AccessLevel: "Write", - Description: "Removes session information for a specified bot, alias, and user ID", - Privilege: "DeleteSession", + Description: "Grants permission to delete a resource policy from a channel", + Privilege: "DeleteChannelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "Channel*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Deletes all versions of a slot type", - Privilege: "DeleteSlotType", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slottype version*", + ResourceType: "ChannelPolicy*", }, }, }, { AccessLevel: "Write", - Description: "Deletes a specific version of a slot type", - Privilege: "DeleteSlotTypeVersion", + Description: "Grants permission to delete an origin endpoint of a channel", + Privilege: "DeleteOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slottype version*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Write", - Description: "Deletes the information Amazon Lex maintains for utterances on a specific bot and userId", - Privilege: "DeleteUtterances", + Description: "Grants permission to delete a resource policy from an origin endpoint", + Privilege: "DeleteOriginEndpointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Returns information for a specific bot. In addition to the bot name, the bot version or alias is required", - Privilege: "GetBot", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "ChannelGroup*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version", + ResourceType: "OriginEndpoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpointPolicy*", }, }, }, { AccessLevel: "Read", - Description: "Returns information about a Amazon Lex bot alias", - Privilege: "GetBotAlias", + Description: "Grants permission to retrieve details of a channel in a channel group", + Privilege: "GetChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Returns a list of aliases for a given Amazon Lex bot", - Privilege: "GetBotAliases", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChannelGroup*", }, }, }, { AccessLevel: "Read", - Description: "Returns information about the association between a Amazon Lex bot and a messaging platform", - Privilege: "GetBotChannelAssociation", + Description: "Grants permission to retrieve details of a channel group", + Privilege: "GetChannelGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "ChannelGroup*", }, }, }, { - AccessLevel: "List", - Description: "Returns a list of all of the channels associated with a single bot", - Privilege: "GetBotChannelAssociations", + AccessLevel: "Read", + Description: "Grants permission to retrieve a resource policy for a channel", + Privilege: "GetChannelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Returns information for all versions of a specific bot", - Privilege: "GetBotVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "List", - Description: "Returns information for the $LATEST version of all bots, subject to filters provided by the client", - Privilege: "GetBots", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChannelPolicy*", }, }, }, { AccessLevel: "Read", - Description: "Returns information about a built-in intent", - Privilege: "GetBuiltinIntent", + Description: "Grants permission to retrieve details of an harvest job", + Privilege: "GetHarvestJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Gets a list of built-in intents that meet the specified criteria", - Privilege: "GetBuiltinIntents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Gets a list of built-in slot types that meet the specified criteria", - Privilege: "GetBuiltinSlotTypes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "HarvestJob*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Read", - Description: "Exports Amazon Lex Resource in a requested format", - Privilege: "GetExport", + Description: "Grants permission to make GetHeadObject requests to MediaPackage", + Privilege: "GetHeadObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Read", - Description: "Gets information about an import job started with StartImport", - Privilege: "GetImport", + Description: "Grants permission to make GetObject requests to MediaPackage", + Privilege: "GetObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Read", - Description: "Returns information for a specific intent. In addition to the intent name, you must also specify the intent version", - Privilege: "GetIntent", + Description: "Grants permission to retrieve details of an origin endpoint", + Privilege: "GetOriginEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "intent version*", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Returns information for all versions of a specific intent", - Privilege: "GetIntentVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "intent version*", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "List", - Description: "Returns information for the $LATEST version of all intents, subject to filters provided by the client", - Privilege: "GetIntents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view an ongoing or completed migration", - Privilege: "GetMigration", + Description: "Grants permission to retrieve details of a resource policy for an origin endpoint", + Privilege: "GetOriginEndpointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view list of migrations from Amazon Lex v1 to Amazon Lex v2", - Privilege: "GetMigrations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Returns session information for a specified bot, alias, and user ID", - Privilege: "GetSession", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "OriginEndpoint*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version", + ResourceType: "OriginEndpointPolicy*", }, }, }, { AccessLevel: "Read", - Description: "Returns information about a specific version of a slot type. In addition to specifying the slot type name, you must also specify the slot type version", - Privilege: "GetSlotType", + Description: "Grants permission to make HarvestObject requests to MediaPackage", + Privilege: "HarvestObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slottype version*", + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "List", - Description: "Returns information for all versions of a specific slot type", - Privilege: "GetSlotTypeVersions", + Description: "Grants permission to list all channel groups for an aws account", + Privilege: "ListChannelGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slottype version*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Returns information for the $LATEST version of all slot types, subject to filters provided by the client", - Privilege: "GetSlotTypes", + Description: "Grants permission to list all channels in a channel group", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChannelGroup*", }, }, }, { AccessLevel: "List", - Description: "Returns a view of aggregate utterance data for versions of a bot for a recent time period", - Privilege: "GetUtterancesView", + Description: "Grants permission to list all harvest jobs in a channel group, channel, origin endpoint", + Privilege: "ListHarvestJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "ChannelGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Lists tags for a Lex resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list all origin endpoints of a channel", + Privilege: "ListOriginEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "Channel*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "ChannelGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Sends user input (text or speech) to Amazon Lex", - Privilege: "PostContent", + AccessLevel: "Read", + Description: "Grants permission to list tags for the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "Channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version", + ResourceType: "ChannelGroup", }, - }, - }, - { - AccessLevel: "Write", - Description: "Sends user input (text-only) to Amazon Lex", - Privilege: "PostText", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "HarvestJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version", + ResourceType: "OriginEndpoint", }, }, }, { AccessLevel: "Write", - Description: "Creates or updates the $LATEST version of a Amazon Lex conversational bot", - Privilege: "PutBot", + Description: "Grants permission to attach a resource policy for a channel", + Privilege: "PutChannelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Channel*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Creates or updates an alias for the specific bot", - Privilege: "PutBotAlias", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "ChannelGroup*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ChannelPolicy*", }, }, }, { AccessLevel: "Write", - Description: "Creates or updates the $LATEST version of an intent", - Privilege: "PutIntent", + Description: "Grants permission to make PutObject requests to MediaPackage", + Privilege: "PutObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "intent version*", + ResourceType: "Channel*", }, }, }, { AccessLevel: "Write", - Description: "Creates a new session or modifies an existing session with an Amazon Lex bot", - Privilege: "PutSession", + Description: "Grants permission to attach a resource policy to an origin endpoint", + Privilege: "PutOriginEndpointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "Channel*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version", + ResourceType: "ChannelGroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Creates or updates the $LATEST version of a slot type", - Privilege: "PutSlotType", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "slottype version*", + ResourceType: "OriginEndpoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpointPolicy*", }, }, }, { AccessLevel: "Write", - Description: "Starts a job to import a resource to Amazon Lex", - Privilege: "StartImport", + Description: "Grants permission to reset a channel", + Privilege: "ResetChannelState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to migrate a bot from Amazon Lex v1 to Amazon Lex v2", - Privilege: "StartMigration", + Description: "Grants permission to reset an origin endpoint", + Privilege: "ResetOriginEndpointState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot version*", + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", }, }, }, { AccessLevel: "Tagging", - Description: "Adds or overwrites tags to a Lex resource", + Description: "Grants permission to add specified tags to the specified resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", + ResourceType: "Channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "ChannelGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "HarvestJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -168783,1447 +211902,1500 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Removes tags from a Lex resource", + Description: "Grants permission to remove the specified tags from the specified resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", + ResourceType: "Channel", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "ChannelGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "HarvestJob", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint", }, { ConditionKeys: []string{ "aws:TagKeys", - "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update a channel in a channel group", + Privilege: "UpdateChannel", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a channel group", + Privilege: "UpdateChannelGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an origin endpoint of a channel", + Privilege: "UpdateOriginEndpoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Channel*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ChannelGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OriginEndpoint*", + }, + }, + }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:lex:${Region}:${Account}:bot:${BotName}", + Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "bot", + Resource: "ChannelGroup", }, { - Arn: "arn:${Partition}:lex:${Region}:${Account}:bot:${BotName}:${BotVersion}", + Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}", + ConditionKeys: []string{}, + Resource: "ChannelPolicy", + }, + { + Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "bot version", + Resource: "Channel", }, { - Arn: "arn:${Partition}:lex:${Region}:${Account}:bot:${BotName}:${BotAlias}", + Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}/originEndpoint/${OriginEndpointName}", + ConditionKeys: []string{}, + Resource: "OriginEndpointPolicy", + }, + { + Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}/originEndpoint/${OriginEndpointName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "bot alias", + Resource: "OriginEndpoint", }, { - Arn: "arn:${Partition}:lex:${Region}:${Account}:bot-channel:${BotName}:${BotAlias}:${ChannelName}", + Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}/originEndpoint/${OriginEndpointName}/harvestJob/${HarvestJobName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "channel", - }, - { - Arn: "arn:${Partition}:lex:${Region}:${Account}:intent:${IntentName}:${IntentVersion}", - ConditionKeys: []string{}, - Resource: "intent version", - }, - { - Arn: "arn:${Partition}:lex:${Region}:${Account}:slottype:${SlotName}:${SlotVersion}", - ConditionKeys: []string{}, - Resource: "slottype version", + Resource: "HarvestJob", }, }, - ServiceName: "Amazon Lex", + ServiceName: "AWS Elemental MediaPackage V2", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags in the request", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to a Lex resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the set of tag keys in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "lex", + Prefix: "mediastore", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create new items in an existing custom vocabulary", - Privilege: "BatchCreateCustomVocabularyItem", + Description: "Grants permission to create a container", + Privilege: "CreateContainer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete existing items in an existing custom vocabulary", - Privilege: "BatchDeleteCustomVocabularyItem", + Description: "Grants permission to delete a container", + Privilege: "DeleteContainer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update existing items in an existing custom vocabulary", - Privilege: "BatchUpdateCustomVocabularyItem", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the access policy of a container", + Privilege: "DeleteContainerPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to build an existing bot locale in a bot", - Privilege: "BuildBotLocale", + Description: "Grants permission to delete the CORS policy from a container", + Privilege: "DeleteCorsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new bot and a test bot alias pointing to the DRAFT bot version", - Privilege: "CreateBot", + Description: "Grants permission to delete the lifecycle policy from a container", + Privilege: "DeleteLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the metric policy from a container", + Privilege: "DeleteMetricPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new bot alias in a bot", - Privilege: "CreateBotAlias", + Description: "Grants permission to delete an object", + Privilege: "DeleteObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a bot channel in an existing bot", - Privilege: "CreateBotChannel", + AccessLevel: "List", + Description: "Grants permission to retrieve details on a container", + Privilege: "DescribeContainer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new bot locale in an existing bot", - Privilege: "CreateBotLocale", + AccessLevel: "List", + Description: "Grants permission to retrieve metadata for an object", + Privilege: "DescribeObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "object*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create bot replica for a bot", - Privilege: "CreateBotReplica", + AccessLevel: "Read", + Description: "Grants permission to retrieve the access policy of a container", + Privilege: "GetContainerPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new version of an existing bot", - Privilege: "CreateBotVersion", + AccessLevel: "Read", + Description: "Grants permission to retrieve the CORS policy of a container", + Privilege: "GetCorsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new custom vocabulary in an existing bot locale", - Privilege: "CreateCustomVocabulary", + AccessLevel: "Read", + Description: "Grants permission to retrieve the lifecycle policy that is assigned to a container", + Privilege: "GetLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an export for an existing resource", - Privilege: "CreateExport", + AccessLevel: "Read", + Description: "Grants permission to retrieve the metric policy that is assigned to a container", + Privilege: "GetMetricPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", + ResourceType: "container*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an object", + Privilege: "GetObject", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "object*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new intent in an existing bot locale", - Privilege: "CreateIntent", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of containers in the current account", + Privilege: "ListContainers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new resource policy for a Lex resource", - Privilege: "CreateResourcePolicy", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of objects and subfolders that are stored in a folder", + Privilege: "ListItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", + ResourceType: "folder", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags on a container", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "container", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new slot in an intent", - Privilege: "CreateSlot", + AccessLevel: "Permissions management", + Description: "Grants permission to create or replace the access policy of a container", + Privilege: "PutContainerPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new slot type in an existing bot locale", - Privilege: "CreateSlotType", + Description: "Grants permission to add or modify the CORS policy of a container", + Privilege: "PutCorsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import a new test-set", - Privilege: "CreateTestSet", + Description: "Grants permission to add or modify the lifecycle policy that is assigned to a container", + Privilege: "PutLifecyclePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a test set discrepancy report", - Privilege: "CreateTestSetDiscrepancyReport", + Description: "Grants permission to add or modify the metric policy that is assigned to a container", + Privilege: "PutMetricPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "container*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an upload url for import file", - Privilege: "CreateUploadUrl", + Description: "Grants permission to upload an object", + Privilege: "PutObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing bot", - Privilege: "DeleteBot", + Description: "Grants permission to start access logging on a container", + Privilege: "StartAccessLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "lex:DeleteBotAlias", - "lex:DeleteBotChannel", - "lex:DeleteBotLocale", - "lex:DeleteBotVersion", - "lex:DeleteIntent", - "lex:DeleteSlot", - "lex:DeleteSlotType", + "iam:PassRole", }, - ResourceType: "bot*", + ResourceType: "container*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop access logging on a container", + Privilege: "StopAccessLogging", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "container*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a container", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "container", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing bot alias in a bot", - Privilege: "DeleteBotAlias", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a container", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "container", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:mediastore:${Region}:${Account}:container/${ContainerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "container", + }, + { + Arn: "arn:${Partition}:mediastore:${Region}:${Account}:container/${ContainerName}/${ObjectPath}", + ConditionKeys: []string{}, + Resource: "object", + }, + { + Arn: "arn:${Partition}:mediastore:${Region}:${Account}:container/${ContainerName}/${FolderPath}", + ConditionKeys: []string{}, + Resource: "folder", + }, + }, + ServiceName: "AWS Elemental MediaStore", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "mediatailor", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete an existing bot channel", - Privilege: "DeleteBotChannel", + Description: "Grants permission to configure logs on the channel with the specified channel name", + Privilege: "ConfigureLogsForChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing bot locale in a bot", - Privilege: "DeleteBotLocale", + Description: "Grants permission to configure logs for a playback configuration", + Privilege: "ConfigureLogsForPlaybackConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "lex:DeleteIntent", - "lex:DeleteSlot", - "lex:DeleteSlotType", + "iam:CreateServiceLinkedRole", }, - ResourceType: "bot*", + ResourceType: "playbackConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing bot replica", - Privilege: "DeleteBotReplica", + Description: "Grants permission to create a new channel", + Privilege: "CreateChannel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing bot version", - Privilege: "DeleteBotVersion", + Description: "Grants permission to create a new live source on the source location with the specified source location name", + Privilege: "CreateLiveSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing custom vocabulary in a bot locale", - Privilege: "DeleteCustomVocabulary", + Description: "Grants permission to create a prefetch schedule for the playback configuration with the specified playback configuration name", + Privilege: "CreatePrefetchSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "playbackConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing export", - Privilege: "DeleteExport", + Description: "Grants permission to create a new program on the channel with the specified channel name", + Privilege: "CreateProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing import", - Privilege: "DeleteImport", + Description: "Grants permission to create a new source location", + Privilege: "CreateSourceLocation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing intent in a bot locale", - Privilege: "DeleteIntent", + Description: "Grants permission to create a new VOD source on the source location with the specified source location name", + Privilege: "CreateVodSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing resource policy for a Lex resource", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to delete the channel with the specified channel name", + Privilege: "DeleteChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete session information for a bot alias and user ID", - Privilege: "DeleteSession", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the IAM policy on the channel with the specified channel name", + Privilege: "DeleteChannelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing slot in an intent", - Privilege: "DeleteSlot", + Description: "Grants permission to delete the live source with the specified live source name on the source location with the specified source location name", + Privilege: "DeleteLiveSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "liveSource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing slot type in a bot locale", - Privilege: "DeleteSlotType", + Description: "Grants permission to delete the specified playback configuration", + Privilege: "DeletePlaybackConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "playbackConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing test set", - Privilege: "DeleteTestSet", + Description: "Grants permission to delete a prefetch schedule for a playback configuration with the specified prefetch schedule name", + Privilege: "DeletePrefetchSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "playbackConfiguration*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete utterance data for a bot", - Privilege: "DeleteUtterances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "prefetchSchedule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing bot", - Privilege: "DescribeBot", + AccessLevel: "Write", + Description: "Grants permission to delete the program with the specified program name on the channel with the specified channel name", + Privilege: "DeleteProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "program*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing bot alias", - Privilege: "DescribeBotAlias", + AccessLevel: "Write", + Description: "Grants permission to delete the source location with the specified source location name", + Privilege: "DeleteSourceLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "sourceLocation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing bot channel", - Privilege: "DescribeBotChannel", + AccessLevel: "Write", + Description: "Grants permission to delete the VOD source with the specified VOD source name on the source location with the specified source location name", + Privilege: "DeleteVodSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "vodSource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing bot locale", - Privilege: "DescribeBotLocale", + Description: "Grants permission to retrieve the channel with the specified channel name", + Privilege: "DescribeChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve metadata information about a bot recommendation", - Privilege: "DescribeBotRecommendation", + Description: "Grants permission to retrieve the live source with the specified live source name on the source location with the specified source location name", + Privilege: "DescribeLiveSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "liveSource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing bot replica", - Privilege: "DescribeBotReplica", + Description: "Grants permission to retrieve the program with the specified program name on the channel with the specified channel name", + Privilege: "DescribeProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "program*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve metadata information for a bot resource generation", - Privilege: "DescribeBotResourceGeneration", + Description: "Grants permission to retrieve the source location with the specified source location name", + Privilege: "DescribeSourceLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "sourceLocation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing bot version", - Privilege: "DescribeBotVersion", + Description: "Grants permission to retrieve the VOD source with the specified VOD source name on the source location with the specified source location name", + Privilege: "DescribeVodSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "vodSource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing custom vocabulary", - Privilege: "DescribeCustomVocabulary", + Description: "Grants permission to read the IAM policy on the channel with the specified channel name", + Privilege: "GetChannelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve metadata of an existing custom vocabulary", - Privilege: "DescribeCustomVocabularyMetadata", + Description: "Grants permission to retrieve the schedule of programs on the channel with the specified channel name", + Privilege: "GetChannelSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing export", - Privilege: "DescribeExport", + Description: "Grants permission to retrieve the configuration for the specified name", + Privilege: "GetPlaybackConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "lex:DescribeBot", - "lex:DescribeBotLocale", - "lex:DescribeIntent", - "lex:DescribeSlot", - "lex:DescribeSlotType", - "lex:ListBotLocales", - "lex:ListIntents", - "lex:ListSlotTypes", - "lex:ListSlots", - }, - ResourceType: "bot", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "playbackConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing import", - Privilege: "DescribeImport", + Description: "Grants permission to retrieve prefetch schedule for a playback configuration with the specified prefetch schedule name", + Privilege: "GetPrefetchSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", + ResourceType: "playbackConfiguration*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "prefetchSchedule*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing intent", - Privilege: "DescribeIntent", + Description: "Grants permission to retrieve the list of alerts on a resource", + Privilege: "ListAlerts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing resource policy for a Lex resource", - Privilege: "DescribeResourcePolicy", + Description: "Grants permission to retrieve the list of existing channels", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing slot", - Privilege: "DescribeSlot", + Description: "Grants permission to retrieve the list of existing live sources on the source location with the specified source location name", + Privilege: "ListLiveSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing slot type", - Privilege: "DescribeSlotType", + AccessLevel: "List", + Description: "Grants permission to retrieve the list of available configurations", + Privilege: "ListPlaybackConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve test execution metadata", - Privilege: "DescribeTestExecution", + AccessLevel: "List", + Description: "Grants permission to retrieve the list of prefetch schedules for a playback configuration", + Privilege: "ListPrefetchSchedules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "playbackConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an existing test set", - Privilege: "DescribeTestSet", + Description: "Grants permission to retrieve the list of existing source locations", + Privilege: "ListSourceLocations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve test set discrepancy report metadata", - Privilege: "DescribeTestSetDiscrepancyReport", + Description: "Grants permission to list the tags assigned to the specified playback configuration resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve test set generation metadata", - Privilege: "DescribeTestSetGeneration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "liveSource", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to generate supported fields or elements for a bot", - Privilege: "GenerateBotElement", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "playbackConfiguration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve session information for a bot alias and user ID", - Privilege: "GetSession", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "sourceLocation", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve artifacts URL for a test execution", - Privilege: "GetTestExecutionArtifactsUrl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "vodSource", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list utterances and statistics for a bot", - Privilege: "ListAggregatedUtterances", + AccessLevel: "Read", + Description: "Grants permission to retrieve the list of existing VOD sources on the source location with the specified source location name", + Privilege: "ListVodSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list alias replicas in a bot replica", - Privilege: "ListBotAliasReplicas", + AccessLevel: "Permissions management", + Description: "Grants permission to set the IAM policy on the channel with the specified channel name", + Privilege: "PutChannelPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list bot aliases in an bot", - Privilege: "ListBotAliases", + AccessLevel: "Write", + Description: "Grants permission to add a new configuration", + Privilege: "PutPlaybackConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list bot channels", - Privilege: "ListBotChannels", + AccessLevel: "Write", + Description: "Grants permission to start the channel with the specified channel name", + Privilege: "StartChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list bot locales in a bot", - Privilege: "ListBotLocales", + AccessLevel: "Write", + Description: "Grants permission to stop the channel with the specified channel name", + Privilege: "StopChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of bot recommendations that meet the specified criteria", - Privilege: "ListBotRecommendations", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the specified playback configuration resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list replicas of a bot", - Privilege: "ListBotReplicas", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "liveSource", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the resource generations for a bot", - Privilege: "ListBotResourceGenerations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "playbackConfiguration", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list version replicas in a bot replica", - Privilege: "ListBotVersionReplicas", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "sourceLocation", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing bot versions", - Privilege: "ListBotVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "vodSource", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing bots", - Privilege: "ListBots", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list built-in intents", - Privilege: "ListBuiltInIntents", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified playback configuration resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list built-in slot types", - Privilege: "ListBuiltInSlotTypes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "liveSource", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list items of an existing custom vocabulary", - Privilege: "ListCustomVocabularyItems", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "playbackConfiguration", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing exports", - Privilege: "ListExports", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sourceLocation", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing imports", - Privilege: "ListImports", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "vodSource", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list intent analytics metrics for a bot", - Privilege: "ListIntentMetrics", + AccessLevel: "Write", + Description: "Grants permission to update the channel with the specified channel name", + Privilege: "UpdateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list intent path analytics for a bot", - Privilege: "ListIntentPaths", + AccessLevel: "Write", + Description: "Grants permission to update the live source with the specified live source name on the source location with the specified source location name", + Privilege: "UpdateLiveSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "liveSource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list intentStage analytics metrics for a bot", - Privilege: "ListIntentStageMetrics", + AccessLevel: "Write", + Description: "Grants permission to update the program with the specified program name on the channel with the specified channel name", + Privilege: "UpdateProgram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "program*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list intents in a bot", - Privilege: "ListIntents", + AccessLevel: "Write", + Description: "Grants permission to update the source location with the specified source location name", + Privilege: "UpdateSourceLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "sourceLocation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of recommended intents provided by the bot recommendation", - Privilege: "ListRecommendedIntents", + AccessLevel: "Write", + Description: "Grants permission to update the VOD source with the specified VOD source name on the source location with the specified source location name", + Privilege: "UpdateVodSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "vodSource*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list session analytics data for a bot", - Privilege: "ListSessionAnalyticsData", + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:playbackConfiguration/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "playbackConfiguration", + }, + { + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:prefetchSchedule/${ResourceId}", + ConditionKeys: []string{}, + Resource: "prefetchSchedule", + }, + { + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:channel/${ChannelName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "channel", + }, + { + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:program/${ChannelName}/${ProgramName}", + ConditionKeys: []string{}, + Resource: "program", + }, + { + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:sourceLocation/${SourceLocationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "sourceLocation", + }, + { + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:vodSource/${SourceLocationName}/${VodSourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "vodSource", + }, + { + Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:liveSource/${SourceLocationName}/${LiveSourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "liveSource", + }, + }, + ServiceName: "AWS Elemental MediaTailor", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "medical-imaging", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to copy an image set", + Privilege: "CopyImageSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list session analytics metrics for a bot", - Privilege: "ListSessionMetrics", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "imageset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list slot types in a bot", - Privilege: "ListSlotTypes", + AccessLevel: "Write", + Description: "Grants permission to create a data store to ingest imaging data", + Privilege: "CreateDatastore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list slots in an intent", - Privilege: "ListSlots", + AccessLevel: "Write", + Description: "Grants permission to delete a data store", + Privilege: "DeleteDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists tags for a Lex resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an image set", + Privilege: "DeleteImageSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "datastore*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "imageset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve test results data for a test execution", - Privilege: "ListTestExecutionResultItems", + Description: "Grants permission to get an import job's properties", + Privilege: "GetDICOMImportJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lex:ListTestSetRecords", - }, - ResourceType: "test set*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list test executions", - Privilege: "ListTestExecutions", + AccessLevel: "Read", + Description: "Grants permission to get dicom instance in dcm format", + Privilege: "GetDICOMInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve records inside an existing test set", - Privilege: "ListTestSetRecords", + Description: "Grants permission to get dicom instance frames in format requested by the customer", + Privilege: "GetDICOMInstanceFrames", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list test sets", - Privilege: "ListTestSets", + AccessLevel: "Read", + Description: "Grants permission to get dicom instance metadata in DICOM JSON format", + Privilege: "GetDICOMInstanceMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new session or modify an existing session for a bot alias and user ID", - Privilege: "PutSession", + AccessLevel: "Read", + Description: "Grants permission to get data store properties", + Privilege: "GetDatastore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send user input (text-only) to an bot alias", - Privilege: "RecognizeText", + AccessLevel: "Read", + Description: "Grants permission to get image frame properties", + Privilege: "GetImageFrame", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "datastore*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send user input (text or speech) to an bot alias", - Privilege: "RecognizeUtterance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "imageset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search for associated transcripts that meet the specified criteria", - Privilege: "SearchAssociatedTranscripts", + AccessLevel: "Read", + Description: "Grants permission to get image set properties", + Privilege: "GetImageSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "imageset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a bot recommendation for an existing bot locale", - Privilege: "StartBotRecommendation", + AccessLevel: "Read", + Description: "Grants permission to get image set metadata properties", + Privilege: "GetImageSetMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "imageset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a resource generation for an existing bot locale", - Privilege: "StartBotResourceGeneration", + AccessLevel: "List", + Description: "Grants permission to list import jobs for a data store", + Privilege: "ListDICOMImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stream user input (speech/text/DTMF) to a bot alias", - Privilege: "StartConversation", + AccessLevel: "List", + Description: "Grants permission to list data stores", + Privilege: "ListDatastores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a new import with the uploaded import file", - Privilege: "StartImport", + AccessLevel: "List", + Description: "Grants permission to list versions of an image set", + Privilege: "ListImageSetVersions", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "lex:CreateBot", - "lex:CreateBotLocale", - "lex:CreateCustomVocabulary", - "lex:CreateIntent", - "lex:CreateSlot", - "lex:CreateSlotType", - "lex:CreateTestSet", - "lex:DeleteBotLocale", - "lex:DeleteCustomVocabulary", - "lex:DeleteIntent", - "lex:DeleteSlot", - "lex:DeleteSlotType", - "lex:UpdateBot", - "lex:UpdateBotLocale", - "lex:UpdateCustomVocabulary", - "lex:UpdateIntent", - "lex:UpdateSlot", - "lex:UpdateSlotType", - "lex:UpdateTestSet", - }, - ResourceType: "bot", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "datastore*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "imageset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a test execution using a test set", - Privilege: "StartTestExecution", + AccessLevel: "List", + Description: "Grants permission to list tags for a medical imaging resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "datastore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "imageset", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to generate a test set", - Privilege: "StartTestSetGeneration", + AccessLevel: "Read", + Description: "Grants permission to search image sets", + Privilege: "SearchImageSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a bot recommendation for an existing bot locale", - Privilege: "StopBotRecommendation", + Description: "Grants permission to start a DICOM import job", + Privilege: "StartDICOMImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite tags of a Lex resource", + Description: "Grants permission to add tags to a medical imaging resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "datastore", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "imageset", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -170232,23 +213404,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a Lex resource", + Description: "Grants permission to remove tags from a medical imaging resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "datastore", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "test set", + ResourceType: "imageset", }, { ConditionKeys: []string{ @@ -170261,266 +213428,238 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an existing bot", - Privilege: "UpdateBot", + Description: "Grants permission to update image set metadata properties", + Privilege: "UpdateImageSetMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "datastore*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing bot alias", - Privilege: "UpdateBotAlias", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias*", + ResourceType: "imageset*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update an existing bot locale", - Privilege: "UpdateBotLocale", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot*", - }, + Arn: "arn:${Partition}:medical-imaging:${Region}:${Account}:datastore/${DatastoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "datastore", }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing bot recommendation request", - Privilege: "UpdateBotRecommendation", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot*", - }, + Arn: "arn:${Partition}:medical-imaging:${Region}:${Account}:datastore/${DatastoreId}/imageset/${ImageSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "imageset", }, + }, + ServiceName: "AWS HealthImaging", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to update an existing custom vocabulary", - Privilege: "UpdateCustomVocabulary", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the tags that are passed in the request", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing export", - Privilege: "UpdateExport", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot*", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "memorydb:TLSEnabled", + Description: "Filters access by the TLSEnabled parameter present in the request or defaults to true value if parameter is not present", + Type: "Bool", + }, + { + Condition: "memorydb:UserAuthenticationMode", + Description: "Filters access by the UserAuthenticationMode.Type parameter in the request", + Type: "String", }, + }, + Prefix: "memorydb", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update an existing intent", - Privilege: "UpdateIntent", + Description: "Grants permissions to apply service updates", + Privilege: "BatchUpdateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "s3:GetObject", + }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing resource policy for a Lex resource", - Privilege: "UpdateResourcePolicy", + Description: "Allows an IAM user or role to connect as a specified MemoryDB user to a node in a cluster", + Privilege: "Connect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bot alias", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing slot", - Privilege: "UpdateSlot", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "bot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing slot type", - Privilege: "UpdateSlotType", + Description: "Grants permissions to make a copy of an existing snapshot", + Privilege: "CopySnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bot*", + ConditionKeys: []string{}, + DependentActions: []string{ + "memorydb:TagResource", + "s3:DeleteObject", + "s3:GetBucketAcl", + "s3:PutObject", + }, + ResourceType: "snapshot*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing test set", - Privilege: "UpdateTestSet", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "test set*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:lex:${Region}:${Account}:bot/${BotId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "bot", - }, - { - Arn: "arn:${Partition}:lex:${Region}:${Account}:bot-alias/${BotId}/${BotAliasId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "bot alias", - }, - { - Arn: "arn:${Partition}:lex:${Region}:${Account}:test-set/${TestSetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "test set", - }, - }, - ServiceName: "Amazon Lex V2", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "license-manager:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", - }, - }, - Prefix: "license-manager", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept a grant", - Privilege: "AcceptGrant", + Description: "Grants permissions to create a new access control list", + Privilege: "CreateAcl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "memorydb:TagResource", + }, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "grant*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to check in license entitlements back to pool", - Privilege: "CheckInLicense", + Description: "Grants permissions to create a cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "memorydb:TagResource", + "s3:GetObject", + }, + ResourceType: "acl*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parametergroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to check out license entitlements for borrow use case", - Privilege: "CheckoutBorrowLicense", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "subnetgroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to check out license entitlements", - Privilege: "CheckoutLicense", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiregioncluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new grant for license", - Privilege: "CreateGrant", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create new version of grant", - Privilege: "CreateGrantVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "memorydb:TLSEnabled", + }, DependentActions: []string{}, - ResourceType: "grant*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new license", - Privilege: "CreateLicense", + Description: "Grants permissions to create a Multi-Region cluster", + Privilege: "CreateMultiRegionCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "memorydb:TagResource", + }, + ResourceType: "multiregionparametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "memorydb:TLSEnabled", + }, DependentActions: []string{}, ResourceType: "", }, @@ -170528,26 +213667,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new license configuration", - Privilege: "CreateLicenseConfiguration", + Description: "Grants permissions to create a new parameter group", + Privilege: "CreateParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "memorydb:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a license conversion task for a resource", - Privilege: "CreateLicenseConversionTaskForResource", + Description: "Grants permissions to create a backup of a cluster at the current point in time", + Privilege: "CreateSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "memorydb:TagResource", + "s3:DeleteObject", + "s3:GetBucketAcl", + "s3:PutObject", + }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -170555,98 +213710,170 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a report generator for a license configuration", - Privilege: "CreateLicenseManagerReportGenerator", + Description: "Grants permissions to create a new subnet group", + Privilege: "CreateSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "memorydb:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create new version of license", - Privilege: "CreateLicenseVersion", + Description: "Grants permissions to create a new user", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "license*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "memorydb:UserAuthenticationMode", + }, + DependentActions: []string{ + "memorydb:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new token for license", - Privilege: "CreateToken", + Description: "Grants permissions to delete an access control list", + Privilege: "DeleteAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "acl*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a grant", - Privilege: "DeleteGrant", + Description: "Grants permissions to delete a previously provisioned cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "cluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "grant*", + ResourceType: "multiregioncluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a license", - Privilege: "DeleteLicense", + Description: "Grants permissions to delete a Multi-Region cluster", + Privilege: "DeleteMultiRegionCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "multiregioncluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to permanently delete a license configuration", - Privilege: "DeleteLicenseConfiguration", + Description: "Grants permissions to delete a parameter group", + Privilege: "DeleteParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a report generator", - Privilege: "DeleteLicenseManagerReportGenerator", + Description: "Grants permissions to delete a snapshot", + Privilege: "DeleteSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-generator*", + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete token", - Privilege: "DeleteToken", + Description: "Grants permissions to delete a subnet group", + Privilege: "DeleteSubnetGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -170654,152 +213881,189 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to extend consumption period of already checkout license entitlements", - Privilege: "ExtendLicenseConsumption", + Description: "Grants permissions to delete a user", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get access token", - Privilege: "GetAccessToken", + Description: "Grants permissions to retrieve information about access control lists", + Privilege: "DescribeAcls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "acl*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a grant", - Privilege: "GetGrant", + Description: "Grants permissions to retrieve information about all provisioned clusters if no cluster identifier is specified, or about a specific cluster if a cluster identifier is supplied", + Privilege: "DescribeClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "grant*", + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a license", - Privilege: "GetLicense", + Description: "Grants permissions to list of the available engines and their versions", + Privilege: "DescribeEngineVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a license configuration", - Privilege: "GetLicenseConfiguration", + Description: "Grants permissions to retrieve events related to clusters, subnet groups, and parameter groups", + Privilege: "DescribeEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a license conversion task", - Privilege: "GetLicenseConversionTask", + Description: "Grants permissions to retrieve information about all Multi-Region clusters if no cluster identifier is specified, or about a specific Multi-Region cluster if a cluster identifier is supplied", + Privilege: "DescribeMultiRegionClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "multiregioncluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a report generator", - Privilege: "GetLicenseManagerReportGenerator", + Description: "Grants permissions to retrieve information about Multi-Region parameter groups", + Privilege: "DescribeMultiRegionParameterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-generator*", + ResourceType: "multiregionparametergroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a license usage", - Privilege: "GetLicenseUsage", + Description: "Grants permissions to retrieve a detailed parameter list for a particular Multi-Region parameter group", + Privilege: "DescribeMultiRegionParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "multiregionparametergroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get service settings", - Privilege: "GetServiceSettings", + AccessLevel: "Read", + Description: "Grants permissions to retrieve information about parameter groups", + Privilege: "DescribeParameterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list associations for a selected license configuration", - Privilege: "ListAssociationsForLicenseConfiguration", + AccessLevel: "Read", + Description: "Grants permissions to retrieve a detailed parameter list for a particular parameter group", + Privilege: "DescribeParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "parametergroup*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list distributed grants", - Privilege: "ListDistributedGrants", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the license configuration operations that failed", - Privilege: "ListFailuresForLicenseConfigurationOperations", + AccessLevel: "Read", + Description: "Grants permissions to retrieve reserved nodes", + Privilege: "DescribeReservedNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "reservednode*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list license configurations", - Privilege: "ListLicenseConfigurations", + Description: "Grants permissions to retrieve reserved nodes offerings", + Privilege: "DescribeReservedNodesOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -170809,9 +214073,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list license conversion tasks", - Privilege: "ListLicenseConversionTasks", + AccessLevel: "Read", + Description: "Grants permissions to retrieve details of the service updates", + Privilege: "DescribeServiceUpdates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -170821,175 +214085,210 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list report generators", - Privilege: "ListLicenseManagerReportGenerators", + AccessLevel: "Read", + Description: "Grants permissions to retrieve information about cluster snapshots", + Privilege: "DescribeSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration", + ResourceType: "snapshot*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list license specifications associated with a selected resource", - Privilege: "ListLicenseSpecificationsForResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list license versions", - Privilege: "ListLicenseVersions", + AccessLevel: "Read", + Description: "Grants permissions to retrieve a list of subnet group", + Privilege: "DescribeSubnetGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license*", + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list licenses", - Privilege: "ListLicenses", + Description: "Grants permissions to retrieve information about users", + Privilege: "DescribeUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list received grants", - Privilege: "ListReceivedGrants", + AccessLevel: "Write", + Description: "Grants permissions to test automatic failover on a specified shard in a cluster", + Privilege: "FailoverShard", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list received grants for organization", - Privilege: "ListReceivedGrantsForOrganization", + AccessLevel: "Read", + Description: "Grants permissions to list available Multi-Region cluster updates", + Privilege: "ListAllowedMultiRegionClusterUpdates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "multiregioncluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list received licenses", - Privilege: "ListReceivedLicenses", + AccessLevel: "Read", + Description: "Grants permissions to list available node type updates", + Privilege: "ListAllowedNodeTypeUpdates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list received licenses for organization", - Privilege: "ListReceivedLicensesForOrganization", + AccessLevel: "Read", + Description: "Grants permissions to list cost allocation tags", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "acl", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list resource inventory", - Privilege: "ListResourceInventory", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list tags for a selected resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "multiregioncluster", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list tokens", - Privilege: "ListTokens", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parametergroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list usage records for selected license configuration", - Privilege: "ListUsageForLicenseConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject a grant", - Privilege: "RejectGrant", + Description: "Grants permissions to purchase a new reserved node", + Privilege: "PurchaseReservedNodesOffering", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "memorydb:TagResource", + }, + ResourceType: "reservednode*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "grant*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a selected resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permissions to modify the parameters of a parameter group to the engine or system default value", + Privilege: "ResetParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "parametergroup*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -170998,407 +214297,479 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag a selected resource", - Privilege: "UntagResource", + Description: "Grants permissions to add up to 10 cost allocation tags to the named resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "acl", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing license configuration", - Privilege: "UpdateLicenseConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a report generator for a license configuration", - Privilege: "UpdateLicenseManagerReportGenerator", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "report-generator*", + ResourceType: "multiregioncluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to updates license specifications for a selected resource", - Privilege: "UpdateLicenseSpecificationsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "license-configuration*", + ResourceType: "parametergroup", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to updates service settings", - Privilege: "UpdateServiceSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reservednode", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:license-manager:${Region}:${Account}:license-configuration:${LicenseConfigurationId}", - ConditionKeys: []string{ - "license-manager:ResourceTag/${TagKey}", - }, - Resource: "license-configuration", - }, - { - Arn: "arn:${Partition}:license-manager::${Account}:license:${LicenseId}", - ConditionKeys: []string{}, - Resource: "license", - }, - { - Arn: "arn:${Partition}:license-manager::${Account}:grant:${GrantId}", - ConditionKeys: []string{}, - Resource: "grant", - }, - { - Arn: "arn:${Partition}:license-manager:${Region}:${Account}:report-generator:${ReportGeneratorId}", - ConditionKeys: []string{ - "license-manager:ResourceTag/${TagKey}", - }, - Resource: "report-generator", - }, - }, - ServiceName: "AWS License Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "license-manager-linux-subscriptions", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to get the service settings for Linux subscriptions in AWS License Manager", - Privilege: "GetServiceSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all instances with Linux subscriptions in AWS License Manager", - Privilege: "ListLinuxSubscriptionInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subnetgroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all Linux subscriptions in AWS License Manager", - Privilege: "ListLinuxSubscriptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the service settings for Linux subscriptions in AWS License Manager", - Privilege: "UpdateServiceSettings", + AccessLevel: "Tagging", + Description: "Grants permissions to remove the tags identified by the TagKeys list from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "acl", }, - }, - }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS License Manager Linux Subscriptions Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "license-manager-user-subscriptions", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate a subscribed user to an instance launched with license manager user subscriptions products", - Privilege: "AssociateUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deregister Microsoft Active Directory with license-manager-user-subscriptions for a product", - Privilege: "DeregisterIdentityProvider", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multiregioncluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a subscribed user from an instance launched with license manager user subscriptions products", - Privilege: "DisassociateUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parametergroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all the identity providers on license manager user subscriptions", - Privilege: "ListIdentityProviders", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all the instances launched with license manager user subscription products", - Privilege: "ListInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to lists all the product subscriptions for a product and identity provider", - Privilege: "ListProductSubscriptions", + AccessLevel: "Write", + Description: "Grants permissions to update an access control list", + Privilege: "UpdateAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "acl*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the users associated to an instance launched for a product", - Privilege: "ListUserAssociations", + AccessLevel: "Write", + Description: "Grants permissions to update the settings for a cluster", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "acl", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "parametergroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to registers Microsoft Active Directory with license-manager-user-subscriptions for a product", - Privilege: "RegisterIdentityProvider", + Description: "Grants permissions to update the settings for a Multi-Region cluster", + Privilege: "UpdateMultiRegionCluster", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "multiregioncluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "multiregionparametergroup", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start product subscription for a user on a registered active directory for a product", - Privilege: "StartProductSubscription", + Description: "Grants permissions to update parameters in a parameter group", + Privilege: "UpdateParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "parametergroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop product subscription for a user on a registered active directory for a product", - Privilege: "StopProductSubscription", + Description: "Grants permissions to update a subnet group", + Privilege: "UpdateSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "subnetgroup*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the identity provider configuration", - Privilege: "UpdateIdentityProviderSettings", + Description: "Grants permissions to update a user", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "user*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "memorydb:UserAuthenticationMode", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, }, - Resources: []ParliamentResource{}, - ServiceName: "AWS License Manager User Subscriptions", + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:memorydb::${Account}:multiregionparametergroup/${MultiRegionParameterGroupName}", + ConditionKeys: []string{}, + Resource: "multiregionparametergroup", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:parametergroup/${ParameterGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "parametergroup", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:subnetgroup/${SubnetGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "subnetgroup", + }, + { + Arn: "arn:${Partition}:memorydb::${Account}:multiregioncluster/${ClusterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "memorydb:TLSEnabled", + }, + Resource: "multiregioncluster", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:cluster/${ClusterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:snapshot/${SnapshotName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "snapshot", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:user/${UserName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "user", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:acl/${AclName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "acl", + }, + { + Arn: "arn:${Partition}:memorydb:${Region}:${Account}:reservednode/${ReservationID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "reservednode", + }, + }, + ServiceName: "Amazon MemoryDB", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", + Description: "Filters access based on the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", + Description: "Filters access based on the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", + Description: "Filters access based on the tag keys that are passed in the request", Type: "ArrayOfString", }, + { + Condition: "mgh:AutomationRunResourceRunID", + Description: "AutomationRunResource resource runID identifier", + Type: "String", + }, + { + Condition: "mgh:AutomationUnitResourceAutomationUnitArn", + Description: "AutomationUnitResource resource automationUnitArn identifier", + Type: "ARN", + }, + { + Condition: "mgh:ConnectionResourceConnectionArn", + Description: "ConnectionResource resource connectionArn identifier", + Type: "String", + }, }, - Prefix: "lightsail", + Prefix: "mgh", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a static IP address that can be attached to an instance", - Privilege: "AllocateStaticIp", + Description: "Grants permission to accept a connection", + Privilege: "AcceptConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "ConnectionResource*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach an SSL/TLS certificate to your Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "AttachCertificateToDistribution", + Description: "Grants permission to associate an IAM role to an automation unit", + Privilege: "AssociateAutomationUnitRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Certificate*", + ResourceType: "AutomationUnitResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a given AWS artifact to a MigrationTask", + Privilege: "AssociateCreatedArtifact", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution*", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a disk to an instance", - Privilege: "AttachDisk", + Description: "Grants permission to associate a given ADS resource to a MigrationTask", + Privilege: "AssociateDiscoveredResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Disk*", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach one or more instances to a load balancer", - Privilege: "AttachInstancesToLoadBalancer", + Description: "Grants permission to associate source resource", + Privilege: "AssociateSourceResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer*", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a TLS certificate to a load balancer", - Privilege: "AttachLoadBalancerTlsCertificate", + Description: "Grants permission to batch-associate IAM roles with a connection", + Privilege: "BatchAssociateIamRoleWithConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer*", + ResourceType: "ConnectionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a static IP address to an instance", - Privilege: "AttachStaticIp", + Description: "Grants permission to batch-disassociate IAM roles from a connection", + Privilege: "BatchDisassociateIamRoleFromConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "ConnectionResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an automation unit run", + Privilege: "CreateAutomationRun", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StaticIp*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to close a public port of an instance", - Privilege: "CloseInstancePublicPorts", + Description: "Grants permission to create an automation unit", + Privilege: "CreateAutomationUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy a snapshot from one AWS Region to another in Amazon Lightsail", - Privilege: "CopySnapshot", + Description: "Grants permission to create a Migration Hub Home Region Control", + Privilege: "CreateHomeRegionControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -171409,65 +214780,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Lightsail bucket", - Privilege: "CreateBucket", + Description: "Grants permission to create a ProgressUpdateStream", + Privilege: "CreateProgressUpdateStream", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "progressUpdateStream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new access key for the specified bucket", - Privilege: "CreateBucketAccessKey", + Description: "Grants permission to delete an automation unit run", + Privilege: "DeleteAutomationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket*", + ResourceType: "AutomationRunResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an SSL/TLS certificate", - Privilege: "CreateCertificate", + Description: "Grants permission to delete an automation unit", + Privilege: "DeleteAutomationUnit", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "lightsail:CreateDomainEntry", - "lightsail:GetDomains", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AutomationUnitResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new Amazon EC2 instance from an exported Amazon Lightsail snapshot", - Privilege: "CreateCloudFormationStack", + Description: "Grants permission to delete a connection", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConnectionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an email or SMS text message contact method", - Privilege: "CreateContactMethod", + Description: "Grants permission to delete a Migration Hub Home Region Control", + Privilege: "DeleteHomeRegionControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -171478,113 +214840,143 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Lightsail container service", - Privilege: "CreateContainerService", + Description: "Grants permission to delete a ProgressUpdateStream", + Privilege: "DeleteProgressUpdateStream", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "progressUpdateStream*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an Application Discovery Service Application's state", + Privilege: "DescribeApplicationState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an automation unit run", + Privilege: "DescribeAutomationRun", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AutomationRunResource*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an automation unit", + Privilege: "DescribeAutomationUnit", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AutomationUnitResource*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Home Region Controls", + Privilege: "DescribeHomeRegionControls", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a deployment for your Amazon Lightsail container service", - Privilege: "CreateContainerServiceDeployment", + AccessLevel: "Read", + Description: "Grants permission to describe a MigrationTask", + Privilege: "DescribeMigrationTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ContainerService*", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a temporary set of log in credentials that you can use to log in to the Docker process on your local machine", - Privilege: "CreateContainerServiceRegistryLogin", + Description: "Grants permission to disassociate an IAM role from an automation unit", + Privilege: "DisassociateAutomationUnitRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AutomationUnitResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a disk", - Privilege: "CreateDisk", + Description: "Grants permission to disassociate a given AWS artifact from a MigrationTask", + Privilege: "DisassociateCreatedArtifact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a disk from snapshot", - Privilege: "CreateDiskFromSnapshot", + Description: "Grants permission to disassociate a given ADS resource from a MigrationTask", + Privilege: "DisassociateDiscoveredResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DiskSnapshot*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a disk snapshot", - Privilege: "CreateDiskSnapshot", + Description: "Grants permission to diassociate source resource", + Privilege: "DisassociateSourceResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Disk", + ResourceType: "migrationTask*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a connection", + Privilege: "GetConnection", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConnectionResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "CreateDistribution", + AccessLevel: "Read", + Description: "Grants permission to get the Migration Hub Home Region", + Privilege: "GetHomeRegion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -171592,221 +214984,164 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a domain resource for the specified domain name", - Privilege: "CreateDomain", + Description: "Grants permission to import a MigrationTask", + Privilege: "ImportMigrationTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "route53:DeleteHostedZone", - "route53:GetHostedZone", - "route53:ListHostedZonesByName", - "route53domains:GetDomainDetail", - "route53domains:GetOperationDetail", - "route53domains:ListDomains", - "route53domains:ListOperations", - "route53domains:UpdateDomainNameservers", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "migrationTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create one or more DNS record entries for a domain resource: Address (A), canonical name (CNAME), mail exchanger (MX), name server (NS), start of authority (SOA), service locator (SRV), or text (TXT)", - Privilege: "CreateDomainEntry", + AccessLevel: "List", + Description: "Grants permission to list Application statuses", + Privilege: "ListApplicationStates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create URLs that are used to access an instance's graphical user interface (GUI) session", - Privilege: "CreateGUISessionAccessDetails", + AccessLevel: "List", + Description: "Grants permission to list automation unit runs", + Privilege: "ListAutomationRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an instance snapshot", - Privilege: "CreateInstanceSnapshot", + AccessLevel: "List", + Description: "Grants permission to list automation units", + Privilege: "ListAutomationUnits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create one or more instances", - Privilege: "CreateInstances", + AccessLevel: "List", + Description: "Grants permission to list connection roles", + Privilege: "ListConnectionRoles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConnectionResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create one or more instances based on an instance snapshot", - Privilege: "CreateInstancesFromSnapshot", + AccessLevel: "List", + Description: "Grants permission to list connections", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InstanceSnapshot*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a key pair used to authenticate and connect to an instance", - Privilege: "CreateKeyPair", + AccessLevel: "List", + Description: "Grants permission to list associated created artifacts for a MigrationTask", + Privilege: "ListCreatedArtifacts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "migrationTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a load balancer", - Privilege: "CreateLoadBalancer", + AccessLevel: "List", + Description: "Grants permission to list associated ADS resources from MigrationTask", + Privilege: "ListDiscoveredResources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "lightsail:CreateDomainEntry", - "lightsail:GetDomains", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "migrationTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a load balancer TLS certificate", - Privilege: "CreateLoadBalancerTlsCertificate", + AccessLevel: "List", + Description: "Grants permission to list migration tasks updates", + Privilege: "ListMigrationTaskUpdates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "lightsail:CreateDomainEntry", - "lightsail:GetDomains", - }, - ResourceType: "LoadBalancer*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "migrationTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new relational database", - Privilege: "CreateRelationalDatabase", + AccessLevel: "List", + Description: "Grants permission to list MigrationTasks", + Privilege: "ListMigrationTasks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new relational database from a snapshot", - Privilege: "CreateRelationalDatabaseFromSnapshot", + AccessLevel: "List", + Description: "Grants permission to to list ProgressUpdateStreams", + Privilege: "ListProgressUpdateStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabaseSnapshot*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a relational database snapshot", - Privilege: "CreateRelationalDatabaseSnapshot", + AccessLevel: "List", + Description: "Grants permission to list source resources", + Privilege: "ListSourceResources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "migrationTask*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an alarm", - Privilege: "DeleteAlarm", + AccessLevel: "List", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alarm*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an automatic snapshot of an instance or disk", - Privilege: "DeleteAutoSnapshot", + Description: "Grants permission to update an Application Discovery Service Application's state", + Privilege: "NotifyApplicationState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -171817,364 +215152,451 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Lightsail bucket", - Privilege: "DeleteBucket", + Description: "Grants permission to notify latest MigrationTask state", + Privilege: "NotifyMigrationTaskState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket*", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an access key for the specified Amazon Lightsail bucket", - Privilege: "DeleteBucketAccessKey", + Description: "Grants permission to put ResourceAttributes", + Privilege: "PutResourceAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket*", + ResourceType: "migrationTask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an SSL/TLS certificate", - Privilege: "DeleteCertificate", + Description: "Grants permission to reject a connection", + Privilege: "RejectConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Certificate*", + ResourceType: "ConnectionResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a contact method", - Privilege: "DeleteContactMethod", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a container image that is registered to your Amazon Lightsail container service", - Privilege: "DeleteContainerImage", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "ContainerService*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:mgh:${Region}:${Account}:progressUpdateStream/${Stream}", + ConditionKeys: []string{}, + Resource: "progressUpdateStream", + }, + { + Arn: "arn:${Partition}:mgh:${Region}:${Account}:progressUpdateStream/${Stream}/migrationTask/${Task}", + ConditionKeys: []string{}, + Resource: "migrationTask", + }, + { + Arn: "arn:${Partition}:mgh:${Region}:${Account}:automation-run/${RunID}", + ConditionKeys: []string{ + "mgh:AutomationRunResourceRunID", + }, + Resource: "AutomationRunResource", + }, + { + Arn: "arn:${Partition}:mgh:${Region}:${Account}:automation-unit/${AutomationUnitId}", + ConditionKeys: []string{ + "mgh:AutomationUnitResourceAutomationUnitArn", + }, + Resource: "AutomationUnitResource", + }, + { + Arn: "arn:${Partition}:mgh:${Region}:${Account}:${ConnectionArn}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "mgh:ConnectionResourceConnectionArn", + }, + Resource: "ConnectionResource", + }, + }, + ServiceName: "AWS Migration Hub", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "mgn:CreateAction", + Description: "Filters access by the name of a resource-creating API action", + Type: "String", + }, + }, + Prefix: "mgn", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete your Amazon Lightsail container service", - Privilege: "DeleteContainerService", + Description: "Grants permission to archive an application", + Privilege: "ArchiveApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ContainerService*", + ResourceType: "ApplicationResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a disk", - Privilege: "DeleteDisk", + Description: "Grants permission to archive a wave", + Privilege: "ArchiveWave", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Disk*", + ResourceType: "WaveResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a disk snapshot", - Privilege: "DeleteDiskSnapshot", + Description: "Grants permission to associate applications to a wave", + Privilege: "AssociateApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DiskSnapshot*", + ResourceType: "ApplicationResource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WaveResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete your Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "DeleteDistribution", + Description: "Grants permission to associate source servers to an application", + Privilege: "AssociateSourceServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution*", + ResourceType: "ApplicationResource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a domain resource and all of its DNS records", - Privilege: "DeleteDomain", + Description: "Grants permission to create volume snapshot group", + Privilege: "BatchCreateVolumeSnapshotGroupForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a DNS record entry for a domain resource", - Privilege: "DeleteDomainEntry", + Description: "Grants permission to batch delete snapshot request", + Privilege: "BatchDeleteSnapshotRequestForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an instance", - Privilege: "DeleteInstance", + Description: "Grants permission to change source server life cycle state", + Privilege: "ChangeServerLifeCycleState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an instance snapshot", - Privilege: "DeleteInstanceSnapshot", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "InstanceSnapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a key pair used to authenticate and connect to an instance", - Privilege: "DeleteKeyPair", + Description: "Grants permission to create connector", + Privilege: "CreateConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "KeyPair*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the known host key or certificate used by the Amazon Lightsail browser-based SSH or RDP clients to authenticate an instance", - Privilege: "DeleteKnownHostKeys", + Description: "Grants permission to create launch configuration template", + Privilege: "CreateLaunchConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a load balancer", - Privilege: "DeleteLoadBalancer", + Description: "Grants permission to create a network migration definition", + Privilege: "CreateNetworkMigrationDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a load balancer TLS certificate", - Privilege: "DeleteLoadBalancerTlsCertificate", + Description: "Grants permission to create replication configuration template", + Privilege: "CreateReplicationConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "LoadBalancer*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a relational database", - Privilege: "DeleteRelationalDatabase", + Description: "Grants permission to create vcenter client", + Privilege: "CreateVcenterClientForMgn", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a relational database snapshot", - Privilege: "DeleteRelationalDatabaseSnapshot", + Description: "Grants permission to create a wave", + Privilege: "CreateWave", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "RelationalDatabaseSnapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach an SSL/TLS certificate from your Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "DetachCertificateFromDistribution", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution*", + ResourceType: "ApplicationResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach a disk from an instance", - Privilege: "DetachDisk", + Description: "Grants permission to delete connector", + Privilege: "DeleteConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Disk*", + ResourceType: "ConnectorResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach one or more instances from a load balancer", - Privilege: "DetachInstancesFromLoadBalancer", + Description: "Grants permission to delete job", + Privilege: "DeleteJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer*", + ResourceType: "JobResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to detach a static IP from an instance to which it is attached", - Privilege: "DetachStaticIp", + Description: "Grants permission to delete launch configuration template", + Privilege: "DeleteLaunchConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StaticIp*", + ResourceType: "LaunchConfigurationTemplateResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable an add-on for an Amazon Lightsail resource", - Privilege: "DisableAddOn", + Description: "Grants permission to delete a network migration definition", + Privilege: "DeleteNetworkMigrationDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to download the default key pair used to authenticate and connect to instances in a specific AWS Region", - Privilege: "DownloadDefaultKeyPair", + Description: "Grants permission to delete replication configuration template", + Privilege: "DeleteReplicationConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ReplicationConfigurationTemplateResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or modify an add-on for an Amazon Lightsail resource", - Privilege: "EnableAddOn", + Description: "Grants permission to delete source server", + Privilege: "DeleteSourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export an Amazon Lightsail snapshot to Amazon EC2", - Privilege: "ExportSnapshot", + Description: "Grants permission to delete vcenter client", + Privilege: "DeleteVcenterClient", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PutRolePolicy", - }, - ResourceType: "DiskSnapshot", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InstanceSnapshot", + ResourceType: "VcenterClientResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the names of all active (not deleted) resources", - Privilege: "GetActiveNames", + AccessLevel: "Write", + Description: "Grants permission to delete a wave", + Privilege: "DeleteWave", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WaveResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about the configured alarms", - Privilege: "GetAlarms", + Description: "Grants permission to describe job log items", + Privilege: "DescribeJobLogItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "JobResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the available automatic snapshots for an instance or disk", - Privilege: "GetAutoSnapshots", + AccessLevel: "List", + Description: "Grants permission to describe jobs", + Privilege: "DescribeJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172184,9 +215606,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of instance images, or blueprints. You can use a blueprint to create a new instance already running a specific operating system, as well as a pre-installed application or development stack. The software that runs on your instance depends on the blueprint you define when creating the instance", - Privilege: "GetBlueprints", + AccessLevel: "List", + Description: "Grants permission to describe launch configuration template", + Privilege: "DescribeLaunchConfigurationTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172196,9 +215618,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the existing access key IDs for the specified Amazon Lightsail bucket", - Privilege: "GetBucketAccessKeys", + AccessLevel: "List", + Description: "Grants permission to describe replication configuration template", + Privilege: "DescribeReplicationConfigurationTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172209,8 +215631,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the bundles that can be applied to an Amazon Lightsail bucket", - Privilege: "GetBucketBundles", + Description: "Grants permission to describe replication server associations", + Privilege: "DescribeReplicationServerAssociationsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172221,8 +215643,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the data points of a specific metric for an Amazon Lightsail bucket", - Privilege: "GetBucketMetricData", + Description: "Grants permission to describe snapshots requests", + Privilege: "DescribeSnapshotRequestsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172232,9 +215654,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about one or more Amazon Lightsail buckets", - Privilege: "GetBuckets", + AccessLevel: "List", + Description: "Grants permission to describe source servers", + Privilege: "DescribeSourceServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172244,9 +215666,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of instance bundles. You can use a bundle to create a new instance with a set of performance specifications, such as CPU count, disk size, RAM size, and network transfer allowance. The cost of your instance depends on the bundle you define when creating the instance", - Privilege: "GetBundles", + AccessLevel: "List", + Description: "Grants permission to describe vcenter clients", + Privilege: "DescribeVcenterClients", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172256,93 +215678,91 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about one or more Amazon Lightsail SSL/TLS certificates", - Privilege: "GetCertificates", + AccessLevel: "Write", + Description: "Grants permission to disassociate applications from a wave", + Privilege: "DisassociateApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ApplicationResource*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about all CloudFormation stacks used to create Amazon EC2 resources from exported Amazon Lightsail snapshots", - Privilege: "GetCloudFormationStackRecords", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WaveResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about the configured contact methods", - Privilege: "GetContactMethods", + AccessLevel: "Write", + Description: "Grants permission to disassociate source servers from an application", + Privilege: "DisassociateSourceServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ApplicationResource*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about Amazon Lightsail containers, such as the current version of the Lightsail Control (lightsailctl) plugin", - Privilege: "GetContainerAPIMetadata", + AccessLevel: "Write", + Description: "Grants permission to disconnect source server from service", + Privilege: "DisconnectFromService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the container images that are registered to your Amazon Lightsail container service", - Privilege: "GetContainerImages", + AccessLevel: "Write", + Description: "Grants permission to finalize cutover", + Privilege: "FinalizeCutover", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the log events of a container of your Amazon Lightsail container service", - Privilege: "GetContainerLog", + Description: "Grants permission to get agent command", + Privilege: "GetAgentCommandForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the deployments for your Amazon Lightsail container service", - Privilege: "GetContainerServiceDeployments", + Description: "Grants permission to get agent confirmed resume info", + Privilege: "GetAgentConfirmedResumeInfoForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the data points of a specific metric of your Amazon Lightsail container service", - Privilege: "GetContainerServiceMetricData", + Description: "Grants permission to get agent installation assets", + Privilege: "GetAgentInstallationAssetsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172353,49 +215773,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view the list of powers that can be specified for your Amazon Lightsail container services", - Privilege: "GetContainerServicePowers", + Description: "Grants permission to get agent replication info", + Privilege: "GetAgentReplicationInfoForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about one or more of your Amazon Lightsail container services", - Privilege: "GetContainerServices", + Description: "Grants permission to get agent runtime configuration", + Privilege: "GetAgentRuntimeConfigurationForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the information about the cost estimate for a specified resource", - Privilege: "GetCostEstimate", + Description: "Grants permission to get agent snapshots credits", + Privilege: "GetAgentSnapshotCreditsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Disk", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a disk", - Privilege: "GetDisk", + Description: "Grants permission to get channel commands", + Privilege: "GetChannelCommandsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172406,92 +215821,97 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about a disk snapshot", - Privilege: "GetDiskSnapshot", + Description: "Grants permission to get launch configuration", + Privilege: "GetLaunchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about all disk snapshots", - Privilege: "GetDiskSnapshots", + Description: "Grants permission to get a network migration definition", + Privilege: "GetNetworkMigrationDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about all disks", - Privilege: "GetDisks", + Description: "Grants permission to get a network migration mapper segment construct", + Privilege: "GetNetworkMigrationMapperSegmentConstruct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the list of bundles that can be applied to you Amazon Lightsail content delivery network (CDN) distributions", - Privilege: "GetDistributionBundles", + Description: "Grants permission to get replication configuration", + Privilege: "GetReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the timestamp and status of the last cache reset of a specific Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "GetDistributionLatestCacheReset", + Description: "Grants permission to get vcenter client commands", + Privilege: "GetVcenterClientCommandsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "VcenterClientResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the data points of a specific metric for an Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "GetDistributionMetricData", + AccessLevel: "Write", + Description: "Grants permission to initialize service", + Privilege: "InitializeService", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AddRoleToInstanceProfile", + "iam:CreateInstanceProfile", + "iam:CreateServiceLinkedRole", + "iam:GetInstanceProfile", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about one or more of your Amazon Lightsail content delivery network (CDN) distributions", - Privilege: "GetDistributions", + AccessLevel: "Write", + Description: "Grants permission to issue a client certificate", + Privilege: "IssueClientCertificateForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get DNS records for a domain resource", - Privilege: "GetDomain", + AccessLevel: "List", + Description: "Grants permission to list application summaries", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172502,8 +215922,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get DNS records for all domain resources", - Privilege: "GetDomains", + Description: "Grants permission to list connectors", + Privilege: "ListConnectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172513,21 +215933,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all records of exported Amazon Lightsail snapshots to Amazon EC2", - Privilege: "GetExportSnapshotRecords", + AccessLevel: "List", + Description: "Grants permission to list the errors of an export task", + Privilege: "ListExportErrors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ExportResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an instance", - Privilege: "GetInstance", + AccessLevel: "List", + Description: "Grants permission to list export tasks", + Privilege: "ListExports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172537,21 +215957,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to get temporary keys you can use to authenticate and connect to an instance", - Privilege: "GetInstanceAccessDetails", + AccessLevel: "List", + Description: "Grants permission to list the errors of an import task", + Privilege: "ListImportErrors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "ImportResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the data points for the specified metric of an instance", - Privilege: "GetInstanceMetricData", + AccessLevel: "List", + Description: "Grants permission to list the import tasks", + Privilege: "ListImports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172561,9 +215981,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the port states of an instance", - Privilege: "GetInstancePortStates", + AccessLevel: "List", + Description: "Grants permission to list managed accounts", + Privilege: "ListManagedAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172573,57 +215993,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an instance snapshot", - Privilege: "GetInstanceSnapshot", + AccessLevel: "List", + Description: "Grants permission to list network migration analyses", + Privilege: "ListNetworkMigrationAnalyses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all instance snapshots", - Privilege: "GetInstanceSnapshots", + AccessLevel: "List", + Description: "Grants permission to list network migration analysis results", + Privilege: "ListNetworkMigrationAnalysisResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the state of an instance", - Privilege: "GetInstanceState", + AccessLevel: "List", + Description: "Grants permission to list network migration code generation segments", + Privilege: "ListNetworkMigrationCodeGenerationSegments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all instances", - Privilege: "GetInstances", + AccessLevel: "List", + Description: "Grants permission to list network migration code generations", + Privilege: "ListNetworkMigrationCodeGenerations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a key pair", - Privilege: "GetKeyPair", + AccessLevel: "List", + Description: "Grants permission to list network migration definitions", + Privilege: "ListNetworkMigrationDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172633,105 +216053,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all key pairs", - Privilege: "GetKeyPairs", + AccessLevel: "List", + Description: "Grants permission to list network migration deployed stacks", + Privilege: "ListNetworkMigrationDeployedStacks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a load balancer", - Privilege: "GetLoadBalancer", + AccessLevel: "List", + Description: "Grants permission to list network migration deployed stacks deletions", + Privilege: "ListNetworkMigrationDeployedStacksDeletions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the data points for the specified metric of a load balancer", - Privilege: "GetLoadBalancerMetricData", + AccessLevel: "List", + Description: "Grants permission to list network migration deployments", + Privilege: "ListNetworkMigrationDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a load balancer's TLS certificates", - Privilege: "GetLoadBalancerTlsCertificates", + AccessLevel: "List", + Description: "Grants permission to list network migration executions", + Privilege: "ListNetworkMigrationExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of TLS security policies that you can apply to Lightsail load balancers", - Privilege: "GetLoadBalancerTlsPolicies", + AccessLevel: "List", + Description: "Grants permission to list network migration mapper segment constructs", + Privilege: "ListNetworkMigrationMapperSegmentConstructs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about load balancers", - Privilege: "GetLoadBalancers", + AccessLevel: "List", + Description: "Grants permission to list network migration mapper segments", + Privilege: "ListNetworkMigrationMapperSegments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an operation. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on", - Privilege: "GetOperation", + AccessLevel: "List", + Description: "Grants permission to list network migration mappings", + Privilege: "ListNetworkMigrationMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all operations. Operations include events such as when you create an instance, allocate a static IP, attach a static IP, and so on", - Privilege: "GetOperations", + AccessLevel: "List", + Description: "Grants permission to list source server action documents", + Privilege: "ListSourceServerActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get operations for a resource", - Privilege: "GetOperationsForResource", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172741,21 +216161,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of all valid AWS Regions for Amazon Lightsail", - Privilege: "GetRegions", + AccessLevel: "List", + Description: "Grants permission to list launch configuration template action documents", + Privilege: "ListTemplateActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LaunchConfigurationTemplateResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a relational database", - Privilege: "GetRelationalDatabase", + AccessLevel: "List", + Description: "Grants permission to list wave summaries", + Privilege: "ListWaves", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172765,213 +216185,216 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of relational database images, or blueprints. You can use a blueprint to create a new database running a specific database engine. The database engine that runs on your database depends on the blueprint you define when creating the relational database", - Privilege: "GetRelationalDatabaseBlueprints", + AccessLevel: "Write", + Description: "Grants permission to mark source server as archived", + Privilege: "MarkAsArchived", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of relational database bundles. You can use a bundle to create a new database with a set of performance specifications, such as CPU count, disk size, RAM size, network transfer allowance, and standard of high availability. The cost of your database depends on the bundle you define when creating the relational database", - Privilege: "GetRelationalDatabaseBundles", + AccessLevel: "Write", + Description: "Grants permission to notify agent authentication", + Privilege: "NotifyAgentAuthenticationForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get events for a relational database", - Privilege: "GetRelationalDatabaseEvents", + AccessLevel: "Write", + Description: "Grants permission to notify agent is connected", + Privilege: "NotifyAgentConnectedForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get events for the specified log stream of a relational database", - Privilege: "GetRelationalDatabaseLogEvents", + AccessLevel: "Write", + Description: "Grants permission to notify agent is disconnected", + Privilege: "NotifyAgentDisconnectedForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the log streams available for a relational database", - Privilege: "GetRelationalDatabaseLogStreams", + AccessLevel: "Write", + Description: "Grants permission to notify agent replication progress", + Privilege: "NotifyAgentReplicationProgressForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to get the master user password of a relational database", - Privilege: "GetRelationalDatabaseMasterUserPassword", + Description: "Grants permission to notify vcenter client started", + Privilege: "NotifyVcenterClientStartedForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "VcenterClientResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the data points for the specified metric of a relational database", - Privilege: "GetRelationalDatabaseMetricData", + AccessLevel: "Write", + Description: "Grants permission to pause replication", + Privilege: "PauseReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the parameters of a relational database", - Privilege: "GetRelationalDatabaseParameters", + AccessLevel: "Write", + Description: "Grants permission to put source server action document", + Privilege: "PutSourceServerAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a relational database snapshot", - Privilege: "GetRelationalDatabaseSnapshot", + AccessLevel: "Write", + Description: "Grants permission to put launch configuration template action document", + Privilege: "PutTemplateAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "LaunchConfigurationTemplateResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all relational database snapshots", - Privilege: "GetRelationalDatabaseSnapshots", + AccessLevel: "Write", + Description: "Grants permission to register agent", + Privilege: "RegisterAgentForMgn", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all relational databases", - Privilege: "GetRelationalDatabases", + AccessLevel: "Write", + Description: "Grants permission to remove source server action document", + Privilege: "RemoveSourceServerAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get detailed information for setup requests that were run on the specified resource", - Privilege: "GetSetupHistory", + AccessLevel: "Write", + Description: "Grants permission to remove launch configuration template action document", + Privilege: "RemoveTemplateAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "LaunchConfigurationTemplateResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a static IP", - Privilege: "GetStaticIp", + AccessLevel: "Write", + Description: "Grants permission to resume replication", + Privilege: "ResumeReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about all static IPs", - Privilege: "GetStaticIps", + AccessLevel: "Write", + Description: "Grants permission to retry replication", + Privilege: "RetryDataReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import a public key from a key pair", - Privilege: "ImportKeyPair", + Description: "Grants permission to send agent logs", + Privilege: "SendAgentLogsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a boolean value indicating whether the Amazon Lightsail virtual private cloud (VPC) is peered", - Privilege: "IsVpcPeered", + AccessLevel: "Write", + Description: "Grants permission to send agent metrics", + Privilege: "SendAgentMetricsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add, or open a public port of an instance", - Privilege: "OpenInstancePublicPorts", + Description: "Grants permission to send channel command result", + Privilege: "SendChannelCommandResultForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to try to peer the Amazon Lightsail virtual private cloud (VPC) with the default VPC", - Privilege: "PeerVpc", + Description: "Grants permission to send client logs", + Privilege: "SendClientLogsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -172982,299 +216405,604 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to creates or update an alarm, and associate it with the specified metric", - Privilege: "PutAlarm", + Description: "Grants permission to send client metrics", + Privilege: "SendClientMetricsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alarm*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the specified open ports for an instance, and closes all ports for every protocol not included in the request", - Privilege: "PutInstancePublicPorts", + Description: "Grants permission to send vcenter client command result", + Privilege: "SendVcenterClientCommandResultForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "VcenterClientResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reboot an instance that is in a running state", - Privilege: "RebootInstance", + Description: "Grants permission to send vcenter client logs", + Privilege: "SendVcenterClientLogsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "VcenterClientResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reboot a relational database that is in a running state", - Privilege: "RebootRelationalDatabase", + Description: "Grants permission to send vcenter client metrics", + Privilege: "SendVcenterClientMetricsForMgn", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "VcenterClientResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a container image to your Amazon Lightsail container service", - Privilege: "RegisterContainerImage", + Description: "Grants permission to start cutover", + Privilege: "StartCutover", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ContainerService*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateLaunchTemplate", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateSecurityGroup", + "ec2:CreateSnapshot", + "ec2:CreateTags", + "ec2:CreateVolume", + "ec2:DeleteLaunchTemplateVersions", + "ec2:DeleteSnapshot", + "ec2:DeleteVolume", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstances", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSnapshots", + "ec2:DescribeSubnets", + "ec2:DescribeVolumes", + "ec2:DetachVolume", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyLaunchTemplate", + "ec2:ReportInstanceStatus", + "ec2:RevokeSecurityGroupEgress", + "ec2:RunInstances", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:TerminateInstances", + "iam:PassRole", + "mgn:ListTagsForResource", + }, + ResourceType: "SourceServerResource*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a static IP", - Privilege: "ReleaseStaticIp", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "StaticIp*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete currently cached content from your Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "ResetDistributionCache", + Description: "Grants permission to start an export task", + Privilege: "StartExport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Distribution*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeLaunchTemplateVersions", + "mgn:DescribeSourceServers", + "mgn:GetLaunchConfiguration", + "mgn:ListApplications", + "mgn:ListWaves", + "s3:PutObject", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send a verification request to an email contact method to ensure it's owned by the requester", - Privilege: "SendContactMethodVerification", + Description: "Grants permission to create an import task", + Privilege: "StartImport", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateLaunchTemplateVersion", + "ec2:DescribeLaunchTemplateVersions", + "ec2:ModifyLaunchTemplate", + "mgn:DescribeSourceServers", + "mgn:GetLaunchConfiguration", + "mgn:ListApplications", + "mgn:ListWaves", + "mgn:TagResource", + "mgn:UpdateLaunchConfiguration", + "s3:PutObject", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the IP address type for a Amazon Lightsail resource", - Privilege: "SetIpAddressType", + Description: "Grants permission to start a network migration analysis", + Privilege: "StartNetworkMigrationAnalysis", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Distribution", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "LoadBalancer", + ConditionKeys: []string{}, + DependentActions: []string{ + "directconnect:DescribeConnections", + "directconnect:DescribeDirectConnectGatewayAssociations", + "directconnect:DescribeDirectConnectGatewayAttachments", + "directconnect:DescribeDirectConnectGateways", + "directconnect:DescribeVirtualGateways", + "directconnect:DescribeVirtualInterfaces", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNetworkInsightsPath", + "ec2:CreateNetworkInterface", + "ec2:CreateSecurityGroup", + "ec2:CreateTags", + "ec2:DeleteNetworkInsightsAnalysis", + "ec2:DeleteNetworkInsightsPath", + "ec2:DeleteNetworkInterface", + "ec2:DeleteSecurityGroup", + "ec2:DeleteTags", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeCustomerGateways", + "ec2:DescribeInstances", + "ec2:DescribeInternetGateways", + "ec2:DescribeManagedPrefixLists", + "ec2:DescribeNatGateways", + "ec2:DescribeNetworkAcls", + "ec2:DescribeNetworkInsightsAnalyses", + "ec2:DescribeNetworkInsightsPaths", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribePrefixLists", + "ec2:DescribeRegions", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayConnects", + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:DescribeTransitGatewayRouteTables", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTransitGateways", + "ec2:DescribeVpcEndpointServiceConfigurations", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcPeeringConnections", + "ec2:DescribeVpcs", + "ec2:DescribeVpnConnections", + "ec2:DescribeVpnGateways", + "ec2:GetManagedPrefixListEntries", + "ec2:GetTransitGatewayRouteTablePropagations", + "ec2:SearchTransitGatewayRoutes", + "ec2:StartNetworkInsightsAnalysis", + "elasticloadbalancing:DescribeListeners", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeRules", + "elasticloadbalancing:DescribeTags", + "elasticloadbalancing:DescribeTargetGroupAttributes", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetHealth", + "globalaccelerator:ListAccelerators", + "globalaccelerator:ListCustomRoutingAccelerators", + "globalaccelerator:ListCustomRoutingEndpointGroups", + "globalaccelerator:ListCustomRoutingListeners", + "globalaccelerator:ListCustomRoutingPortMappings", + "globalaccelerator:ListEndpointGroups", + "globalaccelerator:ListListeners", + "network-firewall:DescribeFirewall", + "network-firewall:DescribeFirewallPolicy", + "network-firewall:DescribeResourcePolicy", + "network-firewall:DescribeRuleGroup", + "network-firewall:ListFirewallPolicies", + "network-firewall:ListFirewalls", + "network-firewall:ListRuleGroups", + "tiros:CreateQuery", + "tiros:ExtendQuery", + "tiros:GetQueryAnswer", + "tiros:GetQueryExplanation", + "tiros:GetQueryExtensionAccounts", + }, + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the Amazon Lightsail resources that can access the specified Amazon Lightsail bucket", - Privilege: "SetResourceAccessForBucket", + Description: "Grants permission to start network migration code generation", + Privilege: "StartNetworkMigrationCodeGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an SSL/TLS certificate and install it on a specified instance", - Privilege: "SetupInstanceHttps", + Description: "Grants permission to start deletion of network migration deployed stacks", + Privilege: "StartNetworkMigrationDeployedStacksDeletion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "lightsail:GetInstanceAccessDetails", + "ec2:AcceptTransitGatewayVpcAttachment", + "ec2:AssociateNatGatewayAddress", + "ec2:AssociateRouteTable", + "ec2:AssociateSubnetCidrBlock", + "ec2:AssociateTransitGatewayRouteTable", + "ec2:AssociateVpcCidrBlock", + "ec2:AttachInternetGateway", + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:DeleteInternetGateway", + "ec2:DeleteLaunchTemplate", + "ec2:DeleteLaunchTemplateVersions", + "ec2:DeleteNatGateway", + "ec2:DeleteNetworkAcl", + "ec2:DeleteNetworkAclEntry", + "ec2:DeleteNetworkInsightsAnalysis", + "ec2:DeleteNetworkInsightsPath", + "ec2:DeleteNetworkInterface", + "ec2:DeleteRoute", + "ec2:DeleteRouteTable", + "ec2:DeleteSecurityGroup", + "ec2:DeleteSnapshot", + "ec2:DeleteSubnet", + "ec2:DeleteTransitGateway", + "ec2:DeleteTransitGatewayRoute", + "ec2:DeleteTransitGatewayRouteTable", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteVolume", + "ec2:DeleteVpc", + "ec2:DetachInternetGateway", + "ec2:DetachVolume", + "ec2:DisableTransitGatewayRouteTablePropagation", + "ec2:DisassociateNatGatewayAddress", + "ec2:DisassociateRouteTable", + "ec2:DisassociateTransitGatewayRouteTable", + "ec2:EnableTransitGatewayRouteTablePropagation", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyLaunchTemplate", + "ec2:ModifySubnetAttribute", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayVpcAttachment", + "ec2:ModifyVolume", + "ec2:ModifyVpcAttribute", + "ec2:RejectTransitGatewayVpcAttachment", + "ec2:ReleaseAddress", + "ec2:ReplaceNetworkAclAssociation", + "ec2:ReplaceNetworkAclEntry", + "ec2:ReplaceRoute", + "ec2:ReplaceTransitGatewayRoute", + "ec2:RevokeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress", + "ec2:SearchTransitGatewayRoutes", }, - ResourceType: "Instance*", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate a graphical user interface (GUI) session used to access an instance's operating system or application", - Privilege: "StartGUISession", + Description: "Grants permission to start a network migration deployment", + Privilege: "StartNetworkMigrationDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Instance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AcceptTransitGatewayVpcAttachment", + "ec2:AssociateNatGatewayAddress", + "ec2:AssociateRouteTable", + "ec2:AssociateSubnetCidrBlock", + "ec2:AssociateTransitGatewayRouteTable", + "ec2:AssociateVpcCidrBlock", + "ec2:AttachInternetGateway", + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateNatGateway", + "ec2:CreateNetworkAcl", + "ec2:CreateNetworkAclEntry", + "ec2:CreateNetworkInsightsPath", + "ec2:CreateNetworkInterface", + "ec2:CreateRoute", + "ec2:CreateRouteTable", + "ec2:CreateSecurityGroup", + "ec2:CreateSubnet", + "ec2:CreateTags", + "ec2:CreateTransitGatewayRoute", + "ec2:CreateTransitGatewayRouteTable", + "ec2:CreateTransitGatewayVpcAttachment", + "ec2:DeleteInternetGateway", + "ec2:DeleteLaunchTemplate", + "ec2:DeleteLaunchTemplateVersions", + "ec2:DeleteNatGateway", + "ec2:DeleteNetworkAcl", + "ec2:DeleteNetworkAclEntry", + "ec2:DeleteNetworkInsightsAnalysis", + "ec2:DeleteNetworkInsightsPath", + "ec2:DeleteNetworkInterface", + "ec2:DeleteRoute", + "ec2:DeleteRouteTable", + "ec2:DeleteSecurityGroup", + "ec2:DeleteSnapshot", + "ec2:DeleteSubnet", + "ec2:DeleteTransitGateway", + "ec2:DeleteTransitGatewayRoute", + "ec2:DeleteTransitGatewayRouteTable", + "ec2:DeleteTransitGatewayVpcAttachment", + "ec2:DeleteVolume", + "ec2:DeleteVpc", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAddresses", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeCustomerGateways", + "ec2:DescribeEgressOnlyInternetGateways", + "ec2:DescribeHosts", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstances", + "ec2:DescribeInternetGateways", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeManagedPrefixLists", + "ec2:DescribeNatGateways", + "ec2:DescribeNetworkAcls", + "ec2:DescribeNetworkInsightsAnalyses", + "ec2:DescribeNetworkInsightsPaths", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribePrefixLists", + "ec2:DescribeRegions", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroupRules", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSnapshots", + "ec2:DescribeSubnets", + "ec2:DescribeTransitGatewayAttachments", + "ec2:DescribeTransitGatewayConnects", + "ec2:DescribeTransitGatewayPeeringAttachments", + "ec2:DescribeTransitGatewayRouteTables", + "ec2:DescribeTransitGatewayVpcAttachments", + "ec2:DescribeTransitGateways", + "ec2:DescribeVolumes", + "ec2:DescribeVpcEndpointServiceConfigurations", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcPeeringConnections", + "ec2:DescribeVpcs", + "ec2:DescribeVpnConnections", + "ec2:DescribeVpnGateways", + "ec2:DetachInternetGateway", + "ec2:DetachVolume", + "ec2:DisableTransitGatewayRouteTablePropagation", + "ec2:DisassociateNatGatewayAddress", + "ec2:DisassociateRouteTable", + "ec2:DisassociateTransitGatewayRouteTable", + "ec2:EnableTransitGatewayRouteTablePropagation", + "ec2:GetEbsDefaultKmsKeyId", + "ec2:GetEbsEncryptionByDefault", + "ec2:GetManagedPrefixListEntries", + "ec2:GetTransitGatewayRouteTableAssociations", + "ec2:GetTransitGatewayRouteTablePropagations", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyLaunchTemplate", + "ec2:ModifySubnetAttribute", + "ec2:ModifyTransitGateway", + "ec2:ModifyTransitGatewayVpcAttachment", + "ec2:ModifyVolume", + "ec2:ModifyVpcAttribute", + "ec2:RejectTransitGatewayVpcAttachment", + "ec2:ReleaseAddress", + "ec2:ReplaceNetworkAclAssociation", + "ec2:ReplaceNetworkAclEntry", + "ec2:ReplaceRoute", + "ec2:ReplaceTransitGatewayRoute", + "ec2:RevokeSecurityGroupEgress", + "ec2:RevokeSecurityGroupIngress", + "ec2:SearchTransitGatewayRoutes", + "ec2:StartNetworkInsightsAnalysis", + }, + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an instance that is in a stopped state", - Privilege: "StartInstance", + Description: "Grants permission to start a network migration mapping", + Privilege: "StartNetworkMigrationMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a relational database that is in a stopped state", - Privilege: "StartRelationalDatabase", + Description: "Grants permission to start replication", + Privilege: "StartReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to terminate a graphical user interface (GUI) session used to access an instance's operating system or application", - Privilege: "StopGUISession", + Description: "Grants permission to start test", + Privilege: "StartTest", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Instance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupEgress", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateLaunchTemplate", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateSecurityGroup", + "ec2:CreateSnapshot", + "ec2:CreateTags", + "ec2:CreateVolume", + "ec2:DeleteLaunchTemplateVersions", + "ec2:DeleteSnapshot", + "ec2:DeleteVolume", + "ec2:DescribeAccountAttributes", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeImages", + "ec2:DescribeInstanceAttribute", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstances", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSnapshots", + "ec2:DescribeSubnets", + "ec2:DescribeVolumes", + "ec2:DetachVolume", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyLaunchTemplate", + "ec2:ReportInstanceStatus", + "ec2:RevokeSecurityGroupEgress", + "ec2:RunInstances", + "ec2:StartInstances", + "ec2:StopInstances", + "ec2:TerminateInstances", + "iam:PassRole", + "mgn:ListTagsForResource", + }, + ResourceType: "SourceServerResource*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop an instance that is in a running state", - Privilege: "StopInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a relational database that is in a running state", - Privilege: "StopRelationalDatabase", + Description: "Grants permission to stop replication", + Privilege: "StopReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", + Description: "Grants permission to assign a resource tag", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Certificate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ContainerService", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Disk", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "DiskSnapshot", + ResourceType: "ApplicationResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution", + ResourceType: "ConnectorResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain", + ResourceType: "JobResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "LaunchConfigurationTemplateResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "InstanceSnapshot", + ResourceType: "ReplicationConfigurationTemplateResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "KeyPair", + ResourceType: "SourceServerResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer", + ResourceType: "VcenterClientResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase", + ResourceType: "WaveResource", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "mgn:CreateAction", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "RelationalDatabaseSnapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to terminate target instances", + Privilege: "TerminateTargetInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "StaticIp", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteVolume", + "ec2:DescribeInstances", + "ec2:DescribeVolumes", + "ec2:TerminateInstances", + }, + ResourceType: "SourceServerResource*", }, { ConditionKeys: []string{ @@ -173288,25 +217016,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to test an alarm by displaying a banner on the Amazon Lightsail console or if a notification trigger is configured for the specified alarm, by sending a notification to the notification protocol", - Privilege: "TestAlarm", + Description: "Grants permission to unarchive an application", + Privilege: "UnarchiveApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alarm*", + ResourceType: "ApplicationResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to try to unpeer the Amazon Lightsail virtual private cloud (VPC) from the default VPC", - Privilege: "UnpeerVpc", + Description: "Grants permission to unarchive a wave", + Privilege: "UnarchiveWave", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "WaveResource*", }, }, }, @@ -173318,329 +217046,349 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket", + ResourceType: "ApplicationResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Certificate", + ResourceType: "ConnectorResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ContainerService", + ResourceType: "JobResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Disk", + ResourceType: "LaunchConfigurationTemplateResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DiskSnapshot", + ResourceType: "ReplicationConfigurationTemplateResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution", + ResourceType: "SourceServerResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain", + ResourceType: "VcenterClientResource", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "WaveResource", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "InstanceSnapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent backlog", + Privilege: "UpdateAgentBacklogForMgn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "KeyPair", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent conversion info", + Privilege: "UpdateAgentConversionInfoForMgn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent replication info", + Privilege: "UpdateAgentReplicationInfoForMgn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent replication process state", + Privilege: "UpdateAgentReplicationProcessStateForMgn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabaseSnapshot", + ResourceType: "SourceServerResource*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update agent source properties", + Privilege: "UpdateAgentSourcePropertiesForMgn", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StaticIp", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing Amazon Lightsail bucket", - Privilege: "UpdateBucket", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket*", + ResourceType: "ApplicationResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the bundle, or storage plan, of an existing Amazon Lightsail bucket", - Privilege: "UpdateBucketBundle", + Description: "Grants permission to update connector", + Privilege: "UpdateConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bucket*", + ResourceType: "ConnectorResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of your Amazon Lightsail container service, such as its power, scale, and public domain names", - Privilege: "UpdateContainerService", + Description: "Grants permission to update launch configuration", + Privilege: "UpdateLaunchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ContainerService*", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing Amazon Lightsail content delivery network (CDN) distribution or its configuration", - Privilege: "UpdateDistribution", + Description: "Grants permission to update launch configuration", + Privilege: "UpdateLaunchConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution*", + ResourceType: "LaunchConfigurationTemplateResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the bundle of your Amazon Lightsail content delivery network (CDN) distribution", - Privilege: "UpdateDistributionBundle", + Description: "Grants permission to update a network migration definition", + Privilege: "UpdateNetworkMigrationDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Distribution*", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a domain recordset after it is created", - Privilege: "UpdateDomainEntry", + Description: "Grants permission to update a network migration mapper segment", + Privilege: "UpdateNetworkMigrationMapperSegment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Domain*", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update metadata options for an instance", - Privilege: "UpdateInstanceMetadataOptions", + Description: "Grants permission to update a network migration mapper segment construct", + Privilege: "UpdateNetworkMigrationMapperSegmentConstruct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "NetworkMigrationDefinitionResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a load balancer attribute, such as the health check path and session stickiness", - Privilege: "UpdateLoadBalancerAttribute", + Description: "Grants permission to update replication configuration", + Privilege: "UpdateReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LoadBalancer*", + ResourceType: "SourceServerResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a relational database", - Privilege: "UpdateRelationalDatabase", + Description: "Grants permission to update replication configuration template", + Privilege: "UpdateReplicationConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "ReplicationConfigurationTemplateResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the parameters of a relational database", - Privilege: "UpdateRelationalDatabaseParameters", + Description: "Grants permission to update source server", + Privilege: "UpdateSourceServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RelationalDatabase*", + ResourceType: "SourceServerResource*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Domain/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update source server replication type", + Privilege: "UpdateSourceServerReplicationType", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SourceServerResource*", + }, }, - Resource: "Domain", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Instance/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a wave", + Privilege: "UpdateWave", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WaveResource*", + }, }, - Resource: "Instance", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:InstanceSnapshot/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to verify client role", + Privilege: "VerifyClientRoleForMgn", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "InstanceSnapshot", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:KeyPair/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:job/${JobID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "KeyPair", + Resource: "JobResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:StaticIp/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:replication-configuration-template/${ReplicationConfigurationTemplateID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "StaticIp", + Resource: "ReplicationConfigurationTemplateResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Disk/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:launch-configuration-template/${LaunchConfigurationTemplateID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Disk", + Resource: "LaunchConfigurationTemplateResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:DiskSnapshot/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:vcenter-client/${VcenterClientID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "DiskSnapshot", + Resource: "VcenterClientResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:LoadBalancer/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:source-server/${SourceServerID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "LoadBalancer", - }, - { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:LoadBalancerTlsCertificate/${Id}", - ConditionKeys: []string{}, - Resource: "LoadBalancerTlsCertificate", - }, - { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:ExportSnapshotRecord/${Id}", - ConditionKeys: []string{}, - Resource: "ExportSnapshotRecord", - }, - { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:CloudFormationStackRecord/${Id}", - ConditionKeys: []string{}, - Resource: "CloudFormationStackRecord", + Resource: "SourceServerResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:RelationalDatabase/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:application/${ApplicationID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "RelationalDatabase", + Resource: "ApplicationResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:RelationalDatabaseSnapshot/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:wave/${WaveID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "RelationalDatabaseSnapshot", - }, - { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Alarm/${Id}", - ConditionKeys: []string{}, - Resource: "Alarm", + Resource: "WaveResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Certificate/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:import/${ImportID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Certificate", - }, - { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:ContactMethod/${Id}", - ConditionKeys: []string{}, - Resource: "ContactMethod", + Resource: "ImportResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:ContainerService/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:export/${ExportID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "ContainerService", + Resource: "ExportResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Distribution/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:connector/${ConnectorID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Distribution", + Resource: "ConnectorResource", }, { - Arn: "arn:${Partition}:lightsail:${Region}:${Account}:Bucket/${Id}", + Arn: "arn:${Partition}:mgn:${Region}:${Account}:network-migration-definition/${NetworkMigrationDefinitionID}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Bucket", + Resource: "NetworkMigrationDefinitionResource", }, }, - ServiceName: "Amazon Lightsail", + ServiceName: "AWS Application Migration Service", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -173659,35 +217407,13 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, - { - Condition: "logs:DeliveryDestinationResourceArn", - Description: "Filters access by the Log Destination ARN passed in the request", - Type: "ARN", - }, - { - Condition: "logs:LogGeneratingResourceArns", - Description: "Filters access by the Log Generating Resource ARNs passed in the request", - Type: "ArrayOfARN", - }, }, - Prefix: "logs", + Prefix: "migrationhub-orchestrator", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group", - Privilege: "AssociateKmsKey", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "log-group*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an export task if it is in PENDING or RUNNING state", - Privilege: "CancelExportTask", + Description: "Grants permission to create a custom template", + Privilege: "CreateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -173698,28 +217424,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a delivery connecting a delivery source to a delivery destination", - Privilege: "CreateDelivery", + Description: "Grants permission to create a workflow based on the selected template", + Privilege: "CreateWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "delivery-destination*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "delivery-source*", + ResourceType: "template*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -173728,180 +217444,164 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an ExportTask which allows you to efficiently export data from a Log Group to your Amazon S3 bucket", - Privilege: "CreateExportTask", + Description: "Grants permission to create a step under a workflow and a specific step group", + Privilege: "CreateWorkflowStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a log anomaly detector", - Privilege: "CreateLogAnomalyDetector", + Description: "Grants permission to to create a custom step group for a given workflow", + Privilege: "CreateWorkflowStepGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create the log delivery", - Privilege: "CreateLogDelivery", + Description: "Grants permission to delete a custom template", + Privilege: "DeleteTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new log group with the specified name", - Privilege: "CreateLogGroup", + Description: "Grants permission to a workflow", + Privilege: "DeleteWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new log stream with the specified name", - Privilege: "CreateLogStream", + Description: "Grants permission to delete a step from a specific step group under a workflow", + Privilege: "DeleteWorkflowStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-stream*", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a data protection policy attached to an account", - Privilege: "DeleteAccountPolicy", + Description: "Grants permission to delete a step group associated with a workflow", + Privilege: "DeleteWorkflowStepGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a data protection policy attached to a log group", - Privilege: "DeleteDataProtectionPolicy", + AccessLevel: "Read", + Description: "Grants permission to the plugin to receive information from the service", + Privilege: "GetMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a delivery", - Privilege: "DeleteDelivery", + AccessLevel: "Read", + Description: "Grants permission to get retrieve metadata for a Template", + Privilege: "GetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a delivery destination after all associated deliveries are deleted", - Privilege: "DeleteDeliveryDestination", + AccessLevel: "Read", + Description: "Grants permission to retrieve details of a step associated with a template and a step group", + Privilege: "GetTemplateStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a delivery destination policy associated with a delivery destination", - Privilege: "DeleteDeliveryDestinationPolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata of a step group under a template", + Privilege: "GetTemplateStepGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a delivery source after all associated deliveries are deleted", - Privilege: "DeleteDeliverySource", + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata asscociated with a workflow", + Privilege: "GetWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the destination with the specified name", - Privilege: "DeleteDestination", + AccessLevel: "Read", + Description: "Grants permission to get details of step associated with a workflow and a step group", + Privilege: "GetWorkflowStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a log anomaly detector", - Privilege: "DeleteLogAnomalyDetector", + AccessLevel: "Read", + Description: "Grants permission to get details of a step group associated with a workflow", + Privilege: "GetWorkflowStepGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the log delivery information for specified log delivery", - Privilege: "DeleteLogDelivery", + AccessLevel: "List", + Description: "Grants permission to get a list all registered Plugins", + Privilege: "ListPlugins", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -173911,57 +217611,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the log group with the specified name", - Privilege: "DeleteLogGroup", + AccessLevel: "Read", + Description: "Grants permission to get a list of all the tags tied to a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "template*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a log stream", - Privilege: "DeleteLogStream", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-stream*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a metric filter associated with the specified log group", - Privilege: "DeleteMetricFilter", + AccessLevel: "List", + Description: "Grants permission to lists step groups of a template", + Privilege: "ListTemplateStepGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a saved CloudWatch Logs Insights query definition", - Privilege: "DeleteQueryDefinition", + AccessLevel: "List", + Description: "Grants permission to get a list of steps in a step group", + Privilege: "ListTemplateSteps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a resource policy from this account", - Privilege: "DeleteResourcePolicy", + AccessLevel: "List", + Description: "Grants permission to get a list of all Templates available to customer", + Privilege: "ListTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -173971,33 +217664,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the retention policy of the specified log group", - Privilege: "DeleteRetentionPolicy", + AccessLevel: "List", + Description: "Grants permission to get list of step groups associated with a workflow", + Privilege: "ListWorkflowStepGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a subscription filter associated with the specified log group", - Privilege: "DeleteSubscriptionFilter", + AccessLevel: "List", + Description: "Grants permission to get a list of steps within step group associated with a workflow", + Privilege: "ListWorkflowSteps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a data protection policy attached to an account", - Privilege: "DescribeAccountPolicies", + Description: "Grants permission to list all workflows", + Privilege: "ListWorkflows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174007,9 +217700,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of deliveries an account", - Privilege: "DescribeDeliveries", + AccessLevel: "Write", + Description: "Grants permission to register the plugin to receive an ID and to start receiving messages from the service", + Privilege: "RegisterPlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174019,21 +217712,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of delivery destinations an account", - Privilege: "DescribeDeliveryDestinations", + AccessLevel: "Write", + Description: "Grants permission to retry a failed step within a workflow", + Privilege: "RetryWorkflowStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of delivery sources in an account", - Privilege: "DescribeDeliverySources", + AccessLevel: "Write", + Description: "Grants permission to the plugin to send information to the service", + Privilege: "SendMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174043,213 +217736,213 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to return all the destinations that are associated with the AWS account making the request", - Privilege: "DescribeDestinations", + AccessLevel: "Write", + Description: "Grants permission to start a workflow or resume a stopped workflow", + Privilege: "StartWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return all the export tasks that are associated with the AWS account making the request", - Privilege: "DescribeExportTasks", + AccessLevel: "Write", + Description: "Grants permission to stop a workflow", + Privilege: "StopWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return all the log groups that are associated with the AWS account making the request", - Privilege: "DescribeLogGroups", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return all the log streams that are associated with the specified log group", - Privilege: "DescribeLogStreams", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return all the metrics filters associated with the specified log group", - Privilege: "DescribeMetricFilters", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of CloudWatch Logs Insights queries that are scheduled, executing, or have been executed recently in this account", - Privilege: "DescribeQueries", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return a paginated list of your saved CloudWatch Logs Insights query definitions", - Privilege: "DescribeQueryDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return all the resource policies in this account", - Privilege: "DescribeResourcePolicies", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return all the subscription filters associated with the specified log group", - Privilege: "DescribeSubscriptionFilters", + AccessLevel: "Write", + Description: "Grants permission to update a custom template", + Privilege: "UpdateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group", - Privilege: "DisassociateKmsKey", + Description: "Grants permission to update the metadata associated with the workflow", + Privilege: "UpdateWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve log events, optionally filtered by a filter pattern from the specified log group", - Privilege: "FilterLogEvents", + AccessLevel: "Write", + Description: "Grants permission to update metadata and status of a custom step within a workflow", + Privilege: "UpdateWorkflowStep", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a data protection policy attached to a log group", - Privilege: "GetDataProtectionPolicy", + AccessLevel: "Write", + Description: "Grants permission to update metadata associated with a step group in a given workflow", + Privilege: "UpdateWorkflowStepGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "workflow*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:migrationhub-orchestrator:${Region}:${Account}:workflow/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "workflow", + }, + { + Arn: "arn:${Partition}:migrationhub-orchestrator:${Region}:${Account}:template/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "template", + }, + }, + ServiceName: "AWS Migration Hub Orchestrator", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "migrationhub-strategy", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to retrieve a single delivery", - Privilege: "GetDelivery", + Description: "Grants permission to get details of each anti pattern that collector should look at in a customer's environment", + Privilege: "GetAntiPattern", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a single delivery destination", - Privilege: "GetDeliveryDestination", + Description: "Grants permission to get details of an application", + Privilege: "GetApplicationComponentDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a delivery destination policy attached to a delivery destination", - Privilege: "GetDeliveryDestinationPolicy", + Description: "Grants permission to get a list of all recommended strategies and tools for an application running in a server", + Privilege: "GetApplicationComponentStrategies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a single delivery source", - Privilege: "GetDeliverySource", + Description: "Grants permission to retrieve status of an on-going assessment", + Privilege: "GetAssessment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-source*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a log anomaly detector", - Privilege: "GetLogAnomalyDetector", + Description: "Grants permission to get details of a specific import task", + Privilege: "GetImportFileTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the log delivery information for specified log delivery", - Privilege: "GetLogDelivery", + Description: "Grants permission to retrieve the latest assessment id", + Privilege: "GetLatestAssessmentId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174260,56 +217953,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve log events from the specified log stream", - Privilege: "GetLogEvents", + Description: "Grants permission to the collector to receive information from the service", + Privilege: "GetMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-stream*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field", - Privilege: "GetLogGroupFields", + Description: "Grants permission to retrieve customer migration/Modernization preferences", + Privilege: "GetPortfolioPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all the fields and values of a single log event", - Privilege: "GetLogRecord", + Description: "Grants permission to retrieve overall summary (number-of servers to rehost etc as well as overall number of anti patterns)", + Privilege: "GetPortfolioSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the results from the specified query", - Privilege: "GetQueryResults", + Description: "Grants permission to retrieve detailed information about a recommendation report", + Privilege: "GetRecommendationReportDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to share CloudWatch resources with a monitoring account", - Privilege: "Link", + AccessLevel: "Read", + Description: "Grants permission to get info about a specific server", + Privilege: "GetServerDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174319,33 +218012,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all anomalies detected in the AWS account making the request", - Privilege: "ListAnomalies", + AccessLevel: "Read", + Description: "Grants permission to get recommended strategies and tools for a specific server", + Privilege: "GetServerStrategies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return all the anomaly detectors that are associated with the AWS account making the request", - Privilege: "ListLogAnomalyDetectors", + Description: "Grants permission to get a list of all analyzable servers in a customer's vcenter environment", + Privilege: "ListAnalyzableServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the log deliveries for specified account and/or log source", - Privilege: "ListLogDeliveries", + Description: "Grants permission to get a list of all anti patterns that collector should look for in a customer's environment", + Privilege: "ListAntiPatterns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174356,57 +218049,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the tags for the specified resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "anomaly-detector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "delivery", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "delivery-destination", - }, + Description: "Grants permission to get a list of all applications running on servers on customer's servers", + Privilege: "ListApplicationComponents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-source", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of all collectors installed by the customer", + Privilege: "ListCollectors", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get list of all imports performed by the customer", + Privilege: "ListImportFileTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the tags for the specified log group", - Privilege: "ListTagsLogGroup", + Description: "Grants permission to get a list of binaries that collector should assess", + Privilege: "ListJarArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a data protection policy at account level to detect and redact sensitive information from log events", - Privilege: "PutAccountPolicy", + AccessLevel: "List", + Description: "Grants permission to get a list of all servers in a customer's environment", + Privilege: "ListServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174417,87 +218109,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to attach a data protection policy to detect and redact sensitive information from log events", - Privilege: "PutDataProtectionPolicy", + Description: "Grants permission to the collector to send logs to the service", + Privilege: "PutLogData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create/update a delivery destination", - Privilege: "PutDeliveryDestination", + Description: "Grants permission to the collector to send metrics to the service", + Privilege: "PutMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "logs:DeliveryDestinationResourceArn", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a delivery destination policy to a delivery destination", - Privilege: "PutDeliveryDestinationPolicy", + Description: "Grants permission to save customer's Migration/Modernization preferences", + Privilege: "PutPortfolioPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create/update a delivery source", - Privilege: "PutDeliverySource", + Description: "Grants permission to register the collector to receive an ID and to start receiving messages from the service", + Privilege: "RegisterCollector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-source*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "logs:LogGeneratingResourceArns", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a Destination", - Privilege: "PutDestination", + Description: "Grants permission to the collector to send information to the service", + Privilege: "SendMessage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "destination*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -174505,44 +218169,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create or update an access policy associated with an existing Destination", - Privilege: "PutDestinationPolicy", + Description: "Grants permission to start assessment in a customer's environment (collect data from all servers and provide recommendations)", + Privilege: "StartAssessment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload a batch of log events to the specified log stream", - Privilege: "PutLogEvents", + Description: "Grants permission to start importing data from a file provided by customer", + Privilege: "StartImportFileTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-stream*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a metric filter and associates it with the specified log group", - Privilege: "PutMetricFilter", + Description: "Grants permission to start generating a recommendation report", + Privilege: "StartRecommendationReportGeneration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a query definition", - Privilege: "PutQueryDefinition", + Description: "Grants permission to stop an on-going assessment", + Privilege: "StopAssessment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174552,9 +218216,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update a resource policy allowing other AWS services to put log events to this account", - Privilege: "PutResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to update details for an application", + Privilege: "UpdateApplicationComponentConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174565,63 +218229,64 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to set the retention of the specified log group", - Privilege: "PutRetentionPolicy", + Description: "Grants permission to the collector to send configuration information to the service", + Privilege: "UpdateCollectorConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a subscription filter and associates it with the specified log group", - Privilege: "PutSubscriptionFilter", + Description: "Grants permission to update info on a server along with the recommended strategy", + Privilege: "UpdateServerConfig", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "log-group*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Migration Hub Strategy Recommendations", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "mobileanalytics", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to start a Live Tail session in CloudWatch Logs", - Privilege: "StartLiveTail", + Description: "Grant access to financial metrics for an app", + Privilege: "GetFinancialReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to schedule a query of a log group using CloudWatch Logs Insights", - Privilege: "StartQuery", + Description: "Grant access to standard metrics for an app", + Privilege: "GetReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to stop a Live Tail session that is in progress", - Privilege: "StopLiveTail", + AccessLevel: "Write", + Description: "The PutEvents operation records one or more events", + Privilege: "PutEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174630,10 +218295,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Mobile Analytics", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "mobilehub", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to stop a CloudWatch Logs Insights query that is in progress", - Privilege: "StopQuery", + AccessLevel: "Write", + Description: "Create a project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174643,152 +218316,216 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update the specified tags for the specified log group", - Privilege: "TagLogGroup", + AccessLevel: "Write", + Description: "Enable AWS Mobile Hub in the account by creating the required service role", + Privilege: "CreateServiceRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update the specified tags for the specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Delete the specified project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Delete a saved snapshot of project configuration", + Privilege: "DeleteProjectSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Deploy changes to the specified stage", + Privilege: "DeployToStage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Describe the download bundle", + Privilege: "DescribeBundle", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-source", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Export the download bundle", + Privilege: "ExportBundle", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Export the project configuration", + Privilege: "ExportProject", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to test the filter pattern of a metric filter against a sample of log event messages", - Privilege: "TestMetricFilter", + Description: "Generate project parameters required for code generation", + Privilege: "GenerateProjectParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to fetch unmasked log events that have been redacted with a data protection policy", - Privilege: "Unmask", + Description: "Get project configuration and resources", + Privilege: "GetProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the specified log group", - Privilege: "UntagLogGroup", + AccessLevel: "Read", + Description: "Fetch the previously exported project configuration snapshot", + Privilege: "GetProjectSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Create a new project from the previously exported project configuration", + Privilege: "ImportProject", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Install a bundle in the project deployments S3 bucket", + Privilege: "InstallBundle", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List the available SaaS (Software as a Service) connectors", + Privilege: "ListAvailableConnectors", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List available features", + Privilege: "ListAvailableFeatures", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-destination", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List available regions for projects", + Privilege: "ListAvailableRegions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delivery-source", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List the available download bundles", + Privilege: "ListBundles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "destination", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List saved snapshots of project configuration", + Privilege: "ListProjectSnapshots", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "log-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List projects", + Privilege: "ListProjects", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -174796,32 +218533,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an anomaly reported by a log anomaly detector", - Privilege: "UpdateAnomaly", + Description: "Synchronize state of resources into project", + Privilege: "SynchronizeProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector*", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a log anomaly detector", - Privilege: "UpdateLogAnomalyDetector", + Description: "Update project", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "anomaly-detector*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the log delivery information for specified log delivery", - Privilege: "UpdateLogDelivery", + AccessLevel: "Read", + Description: "Validate a mobile hub project.", + Privilege: "ValidateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -174830,99 +218567,63 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "log-group", - }, - { - Arn: "arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "log-stream", - }, - { - Arn: "arn:${Partition}:logs:${Region}:${Account}:destination:${DestinationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "destination", - }, - { - Arn: "arn:${Partition}:logs:${Region}:${Account}:delivery-source:${DeliverySourceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "delivery-source", - }, - { - Arn: "arn:${Partition}:logs:${Region}:${Account}:delivery:${DeliveryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "delivery", - }, { - Arn: "arn:${Partition}:logs:${Region}:${Account}:delivery-destination:${DeliveryDestinationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Verify AWS Mobile Hub is enabled in the account", + Privilege: "VerifyServiceRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "delivery-destination", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:logs:${Region}:${Account}:anomaly-detector:${DetectorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "anomaly-detector", + Arn: "arn:${Partition}:mobilehub:${Region}:${Account}:project/${ProjectId}", + ConditionKeys: []string{}, + Resource: "project", }, }, - ServiceName: "Amazon CloudWatch Logs", + ServiceName: "AWS Mobile Hub", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by a key that is present in the request the user makes to the pinpoint service", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", + Description: "Filters access by a tag key and value pair", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Description: "Filters access by the list of all the tag key names present in the request the user makes to the pinpoint service", Type: "ArrayOfString", }, - { - Condition: "lookoutequipment:IsImportingData", - Description: "Filters access by the import strategy of underlying data", - Type: "Bool", - }, }, - Prefix: "lookoutequipment", + Prefix: "mobiletargeting", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a dataset", - Privilege: "CreateDataset", + Description: "Grants permission to create an app", + Privilege: "CreateApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "apps*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -174931,23 +218632,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an inference scheduler for a trained model", - Privilege: "CreateInferenceScheduler", + Description: "Grants permission to create a campaign for an app", + Privilege: "CreateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "app*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -174956,30 +218653,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a label", - Privilege: "CreateLabel", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label-group*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a label group", - Privilege: "CreateLabelGroup", + Description: "Grants permission to create an email template", + Privilege: "CreateEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "template*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -174988,28 +218674,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a model that is trained on a dataset", - Privilege: "CreateModel", + Description: "Grants permission to create an export job that exports endpoint definitions to Amazon S3", + Privilege: "CreateExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "app*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import endpoint definitions from to create a segment", + Privilege: "CreateImportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "app*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an in-app message template", + Privilege: "CreateInAppTemplate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group", + ResourceType: "template*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -175018,1496 +218719,1410 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a retraining scheduler for a trained model", - Privilege: "CreateRetrainingScheduler", + Description: "Grants permission to create a Journey for an app", + Privilege: "CreateJourney", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "journeys*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a dataset", - Privilege: "DeleteDataset", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an inference scheduler", - Privilege: "DeleteInferenceScheduler", + Description: "Grants permission to create a push notification template", + Privilege: "CreatePushTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a label", - Privilege: "DeleteLabel", + Description: "Grants permission to create an Amazon Pinpoint configuration for a recommender model", + Privilege: "CreateRecommenderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "recommenders*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a label group", - Privilege: "DeleteLabelGroup", + Description: "Grants permission to create a segment that is based on endpoint data reported to Pinpoint by your app. To allow a user to create a segment by importing endpoint data from outside of Pinpoint, allow the mobiletargeting:CreateImportJob action", + Privilege: "CreateSegment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "app*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a model", - Privilege: "DeleteModel", + Description: "Grants permission to create an sms message template", + Privilege: "CreateSmsTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to create a voice message template", + Privilege: "CreateVoiceTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", + ResourceType: "template*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a retraining scheduler of a trained model", - Privilege: "DeleteRetrainingScheduler", + Description: "Grants permission to delete the ADM channel for an app", + Privilege: "DeleteAdmChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a data ingestion job", - Privilege: "DescribeDataIngestionJob", + AccessLevel: "Write", + Description: "Grants permission to delete the APNs channel for an app", + Privilege: "DeleteApnsChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset", - Privilege: "DescribeDataset", + AccessLevel: "Write", + Description: "Grants permission to delete the APNs sandbox channel for an app", + Privilege: "DeleteApnsSandboxChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an inference scheduler", - Privilege: "DescribeInferenceScheduler", + AccessLevel: "Write", + Description: "Grants permission to delete the APNs VoIP channel for an app", + Privilege: "DeleteApnsVoipChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a label group", - Privilege: "DescribeLabelGroup", + AccessLevel: "Write", + Description: "Grants permission to delete the APNs VoIP sandbox channel for an app", + Privilege: "DeleteApnsVoipSandboxChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a model", - Privilege: "DescribeModel", + AccessLevel: "Write", + Description: "Grants permission to delete a specific campaign", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "app*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a model version", - Privilege: "DescribeModelVersion", + AccessLevel: "Write", + Description: "Grants permission to delete the Baidu channel for an app", + Privilege: "DeleteBaiduChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-version*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a resource policy", - Privilege: "DescribeResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to delete a specific campaign", + Privilege: "DeleteCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a retraining scheduler of a trained model", - Privilege: "DescribeRetrainingScheduler", + AccessLevel: "Write", + Description: "Grants permission to delete the email channel for an app", + Privilege: "DeleteEmailChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a label", - Privilege: "Describelabel", + AccessLevel: "Write", + Description: "Grants permission to delete an email template or an email template version", + Privilege: "DeleteEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import a dataset", - Privilege: "ImportDataset", + Description: "Grants permission to delete an endpoint", + Privilege: "DeleteEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import a model version", - Privilege: "ImportModelVersion", + Description: "Grants permission to delete the event stream for an app", + Privilege: "DeleteEventStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label-group", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "lookoutequipment:IsImportingData", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "event-stream*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the data ingestion jobs in your account or for a particular dataset", - Privilege: "ListDataIngestionJobs", + AccessLevel: "Write", + Description: "Grants permission to delete the GCM channel for an app", + Privilege: "DeleteGcmChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the datasets in your account", - Privilege: "ListDatasets", + AccessLevel: "Write", + Description: "Grants permission to delete an in-app message template or an in-app message template version", + Privilege: "DeleteInAppTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the inference events for an inference scheduler", - Privilege: "ListInferenceEvents", + AccessLevel: "Write", + Description: "Grants permission to delete a specific journey", + Privilege: "DeleteJourney", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "journey*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the inference executions for an inference scheduler", - Privilege: "ListInferenceExecutions", + AccessLevel: "Write", + Description: "Grants permission to delete a push notification template or a push notification template version", + Privilege: "DeletePushTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "template*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the inference schedulers in your account", - Privilege: "ListInferenceSchedulers", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Pinpoint configuration for a recommender model", + Privilege: "DeleteRecommenderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "recommender*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the label groups in your account", - Privilege: "ListLabelGroups", + AccessLevel: "Write", + Description: "Grants permission to delete a specific segment", + Privilege: "DeleteSegment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "segment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the labels in your account", - Privilege: "ListLabels", + AccessLevel: "Write", + Description: "Grants permission to delete the SMS channel for an app", + Privilege: "DeleteSmsChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the model versions in your account", - Privilege: "ListModelVersions", + AccessLevel: "Write", + Description: "Grants permission to delete an sms message template or an sms message template version", + Privilege: "DeleteSmsTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "template*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the models in your account", - Privilege: "ListModels", + AccessLevel: "Write", + Description: "Grants permission to delete all of the endpoints that are associated with a user ID", + Privilege: "DeleteUserEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the retraining schedulers in your account", - Privilege: "ListRetrainingSchedulers", + AccessLevel: "Write", + Description: "Grants permission to delete the Voice channel for an app", + Privilege: "DeleteVoiceChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the sensor statistics for a particular dataset or an ingestion job", - Privilege: "ListSensorStatistics", + AccessLevel: "Write", + Description: "Grants permission to delete a voice message template or a voice message template version", + Privilege: "DeleteVoiceTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "template*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve information about the Amazon Device Messaging (ADM) channel for an app", + Privilege: "GetAdmChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-scheduler", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a resource policy", - Privilege: "PutResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the APNs channel for an app", + Privilege: "GetApnsChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a data ingestion job for a dataset", - Privilege: "StartDataIngestionJob", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the APNs sandbox channel for an app", + Privilege: "GetApnsSandboxChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an inference scheduler", - Privilege: "StartInferenceScheduler", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the APNs VoIP channel for an app", + Privilege: "GetApnsVoipChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a retraining scheduler of a trained model", - Privilege: "StartRetrainingScheduler", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the APNs VoIP sandbox channel for an app", + Privilege: "GetApnsVoipSandboxChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an inference scheduler", - Privilege: "StopInferenceScheduler", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific app in your Amazon Pinpoint account", + Privilege: "GetApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "app*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a retraining scheduler of a trained model", - Privilege: "StopRetrainingScheduler", + AccessLevel: "Read", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard metric that applies to an application", + Privilege: "GetApplicationDateRangeKpi", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "application-metrics*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to retrieve the default settings for an app", + Privilege: "GetApplicationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-scheduler", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "app*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of apps in your Amazon Pinpoint account", + Privilege: "GetApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-scheduler", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "label-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "apps*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the active model version for a given machine learning model", - Privilege: "UpdateActiveModelVersion", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the Baidu channel for an app", + Privilege: "GetBaiduChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-version*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an inference scheduler", - Privilege: "UpdateInferenceScheduler", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific campaign", + Privilege: "GetCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-scheduler*", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a label group", - Privilege: "UpdateLabelGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve information about the activities performed by a campaign", + Privilege: "GetCampaignActivities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "label-group*", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a trained model", - Privilege: "UpdateModel", + AccessLevel: "Read", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard metric that applies to a campaign", + Privilege: "GetCampaignDateRangeKpi", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "campaign-metrics*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a retraining scheduler of a trained model", - Privilege: "UpdateRetrainingScheduler", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific campaign version", + Privilege: "GetCampaignVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "campaign*", }, }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:dataset/${DatasetName}/${DatasetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dataset", - }, - { - Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:model/${ModelName}/${ModelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model", - }, - { - Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:model/${ModelName}/${ModelId}/model-version/${ModelVersionNumber}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model-version", - }, - { - Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:inference-scheduler/${InferenceSchedulerName}/${InferenceSchedulerId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "inference-scheduler", - }, - { - Arn: "arn:${Partition}:lookoutequipment:${Region}:${Account}:label-group/${LabelGroupName}/${LabelGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "label-group", - }, - }, - ServiceName: "Amazon Lookout for Equipment", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "lookoutmetrics", - Privileges: []ParliamentPrivilege{ + }, { - AccessLevel: "Write", - Description: "Grants permission to activate an anomaly detector", - Privilege: "ActivateAnomalyDetector", + AccessLevel: "List", + Description: "Grants permission to retrieve information about the current and prior versions of a campaign", + Privilege: "GetCampaignVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to run a backtest with an anomaly detector", - Privilege: "BackTestAnomalyDetector", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all campaigns for an app", + Privilege: "GetCampaigns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "app*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an alert for an anomaly detector", - Privilege: "CreateAlert", + AccessLevel: "List", + Description: "Grants permission to get all channels information for your app", + Privilege: "GetChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert*", + ResourceType: "channels*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain information about the email channel in an app", + Privilege: "GetEmailChannel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific or the active version of an email template", + Privilege: "GetEmailTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an anomaly detector", - Privilege: "CreateAnomalyDetector", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific endpoint", + Privilege: "GetEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "endpoint*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the event stream for an app", + Privilege: "GetEventStream", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "event-stream*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset", - Privilege: "CreateMetricSet", + AccessLevel: "Read", + Description: "Grants permission to obtain information about a specific export job", + Privilege: "GetExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "export-job*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all of the export jobs for an app", + Privilege: "GetExportJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MetricSet*", + ResourceType: "app*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the GCM channel for an app", + Privilege: "GetGcmChannel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate an anomaly detector", - Privilege: "DeactivateAnomalyDetector", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific import job", + Privilege: "GetImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "import-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an alert", - Privilege: "DeleteAlert", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all import jobs for an app", + Privilege: "GetImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert*", + ResourceType: "app*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an anomaly detector", - Privilege: "DeleteAnomalyDetector", + AccessLevel: "Read", + Description: "Grants permission to retrive in-app messages for the given endpoint id", + Privilege: "GetInAppMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "app*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about an alert", - Privilege: "DescribeAlert", + Description: "Grants permission to retrieve information about a specific or the active version of an in-app message template", + Privilege: "GetInAppTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert*", + ResourceType: "template*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about an anomaly detection job", - Privilege: "DescribeAnomalyDetectionExecutions", + Description: "Grants permission to retrieve information about a specific journey", + Privilege: "GetJourney", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "journey*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about an anomaly detector", - Privilege: "DescribeAnomalyDetector", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard engagement metric that applies to a journey", + Privilege: "GetJourneyDateRangeKpi", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "journey-metrics*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a dataset", - Privilege: "DescribeMetricSet", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey activity", + Privilege: "GetJourneyExecutionActivityMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MetricSet*", + ResourceType: "journey-execution-activity-metrics*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to detect metric set config from data source", - Privilege: "DetectMetricSetConfig", + AccessLevel: "Read", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey", + Privilege: "GetJourneyExecutionMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "journey-execution-metrics*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a group of affected metrics", - Privilege: "GetAnomalyGroup", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey activity for a single journey run", + Privilege: "GetJourneyRunExecutionActivityMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "journey*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get data quality metrics for an anomaly detector", - Privilege: "GetDataQualityMetrics", + Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey for a single journey run", + Privilege: "GetJourneyRunExecutionMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "journey*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get feedback on affected metrics for an anomaly group", - Privilege: "GetFeedback", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all journey runs for a journey", + Privilege: "GetJourneyRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "journey*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a selection of sample records from an Amazon S3 datasource", - Privilege: "GetSampleData", + Description: "Grants permission to retrieve information about a specific or the active version of an push notification template", + Privilege: "GetPushTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of alerts for a detector", - Privilege: "ListAlerts", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an Amazon Pinpoint configuration for a recommender model", + Privilege: "GetRecommenderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector", + ResourceType: "recommender*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of anomaly detectors", - Privilege: "ListAnomalyDetectors", + Description: "Grants permission to retrieve information about all the recommender model configurations that are associated with an Amazon Pinpoint account", + Privilege: "GetRecommenderConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "recommenders*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of related measures in an anomaly group", - Privilege: "ListAnomalyGroupRelatedMetrics", + AccessLevel: "Read", + Description: "Grants permission to mobiletargeting:GetReports", + Privilege: "GetReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "reports*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of anomaly groups", - Privilege: "ListAnomalyGroupSummaries", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific segment", + Privilege: "GetSegment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "segment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of affected metrics for a measure in an anomaly group", - Privilege: "ListAnomalyGroupTimeSeries", + Description: "Grants permission to retrieve information about jobs that export endpoint definitions from segments to Amazon S3", + Privilege: "GetSegmentExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "segment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of datasets", - Privilege: "ListMetricSets", + Description: "Grants permission to retrieve information about jobs that create segments by importing endpoint definitions from", + Privilege: "GetSegmentImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector", + ResourceType: "segment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a list of tags for a detector, dataset, or alert", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve information about a specific segment version", + Privilege: "GetSegmentVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert", + ResourceType: "segment*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve information about the current and prior versions of a segment", + Privilege: "GetSegmentVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector", + ResourceType: "segment*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve information about the segments for an app", + Privilege: "GetSegments", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MetricSet", + ResourceType: "app*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add feedback for an affected metric in an anomaly group", - Privilege: "PutFeedback", + AccessLevel: "Read", + Description: "Grants permission to obtain information about the SMS channel in an app", + Privilege: "GetSmsChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a detector, dataset, or alert", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific or the active version of an sms message template", + Privilege: "GetSmsTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert", + ResourceType: "template*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the endpoints that are associated with a user ID", + Privilege: "GetUserEndpoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector", + ResourceType: "user*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to obtain information about the Voice channel in an app", + Privilege: "GetVoiceChannel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MetricSet", + ResourceType: "channel*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific or the active version of a voice message template", + Privilege: "GetVoiceTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a detector, dataset, or alert", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to retrieve information about all journeys for an app", + Privilege: "ListJourneys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert", + ResourceType: "app*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector", + ResourceType: "app", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MetricSet", + ResourceType: "campaign", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "journey", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "segment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an alert for an anomaly detector", - Privilege: "UpdateAlert", + AccessLevel: "List", + Description: "Grants permission to retrieve all versions about a specific template", + Privilege: "ListTemplateVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Alert*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an anomaly detector", - Privilege: "UpdateAnomalyDetector", + AccessLevel: "List", + Description: "Grants permission to retrieve metadata about the queried templates", + Privilege: "ListTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnomalyDetector*", + ResourceType: "templates*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a dataset", - Privilege: "UpdateMetricSet", + AccessLevel: "Read", + Description: "Grants permission to obtain metadata for a phone number, such as the number type (mobile, landline, or VoIP), location, and provider", + Privilege: "PhoneNumberValidate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "MetricSet*", + ResourceType: "phone-number-validate*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:lookoutmetrics:${Region}:${Account}:AnomalyDetector:${AnomalyDetectorName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "AnomalyDetector", - }, - { - Arn: "arn:${Partition}:lookoutmetrics:${Region}:${Account}:MetricSet/${AnomalyDetectorName}/${MetricSetName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "MetricSet", - }, - { - Arn: "arn:${Partition}:lookoutmetrics:${Region}:${Account}:Alert:${AlertName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Alert", - }, - }, - ServiceName: "Amazon Lookout for Metrics", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "lookoutvision", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a dataset manifest", - Privilege: "CreateDataset", + Description: "Grants permission to create or update an event stream for an app", + Privilege: "PutEventStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "event-stream*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new anomaly detection model", - Privilege: "CreateModel", + Description: "Grants permission to create or update events for an app", + Privilege: "PutEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "events*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new project", - Privilege: "CreateProject", + Description: "Grants permission to remove the attributes for an app", + Privilege: "RemoveAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "attribute*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a dataset", - Privilege: "DeleteDataset", + Description: "Grants permission to send an SMS message or push notification to specific endpoints", + Privilege: "SendMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "messages*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a model and all associated assets", - Privilege: "DeleteModel", + Description: "Grants permission to send an OTP code to a user of your application", + Privilege: "SendOTPMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "otp*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to permanently remove a project", - Privilege: "DeleteProject", + Description: "Grants permission to send an SMS message or push notification to all endpoints that are associated with a specific user ID", + Privilege: "SendUsersMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "messages*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to show detailed information about dataset manifest", - Privilege: "DescribeDataset", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "campaign", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "journey", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "segment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to show detailed information about a model", - Privilege: "DescribeModel", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "app", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to show detailed information about a model packaging job", - Privilege: "DescribeModelPackagingJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "campaign", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "journey", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "segment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to show detailed information about a project", - Privilege: "DescribeProject", + AccessLevel: "Write", + Description: "Grants permission to update the Amazon Device Messaging (ADM) channel for an app", + Privilege: "UpdateAdmChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provides state information about a running anomaly detection job", - Privilege: "DescribeTrialDetection", + AccessLevel: "Write", + Description: "Grants permission to update the Apple Push Notification service (APNs) channel for an app", + Privilege: "UpdateApnsChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke detection of anomalies", - Privilege: "DetectAnomalies", + Description: "Grants permission to update the Apple Push Notification service (APNs) sandbox channel for an app", + Privilege: "UpdateApnsSandboxChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the contents of dataset manifest", - Privilege: "ListDatasetEntries", + AccessLevel: "Write", + Description: "Grants permission to update the Apple Push Notification service (APNs) VoIP channel for an app", + Privilege: "UpdateApnsVoipChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all model packaging jobs associated with a project", - Privilege: "ListModelPackagingJobs", + AccessLevel: "Write", + Description: "Grants permission to update the Apple Push Notification service (APNs) VoIP sandbox channel for an app", + Privilege: "UpdateApnsVoipSandboxChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all models associated with a project", - Privilege: "ListModels", + AccessLevel: "Write", + Description: "Grants permission to update the default settings for an app", + Privilege: "UpdateApplicationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all projects", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to update the Baidu channel for an app", + Privilege: "UpdateBaiduChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a specific campaign", + Privilege: "UpdateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "campaign*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all anomaly detection jobs", - Privilege: "ListTrialDetections", + AccessLevel: "Write", + Description: "Grants permission to update the email channel for an app", + Privilege: "UpdateEmailChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start anomaly detection model", - Privilege: "StartModel", + Description: "Grants permission to update a specific email template under the same version or generate a new version", + Privilege: "UpdateEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a model packaging job", - Privilege: "StartModelPackagingJob", + Description: "Grants permission to create an endpoint or update the information for an endpoint", + Privilege: "UpdateEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start bulk detection of anomalies for a set of images stored in an S3 bucket", - Privilege: "StartTrialDetection", + Description: "Grants permission to create or update endpoints as a batch operation", + Privilege: "UpdateEndpointsBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop anomaly detection model", - Privilege: "StopModel", + Description: "Grants permission to update the Firebase Cloud Messaging (FCM) or Google Cloud Messaging (GCM) API key that allows to send push notifications to your Android app", + Privilege: "UpdateGcmChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource with given key value pairs", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update a specific in-app message template under the same version or generate a new version", + Privilege: "UpdateInAppTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "template*", }, { ConditionKeys: []string{ @@ -176520,17 +220135,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the tag with the given key from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a specific journey", + Privilege: "UpdateJourney", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "journey*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -176540,412 +220156,553 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a training or test dataset manifest", - Privilege: "UpdateDatasetEntries", + Description: "Grants permission to update a specific journey state", + Privilege: "UpdateJourneyState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "journey*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:lookoutvision:${Region}:${Account}:model/${ProjectName}/${ModelVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "model", - }, - { - Arn: "arn:${Partition}:lookoutvision:${Region}:${Account}:project/${ProjectName}", - ConditionKeys: []string{}, - Resource: "project", - }, - }, - ServiceName: "Amazon Lookout for Vision", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "m2", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel the execution of a batch job", - Privilege: "CancelBatchJobExecution", + Description: "Grants permission to update a specific push notification template under the same version or generate a new version", + Privilege: "UpdatePushTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "template*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "s3:GetObject", - "s3:ListBucket", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a data set import task", - Privilege: "CreateDataSetImportTask", + Description: "Grants permission to update an Amazon Pinpoint configuration for a recommender model", + Privilege: "UpdateRecommenderConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - }, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recommender*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a deployment", - Privilege: "CreateDeployment", + Description: "Grants permission to update a specific segment", + Privilege: "UpdateSegment", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:AddTags", - "elasticloadbalancing:CreateListener", - "elasticloadbalancing:CreateTargetGroup", - "elasticloadbalancing:RegisterTargets", - }, - ResourceType: "Application*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment", + ResourceType: "segment*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to Create an environment", - Privilege: "CreateEnvironment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcs", - "ec2:ModifyNetworkInterfaceAttribute", - "elasticfilesystem:DescribeMountTargets", - "elasticloadbalancing:AddTags", - "elasticloadbalancing:CreateLoadBalancer", - "fsx:DescribeFileSystems", - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApplication", + Description: "Grants permission to update the SMS channel for an app", + Privilege: "UpdateSmsChannel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:DeleteListener", - "elasticloadbalancing:DeleteTargetGroup", - }, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "channel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application from a runtime environment", - Privilege: "DeleteApplicationFromEnvironment", + Description: "Grants permission to update a specific sms message template under the same version or generate a new version", + Privilege: "UpdateSmsTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:DeleteListener", - "elasticloadbalancing:DeleteTargetGroup", - }, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a runtime environment", - Privilege: "DeleteEnvironment", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "elasticloadbalancing:DeleteLoadBalancer", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "Environment*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an application", - Privilege: "GetApplication", + AccessLevel: "Write", + Description: "Grants permission to update the active version parameter of a specific template", + Privilege: "UpdateTemplateActiveVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an application version", - Privilege: "GetApplicationVersion", + AccessLevel: "Write", + Description: "Grants permission to update the Voice channel for an app", + Privilege: "UpdateVoiceChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "channel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a batch job execution", - Privilege: "GetBatchJobExecution", + AccessLevel: "Write", + Description: "Grants permission to update a specific voice message template under the same version or generate a new version", + Privilege: "UpdateVoiceTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "template*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve data set details", - Privilege: "GetDataSetDetails", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a data set import task", - Privilege: "GetDataSetImportTask", + AccessLevel: "Write", + Description: "Grants permission to check the validity of One-Time Passwords (OTPs)", + Privilege: "VerifyOTPMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "verify-otp*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "app", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/*", + ConditionKeys: []string{}, + Resource: "apps", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/campaigns/${CampaignId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "campaign", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "journey", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys", + ConditionKeys: []string{}, + Resource: "journeys", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/segments/${SegmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "segment", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:templates/${TemplateName}/${TemplateType}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "template", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:templates", + ConditionKeys: []string{}, + Resource: "templates", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:recommenders/${RecommenderId}", + ConditionKeys: []string{}, + Resource: "recommender", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:recommenders/*", + ConditionKeys: []string{}, + Resource: "recommenders", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:phone/number/validate", + ConditionKeys: []string{}, + Resource: "phone-number-validate", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/channels", + ConditionKeys: []string{}, + Resource: "channels", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/channels/${ChannelType}", + ConditionKeys: []string{}, + Resource: "channel", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/eventstream", + ConditionKeys: []string{}, + Resource: "event-stream", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/events", + ConditionKeys: []string{}, + Resource: "events", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/messages", + ConditionKeys: []string{}, + Resource: "messages", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/verify-otp", + ConditionKeys: []string{}, + Resource: "verify-otp", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/otp", + ConditionKeys: []string{}, + Resource: "otp", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/attributes/${AttributeType}", + ConditionKeys: []string{}, + Resource: "attribute", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/users/${UserId}", + ConditionKeys: []string{}, + Resource: "user", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/endpoints/${EndpointId}", + ConditionKeys: []string{}, + Resource: "endpoint", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/jobs/import/${JobId}", + ConditionKeys: []string{}, + Resource: "import-job", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/jobs/export/${JobId}", + ConditionKeys: []string{}, + Resource: "export-job", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/kpis/daterange/${KpiName}", + ConditionKeys: []string{}, + Resource: "application-metrics", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/campaigns/${CampaignId}/kpis/daterange/${KpiName}", + ConditionKeys: []string{}, + Resource: "campaign-metrics", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}/kpis/daterange/${KpiName}", + ConditionKeys: []string{}, + Resource: "journey-metrics", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}/execution-metrics", + ConditionKeys: []string{}, + Resource: "journey-execution-metrics", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}/activities/${JourneyActivityId}/execution-metrics", + ConditionKeys: []string{}, + Resource: "journey-execution-activity-metrics", + }, + { + Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:reports", + ConditionKeys: []string{}, + Resource: "reports", + }, + }, + ServiceName: "Amazon Pinpoint", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags attached to the resource", + Type: "String", + }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a deployment", - Privilege: "GetDeployment", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", - }, - }, + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "monitron", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve a runtime environment", - Privilege: "GetEnvironment", + AccessLevel: "Permissions management", + Description: "Grants permission to associate a user with the project as an administrator", + Privilege: "AssociateProjectAdminUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Environment*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:AssociateProfile", + "sso:GetManagedApplicationInstance", + "sso:GetProfile", + "sso:ListDirectoryAssociations", + "sso:ListProfileAssociations", + "sso:ListProfiles", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to create a signed Bluinsights url", - Privilege: "GetSignedBluinsightsUrl", + AccessLevel: "Write", + Description: "Grants permission to create a project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "sso:CreateManagedApplicationInstance", + "sso:DeleteManagedApplicationInstance", + "sso:DescribeRegisteredRegions", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the versions of an application", - Privilege: "ListApplicationVersions", + AccessLevel: "Permissions management", + Description: "Grants permission to associate a user with the project", + Privilege: "CreateProjectUserAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:AssociateProfile", + "sso:GetManagedApplicationInstance", + "sso:GetProfile", + "sso:ListDirectoryAssociations", + "sso:ListProfileAssociations", + "sso:ListProfiles", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list applications", - Privilege: "ListApplications", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access role with the user", + Privilege: "CreateUserAccessRoleAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:GetManagedApplicationInstance", + "sso:GetProfile", + "sso:ListDirectoryAssociations", + "sso:ListProfileAssociations", + "sso:ListProfiles", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list batch job definitions", - Privilege: "ListBatchJobDefinitions", + AccessLevel: "Write", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteManagedApplicationInstance", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list executions for a batch job", - Privilege: "ListBatchJobExecutions", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate a user from the project", + Privilege: "DeleteProjectUserAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:DisassociateProfile", + "sso:GetManagedApplicationInstance", + "sso:GetProfile", + "sso:ListDirectoryAssociations", + "sso:ListProfiles", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a batch job execution", - Privilege: "ListBatchJobRestartPoints", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate an access role from the user", + Privilege: "DeleteUserAccessRoleAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list data set import history", - Privilege: "ListDataSetImportHistory", + AccessLevel: "Permissions management", + Description: "Grants permission to disassociate an administrator from the project", + Privilege: "DisassociateProjectAdminUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:DisassociateProfile", + "sso:GetManagedApplicationInstance", + "sso:GetProfile", + "sso:ListDirectoryAssociations", + "sso:ListProfiles", + }, + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list data sets", - Privilege: "ListDataSets", + Description: "Grants permission to get information about a project", + Privilege: "GetProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "project*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list deployments", - Privilege: "ListDeployments", + Description: "Grants permission to describe an administrator who is associated with the project", + Privilege: "GetProjectAdminUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:GetManagedApplicationInstance", + "sso:ListProfileAssociations", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list engine versions", - Privilege: "ListEngineVersions", + AccessLevel: "Permissions management", + Description: "Grants permission to list all administrators associated with the project", + Privilege: "ListProjectAdminUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + "sso:GetManagedApplicationInstance", + }, + ResourceType: "project*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list runtime environments", - Privilege: "ListEnvironments", + Description: "Grants permission to list all users associated with the project", + Privilege: "ListProjectUserAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetManagedApplicationInstance", + "sso:GetProfile", + "sso:ListDirectoryAssociations", + "sso:ListProfileAssociations", + "sso:ListProfiles", + }, + ResourceType: "project*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list all projects", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -176955,38 +220712,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an application", - Privilege: "StartApplication", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a batch job", - Privilege: "StartBatchJob", + AccessLevel: "Read", + Description: "Grants permission to list all tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "project", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an application", - Privilege: "StopApplication", + AccessLevel: "List", + Description: "Grants permission to list all access roles associated with the user", + Privilege: "ListUserAccessRoleAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "project*", }, }, }, @@ -176998,17 +220743,12 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Environment", + ResourceType: "project", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -177023,12 +220763,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Environment", + ResourceType: "project", }, { ConditionKeys: []string{ @@ -177041,317 +220776,283 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an application", - Privilege: "UpdateApplication", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - "s3:ListBucket", - }, - ResourceType: "Application*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a runtime environment", - Privilege: "UpdateEnvironment", + Description: "Grants permission to update a project", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Environment*", + ResourceType: "project*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:m2:${Region}:${Account}:app/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Application", - }, - { - Arn: "arn:${Partition}:m2:${Region}:${Account}:env/${EnvironmentId}", + Arn: "arn:${Partition}:monitron:${Region}:${Account}:project/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Environment", + Resource: "project", }, }, - ServiceName: "AWS Mainframe Modernization Service", + ServiceName: "Amazon Monitron", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "machinelearning", - Privileges: []ParliamentPrivilege{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Tagging", - Description: "Adds one or more tags to an object, up to a limit of 10. Each tag consists of a key and an optional value", - Privilege: "AddTags", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batchprediction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "evaluation", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlmodel", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", }, { - AccessLevel: "Write", - Description: "Generates predictions for a group of observations", - Privilege: "CreateBatchPrediction", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "batchprediction*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasource*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlmodel*", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "mq", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Creates a DataSource object from an Amazon RDS", - Privilege: "CreateDataSourceFromRDS", + Description: "Grants permission to create a broker", + Privilege: "CreateBroker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasource*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:CreateSecurityGroup", + "ec2:CreateVpcEndpoint", + "ec2:DescribeInternetGateways", + "ec2:DescribeNetworkInterfacePermissions", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyNetworkInterfaceAttribute", + "iam:CreateServiceLinkedRole", + "route53:AssociateVPCWithHostedZone", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Creates a DataSource from a database hosted on an Amazon Redshift cluster", - Privilege: "CreateDataSourceFromRedshift", + Description: "Grants permission to create a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and engine version)", + Privilege: "CreateConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Creates a DataSource object from S3", - Privilege: "CreateDataSourceFromS3", + Description: "Grants permission to create a replica broker", + Privilege: "CreateReplicaBroker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "brokers*", }, }, }, { - AccessLevel: "Write", - Description: "Creates a new Evaluation of an MLModel", - Privilege: "CreateEvaluation", + AccessLevel: "Tagging", + Description: "Grants permission to create tags", + Privilege: "CreateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "brokers", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation*", + ResourceType: "configurations", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Creates a new MLModel", - Privilege: "CreateMLModel", + Description: "Grants permission to create an ActiveMQ user", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "brokers*", }, }, }, { AccessLevel: "Write", - Description: "Creates a real-time endpoint for the MLModel", - Privilege: "CreateRealtimeEndpoint", + Description: "Grants permission to delete a broker", + Privilege: "DeleteBroker", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlmodel*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + "ec2:DeleteNetworkInterfacePermission", + "ec2:DeleteVpcEndpoints", + "ec2:DetachNetworkInterface", + }, + ResourceType: "brokers*", }, }, }, { AccessLevel: "Write", - Description: "Assigns the DELETED status to a BatchPrediction, rendering it unusable", - Privilege: "DeleteBatchPrediction", + Description: "Grants permission to delete a configuration", + Privilege: "DeleteConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchprediction*", + ResourceType: "configurations*", }, }, }, { - AccessLevel: "Write", - Description: "Assigns the DELETED status to a DataSource, rendering it unusable", - Privilege: "DeleteDataSource", + AccessLevel: "Tagging", + Description: "Grants permission to delete tags", + Privilege: "DeleteTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "brokers", }, - }, - }, - { - AccessLevel: "Write", - Description: "Assigns the DELETED status to an Evaluation, rendering it unusable", - Privilege: "DeleteEvaluation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation*", + ResourceType: "configurations", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Assigns the DELETED status to an MLModel, rendering it unusable", - Privilege: "DeleteMLModel", + Description: "Grants permission to delete an ActiveMQ user", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "brokers*", }, }, }, { - AccessLevel: "Write", - Description: "Deletes a real time endpoint of an MLModel", - Privilege: "DeleteRealtimeEndpoint", + AccessLevel: "Read", + Description: "Grants permission to return information about the specified broker", + Privilege: "DescribeBroker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "brokers*", }, }, }, { - AccessLevel: "Tagging", - Description: "Deletes the specified tags associated with an ML object. After this operation is complete, you can't recover deleted tags", - Privilege: "DeleteTags", + AccessLevel: "Read", + Description: "Grants permission to return information about broker engines", + Privilege: "DescribeBrokerEngineTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchprediction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "evaluation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about the broker instance options", + Privilege: "DescribeBrokerInstanceOptions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlmodel", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Returns a list of BatchPrediction operations that match the search criteria in the request", - Privilege: "DescribeBatchPredictions", + AccessLevel: "Read", + Description: "Grants permission to return information about the specified configuration", + Privilege: "DescribeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configurations*", }, }, }, { - AccessLevel: "List", - Description: "Returns a list of DataSource that match the search criteria in the request", - Privilege: "DescribeDataSources", + AccessLevel: "Read", + Description: "Grants permission to return the specified configuration revision for the specified configuration", + Privilege: "DescribeConfigurationRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configurations*", }, }, }, { - AccessLevel: "List", - Description: "Returns a list of DescribeEvaluations that match the search criteria in the request", - Privilege: "DescribeEvaluations", + AccessLevel: "Read", + Description: "Grants permission to return information about an ActiveMQ user", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "brokers*", }, }, }, { AccessLevel: "List", - Description: "Returns a list of MLModel that match the search criteria in the request", - Privilege: "DescribeMLModels", + Description: "Grants permission to return a list of all brokers", + Privilege: "ListBrokers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -177362,321 +221063,231 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Describes one or more of the tags for your Amazon ML object", - Privilege: "DescribeTags", + Description: "Grants permission to return a list of all existing revisions for the specified configuration", + Privilege: "ListConfigurationRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchprediction", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "evaluation", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlmodel", + ResourceType: "configurations*", }, }, }, { - AccessLevel: "Read", - Description: "Returns a BatchPrediction that includes detailed metadata, status, and data file information", - Privilege: "GetBatchPrediction", + AccessLevel: "List", + Description: "Grants permission to return a list of all configurations", + Privilege: "ListConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchprediction*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Returns a DataSource that includes metadata and data file information, as well as the current status of the DataSource", - Privilege: "GetDataSource", + AccessLevel: "List", + Description: "Grants permission to return a list of tags", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "brokers", }, - }, - }, - { - AccessLevel: "Read", - Description: "Returns an Evaluation that includes metadata as well as the current status of the Evaluation", - Privilege: "GetEvaluation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "configurations", }, }, }, { - AccessLevel: "Read", - Description: "Returns an MLModel that includes detailed metadata, and data source information as well as the current status of the MLModel", - Privilege: "GetMLModel", + AccessLevel: "List", + Description: "Grants permission to return a list of all ActiveMQ users", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "brokers*", }, }, }, { AccessLevel: "Write", - Description: "Generates a prediction for the observation using the specified ML Model", - Privilege: "Predict", + Description: "Grants permission to promote a broker", + Privilege: "Promote", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "brokers*", }, }, }, { AccessLevel: "Write", - Description: "Updates the BatchPredictionName of a BatchPrediction", - Privilege: "UpdateBatchPrediction", + Description: "Grants permission to reboot a broker", + Privilege: "RebootBroker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchprediction*", + ResourceType: "brokers*", }, }, }, { AccessLevel: "Write", - Description: "Updates the DataSourceName of a DataSource", - Privilege: "UpdateDataSource", + Description: "Grants permission to add a pending configuration change to a broker", + Privilege: "UpdateBroker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "brokers*", }, }, }, { AccessLevel: "Write", - Description: "Updates the EvaluationName of an Evaluation", - Privilege: "UpdateEvaluation", + Description: "Grants permission to update the specified configuration", + Privilege: "UpdateConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "evaluation*", + ResourceType: "configurations*", }, }, }, { AccessLevel: "Write", - Description: "Updates the MLModelName and the ScoreThreshold of an MLModel", - Privilege: "UpdateMLModel", + Description: "Grants permission to update the information for an ActiveMQ user", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlmodel*", + ResourceType: "brokers*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:batchprediction/${BatchPredictionId}", - ConditionKeys: []string{}, - Resource: "batchprediction", - }, - { - Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:datasource/${DatasourceId}", - ConditionKeys: []string{}, - Resource: "datasource", - }, - { - Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:evaluation/${EvaluationId}", - ConditionKeys: []string{}, - Resource: "evaluation", + Arn: "arn:${Partition}:mq:${Region}:${Account}:broker:${BrokerName}:${BrokerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "brokers", }, { - Arn: "arn:${Partition}:machinelearning:${Region}:${Account}:mlmodel/${MlModelId}", - ConditionKeys: []string{}, - Resource: "mlmodel", + Arn: "arn:${Partition}:mq:${Region}:${Account}:configuration:${ConfigurationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configurations", }, }, - ServiceName: "Amazon Machine Learning", + ServiceName: "Amazon MQ", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", + Condition: "neptune-db:QueryLanguage", + Description: "Filters access by graph model", Type: "String", }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, }, - Prefix: "macie2", + Prefix: "neptune-db", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept an Amazon Macie membership invitation", - Privilege: "AcceptInvitation", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about one or more custom data identifiers", - Privilege: "BatchGetCustomDataIdentifiers", + Description: "Grants permission to cancel a loader job", + Privilege: "CancelLoaderJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CustomDataIdentifier*", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to an Amazon Macie administrator to change the status of automated sensitive data discovery for one or more accounts in their organization", - Privilege: "BatchUpdateAutomatedDiscoveryAccounts", + Description: "Grants permission to cancel an ML data processing job", + Privilege: "CancelMLDataProcessingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create and define the settings for an allow list", - Privilege: "CreateAllowList", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and define the settings for a sensitive data discovery job", - Privilege: "CreateClassificationJob", + Description: "Grants permission to cancel an ML model training job", + Privilege: "CancelMLModelTrainingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ClassificationJob*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and define the settings for a custom data identifier", - Privilege: "CreateCustomDataIdentifier", + Description: "Grants permission to cancel an ML model transform job", + Privilege: "CancelMLModelTransformJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CustomDataIdentifier*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and define the settings for a findings filter", - Privilege: "CreateFindingsFilter", + Description: "Grants permission to cancel a query", + Privilege: "CancelQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FindingsFilter*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an Amazon Macie membership invitation", - Privilege: "CreateInvitations", + Description: "Grants permission to create an ML endpoint", + Privilege: "CreateMLEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate an account with an Amazon Macie administrator account", - Privilege: "CreateMember", + Description: "Grants permission to run delete data via query APIs on database", + Privilege: "DeleteDataViaQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member*", + ResourceType: "database*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "neptune-db:QueryLanguage", }, DependentActions: []string{}, ResourceType: "", @@ -177685,251 +221296,126 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create sample findings", - Privilege: "CreateSampleFindings", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to decline Amazon Macie membership invitations", - Privilege: "DeclineInvitations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an allow list", - Privilege: "DeleteAllowList", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "AllowList*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a custom data identifier", - Privilege: "DeleteCustomDataIdentifier", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "CustomDataIdentifier*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a findings filter", - Privilege: "DeleteFindingsFilter", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "FindingsFilter*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete Amazon Macie membership invitations", - Privilege: "DeleteInvitations", + Description: "Grants permission to delete an ML endpoint", + Privilege: "DeleteMLEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the association between an Amazon Macie administrator account and an account", - Privilege: "DeleteMember", + Description: "Grants permission to delete all the statistics in the database", + Privilege: "DeleteStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member*", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve statistical data and other information about S3 buckets that Amazon Macie monitors and analyzes", - Privilege: "DescribeBuckets", + Description: "Grants permission to check the status of the Neptune engine", + Privilege: "GetEngineStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the status and settings for a sensitive data discovery job", - Privilege: "DescribeClassificationJob", + Description: "Grants permission to get the graph summary from the database", + Privilege: "GetGraphSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ClassificationJob*", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Macie configuration settings for an AWS organization", - Privilege: "DescribeOrganizationConfiguration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable an Amazon Macie account, which also deletes Macie resources for the account", - Privilege: "DisableMacie", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable an account as the delegated Amazon Macie administrator account for an AWS organization", - Privilege: "DisableOrganizationAdminAccount", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to an Amazon Macie member account to disassociate from its Macie administrator account", - Privilege: "DisassociateFromAdministratorAccount", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to an Amazon Macie member account to disassociate from its Macie administrator account", - Privilege: "DisassociateFromMasterAccount", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to an Amazon Macie administrator account to disassociate from a Macie member account", - Privilege: "DisassociateMember", + Description: "Grants permission to check the status of a loader job", + Privilege: "GetLoaderJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member*", + ResourceType: "database*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable and specify the configuration settings for a new Amazon Macie account", - Privilege: "EnableMacie", + AccessLevel: "Read", + Description: "Grants permission to check the status of an ML data processing job", + Privilege: "GetMLDataProcessingJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable an account as the delegated Amazon Macie administrator account for an AWS organization", - Privilege: "EnableOrganizationAdminAccount", + AccessLevel: "Read", + Description: "Grants permission to check the status of an ML endpoint", + Privilege: "GetMLEndpointStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Macie administrator account for an account", - Privilege: "GetAdministratorAccount", + Description: "Grants permission to check the status of an ML model training job", + Privilege: "GetMLModelTrainingJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the settings and status of an allow list", - Privilege: "GetAllowList", + Description: "Grants permission to check the status of an ML model transform job", + Privilege: "GetMLModelTransformJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllowList*", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the configuration settings and status of automated sensitive data discovery for an Amazon Macie administrator account, organization, or standalone account", - Privilege: "GetAutomatedDiscoveryConfiguration", + Description: "Grants permission to check the status of all active queries", + Privilege: "GetQueryStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve aggregated statistical data for all the S3 buckets that Amazon Macie monitors and analyzes", - Privilege: "GetBucketStatistics", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "neptune-db:QueryLanguage", + }, DependentActions: []string{}, ResourceType: "", }, @@ -177937,490 +221423,728 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the settings for exporting sensitive data discovery results", - Privilege: "GetClassificationExportConfiguration", + Description: "Grants permission to check the status of statistics of the database", + Privilege: "GetStatisticsStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the classification scope settings for an account", - Privilege: "GetClassificationScope", + Description: "Grants permission to fetch stream records from Neptune", + Privilege: "GetStreamRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the settings for a custom data identifier", - Privilege: "GetCustomDataIdentifier", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "neptune-db:QueryLanguage", + }, DependentActions: []string{}, - ResourceType: "CustomDataIdentifier*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve aggregated statistical data about findings", - Privilege: "GetFindingStatistics", + AccessLevel: "List", + Description: "Grants permission to list all the loader jobs", + Privilege: "ListLoaderJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of one or more findings", - Privilege: "GetFindings", + AccessLevel: "List", + Description: "Grants permission to list all the ML data processing jobs", + Privilege: "ListMLDataProcessingJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the settings for a findings filter", - Privilege: "GetFindingsFilter", + AccessLevel: "List", + Description: "Grants permission to list all the ML endpoints", + Privilege: "ListMLEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FindingsFilter*", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the configuration settings for publishing findings to AWS Security Hub", - Privilege: "GetFindingsPublicationConfiguration", + AccessLevel: "List", + Description: "Grants permission to list all the ML model training jobs", + Privilege: "ListMLModelTrainingJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the count of Amazon Macie membership invitations that were received by an account", - Privilege: "GetInvitationsCount", + AccessLevel: "List", + Description: "Grants permission to list all the ML model transform jobs", + Privilege: "ListMLModelTransformJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the status and configuration settings for an Amazon Macie account", - Privilege: "GetMacieSession", + AccessLevel: "Write", + Description: "Grants permission to manage statistics in the database", + Privilege: "ManageStatistics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Macie administrator account for an account", - Privilege: "GetMasterAccount", + Description: "Grants permission to run read data via query APIs on database", + Privilege: "ReadDataViaQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "database*", + }, + { + ConditionKeys: []string{ + "neptune-db:QueryLanguage", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about an account that's associated with an Amazon Macie administrator account", - Privilege: "GetMember", + AccessLevel: "Write", + Description: "Grants permission to get the token needed for reset and resets the Neptune database", + Privilege: "ResetDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member*", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve sensitive data discovery statistics and the sensitivity score for an S3 bucket", - Privilege: "GetResourceProfile", + AccessLevel: "Write", + Description: "Grants permission to start a loader job", + Privilege: "StartLoaderJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the status and configuration settings for retrieving occurrences of sensitive data reported by findings", - Privilege: "GetRevealConfiguration", + AccessLevel: "Write", + Description: "Grants permission to start an ML data processing job", + Privilege: "StartMLDataProcessingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve occurrences of sensitive data reported by a finding", - Privilege: "GetSensitiveDataOccurrences", + AccessLevel: "Write", + Description: "Grants permission to start an ML model training job", + Privilege: "StartMLModelTrainingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check whether occurrences of sensitive data can be retrieved for a finding", - Privilege: "GetSensitiveDataOccurrencesAvailability", + AccessLevel: "Write", + Description: "Grants permission to start an ML model transform job", + Privilege: "StartMLModelTransformJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the sensitivity inspection template settings for an account", - Privilege: "GetSensitivityInspectionTemplate", + AccessLevel: "Write", + Description: "Grants permission to run write data via query APIs on database", + Privilege: "WriteDataViaQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "database*", + }, + { + ConditionKeys: []string{ + "neptune-db:QueryLanguage", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve quotas and aggregated usage data for one or more accounts", - Privilege: "GetUsageStatistics", + AccessLevel: "Write", + Description: "Grants permission to all data-access actions in engine versions prior to 1.2.0.0", + Privilege: "connect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "database*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve aggregated usage data for an account", - Privilege: "GetUsageTotals", + Arn: "arn:${Partition}:neptune-db:${Region}:${Account}:${ClusterResourceId}/*", + ConditionKeys: []string{}, + Resource: "database", + }, + }, + ServiceName: "Amazon Neptune", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in a request", + Type: "ArrayOfString", + }, + { + Condition: "neptune-graph:PublicConnectivity", + Description: "Filters access by the value of the public connectivity parameter provided in the request or its default value, if unspecified. All access to graphs is IAM authenticated", + Type: "Bool", + }, + }, + Prefix: "neptune-graph", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel an ongoing export task", + Privilege: "CancelExportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "export-task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a subset of information about all the allow lists for an account", - Privilege: "ListAllowLists", + AccessLevel: "Write", + Description: "Grants permission to cancel an ongoing import task", + Privilege: "CancelImportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "import-task*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the status of automated sensitive data discovery for an account", - Privilege: "ListAutomatedDiscoveryAccounts", + AccessLevel: "Write", + Description: "Grants permission to cancel a query", + Privilege: "CancelQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a subset of information about the status and settings for one or more sensitive data discovery jobs", - Privilege: "ListClassificationJobs", + AccessLevel: "Write", + Description: "Grants permission to create a new graph", + Privilege: "CreateGraph", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + }, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "neptune-graph:PublicConnectivity", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a subset of information about the classification scope for an account", - Privilege: "ListClassificationScopes", + AccessLevel: "Write", + Description: "Grants permission to create a new snapshot from an existing graph", + Privilege: "CreateGraphSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "graph*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all custom data identifiers", - Privilege: "ListCustomDataIdentifiers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph-snapshot*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a subset of information about one or more findings", - Privilege: "ListFindings", + AccessLevel: "Write", + Description: "Grants permission to create a new graph while importing data into the new graph", + Privilege: "CreateGraphUsingImportTask", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + }, + ResourceType: "graph*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "import-task*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "neptune-graph:PublicConnectivity", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all findings filters", - Privilege: "ListFindingsFilters", + AccessLevel: "Write", + Description: "Grants permission to create a new private graph endpoint to access the graph from within a vpc", + Privilege: "CreatePrivateGraphEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateVpcEndpoint", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", + "route53:AssociateVPCWithHostedZone", + }, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all the Amazon Macie membership invitations that were received by an account", - Privilege: "ListInvitations", + AccessLevel: "Write", + Description: "Grants permission to delete data via query APIs on the graph", + Privilege: "DeleteDataViaQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about managed data identifiers", - Privilege: "ListManagedDataIdentifiers", + AccessLevel: "Write", + Description: "Grants permission to delete a graph", + Privilege: "DeleteGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about the Amazon Macie member accounts that are associated with a Macie administrator account", - Privilege: "ListMembers", + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot", + Privilege: "DeleteGraphSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph-snapshot*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about the delegated Amazon Macie administrator account for an AWS organization", - Privilege: "ListOrganizationAdminAccounts", + AccessLevel: "Write", + Description: "Grants permission to delete a private graph endpoint of a graph", + Privilege: "DeletePrivateGraphEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcAttribute", + "ec2:DescribeVpcEndpoints", + "ec2:DescribeVpcs", + "ec2:ModifyVpcEndpoint", + "route53:DisassociateVPCFromHostedZone", + }, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about objects that Amazon Macie selected from an S3 bucket for automated sensitive data discovery", - Privilege: "ListResourceProfileArtifacts", + AccessLevel: "Read", + Description: "Grants permission to get the engine status of the graph", + Privilege: "GetEngineStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about the types and amount of sensitive data that Amazon Macie found in an S3 bucket", - Privilege: "ListResourceProfileDetections", + AccessLevel: "Read", + Description: "Grants permission to get details about an export task", + Privilege: "GetExportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "export-task*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a subset of information about the sensitivity inspection template for an account", - Privilege: "ListSensitivityInspectionTemplates", + AccessLevel: "Read", + Description: "Grants permission to get details about a graph", + Privilege: "GetGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the tags for an Amazon Macie resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get details about a snapshot", + Privilege: "GetGraphSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllowList", + ResourceType: "graph-snapshot*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "ClassificationJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the summary for the data in the graph", + Privilege: "GetGraphSummary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CustomDataIdentifier", + ResourceType: "graph*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "FindingsFilter", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about an import task", + Privilege: "GetImportTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member", + ResourceType: "import-task*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update the settings for storing sensitive data discovery results", - Privilege: "PutClassificationExportConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get details about a private graph endpoint of a graph", + Privilege: "GetPrivateGraphEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the configuration settings for publishing findings to AWS Security Hub", - Privilege: "PutFindingsPublicationConfiguration", + AccessLevel: "Read", + Description: "Grants permission to check the status of a given query", + Privilege: "GetQueryStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve statistical data and other information about AWS resources that Amazon Macie monitors and analyzes", - Privilege: "SearchResources", + Description: "Grants permission to get the statistics for the data in the graph", + Privilege: "GetStatisticsStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update the tags for an Amazon Macie resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to list the export tasks in your account", + Privilege: "ListExportTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllowList", + ResourceType: "export-task*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the snapshots in your account", + Privilege: "ListGraphSnapshots", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ClassificationJob", + ResourceType: "graph-snapshot*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the graphs in your account", + Privilege: "ListGraphs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CustomDataIdentifier", + ResourceType: "graph*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the import tasks in your account", + Privilege: "ListImportTasks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FindingsFilter", + ResourceType: "import-task*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the private graph endpoints for a given graph", + Privilege: "ListPrivateGraphEndpoints", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member", + ResourceType: "graph*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -178428,50 +222152,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to test a custom data identifier", - Privilege: "TestCustomDataIdentifier", + AccessLevel: "Read", + Description: "Grants permission to check the status of all active queries", + Privilege: "ListQueries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Amazon Macie resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to lists tag for a Neptune Analytics resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllowList", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ClassificationJob", + ResourceType: "graph", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "CustomDataIdentifier", + ResourceType: "graph-snapshot", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "FindingsFilter", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read data via query APIs on the graph", + Privilege: "ReadDataViaQuery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Member", + ResourceType: "graph*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -178480,23 +222215,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the settings for an allow list", - Privilege: "UpdateAllowList", + Description: "Grants permission to reset a graph which deletes all data within the graph", + Privilege: "ResetGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AllowList*", + ResourceType: "graph*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to change the status of automated sensitive data discovery for an Amazon Macie administrator account, organization, or standalone account", - Privilege: "UpdateAutomatedDiscoveryConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -178504,18 +222234,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change the status of a sensitive data discovery job", - Privilege: "UpdateClassificationJob", + Description: "Grants permission to create a new graph from an existing snapshot", + Privilege: "RestoreGraphFromSnapshot", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + }, + ResourceType: "graph*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ClassificationJob*", + ResourceType: "graph-snapshot*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", + "neptune-graph:PublicConnectivity", }, DependentActions: []string{}, ResourceType: "", @@ -178524,29 +222265,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the classification scope settings for an account", - Privilege: "UpdateClassificationScope", + Description: "Grants permission to export data from an existing graph", + Privilege: "StartExportTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "export-task*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the settings for a findings filter", - Privilege: "UpdateFindingsFilter", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FindingsFilter*", + ResourceType: "graph*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -178556,84 +222293,107 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to an Amazon Macie administrator account to suspend or re-enable Macie for a member account", - Privilege: "UpdateMacieSession", + Description: "Grants permission to import data into an existing graph", + Privilege: "StartImportTask", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "graph*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "import-task*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to an Amazon Macie administrator account to suspend or re-enable a Macie member account", - Privilege: "UpdateMemberSession", + AccessLevel: "Tagging", + Description: "Grants permission to tag a Neptune Analytics resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "graph", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update Amazon Macie configuration settings for an AWS organization", - Privilege: "UpdateOrganizationConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph-snapshot", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the sensitivity score for an S3 bucket", - Privilege: "UpdateResourceProfile", + AccessLevel: "Tagging", + Description: "Grants permission to untag a Neptune Analytics resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "graph", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the sensitivity scoring settings for an S3 bucket", - Privilege: "UpdateResourceProfileDetections", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph-snapshot", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status and configuration settings for retrieving occurrences of sensitive data reported by findings", - Privilege: "UpdateRevealConfiguration", + Description: "Grants permission to modify a graph", + Privilege: "UpdateGraph", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "neptune-graph:PublicConnectivity", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the sensitivity inspection template settings for an account", - Privilege: "UpdateSensitivityInspectionTemplate", + Description: "Grants permission to write data via query APIs on the graph", + Privilege: "WriteDataViaQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "graph*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, @@ -178641,94 +222401,102 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:macie2:${Region}:${Account}:allow-list/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "AllowList", - }, - { - Arn: "arn:${Partition}:macie2:${Region}:${Account}:classification-job/${ResourceId}", + Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:graph/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "ClassificationJob", + Resource: "graph", }, { - Arn: "arn:${Partition}:macie2:${Region}:${Account}:custom-data-identifier/${ResourceId}", + Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:graph-snapshot/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "CustomDataIdentifier", + Resource: "graph-snapshot", }, { - Arn: "arn:${Partition}:macie2:${Region}:${Account}:findings-filter/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "FindingsFilter", + Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:import-task/${ResourceId}", + ConditionKeys: []string{}, + Resource: "import-task", }, { - Arn: "arn:${Partition}:macie2:${Region}:${Account}:member/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Member", + Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:export-task/${ResourceId}", + ConditionKeys: []string{}, + Resource: "export-task", }, }, - ServiceName: "Amazon Macie", + ServiceName: "Amazon Neptune Analytics", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", + Description: "Filters access by on the allowed set of values for each of the tags", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with an Amazon Managed Blockchain resource", + Description: "Filters access by the tag value associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", + Description: "Filters access by the presence of mandatory tags in the request", Type: "ArrayOfString", }, }, - Prefix: "managedblockchain", + Prefix: "network-firewall", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Managed Blockchain accessor", - Privilege: "CreateAccessor", + Description: "Grants permission to create an association between a firewall policy and a firewall", + Privilege: "AssociateFirewallPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Firewall*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FirewallPolicy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a member of an Amazon Managed Blockchain network", - Privilege: "CreateMember", + Description: "Grants permission to associate VPC subnets to a firewall", + Privilege: "AssociateSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Firewall*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Network Firewall firewall", + Privilege: "CreateFirewall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:CreateServiceLinkedRole", }, - ResourceType: "network*", + ResourceType: "Firewall*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FirewallPolicy*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -178737,42 +222505,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Managed Blockchain network", - Privilege: "CreateNetwork", + Description: "Grants permission to create an AWS Network Firewall firewall policy", + Privilege: "CreateFirewallPolicy", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FirewallPolicy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TLSInspectionConfiguration", + }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a node within a member of an Amazon Managed Blockchain network", - Privilege: "CreateNode", + Description: "Grants permission to create an AWS Network Firewall rule group", + Privilege: "CreateRuleGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "member", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network", + ResourceType: "StatelessRuleGroup", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -178781,18 +222565,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a proposal that other blockchain network members can vote on to add or remove a member in an Amazon Managed Blockchain network", - Privilege: "CreateProposal", + Description: "Grants permission to create an AWS Network Firewall tls inspection configuration", + Privilege: "CreateTLSInspectionConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "network*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "TLSInspectionConfiguration*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -178801,188 +222587,301 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Managed Blockchain accessor", - Privilege: "DeleteAccessor", + Description: "Grants permission to delete a firewall", + Privilege: "DeleteFirewall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessor*", + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a member and all associated resources from an Amazon Managed Blockchain network", - Privilege: "DeleteMember", + Description: "Grants permission to delete a firewall policy", + Privilege: "DeleteFirewallPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "member*", + ResourceType: "FirewallPolicy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a node from a member of an Amazon Managed Blockchain network", - Privilege: "DeleteNode", + Description: "Grants permission to delete a resource policy for a firewall policy or rule group", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "node*", + ResourceType: "FirewallPolicy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to send HTTP GET requests to an Ethereum node", - Privilege: "GET", + AccessLevel: "Write", + Description: "Grants permission to delete a rule group", + Privilege: "DeleteRuleGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "StatefulRuleGroup*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return detailed information about an Amazon Managed Blockchain accessor", - Privilege: "GetAccessor", + AccessLevel: "Write", + Description: "Grants permission to delete a tls inspection configuration", + Privilege: "DeleteTLSInspectionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessor*", + ResourceType: "TLSInspectionConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return detailed information about a member of an Amazon Managed Blockchain network", - Privilege: "GetMember", + Description: "Grants permission to retrieve the data objects that define a firewall", + Privilege: "DescribeFirewall", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "member*", + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return detailed information about an Amazon Managed Blockchain network", - Privilege: "GetNetwork", + Description: "Grants permission to retrieve the data objects that define a firewall policy", + Privilege: "DescribeFirewallPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "FirewallPolicy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TLSInspectionConfiguration", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return detailed information about a node within a member of an Amazon Managed Blockchain network", - Privilege: "GetNode", + Description: "Grants permission to describe a flow operation performed on a firewall", + Privilege: "DescribeFlowOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "node*", + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return detailed information about a proposal of an Amazon Managed Blockchain network", - Privilege: "GetProposal", + Description: "Grants permission to describe the logging configuration of a firewall", + Privilege: "DescribeLoggingConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + }, + ResourceType: "Firewall*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a resource policy for a firewall policy or rule group", + Privilege: "DescribeResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "FirewallPolicy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create WebSocket connections to an Ethereum node", - Privilege: "Invoke", + AccessLevel: "Read", + Description: "Grants permission to retrieve the data objects that define a rule group", + Privilege: "DescribeRuleGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to invoke the Bitcoin Mainnet RPCs", - Privilege: "InvokeRpcBitcoinMainnet", + Description: "Grants permission to retrieve the high-level information about a rule group", + Privilege: "DescribeRuleGroupMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to invoke the Bitcoin Testnet RPCs", - Privilege: "InvokeRpcBitcoinTestnet", + Description: "Grants permission to retrieve the data objects that define a tls inspection configuration", + Privilege: "DescribeTLSInspectionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "TLSInspectionConfiguration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate VPC subnets from a firewall", + Privilege: "DisassociateSubnets", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to invoke the Polygon Mainnet RPCs", - Privilege: "InvokeRpcPolygonMainnet", + Description: "Grants permission to retrieve analysis report results of a firewall", + Privilege: "GetAnalysisReportResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Firewall*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list firewall analysis reports", + Privilege: "ListAnalysisReports", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Firewall*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the metadata for firewall policies", + Privilege: "ListFirewallPolicies", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FirewallPolicy*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the metadata for firewalls", + Privilege: "ListFirewalls", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to invoke the Polygon Mumbai Testnet RPCs", - Privilege: "InvokeRpcPolygonMumbaiTestnet", + Description: "Grants permission to list results from a flow operation performed on a firewall", + Privilege: "ListFlowOperationResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Firewall*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the Amazon Managed Blockchain accessors owned by the current AWS account", - Privilege: "ListAccessors", + Description: "Grants permission to list flow operations performed on a firewall", + Privilege: "ListFlowOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Firewall*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the invitations extended to the active AWS account from any Managed Blockchain network", - Privilege: "ListInvitations", + Description: "Grants permission to retrieve the metadata for rule groups", + Privilege: "ListRuleGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -178993,480 +222892,544 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the members of an Amazon Managed Blockchain network and the properties of their memberships", - Privilege: "ListMembers", + Description: "Grants permission to retrieve the metadata for tls inspection configurations", + Privilege: "ListTLSInspectionConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TLSInspectionConfiguration*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "Firewall*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "FirewallPolicy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TLSInspectionConfiguration", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon Managed Blockchain networks in which the current AWS account participates", - Privilege: "ListNetworks", + AccessLevel: "Write", + Description: "Grants permission to put a resource policy for a firewall policy or rule group", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "FirewallPolicy", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the nodes within a member of an Amazon Managed Blockchain network", - Privilege: "ListNodes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "member", + ResourceType: "StatefulRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network", + ResourceType: "StatelessRuleGroup", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all votes for a proposal, including the value of the vote and the unique identifier of the member that cast the vote for the given Amazon Managed Blockchain network", - Privilege: "ListProposalVotes", + AccessLevel: "Write", + Description: "Grants permission to start an analysis report on a firewall", + Privilege: "StartAnalysisReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "Firewall*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list proposals for the given Amazon Managed Blockchain network", - Privilege: "ListProposals", + AccessLevel: "Write", + Description: "Grants permission to start capture operation on a firewall", + Privilege: "StartFlowCapture", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "Firewall*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view tags associated with an Amazon Managed Blockchain resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to start flush operation on a firewall", + Privilege: "StartFlowFlush", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessor", + ResourceType: "Firewall*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to attach tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "invitation", + ResourceType: "Firewall", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "member", + ResourceType: "FirewallPolicy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network", + ResourceType: "StatefulRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "node", + ResourceType: "StatelessRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal", + ResourceType: "TLSInspectionConfiguration", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to send HTTP POST requests to an Ethereum node", - Privilege: "POST", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject the invitation to join the blockchain network", - Privilege: "RejectInvitation", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "invitation*", + ResourceType: "Firewall", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an Amazon Managed Blockchain resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessor", + ResourceType: "FirewallPolicy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "invitation", + ResourceType: "StatefulRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "member", + ResourceType: "StatelessRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network", + ResourceType: "TLSInspectionConfiguration", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "node", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify firewall analysis settings of a firewall", + Privilege: "UpdateFirewallAnalysisSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal", + ResourceType: "Firewall*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or remove delete protection for a firewall", + Privilege: "UpdateFirewallDeleteProtection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Firewall*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Amazon Managed Blockchain resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to modify the description for a firewall", + Privilege: "UpdateFirewallDescription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessor", + ResourceType: "Firewall*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the encryption configuration of a firewall", + Privilege: "UpdateFirewallEncryptionConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "invitation", + ResourceType: "Firewall*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a firewall policy", + Privilege: "UpdateFirewallPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "member", + ResourceType: "FirewallPolicy*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network", + ResourceType: "StatefulRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "node", + ResourceType: "StatelessRuleGroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal", + ResourceType: "TLSInspectionConfiguration", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or remove firewall policy change protection for a firewall", + Privilege: "UpdateFirewallPolicyChangeProtection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a member of an Amazon Managed Blockchain network", - Privilege: "UpdateMember", + Description: "Grants permission to modify the logging configuration of a firewall", + Privilege: "UpdateLoggingConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "member*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Firewall*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a node from a member of an Amazon Managed Blockchain network", - Privilege: "UpdateNode", + Description: "Grants permission to modify a rule group", + Privilege: "UpdateRuleGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "node*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatefulRuleGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "StatelessRuleGroup", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cast a vote for a proposal on behalf of the blockchain network member specified", - Privilege: "VoteOnProposal", + Description: "Grants permission to add or remove subnet change protection for a firewall", + Privilege: "UpdateSubnetChangeProtection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proposal*", + ResourceType: "Firewall*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:managedblockchain:${Region}::networks/${NetworkId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to modify a tls inspection configuration", + Privilege: "UpdateTLSInspectionConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TLSInspectionConfiguration*", + }, }, - Resource: "network", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:members/${MemberId}", + Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:firewall/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "member", + Resource: "Firewall", }, { - Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:nodes/${NodeId}", + Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:firewall-policy/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "node", + Resource: "FirewallPolicy", }, { - Arn: "arn:${Partition}:managedblockchain:${Region}::proposals/${ProposalId}", + Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:stateful-rulegroup/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "proposal", + Resource: "StatefulRuleGroup", }, { - Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:invitations/${InvitationId}", + Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:stateless-rulegroup/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "invitation", + Resource: "StatelessRuleGroup", }, { - Arn: "arn:${Partition}:managedblockchain:${Region}:${Account}:accessors/${AccessorId}", + Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:tls-configuration/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "accessor", + Resource: "TLSInspectionConfiguration", }, }, - ServiceName: "Amazon Managed Blockchain", + ServiceName: "AWS Network Firewall", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "managedblockchain-query", + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "networkflowmonitor", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to batch calls for GetTokenBalance API", - Privilege: "BatchGetTokenBalance", + AccessLevel: "Write", + Description: "Grants permission to create a monitor", + Privilege: "CreateMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "monitor*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch information about a contract on the blockchain", - Privilege: "GetAssetContract", + AccessLevel: "Write", + Description: "Grants permission to create a scope", + Privilege: "CreateScope", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve balance of a token for an address on the blockchain", - Privilege: "GetTokenBalance", + AccessLevel: "Write", + Description: "Grants permission to delete a monitor", + Privilege: "DeleteMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a transaction on the blockchain", - Privilege: "GetTransaction", + AccessLevel: "Write", + Description: "Grants permission to delete a scope", + Privilege: "DeleteScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to fetch multiple contracts on the blockchain", - Privilege: "ListAssetContracts", + AccessLevel: "Read", + Description: "Grants permission to get information about a monitor", + Privilege: "GetMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve events on the blockchain with additional filters", - Privilege: "ListFilteredTransactionEvents", + AccessLevel: "Read", + Description: "Grants permission to get the results of a query that retrieves top contributors data for a monitor", + Privilege: "GetQueryResultsMonitorTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve multiple balances on the blockchain", - Privilege: "ListTokenBalances", + AccessLevel: "Read", + Description: "Grants permission to get the results of a query that retrieves top contributors for workload insights", + Privilege: "GetQueryResultsWorkloadInsightsTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve events in a transaction on the blockchain", - Privilege: "ListTransactionEvents", + AccessLevel: "Read", + Description: "Grants permission to get the results of a query that retrieves top contributors data points for workload insights", + Privilege: "GetQueryResultsWorkloadInsightsTopContributorsData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a multiple transactions on a blockchain", - Privilege: "ListTransactions", + AccessLevel: "Read", + Description: "Grants permission to get the status of a query that retrieves top contributors data for a monitor", + Privilege: "GetQueryStatusMonitorTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Managed Blockchain Query", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "mapcredits", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "List", - Description: "Grants permission to view the user's associated Migration Acceleration Program agreements", - Privilege: "ListAssociatedPrograms", + AccessLevel: "Read", + Description: "Grants permission to get the status of a query that retrieves top contributors for workload insights", + Privilege: "GetQueryStatusWorkloadInsightsTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agreement*", + ResourceType: "scope*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view Migration Acceleration Program agreements credits associated with the user's payer account", - Privilege: "ListQuarterCredits", + AccessLevel: "Read", + Description: "Grants permission to get the status of a query that retrieves top contributors data points for workload insights", + Privilege: "GetQueryStatusWorkloadInsightsTopContributorsData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agreement*", + ResourceType: "scope*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view Migration Acceleration Program agreements eligible spend associated with the user's payer account", - Privilege: "ListQuarterSpend", + AccessLevel: "Read", + Description: "Grants permission to get information about a scope", + Privilege: "GetScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "agreement*", + ResourceType: "scope*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mapcredits:::${Agreement}/${AgreementId}", - ConditionKeys: []string{}, - Resource: "agreement", - }, - }, - ServiceName: "AWS Migration Acceleration Program Credits", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "marketplacecommerceanalytics", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Request a data set to be published to your Amazon S3 bucket.", - Privilege: "GenerateDataSet", + AccessLevel: "List", + Description: "Grants permission to list all monitors in an account and their statuses", + Privilege: "ListMonitors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -179476,9 +223439,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Request a support data set to be published to your Amazon S3 bucket.", - Privilege: "StartSupportDataExport", + AccessLevel: "List", + Description: "Grants permission to get all scopes for an account", + Privilege: "ListScopes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -179487,30 +223450,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Marketplace Commerce Analytics Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "mechanicalturk", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "The AcceptQualificationRequest operation grants a Worker's request for a Qualification", - Privilege: "AcceptQualificationRequest", + AccessLevel: "Read", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "scope", }, }, }, { AccessLevel: "Write", - Description: "The ApproveAssignment operation approves the results of a completed assignment", - Privilege: "ApproveAssignment", + Description: "Grants permission to publish a report", + Privilege: "Publish", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -179521,347 +223481,549 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "The AssociateQualificationWithWorker operation gives a Worker a Qualification", - Privilege: "AssociateQualificationWithWorker", + Description: "Grants permission to start a query for retrieving top contributors data for a monitor", + Privilege: "StartQueryMonitorTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { AccessLevel: "Write", - Description: "The CreateAdditionalAssignmentsForHIT operation increases the maximum number of assignments of an existing HIT", - Privilege: "CreateAdditionalAssignmentsForHIT", + Description: "Grants permission to start a query for retrieving top contributors data for workload insights", + Privilege: "StartQueryWorkloadInsightsTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { AccessLevel: "Write", - Description: "The CreateHIT operation creates a new HIT (Human Intelligence Task)", - Privilege: "CreateHIT", + Description: "Grants permission to start a query for retrieving top contributors data points for workload insights", + Privilege: "StartQueryWorkloadInsightsTopContributorsData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { AccessLevel: "Write", - Description: "The CreateHITType operation creates a new HIT type", - Privilege: "CreateHITType", + Description: "Grants permission to stop a query for retrieving top contributors data for a monitor", + Privilege: "StopQueryMonitorTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { AccessLevel: "Write", - Description: "The CreateHITWithHITType operation creates a new Human Intelligence Task (HIT) using an existing HITTypeID generated by the CreateHITType operation", - Privilege: "CreateHITWithHITType", + Description: "Grants permission to stop a query for retrieving top contributors for workload insights", + Privilege: "StopQueryWorkloadInsightsTopContributors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { AccessLevel: "Write", - Description: "The CreateQualificationType operation creates a new Qualification type, which is represented by a QualificationType data structure", - Privilege: "CreateQualificationType", + Description: "Grants permission to stop a query for retrieving top contributors data points for workload insights", + Privilege: "StopQueryWorkloadInsightsTopContributorsData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, { - AccessLevel: "Write", - Description: "The CreateWorkerBlock operation allows you to prevent a Worker from working on your HITs", - Privilege: "CreateWorkerBlock", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "monitor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "scope", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "The DeleteHIT operation disposes of a HIT that is no longer needed", - Privilege: "DeleteHIT", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "monitor", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "scope", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "The DeleteQualificationType disposes a Qualification type and disposes any HIT types that are associated with the Qualification type", - Privilege: "DeleteQualificationType", + Description: "Grants permission to update a monitor", + Privilege: "UpdateMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { AccessLevel: "Write", - Description: "The DeleteWorkerBlock operation allows you to reinstate a blocked Worker to work on your HITs", - Privilege: "DeleteWorkerBlock", + Description: "Grants permission to update a scope", + Privilege: "UpdateScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "scope*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:networkflowmonitor:${Region}:${Account}:monitor/${MonitorName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "monitor", + }, + { + Arn: "arn:${Partition}:networkflowmonitor:${Region}:${Account}:scope/${ScopeId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "scope", + }, + }, + ServiceName: "Network Flow Monitor", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "networkmanager:cgwArn", + Description: "Filters access by which customer gateways can be associated or disassociated", + Type: "ARN", + }, + { + Condition: "networkmanager:directConnectGatewayArn", + Description: "Filters access by which Direct Connect gateway can be used to a create/update attachment", + Type: "ARN", + }, + { + Condition: "networkmanager:edgeLocations", + Description: "Filters access by which edge locations can be added or removed from a Direct Connect gateway attachment", + Type: "ArrayOfString", + }, + { + Condition: "networkmanager:subnetArns", + Description: "Filters access by which VPC subnets can be added or removed from a VPC attachment", + Type: "ArrayOfARN", + }, + { + Condition: "networkmanager:tgwArn", + Description: "Filters access by which transit gateways can be registered, deregistered, or peered", + Type: "ARN", + }, + { + Condition: "networkmanager:tgwConnectPeerArn", + Description: "Filters access by which transit gateway connect peers can be associated or disassociated", + Type: "ARN", + }, + { + Condition: "networkmanager:tgwRtbArn", + Description: "Filters access by which Transit Gateway Route Table can be used to create an attachment", + Type: "ARN", + }, + { + Condition: "networkmanager:vpcArn", + Description: "Filters access by which VPC can be used to a create/update attachment", + Type: "ARN", + }, + { + Condition: "networkmanager:vpnConnectionArn", + Description: "Filters access by which Site-to-Site VPN can be used to a create/update attachment", + Type: "ARN", + }, + }, + Prefix: "networkmanager", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "The DisassociateQualificationFromWorker revokes a previously granted Qualification from a user", - Privilege: "DisassociateQualificationFromWorker", + Description: "Grants permission to accept creation of an attachment between a source and destination in a core network", + Privilege: "AcceptAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Read", - Description: "The GetAccountBalance operation retrieves the amount of money in your Amazon Mechanical Turk account", - Privilege: "GetAccountBalance", + AccessLevel: "Write", + Description: "Grants permission to associate a Connect Peer", + Privilege: "AssociateConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Read", - Description: "The GetAssignment retrieves an assignment with an AssignmentStatus value of Submitted, Approved, or Rejected, using the assignment's ID", - Privilege: "GetAssignment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Read", - Description: "The GetFileUploadURL operation generates and returns a temporary URL", - Privilege: "GetFileUploadURL", + AccessLevel: "Write", + Description: "Grants permission to associate a customer gateway to a device", + Privilege: "AssociateCustomerGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Read", - Description: "The GetHIT operation retrieves the details of the specified HIT", - Privilege: "GetHIT", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Read", - Description: "The GetQualificationScore operation returns the value of a Worker's Qualification for a given Qualification type", - Privilege: "GetQualificationScore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "link", + }, + { + ConditionKeys: []string{ + "networkmanager:cgwArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "The GetQualificationType operation retrieves information about a Qualification type using its ID", - Privilege: "GetQualificationType", + AccessLevel: "Write", + Description: "Grants permission to associate a link to a device", + Privilege: "AssociateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "List", - Description: "The ListAssignmentsForHIT operation retrieves completed assignments for a HIT", - Privilege: "ListAssignmentsForHIT", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "List", - Description: "The ListBonusPayments operation retrieves the amounts of bonuses you have paid to Workers for a given HIT or assignment", - Privilege: "ListBonusPayments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "link*", }, }, }, { - AccessLevel: "List", - Description: "The ListHITs operation returns all of a Requester's HITs", - Privilege: "ListHITs", + AccessLevel: "Write", + Description: "Grants permission to associate a transit gateway connect peer to a device", + Privilege: "AssociateTransitGatewayConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "device*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "link", + }, + { + ConditionKeys: []string{ + "networkmanager:tgwConnectPeerArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListHITsForQualificationType operation returns the HITs that use the given QualififcationType for a QualificationRequirement", - Privilege: "ListHITsForQualificationType", + AccessLevel: "Write", + Description: "Grants permission to create a Connect attachment", + Privilege: "CreateConnectAttachment", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "attachment*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "core-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListQualificationRequests operation retrieves requests for Qualifications of a particular Qualification type", - Privilege: "ListQualificationRequests", + AccessLevel: "Write", + Description: "Grants permission to create a Connect Peer connection", + Privilege: "CreateConnectPeer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "attachment*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListQualificationTypes operation searches for Qualification types using the specified search query, and returns a list of Qualification types", - Privilege: "ListQualificationTypes", + AccessLevel: "Write", + Description: "Grants permission to create a new connection", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "networkmanager:TagResource", + }, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListReviewPolicyResultsForHIT operation retrieves the computed results and the actions taken in the course of executing your Review Policies during a CreateHIT operation", - Privilege: "ListReviewPolicyResultsForHIT", + AccessLevel: "Write", + Description: "Grants permission to create a new core network", + Privilege: "CreateCoreNetwork", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListReviewableHITs operation returns all of a Requester's HITs that have not been approved or rejected", - Privilege: "ListReviewableHITs", + AccessLevel: "Write", + Description: "Grants permission to create a new device", + Privilege: "CreateDevice", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "networkmanager:TagResource", + }, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListWorkersBlocks operation retrieves a list of Workers who are blocked from working on your HITs", - Privilege: "ListWorkerBlocks", + AccessLevel: "Write", + Description: "Grants permission to create a Direct Connect gateway attachment", + Privilege: "CreateDirectConnectGatewayAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "core-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:directConnectGatewayArn", + "networkmanager:edgeLocations", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "The ListWorkersWithQualificationType operation returns all of the Workers with a given Qualification type", - Privilege: "ListWorkersWithQualificationType", + AccessLevel: "Write", + Description: "Grants permission to create a new global network", + Privilege: "CreateGlobalNetwork", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "networkmanager:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "The NotifyWorkers operation sends an email to one or more Workers that you specify with the Worker ID", - Privilege: "NotifyWorkers", + Description: "Grants permission to create a new link", + Privilege: "CreateLink", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "networkmanager:TagResource", + }, + ResourceType: "global-network*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "site", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "The RejectAssignment operation rejects the results of a completed assignment", - Privilege: "RejectAssignment", + Description: "Grants permission to create a new site", + Privilege: "CreateSite", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "networkmanager:TagResource", + }, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -179869,11 +224031,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "The RejectQualificationRequest operation rejects a user's request for a Qualification", - Privilege: "RejectQualificationRequest", + Description: "Grants permission to create a site-to-site VPN attachment", + Privilege: "CreateSiteToSiteVpnAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "core-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:vpnConnectionArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -179881,11 +224055,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "The SendBonus operation issues a payment of money from your account to a Worker", - Privilege: "SendBonus", + Description: "Grants permission to create a Transit Gateway peering", + Privilege: "CreateTransitGatewayPeering", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "core-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:tgwArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -179893,11 +224079,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "The SendTestEventNotification operation causes Amazon Mechanical Turk to send a notification message as if a HIT event occurred, according to the provided notification specification", - Privilege: "SendTestEventNotification", + Description: "Grants permission to create a TGW RTB attachment", + Privilege: "CreateTransitGatewayRouteTableAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "peering*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:tgwRtbArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -179905,11 +224103,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "The UpdateExpirationForHIT operation allows you extend the expiration time of a HIT beyond is current expiration or expire a HIT immediately", - Privilege: "UpdateExpirationForHIT", + Description: "Grants permission to create a VPC attachment", + Privilege: "CreateVpcAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + "networkmanager:TagResource", + }, + ResourceType: "core-network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:vpcArn", + "networkmanager:subnetArns", + }, DependentActions: []string{}, ResourceType: "", }, @@ -179917,664 +224128,675 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "The UpdateHITReviewStatus operation toggles the status of a HIT", - Privilege: "UpdateHITReviewStatus", + Description: "Grants permission to delete an attachment", + Privilege: "DeleteAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "attachment*", }, }, }, { AccessLevel: "Write", - Description: "The UpdateHITTypeOfHIT operation allows you to change the HITType properties of a HIT", - Privilege: "UpdateHITTypeOfHIT", + Description: "Grants permission to delete a Connect Peer", + Privilege: "DeleteConnectPeer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "connect-peer*", }, }, }, { AccessLevel: "Write", - Description: "The UpdateNotificationSettings operation creates, updates, disables or re-enables notifications for a HIT type", - Privilege: "UpdateNotificationSettings", + Description: "Grants permission to delete a connection", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "The UpdateQualificationType operation modifies the attributes of an existing Qualification type, which is represented by a QualificationType data structure", - Privilege: "UpdateQualificationType", + Description: "Grants permission to delete a core network", + Privilege: "DeleteCoreNetwork", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "core-network*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Mechanical Turk", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "mediaconnect", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add outputs to an existing bridge", - Privilege: "AddBridgeOutputs", + Description: "Grants permission to delete the core network policy version", + Privilege: "DeleteCoreNetworkPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add sources to an existing bridge", - Privilege: "AddBridgeSources", + Description: "Grants permission to delete a device", + Privilege: "DeleteDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "device*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add media streams to any flow", - Privilege: "AddFlowMediaStreams", + Description: "Grants permission to delete a global network", + Privilege: "DeleteGlobalNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add outputs to any flow", - Privilege: "AddFlowOutputs", + Description: "Grants permission to delete a link", + Privilege: "DeleteLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "link*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add sources to any flow", - Privilege: "AddFlowSources", + Description: "Grants permission to delete a peering", + Privilege: "DeletePeering", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "peering*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add VPC interfaces to any flow", - Privilege: "AddFlowVpcInterfaces", + Description: "Grants permission to delete a resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create bridges", - Privilege: "CreateBridge", + Description: "Grants permission to delete a site", + Privilege: "DeleteSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "site*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create flows", - Privilege: "CreateFlow", + Description: "Grants permission to deregister a transit gateway from a global network", + Privilege: "DeregisterTransitGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "networkmanager:tgwArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create gateways", - Privilege: "CreateGateway", + AccessLevel: "List", + Description: "Grants permission to describe global networks", + Privilege: "DescribeGlobalNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Gateway*", + ResourceType: "global-network", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete bridges", - Privilege: "DeleteBridge", + Description: "Grants permission to disassociate a Connect Peer", + Privilege: "DisassociateConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete flows", - Privilege: "DeleteFlow", + Description: "Grants permission to disassociate a customer gateway from a device", + Privilege: "DisassociateCustomerGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "networkmanager:cgwArn", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete gateways", - Privilege: "DeleteGateway", + Description: "Grants permission to disassociate a link from a device", + Privilege: "DisassociateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Gateway*", + ResourceType: "device*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "link*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister gateway instance", - Privilege: "DeregisterGatewayInstance", + Description: "Grants permission to disassociate a transit gateway connect peer from a device", + Privilege: "DisassociateTransitGatewayConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "GatewayInstance*", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "networkmanager:tgwConnectPeerArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to display the details of a bridge", - Privilege: "DescribeBridge", + AccessLevel: "Write", + Description: "Grants permission to apply changes to the core network", + Privilege: "ExecuteCoreNetworkChangeSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Bridge*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "core-network*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to display the details of a flow including the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements", - Privilege: "DescribeFlow", + Description: "Grants permission to retrieve a Connect attachment", + Privilege: "GetConnectAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about the flow's source transport stream and programs", - Privilege: "DescribeFlowSourceMetadata", + Description: "Grants permission to retrieve a Connect Peer", + Privilege: "GetConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connect-peer*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to display the details of a gateway including the gateway ARN, name, and CIDR blocks, as well as details about the networks", - Privilege: "DescribeGateway", + Description: "Grants permission to describe Connect Peer associations", + Privilege: "GetConnectPeerAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Gateway*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to display the details of a gateway instance", - Privilege: "DescribeGatewayInstance", + AccessLevel: "List", + Description: "Grants permission to describe connections", + Privilege: "GetConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "GatewayInstance*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to display the details of an offering", - Privilege: "DescribeOffering", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to display the details of a reservation", - Privilege: "DescribeReservation", + Description: "Grants permission to retrieve a core network", + Privilege: "GetCoreNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to discover gateway poll endpoint", - Privilege: "DiscoverGatewayPollEndpoint", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of core network change events", + Privilege: "GetCoreNetworkChangeEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to grant entitlements on any flow", - Privilege: "GrantFlowEntitlements", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of core network change sets", + Privilege: "GetCoreNetworkChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to display a list of bridges that are associated with this account and an optionally specified Arn", - Privilege: "ListBridges", + AccessLevel: "Read", + Description: "Grants permission to retrieve core network policy", + Privilege: "GetCoreNetworkPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to display a list of all entitlements that have been granted to the account", - Privilege: "ListEntitlements", + Description: "Grants permission to describe customer gateway associations", + Privilege: "GetCustomerGatewayAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to display a list of flows that are associated with this account", - Privilege: "ListFlows", + Description: "Grants permission to describe devices", + Privilege: "GetDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to display a list of instances that are associated with this gateway", - Privilege: "ListGatewayInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "GatewayInstance*", + ResourceType: "device", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to display a list of gateways that are associated with this account", - Privilege: "ListGateways", + AccessLevel: "Read", + Description: "Grants permission to retrieve a Direct Connect gateway attachment", + Privilege: "GetDirectConnectGatewayAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to display a list of all offerings that are available to the account in the current AWS Region", - Privilege: "ListOfferings", + Description: "Grants permission to describe link associations", + Privilege: "GetLinkAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to display a list of all reservations that have been purchased by the account in the current AWS Region", - Privilege: "ListReservations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to display a list of all tags associated with a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "link", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to poll gateway", - Privilege: "PollGateway", + AccessLevel: "List", + Description: "Grants permission to describe links", + Privilege: "GetLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to purchase an offering", - Privilege: "PurchaseOffering", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "link", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove an output of an existing bridge", - Privilege: "RemoveBridgeOutput", + AccessLevel: "Read", + Description: "Grants permission to return the number of resources for a global network grouped by type", + Privilege: "GetNetworkResourceCounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a source of an existing bridge", - Privilege: "RemoveBridgeSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve related resources for a resource within the global network", + Privilege: "GetNetworkResourceRelationships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove media streams from any flow", - Privilege: "RemoveFlowMediaStream", + AccessLevel: "Read", + Description: "Grants permission to retrieve a global network resource", + Privilege: "GetNetworkResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove outputs from any flow", - Privilege: "RemoveFlowOutput", + AccessLevel: "Read", + Description: "Grants permission to retrieve routes for a route table within the global network", + Privilege: "GetNetworkRoutes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove sources from any flow", - Privilege: "RemoveFlowSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve network telemetry objects for the global network", + Privilege: "GetNetworkTelemetry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove VPC interfaces from any flow", - Privilege: "RemoveFlowVpcInterface", + AccessLevel: "Read", + Description: "Grants permission to retrieve a resource policy", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke entitlements on any flow", - Privilege: "RevokeFlowEntitlement", + AccessLevel: "Read", + Description: "Grants permission to retrieve a route analysis configuration and result", + Privilege: "GetRouteAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start flows", - Privilege: "StartFlow", + AccessLevel: "Read", + Description: "Grants permission to retrieve a site-to-site VPN attachment", + Privilege: "GetSiteToSiteVpnAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop flows", - Privilege: "StopFlow", + AccessLevel: "List", + Description: "Grants permission to describe global networks", + Privilege: "GetSites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to submit gateway state change", - Privilege: "SubmitGatewayStateChange", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "site", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate tags with resources", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to describe transit gateway connect peer associations", + Privilege: "GetTransitGatewayConnectPeerAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from resources", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve a Transit Gateway peering", + Privilege: "GetTransitGatewayPeering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "peering*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update bridges", - Privilege: "UpdateBridge", + AccessLevel: "List", + Description: "Grants permission to describe transit gateway registrations", + Privilege: "GetTransitGatewayRegistrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an output of an existing bridge", - Privilege: "UpdateBridgeOutput", + AccessLevel: "Read", + Description: "Grants permission to retrieve a TGW RTB attachment", + Privilege: "GetTransitGatewayRouteTableAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a source of an existing bridge", - Privilege: "UpdateBridgeSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve a VPC attachment", + Privilege: "GetVpcAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the state of an existing bridge", - Privilege: "UpdateBridgeState", + AccessLevel: "List", + Description: "Grants permission to describe attachments", + Privilege: "ListAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Bridge*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update flows", - Privilege: "UpdateFlow", + AccessLevel: "List", + Description: "Grants permission to describe Connect Peers", + Privilege: "ListConnectPeers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connect-peer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update entitlements on any flow", - Privilege: "UpdateFlowEntitlement", + AccessLevel: "List", + Description: "Grants permission to list core network policy versions", + Privilege: "ListCoreNetworkPolicyVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update media streams on any flow", - Privilege: "UpdateFlowMediaStream", + AccessLevel: "List", + Description: "Grants permission to list core networks", + Privilege: "ListCoreNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -180584,9 +224806,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update outputs on any flow", - Privilege: "UpdateFlowOutput", + AccessLevel: "List", + Description: "Grants permission to list organization service access status", + Privilege: "ListOrganizationServiceAccessStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -180596,9 +224818,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the source of any flow", - Privilege: "UpdateFlowSource", + AccessLevel: "List", + Description: "Grants permission to describe peerings", + Privilege: "ListPeerings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -180608,168 +224830,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the configuration of an existing Gateway Instance", - Privilege: "UpdateGatewayInstance", + AccessLevel: "Read", + Description: "Grants permission to list tags for a Network Manager resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "GatewayInstance*", + ResourceType: "attachment", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:entitlement:${FlowId}:${EntitlementName}", - ConditionKeys: []string{}, - Resource: "Entitlement", - }, - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:flow:${FlowId}:${FlowName}", - ConditionKeys: []string{}, - Resource: "Flow", - }, - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:output:${OutputId}:${OutputName}", - ConditionKeys: []string{}, - Resource: "Output", - }, - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:source:${SourceId}:${SourceName}", - ConditionKeys: []string{}, - Resource: "Source", - }, - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:gateway:${GatewayId}:${GatewayName}", - ConditionKeys: []string{}, - Resource: "Gateway", - }, - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:bridge:${FlowId}:${FlowName}", - ConditionKeys: []string{}, - Resource: "Bridge", - }, - { - Arn: "arn:${Partition}:mediaconnect:${Region}:${Account}:gateway:${GatewayId}:${GatewayName}:instance:${InstanceId}", - ConditionKeys: []string{}, - Resource: "GatewayInstance", - }, - }, - ServiceName: "AWS Elemental MediaConnect", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "mediaconvert:HttpInputsAllowed", - Description: "Filters access by an HTTP input policy present in the account", - Type: "Bool", - }, - { - Condition: "mediaconvert:HttpsInputsAllowed", - Description: "Filters access by an HTTPS input policy present in the account", - Type: "Bool", - }, - { - Condition: "mediaconvert:S3InputsAllowed", - Description: "Filters access by an S3 input policy present in the account", - Type: "Bool", - }, - }, - Prefix: "mediaconvert", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate an AWS Certificate Manager (ACM) Amazon Resource Name (ARN) with AWS Elemental MediaConvert", - Privilege: "AssociateCertificate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connect-peer", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an AWS Elemental MediaConvert job that is waiting in queue", - Privilege: "CancelJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create and submit an AWS Elemental MediaConvert job", - Privilege: "CreateJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate", + ResourceType: "core-network", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset", + ResourceType: "device", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "global-network", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "mediaconvert:HttpInputsAllowed", - "mediaconvert:HttpsInputsAllowed", - "mediaconvert:S3InputsAllowed", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "link", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Elemental MediaConvert custom job template", - Privilege: "CreateJobTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset", + ResourceType: "peering", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "site", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -180778,53 +224890,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Elemental MediaConvert custom output preset", - Privilege: "CreatePreset", + Description: "Grants permission to create a core network policy", + Privilege: "PutCoreNetworkPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Elemental MediaConvert job queue", - Privilege: "CreateQueue", + Description: "Grants permission to create or update a resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Elemental MediaConvert custom job template", - Privilege: "DeleteJobTemplate", + Description: "Grants permission to register a transit gateway to a global network", + Privilege: "RegisterTransitGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an AWS Elemental MediaConvert policy", - Privilege: "DeletePolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "networkmanager:tgwArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -180832,32 +224935,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Elemental MediaConvert custom output preset", - Privilege: "DeletePreset", + Description: "Grants permission to reject attachment request", + Privilege: "RejectAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset*", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Elemental MediaConvert job queue", - Privilege: "DeleteQueue", + Description: "Grants permission to restore the core network policy to a previous version", + Privilege: "RestoreCoreNetworkPolicyVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Queue*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "core-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to subscribe to the AWS Elemental MediaConvert service, by sending a request for an account-specific endpoint. All transcoding requests must be sent to the endpoint that the service returns", - Privilege: "DescribeEndpoints", + AccessLevel: "Write", + Description: "Grants permission to start organization service access update", + Privilege: "StartOrganizationServiceAccessUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -180868,181 +224973,129 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove an association between the Amazon Resource Name (ARN) of an AWS Certificate Manager (ACM) certificate and an AWS Elemental MediaConvert resource", - Privilege: "DisassociateCertificate", + Description: "Grants permission to start a route analysis and stores analysis configuration", + Privilege: "StartRouteAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an AWS Elemental MediaConvert job", - Privilege: "GetJob", + AccessLevel: "Tagging", + Description: "Grants permission to tag a Network Manager resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Job*", + ResourceType: "attachment", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an AWS Elemental MediaConvert job template", - Privilege: "GetJobTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate*", + ResourceType: "connect-peer", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an AWS Elemental MediaConvert policy", - Privilege: "GetPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an AWS Elemental MediaConvert output preset", - Privilege: "GetPreset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset*", + ResourceType: "core-network", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an AWS Elemental MediaConvert job queue", - Privilege: "GetQueue", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list AWS Elemental MediaConvert job templates", - Privilege: "ListJobTemplates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list AWS Elemental MediaConvert jobs", - Privilege: "ListJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "link", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list AWS Elemental MediaConvert output presets", - Privilege: "ListPresets", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "peering", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list AWS Elemental MediaConvert job queues", - Privilege: "ListQueues", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "site", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the tags for a MediaConvert queue, preset, or job template", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to untag a Network Manager resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate", + ResourceType: "attachment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset", + ResourceType: "connect-peer", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put an AWS Elemental MediaConvert policy", - Privilege: "PutPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a MediaConvert queue, preset, or job template", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate", + ResourceType: "device", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset", + ResourceType: "global-network", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "link", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "peering", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "site", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -181051,28 +225104,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a MediaConvert queue, preset, or job template", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a connection", + Privilege: "UpdateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate", + ResourceType: "connection*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset", + ResourceType: "global-network*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a core network", + Privilege: "UpdateCoreNetwork", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "core-network*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a device", + Privilege: "UpdateDevice", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "global-network*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a Direct Connect gateway attachment", + Privilege: "UpdateDirectConnectGatewayAttachment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "attachment*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "networkmanager:edgeLocations", }, DependentActions: []string{}, ResourceType: "", @@ -181081,107 +225174,152 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an AWS Elemental MediaConvert custom job template", - Privilege: "UpdateJobTemplate", + Description: "Grants permission to update a global network", + Privilege: "UpdateGlobalNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobTemplate*", + ResourceType: "global-network*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a link", + Privilege: "UpdateLink", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset", + ResourceType: "global-network*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue", + ResourceType: "link*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an AWS Elemental MediaConvert custom output preset", - Privilege: "UpdatePreset", + Description: "Grants permission to add or update metadata key/value pairs on network resource", + Privilege: "UpdateNetworkResourceMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Preset*", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an AWS Elemental MediaConvert job queue", - Privilege: "UpdateQueue", + Description: "Grants permission to update a site", + Privilege: "UpdateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Queue*", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "site*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a VPC attachment", + Privilege: "UpdateVpcAttachment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeRegions", + }, + ResourceType: "attachment*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:subnetArns", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:jobs/${JobId}", + Arn: "arn:${Partition}:networkmanager::${Account}:global-network/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Job", + Resource: "global-network", }, { - Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:queues/${QueueName}", + Arn: "arn:${Partition}:networkmanager::${Account}:site/${GlobalNetworkId}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Queue", + Resource: "site", }, { - Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:presets/${PresetName}", + Arn: "arn:${Partition}:networkmanager::${Account}:link/${GlobalNetworkId}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "Preset", + Resource: "link", }, { - Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:jobTemplates/${JobTemplateName}", + Arn: "arn:${Partition}:networkmanager::${Account}:device/${GlobalNetworkId}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "JobTemplate", + Resource: "device", }, { - Arn: "arn:${Partition}:mediaconvert:${Region}:${Account}:certificates/${CertificateArn}", - ConditionKeys: []string{}, - Resource: "CertificateAssociation", + Arn: "arn:${Partition}:networkmanager::${Account}:connection/${GlobalNetworkId}/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connection", }, - }, - ServiceName: "AWS Elemental MediaConvert", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "mediaimport", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a database binary snapshot on the customer's aws account", - Privilege: "CreateDatabaseBinarySnapshot", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:networkmanager::${Account}:core-network/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "core-network", + }, + { + Arn: "arn:${Partition}:networkmanager::${Account}:attachment/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "attachment", + }, + { + Arn: "arn:${Partition}:networkmanager::${Account}:connect-peer/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connect-peer", + }, + { + Arn: "arn:${Partition}:networkmanager::${Account}:peering/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "peering", }, }, - Resources: []ParliamentResource{}, - ServiceName: "AmazonMediaImport", + ServiceName: "AWS Network Manager", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -181200,157 +225338,142 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, + { + Condition: "networkmanager:cgwArn", + Description: "Filters access by which customer gateways can be associated or disassociated", + Type: "String", + }, + { + Condition: "networkmanager:subnetArns", + Description: "Filters access by which VPC subnets can be added or removed from a VPC attachment", + Type: "ArrayOfString", + }, + { + Condition: "networkmanager:tgwArn", + Description: "Filters access by which transit gateways can be registered or deregistered", + Type: "String", + }, + { + Condition: "networkmanager:tgwConnectPeerArn", + Description: "Filters access by which transit gateway connect peers can be associated or disassociated", + Type: "String", + }, + { + Condition: "networkmanager:vpcArn", + Description: "Filters access by which VPC can be used to a create/update attachment", + Type: "String", + }, + { + Condition: "networkmanager:vpnConnectionArn", + Description: "Filters access by which Site-to-Site VPN can be used to a create/update attachment", + Type: "String", + }, }, - Prefix: "medialive", + Prefix: "networkmanager", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept an input device transfer", - Privilege: "AcceptInputDeviceTransfer", + Description: "Grants permission to accept creation of an attachment between a source and destination in a core network", + Privilege: "AcceptAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete channels, inputs, input security groups, and multiplexes", - Privilege: "BatchDelete", + Description: "Grants permission to associate a Connect Peer", + Privilege: "AssociateConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start channels and multiplexes", - Privilege: "BatchStart", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop channels and multiplexes", - Privilege: "BatchStop", + Description: "Grants permission to associate a customer gateway to a device", + Privilege: "AssociateCustomerGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add and remove actions from a channel's schedule", - Privilege: "BatchUpdateSchedule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an input device transfer", - Privilege: "CancelInputDeviceTransfer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "link", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to claim an input device", - Privilege: "ClaimDevice", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "networkmanager:cgwArn", + }, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a channel", - Privilege: "CreateChannel", + Description: "Grants permission to associate a link to a device", + Privilege: "AssociateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "device*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "global-network*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "link*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a cloudwatch alarm template", - Privilege: "CreateCloudWatchAlarmTemplate", + Description: "Grants permission to associate a transit gateway connect peer to a device", + Privilege: "AssociateTransitGatewayConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template*", + ResourceType: "device*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a cloudwatch alarm template group", - Privilege: "CreateCloudWatchAlarmTemplateGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group*", + ResourceType: "link", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "networkmanager:tgwConnectPeerArn", }, DependentActions: []string{}, ResourceType: "", @@ -181359,18 +225482,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a eventbridge rule template", - Privilege: "CreateEventBridgeRuleTemplate", + Description: "Grants permission to create a Connect attachment", + Privilege: "CreateConnectAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template*", + ResourceType: "attachment*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group*", + ResourceType: "core-network*", }, { ConditionKeys: []string{ @@ -181384,13 +225507,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a eventbridge rule template group", - Privilege: "CreateEventBridgeRuleTemplateGroup", + Description: "Grants permission to create a Connect Peer connection", + Privilege: "CreateConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group*", + ResourceType: "attachment*", }, { ConditionKeys: []string{ @@ -181404,18 +225527,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an input", - Privilege: "CreateInput", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input*", - }, + Description: "Grants permission to create a new connection", + Privilege: "CreateConnection", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-security-group*", + ResourceType: "global-network*", }, { ConditionKeys: []string{ @@ -181429,13 +225547,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an input security group", - Privilege: "CreateInputSecurityGroup", + Description: "Grants permission to create a new core network", + Privilege: "CreateCoreNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-security-group*", + ResourceType: "global-network*", }, { ConditionKeys: []string{ @@ -181449,13 +225567,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a multiplex", - Privilege: "CreateMultiplex", + Description: "Grants permission to create a new device", + Privilege: "CreateDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "global-network*", }, { ConditionKeys: []string{ @@ -181469,25 +225587,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a multiplex program", - Privilege: "CreateMultiplexProgram", + Description: "Grants permission to create a new global network", + Privilege: "CreateGlobalNetwork", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiplex*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a partner input", - Privilege: "CreatePartnerInput", + Description: "Grants permission to create a new link", + Privilege: "CreateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "site", }, { ConditionKeys: []string{ @@ -181501,13 +225629,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a signal map", - Privilege: "CreateSignalMap", + Description: "Grants permission to create a new site", + Privilege: "CreateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map*", + ResourceType: "global-network*", }, { ConditionKeys: []string{ @@ -181520,64 +225648,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to create tags for channels, inputs, input security groups, multiplexes, reservations, signal maps, template groups, and templates", - Privilege: "CreateTags", + AccessLevel: "Write", + Description: "Grants permission to create a site-to-site VPN attachment", + Privilege: "CreateSiteToSiteVpnAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input-security-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiplex", + ResourceType: "core-network*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:vpnConnectionArn", + }, DependentActions: []string{}, - ResourceType: "reservation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a VPC attachment", + Privilege: "CreateVpcAttachment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map", + ResourceType: "core-network*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "networkmanager:vpcArn", + "networkmanager:subnetArns", }, DependentActions: []string{}, ResourceType: "", @@ -181586,206 +225692,157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a channel", - Privilege: "DeleteChannel", + Description: "Grants permission to delete an attachment", + Privilege: "DeleteAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a cloudwatch alarm template", - Privilege: "DeleteCloudWatchAlarmTemplate", + Description: "Grants permission to delete a Connect Peer", + Privilege: "DeleteConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template*", + ResourceType: "connect-peer*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a cloudwatch alarm template group", - Privilege: "DeleteCloudWatchAlarmTemplateGroup", + Description: "Grants permission to delete a connection", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group*", + ResourceType: "connection*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a eventbridge rule template", - Privilege: "DeleteEventBridgeRuleTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template*", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a eventbridge rule template group", - Privilege: "DeleteEventBridgeRuleTemplateGroup", + Description: "Grants permission to delete a core network", + Privilege: "DeleteCoreNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an input", - Privilege: "DeleteInput", + Description: "Grants permission to delete the core network policy version", + Privilege: "DeleteCoreNetworkPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an input security group", - Privilege: "DeleteInputSecurityGroup", + Description: "Grants permission to delete a device", + Privilege: "DeleteDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-security-group*", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a multiplex", - Privilege: "DeleteMultiplex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a multiplex program", - Privilege: "DeleteMultiplexProgram", + Description: "Grants permission to delete a global network", + Privilege: "DeleteGlobalNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an expired reservation", - Privilege: "DeleteReservation", + Description: "Grants permission to delete a link", + Privilege: "DeleteLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reservation*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete all schedule actions for a channel", - Privilege: "DeleteSchedule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "link*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a signal map", - Privilege: "DeleteSignalMap", + Description: "Grants permission to delete a resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map*", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete tags from channels, inputs, input security groups, multiplexes, reservations, signal maps, template groups, and templates", - Privilege: "DeleteTags", + AccessLevel: "Write", + Description: "Grants permission to delete a site", + Privilege: "DeleteSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input-security-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiplex", + ResourceType: "global-network*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reservation", + ResourceType: "site*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to deregister a transit gateway from a global network", + Privilege: "DeregisterTransitGateway", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map", + ResourceType: "global-network*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "networkmanager:tgwArn", }, DependentActions: []string{}, ResourceType: "", @@ -181793,944 +225850,662 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the account configuration of the customer", - Privilege: "DescribeAccountConfiguration", + AccessLevel: "List", + Description: "Grants permission to describe global networks", + Privilege: "DescribeGlobalNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a channel", - Privilege: "DescribeChannel", + AccessLevel: "Write", + Description: "Grants permission to disassociate a Connect Peer", + Privilege: "DisassociateConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an input", - Privilege: "DescribeInput", + AccessLevel: "Write", + Description: "Grants permission to disassociate a customer gateway from a device", + Privilege: "DisassociateCustomerGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an input device", - Privilege: "DescribeInputDevice", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "networkmanager:cgwArn", + }, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an input device thumbnail", - Privilege: "DescribeInputDeviceThumbnail", + AccessLevel: "Write", + Description: "Grants permission to disassociate a link from a device", + Privilege: "DisassociateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "device*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an input security group", - Privilege: "DescribeInputSecurityGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-security-group*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a multiplex", - Privilege: "DescribeMultiplex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "link*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a multiplex program", - Privilege: "DescribeMultiplexProgram", + AccessLevel: "Write", + Description: "Grants permission to disassociate a transit gateway connect peer from a device", + Privilege: "DisassociateTransitGatewayConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{ + "networkmanager:tgwConnectPeerArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a reservation offering", - Privilege: "DescribeOffering", + AccessLevel: "Write", + Description: "Grants permission to apply changes to the core network", + Privilege: "ExecuteCoreNetworkChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "offering*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a reservation", - Privilege: "DescribeReservation", + Description: "Grants permission to retrieve a Connect attachment", + Privilege: "GetConnectAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reservation*", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view a list of actions scheduled on a channel", - Privilege: "DescribeSchedule", + Description: "Grants permission to retrieve a Connect Peer", + Privilege: "GetConnectPeer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "connect-peer*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the thumbnails for a channel", - Privilege: "DescribeThumbnails", + Description: "Grants permission to describe Connect Peer associations", + Privilege: "GetConnectPeerAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a cloudwatch alarm template", - Privilege: "GetCloudWatchAlarmTemplate", + AccessLevel: "List", + Description: "Grants permission to describe connections", + Privilege: "GetConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template*", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a cloudwatch alarm template group", - Privilege: "GetCloudWatchAlarmTemplateGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group*", + ResourceType: "connection", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a eventbridge rule template", - Privilege: "GetEventBridgeRuleTemplate", + Description: "Grants permission to retrieve a core network", + Privilege: "GetCoreNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a eventbridge rule template group", - Privilege: "GetEventBridgeRuleTemplateGroup", + Description: "Grants permission to retrieve a list of core network change sets", + Privilege: "GetCoreNetworkChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a signal map", - Privilege: "GetSignalMap", + Description: "Grants permission to retrieve core network policy", + Privilege: "GetCoreNetworkPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list channels", - Privilege: "ListChannels", + Description: "Grants permission to describe customer gateway associations", + Privilege: "GetCustomerGatewayAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list cloudwatch alarm template groups", - Privilege: "ListCloudWatchAlarmTemplateGroups", + Description: "Grants permission to describe devices", + Privilege: "GetDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list cloudwatch alarm templates", - Privilege: "ListCloudWatchAlarmTemplates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list eventbridge rule template groups", - Privilege: "ListEventBridgeRuleTemplateGroups", + Description: "Grants permission to describe link associations", + Privilege: "GetLinkAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list eventbridge rule templates", - Privilege: "ListEventBridgeRuleTemplates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "link", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list input device transfers", - Privilege: "ListInputDeviceTransfers", + Description: "Grants permission to describe links", + Privilege: "GetLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "link", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list input devices", - Privilege: "ListInputDevices", + AccessLevel: "Read", + Description: "Grants permission to return the number of resources for a global network grouped by type", + Privilege: "GetNetworkResourceCounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list input security groups", - Privilege: "ListInputSecurityGroups", + AccessLevel: "Read", + Description: "Grants permission to retrieve related resources for a resource within the global network", + Privilege: "GetNetworkResourceRelationships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list inputs", - Privilege: "ListInputs", + AccessLevel: "Read", + Description: "Grants permission to retrieve a global network resource", + Privilege: "GetNetworkResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list multiplex programs", - Privilege: "ListMultiplexPrograms", + AccessLevel: "Read", + Description: "Grants permission to retrieve routes for a route table within the global network", + Privilege: "GetNetworkRoutes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list multiplexes", - Privilege: "ListMultiplexes", + AccessLevel: "Read", + Description: "Grants permission to retrieve network telemetry objects for the global network", + Privilege: "GetNetworkTelemetry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list reservation offerings", - Privilege: "ListOfferings", + AccessLevel: "Read", + Description: "Grants permission to retrieve a resource policy", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list reservations", - Privilege: "ListReservations", + AccessLevel: "Read", + Description: "Grants permission to retrieve a route analysis configuration and result", + Privilege: "GetRouteAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list signal maps", - Privilege: "ListSignalMaps", + AccessLevel: "Read", + Description: "Grants permission to retrieve a site-to-site VPN attachment", + Privilege: "GetSiteToSiteVpnAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list tags for channels, inputs, input security groups, multiplexes, reservations, signal maps, template groups, and templates", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe global networks", + Privilege: "GetSites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "input-security-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiplex", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "reservation", + ResourceType: "global-network*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map", + ResourceType: "site", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to purchase a reservation offering", - Privilege: "PurchaseOffering", + AccessLevel: "List", + Description: "Grants permission to describe transit gateway connect peer associations", + Privilege: "GetTransitGatewayConnectPeerAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "offering*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "reservation*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reboot an input device", - Privilege: "RebootInputDevice", + AccessLevel: "List", + Description: "Grants permission to describe transit gateway registrations", + Privilege: "GetTransitGatewayRegistrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject an input device transfer", - Privilege: "RejectInputDeviceTransfer", + AccessLevel: "Read", + Description: "Grants permission to retrieve a VPC attachment", + Privilege: "GetVpcAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restart pipelines on a running channel", - Privilege: "RestartChannelPipelines", + AccessLevel: "List", + Description: "Grants permission to describe attachments", + Privilege: "ListAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "attachment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a channel", - Privilege: "StartChannel", + AccessLevel: "List", + Description: "Grants permission to describe Connect Peers", + Privilege: "ListConnectPeers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "connect-peer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start deletion of a signal map's monitor", - Privilege: "StartDeleteMonitorDeployment", + AccessLevel: "List", + Description: "Grants permission to list core network policy versions", + Privilege: "ListCoreNetworkPolicyVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map*", + ResourceType: "core-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an input device attached to a MediaConnect flow", - Privilege: "StartInputDevice", + AccessLevel: "List", + Description: "Grants permission to list core networks", + Privilege: "ListCoreNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a maintenance window for an input device", - Privilege: "StartInputDeviceMaintenanceWindow", + AccessLevel: "List", + Description: "Grants permission to list organization service access status", + Privilege: "ListOrganizationServiceAccessStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a signal map monitor deployment", - Privilege: "StartMonitorDeployment", + AccessLevel: "Read", + Description: "Grants permission to list tags for a Network Manager resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map*", + ResourceType: "attachment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a multiplex", - Privilege: "StartMultiplex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "connect-peer", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a signal map update", - Privilege: "StartUpdateSignalMap", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signal-map*", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop a channel", - Privilege: "StopChannel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "core-network", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop an input device attached to a MediaConnect flow", - Privilege: "StopInputDevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop a multiplex", - Privilege: "StopMultiplex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "global-network", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to transfer an input device", - Privilege: "TransferInputDevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "link", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a customer's account configuration", - Privilege: "UpdateAccountConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "site", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a channel", - Privilege: "UpdateChannel", + Description: "Grants permission to create a core network policy", + Privilege: "PutCoreNetworkPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the class of a channel", - Privilege: "UpdateChannelClass", + Description: "Grants permission to create or update a resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a cloudwatch alarm template", - Privilege: "UpdateCloudWatchAlarmTemplate", + Description: "Grants permission to register a transit gateway to a global network", + Privilege: "RegisterTransitGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template*", + ResourceType: "global-network*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "networkmanager:tgwArn", + }, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a cloudwatch alarm template group", - Privilege: "UpdateCloudWatchAlarmTemplateGroup", + Description: "Grants permission to reject attachment request", + Privilege: "RejectAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cloudwatch-alarm-template-group*", + ResourceType: "attachment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a eventbridge rule template", - Privilege: "UpdateEventBridgeRuleTemplate", + Description: "Grants permission to restore the core network policy to a previous version", + Privilege: "RestoreCoreNetworkPolicyVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group*", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a eventbridge rule template group", - Privilege: "UpdateEventBridgeRuleTemplateGroup", + Description: "Grants permission to start organization service access update", + Privilege: "StartOrganizationServiceAccessUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventbridge-rule-template-group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an input", - Privilege: "UpdateInput", + Description: "Grants permission to start a route analysis and stores analysis configuration", + Privilege: "StartRouteAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an input device", - Privilege: "UpdateInputDevice", + AccessLevel: "Tagging", + Description: "Grants permission to tag a Network Manager resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-device*", + ResourceType: "attachment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an input security group", - Privilege: "UpdateInputSecurityGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "input-security-group*", + ResourceType: "connect-peer", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a multiplex", - Privilege: "UpdateMultiplex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "core-network", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a multiplex program", - Privilege: "UpdateMultiplexProgram", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiplex*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a reservation", - Privilege: "UpdateReservation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reservation*", + ResourceType: "global-network", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:channel:${ChannelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "channel", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:input:${InputId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "input", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:inputDevice:${DeviceId}", - ConditionKeys: []string{}, - Resource: "input-device", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:inputSecurityGroup:${InputSecurityGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "input-security-group", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:multiplex:${MultiplexId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "multiplex", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:reservation:${ReservationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "reservation", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:offering:${OfferingId}", - ConditionKeys: []string{}, - Resource: "offering", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:signal-map:${SignalMapId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "signal-map", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:cloudwatch-alarm-template-group:${CloudWatchAlarmTemplateGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cloudwatch-alarm-template-group", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:cloudwatch-alarm-template:${CloudWatchAlarmTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cloudwatch-alarm-template", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:eventbridge-rule-template-group:${EventBridgeRuleTemplateGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "eventbridge-rule-template-group", - }, - { - Arn: "arn:${Partition}:medialive:${Region}:${Account}:eventbridge-rule-template:${EventBridgeRuleTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "eventbridge-rule-template", - }, - }, - ServiceName: "AWS Elemental MediaLive", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag for a MediaPackage request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag for a MediaPackage resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys for a MediaPackage resource or request", - Type: "ArrayOfString", - }, - }, - Prefix: "mediapackage", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to configure access logs for a Channel", - Privilege: "ConfigureLogs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "channels*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "link", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a channel in AWS Elemental MediaPackage", - Privilege: "CreateChannel", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "site", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a harvest job in AWS Elemental MediaPackage", - Privilege: "CreateHarvestJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -182738,315 +226513,268 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint in AWS Elemental MediaPackage", - Privilege: "CreateOriginEndpoint", + AccessLevel: "Tagging", + Description: "Grants permission to untag a Network Manager resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "attachment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a channel in AWS Elemental MediaPackage", - Privilege: "DeleteChannel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels*", + ResourceType: "connect-peer", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an endpoint in AWS Elemental MediaPackage", - Privilege: "DeleteOriginEndpoint", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin_endpoints*", + ResourceType: "connection", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the details of a channel in AWS Elemental MediaPackage", - Privilege: "DescribeChannel", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels*", + ResourceType: "core-network", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the details of a harvest job in AWS Elemental MediaPackage", - Privilege: "DescribeHarvestJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "harvest_jobs*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the details of an endpoint in AWS Elemental MediaPackage", - Privilege: "DescribeOriginEndpoint", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin_endpoints*", + ResourceType: "global-network", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view a list of channels in AWS Elemental MediaPackage", - Privilege: "ListChannels", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view a list of harvest jobs in AWS Elemental MediaPackage", - Privilege: "ListHarvestJobs", - ResourceTypes: []ParliamentResourceType{ + ResourceType: "link", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "site", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view a list of endpoints in AWS Elemental MediaPackage", - Privilege: "ListOriginEndpoints", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags assigned to a Channel or OriginEndpoint", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a connection", + Privilege: "UpdateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels", + ResourceType: "connection*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "harvest_jobs", + ResourceType: "global-network*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a core network", + Privilege: "UpdateCoreNetwork", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin_endpoints", + ResourceType: "core-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to rotate credentials for the first IngestEndpoint of a Channel in AWS Elemental MediaPackage", - Privilege: "RotateChannelCredentials", + Description: "Grants permission to update a device", + Privilege: "UpdateDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels*", + ResourceType: "device*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "global-network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to rotate IngestEndpoint credentials for a Channel in AWS Elemental MediaPackage", - Privilege: "RotateIngestEndpointCredentials", + Description: "Grants permission to update a global network", + Privilege: "UpdateGlobalNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels*", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a MediaPackage resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update a link", + Privilege: "UpdateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels", + ResourceType: "global-network*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "harvest_jobs", + ResourceType: "link*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add or update metadata key/value pairs on network resource", + Privilege: "UpdateNetworkResourceMetadata", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin_endpoints", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-network*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete tags to a Channel or OriginEndpoint", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a site", + Privilege: "UpdateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels", + ResourceType: "global-network*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "harvest_jobs", + ResourceType: "site*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a VPC attachment", + Privilege: "UpdateVpcAttachment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "origin_endpoints", + ResourceType: "attachment*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "networkmanager:subnetArns", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to make changes to a channel in AWS Elemental MediaPackage", - Privilege: "UpdateChannel", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channels*", - }, + Arn: "arn:${Partition}:networkmanager::${Account}:global-network/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "global-network", }, { - AccessLevel: "Write", - Description: "Grants permission to make changes to an endpoint in AWS Elemental MediaPackage", - Privilege: "UpdateOriginEndpoint", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "origin_endpoints*", - }, + Arn: "arn:${Partition}:networkmanager::${Account}:site/${GlobalNetworkId}/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "site", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:mediapackage:${Region}:${Account}:channels/${ChannelIdentifier}", + Arn: "arn:${Partition}:networkmanager::${Account}:link/${GlobalNetworkId}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "channels", + Resource: "link", }, { - Arn: "arn:${Partition}:mediapackage:${Region}:${Account}:origin_endpoints/${OriginEndpointIdentifier}", + Arn: "arn:${Partition}:networkmanager::${Account}:device/${GlobalNetworkId}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "origin_endpoints", + Resource: "device", }, { - Arn: "arn:${Partition}:mediapackage:${Region}:${Account}:harvest_jobs/${HarvestJobIdentifier}", + Arn: "arn:${Partition}:networkmanager::${Account}:connection/${GlobalNetworkId}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "harvest_jobs", + Resource: "connection", }, - }, - ServiceName: "AWS Elemental MediaPackage", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", - Type: "String", + Arn: "arn:${Partition}:networkmanager::${Account}:core-network/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "core-network", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", - Type: "String", + Arn: "arn:${Partition}:networkmanager::${Account}:attachment/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "attachment", }, { - Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:networkmanager::${Account}:connect-peer/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connect-peer", }, }, - Prefix: "mediapackage-vod", + ServiceName: "Network Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "networkmanager-chat", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to configure egress access logs for a PackagingGroup", - Privilege: "ConfigureLogs", + Description: "Grants permission to cancel a response to a message", + Privilege: "CancelMessageResponse", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "packaging-groups*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an asset in AWS Elemental MediaPackage", - Privilege: "CreateAsset", + Description: "Grants permission to create a conversation", + Privilege: "CreateConversation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -183054,29 +226782,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a packaging configuration in AWS Elemental MediaPackage", - Privilege: "CreatePackagingConfiguration", + Description: "Grants permission to delete a conversation", + Privilege: "DeleteConversation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a packaging group in AWS Elemental MediaPackage", - Privilege: "CreatePackagingGroup", + AccessLevel: "List", + Description: "Grants permission to list conversation messages", + Privilege: "ListConversationMessages", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list conversations", + Privilege: "ListConversations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -183084,104 +226818,128 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an asset in AWS Elemental MediaPackage", - Privilege: "DeleteAsset", + Description: "Grants permission to notify whether there is activity in a conversation", + Privilege: "NotifyConversationIsActive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a packaging configuration in AWS Elemental MediaPackage", - Privilege: "DeletePackagingConfiguration", + Description: "Grants permission to send a conversation message", + Privilege: "SendConversationMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-configurations*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Network Manager Chat", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "networkmonitor", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a packaging group in AWS Elemental MediaPackage", - Privilege: "DeletePackagingGroup", + Description: "Grants permission to create a monitor", + Privilege: "CreateMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-groups*", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the details of an asset in AWS Elemental MediaPackage", - Privilege: "DescribeAsset", + AccessLevel: "Write", + Description: "Grants permission to create a probe", + Privilege: "CreateProbe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the details of a packaging configuration in AWS Elemental MediaPackage", - Privilege: "DescribePackagingConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete a monitor", + Privilege: "DeleteMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-configurations*", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the details of a packaging group in AWS Elemental MediaPackage", - Privilege: "DescribePackagingGroup", + AccessLevel: "Write", + Description: "Grants permission to delete a probe", + Privilege: "DeleteProbe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-groups*", + ResourceType: "probe*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of assets in AWS Elemental MediaPackage", - Privilege: "ListAssets", + AccessLevel: "Read", + Description: "Grants permission to get information about a monitor", + Privilege: "GetMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitor*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of packaging configurations in AWS Elemental MediaPackage", - Privilege: "ListPackagingConfigurations", + AccessLevel: "Read", + Description: "Grants permission to get information about a probe", + Privilege: "GetProbe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "probe*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view a list of packaging groups in AWS Elemental MediaPackage", - Privilege: "ListPackagingGroups", + Description: "Grants permission to list all monitors in an account and their statuses", + Privilege: "ListMonitors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -183192,75 +226950,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the tags assigned to a PackagingGroup, PackagingConfiguration, or Asset", + Description: "Grants permission to list the tags for a resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "packaging-configurations", + ResourceType: "monitor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-groups", + ResourceType: "probe", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to assign tags to a PackagingGroup, PackagingConfiguration, or Asset", + Description: "Grants permission to add tags to a resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "packaging-configurations", + ResourceType: "monitor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-groups", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "probe", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to delete tags from a PackagingGroup, PackagingConfiguration, or Asset", + Description: "Grants permission to remove tags from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assets", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "packaging-configurations", + ResourceType: "monitor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-groups", + ResourceType: "probe", }, { ConditionKeys: []string{ @@ -183273,76 +227008,126 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a packaging group in AWS Elemental MediaPackage", - Privilege: "UpdatePackagingGroup", + Description: "Grants permission to update a monitor", + Privilege: "UpdateMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "packaging-groups*", + ResourceType: "monitor*", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:mediapackage-vod:${Region}:${Account}:assets/${AssetIdentifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a probe", + Privilege: "UpdateProbe", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "probe*", + }, }, - Resource: "assets", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:mediapackage-vod:${Region}:${Account}:packaging-configurations/${PackagingConfigurationIdentifier}", + Arn: "arn:${Partition}:networkmonitor:${Region}:${Account}:monitor/${MonitorName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "packaging-configurations", + Resource: "monitor", }, { - Arn: "arn:${Partition}:mediapackage-vod:${Region}:${Account}:packaging-groups/${PackagingGroupIdentifier}", + Arn: "arn:${Partition}:networkmonitor:${Region}:${Account}:probe/${ProbeId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "packaging-groups", + Resource: "probe", }, }, - ServiceName: "AWS Elemental MediaPackage VOD", + ServiceName: "Amazon CloudWatch Network Monitor", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags that are passed in the request", + Description: "Filters access by a tag key and value pair that is allowed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", + Description: "Filters access by a tag key and value pair of a resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", + Description: "Filters access by a list of tag keys that are allowed in the request", Type: "ArrayOfString", }, + { + Condition: "nimble:createdBy", + Description: "Filters access by the createdBy request parameter or the ID of the creator of the resource", + Type: "String", + }, + { + Condition: "nimble:ownedBy", + Description: "Filters access by the ownedBy request parameter or the ID of the owner of the resource", + Type: "String", + }, + { + Condition: "nimble:principalId", + Description: "Filters access by the principalId request parameter", + Type: "String", + }, + { + Condition: "nimble:requesterPrincipalId", + Description: "Filters access by the ID of the logged in user", + Type: "String", + }, + { + Condition: "nimble:studioId", + Description: "Filters access by a specific studio", + Type: "ARN", + }, }, - Prefix: "mediapackagev2", + Prefix: "nimble", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a channel in a channel group", - Privilege: "CreateChannel", + Description: "Grants permission to accept EULAs", + Privilege: "AcceptEulas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "eula*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a launch profile", + Privilege: "CreateLaunchProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeNatGateways", + "ec2:DescribeNetworkAcls", + "ec2:DescribeRouteTables", + "ec2:DescribeSubnets", + "ec2:DescribeVpcEndpoints", + "ec2:RunInstances", + }, + ResourceType: "studio*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -183351,18 +227136,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a channel group", - Privilege: "CreateChannelGroup", + Description: "Grants permission to create a streaming image", + Privilege: "CreateStreamingImage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ChannelGroup*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeImages", + "ec2:DescribeSnapshots", + "ec2:ModifyInstanceAttribute", + "ec2:ModifySnapshotAttribute", + "ec2:RegisterImage", + }, + ResourceType: "studio*", }, { ConditionKeys: []string{ + "aws:TagKeys", "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a streaming session", + Privilege: "CreateStreamingSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "nimble:GetLaunchProfile", + "nimble:GetLaunchProfileInitialization", + "nimble:ListEulaAcceptances", + }, + ResourceType: "launch-profile*", + }, + { + ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -183371,18 +227188,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an origin endpoint for a channel", - Privilege: "CreateOriginEndpoint", + Description: "Grants permission to create a StreamingSessionStream", + Privilege: "CreateStreamingSessionStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "streaming-session*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "nimble:requesterPrincipalId", }, DependentActions: []string{}, ResourceType: "", @@ -183391,266 +227207,386 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a channel in a channel group", - Privilege: "DeleteChannel", + Description: "Grants permission to create a studio", + Privilege: "CreateStudio", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sso:CreateManagedApplicationInstance", + }, + ResourceType: "studio*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a channel group", - Privilege: "DeleteChannelGroup", + Description: "Grants permission to create a studio component. A studio component designates a network resource to which a launch profile will provide access", + Privilege: "CreateStudioComponent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AuthorizeApplication", + "ds:DescribeDirectories", + "ec2:DescribeSecurityGroups", + "fsx:DescribeFileSystems", + "iam:PassRole", + }, + ResourceType: "studio*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "ChannelGroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy from a channel", - Privilege: "DeleteChannelPolicy", + Description: "Grants permission to delete a launch profile", + Privilege: "DeleteLaunchProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an origin endpoint of a channel", - Privilege: "DeleteOriginEndpoint", + Description: "Grants permission to delete a launch profile member", + Privilege: "DeleteLaunchProfileMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy from an origin endpoint", - Privilege: "DeleteOriginEndpointPolicy", + Description: "Grants permission to delete a streaming image", + Privilege: "DeleteStreamingImage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteSnapshot", + "ec2:DeregisterImage", + "ec2:ModifyInstanceAttribute", + "ec2:ModifySnapshotAttribute", + }, + ResourceType: "streaming-image*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a streaming session", + Privilege: "DeleteStreamingSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + }, + ResourceType: "streaming-session*", + }, + { + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details of a channel in a channel group", - Privilege: "GetChannel", + AccessLevel: "Write", + Description: "Grants permission to delete a studio", + Privilege: "DeleteStudio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteManagedApplicationInstance", + }, + ResourceType: "studio*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a studio component", + Privilege: "DeleteStudioComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:UnauthorizeApplication", + }, + ResourceType: "studio-component*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a studio member", + Privilege: "DeleteStudioMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "studio*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details of a channel group", - Privilege: "GetChannelGroup", + Description: "Grants permission to get a EULA", + Privilege: "GetEula", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChannelGroup*", + ResourceType: "eula*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a resource policy for a channel", - Privilege: "GetChannelPolicy", + Description: "Grants permission to allow Nimble Studio portal to show the appropriate features for this account", + Privilege: "GetFeatureMap", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to make GetHeadObject requests to MediaPackage", - Privilege: "GetHeadObject", + Description: "Grants permission to get a launch profile", + Privilege: "GetLaunchProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to make GetObject requests to MediaPackage", - Privilege: "GetObject", + Description: "Grants permission to get a launch profile's details, which includes the summary of studio components and streaming images used by the launch profile", + Privilege: "GetLaunchProfileDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details of an origin endpoint", - Privilege: "GetOriginEndpoint", + Description: "Grants permission to get a launch profile initialization. A launch profile initialization is a dereferenced version of a launch profile, including attached studio component connection information", + Privilege: "GetLaunchProfileInitialization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + "ec2:DescribeSecurityGroups", + "fsx:DescribeFileSystems", + }, + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details of a resource policy for an origin endpoint", - Privilege: "GetOriginEndpointPolicy", + Description: "Grants permission to get a launch profile member", + Privilege: "GetLaunchProfileMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "launch-profile*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all channel groups for an aws account", - Privilege: "ListChannelGroups", + AccessLevel: "Read", + Description: "Grants permission to get a streaming image", + Privilege: "GetStreamingImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "streaming-image*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all channels in a channel group", - Privilege: "ListChannels", + AccessLevel: "Read", + Description: "Grants permission to get a streaming session", + Privilege: "GetStreamingSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChannelGroup*", + ResourceType: "streaming-session*", + }, + { + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all origin endpoints of a channel", - Privilege: "ListOriginEndpoints", + AccessLevel: "Read", + Description: "Grants permission to get a streaming session backup", + Privilege: "GetStreamingSessionBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "streaming-session-backup*", + }, + { + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for the specified resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get a streaming session stream", + Privilege: "GetStreamingSessionStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", + ResourceType: "streaming-session*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, DependentActions: []string{}, - ResourceType: "ChannelGroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a studio", + Privilege: "GetStudio", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint", + ResourceType: "studio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a resource policy for a channel", - Privilege: "PutChannelPolicy", + AccessLevel: "Read", + Description: "Grants permission to get a studio component", + Privilege: "GetStudioComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "studio-component*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to make PutObject requests to MediaPackage", - Privilege: "PutObject", + AccessLevel: "Read", + Description: "Grants permission to get a studio member", + Privilege: "GetStudioMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "studio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a resource policy to an origin endpoint", - Privilege: "PutOriginEndpointPolicy", + AccessLevel: "Read", + Description: "Grants permission to list EULA acceptances", + Privilege: "ListEulaAcceptances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "eula-acceptance*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add specified tags to the specified resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to list EULAs", + Privilege: "ListEulas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", + ResourceType: "eula*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list launch profile members", + Privilege: "ListLaunchProfileMembers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChannelGroup", + ResourceType: "launch-profile*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list launch profiles", + Privilege: "ListLaunchProfiles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint", + ResourceType: "studio*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "nimble:principalId", + "nimble:requesterPrincipalId", }, DependentActions: []string{}, ResourceType: "", @@ -183658,28 +227594,51 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to list streaming images", + Privilege: "ListStreamingImages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel", + ResourceType: "studio*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list streaming session backups", + Privilege: "ListStreamingSessionBackups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChannelGroup", + ResourceType: "studio*", + }, + { + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list streaming sessions", + Privilege: "ListStreamingSessions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint", + ResourceType: "studio*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "nimble:createdBy", + "nimble:ownedBy", + "nimble:requesterPrincipalId", }, DependentActions: []string{}, ResourceType: "", @@ -183687,497 +227646,486 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a channel in a channel group", - Privilege: "UpdateChannel", + AccessLevel: "Read", + Description: "Grants permission to list studio components", + Privilege: "ListStudioComponents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Channel*", + ResourceType: "studio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a channel group", - Privilege: "UpdateChannelGroup", + AccessLevel: "Read", + Description: "Grants permission to list studio members", + Privilege: "ListStudioMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ChannelGroup*", + ResourceType: "studio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an origin endpoint of a channel", - Privilege: "UpdateOriginEndpoint", + AccessLevel: "Read", + Description: "Grants permission to list all studios", + Privilege: "ListStudios", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OriginEndpoint*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ChannelGroup", - }, - { - Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Channel", - }, { - Arn: "arn:${Partition}:mediapackagev2:${Region}:${Account}:channelGroup/${ChannelGroupName}/channel/${ChannelName}/originEndpoint/${OriginEndpointName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to list all tags on a Nimble Studio resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "launch-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streaming-image", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streaming-session", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streaming-session-backup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio-component", + }, }, - Resource: "OriginEndpoint", - }, - }, - ServiceName: "AWS Elemental MediaPackage V2", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", }, - }, - Prefix: "mediastore", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a container", - Privilege: "CreateContainer", + Description: "Grants permission to add/update launch profile members", + Privilege: "PutLaunchProfileMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a container", - Privilege: "DeleteContainer", + Description: "Grants permission to report metrics and logs for the Nimble Studio portal to monitor application health", + Privilege: "PutStudioLogEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "studio*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the access policy of a container", - Privilege: "DeleteContainerPolicy", + AccessLevel: "Write", + Description: "Grants permission to add/update studio members", + Privilege: "PutStudioMembers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "container*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso-directory:DescribeUsers", + }, + ResourceType: "studio*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the CORS policy from a container", - Privilege: "DeleteCorsPolicy", + Description: "Grants permission to start a streaming session", + Privilege: "StartStreamingSession", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "nimble:GetLaunchProfile", + "nimble:GetLaunchProfileMember", + }, + ResourceType: "streaming-session*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "streaming-session-backup", + }, + { + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the lifecycle policy from a container", - Privilege: "DeleteLifecyclePolicy", + Description: "Grants permission to repair the studio's AWS IAM Identity Center configuration", + Privilege: "StartStudioSSOConfigurationRepair", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "container*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:CreateManagedApplicationInstance", + "sso:GetManagedApplicationInstance", + }, + ResourceType: "studio*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the metric policy from a container", - Privilege: "DeleteMetricPolicy", + Description: "Grants permission to stop a streaming session", + Privilege: "StopStreamingSession", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "nimble:GetLaunchProfile", + }, + ResourceType: "streaming-session*", + }, + { + ConditionKeys: []string{ + "nimble:requesterPrincipalId", + }, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an object", - Privilege: "DeleteObject", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for the specified Nimble Studio resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "launch-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streaming-image", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streaming-session", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve details on a container", - Privilege: "DescribeContainer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "streaming-session-backup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve metadata for an object", - Privilege: "DescribeObject", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "studio", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the access policy of a container", - Privilege: "GetContainerPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "studio-component", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the CORS policy of a container", - Privilege: "GetCorsPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the lifecycle policy that is assigned to a container", - Privilege: "GetLifecyclePolicy", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate one or more tags from the specified Nimble Studio resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "launch-profile", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the metric policy that is assigned to a container", - Privilege: "GetMetricPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "streaming-image", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve an object", - Privilege: "GetObject", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "streaming-session", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of containers in the current account", - Privilege: "ListContainers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "streaming-session-backup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of objects and subfolders that are stored in a folder", - Privilege: "ListItems", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder", + ResourceType: "studio", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list tags on a container", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container", + ResourceType: "studio-component", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to create or replace the access policy of a container", - Privilege: "PutContainerPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or modify the CORS policy of a container", - Privilege: "PutCorsPolicy", + Description: "Grants permission to update a launch profile", + Privilege: "UpdateLaunchProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "container*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeNatGateways", + "ec2:DescribeNetworkAcls", + "ec2:DescribeRouteTables", + "ec2:DescribeSubnets", + "ec2:DescribeVpcEndpoints", + }, + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or modify the lifecycle policy that is assigned to a container", - Privilege: "PutLifecyclePolicy", + Description: "Grants permission to update a launch profile member", + Privilege: "UpdateLaunchProfileMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "launch-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or modify the metric policy that is assigned to a container", - Privilege: "PutMetricPolicy", + Description: "Grants permission to update a streaming image", + Privilege: "UpdateStreamingImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "container*", + ResourceType: "streaming-image*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload an object", - Privilege: "PutObject", + Description: "Grants permission to update a studio", + Privilege: "UpdateStudio", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "object*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "studio*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start access logging on a container", - Privilege: "StartAccessLogging", + Description: "Grants permission to update a studio component", + Privilege: "UpdateStudioComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ + "ds:AuthorizeApplication", + "ds:DescribeDirectories", + "ec2:DescribeSecurityGroups", + "fsx:DescribeFileSystems", "iam:PassRole", }, - ResourceType: "container*", + ResourceType: "studio-component*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to stop access logging on a container", - Privilege: "StopAccessLogging", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "container*", - }, + Arn: "arn:${Partition}:nimble:${Region}:${Account}:studio/${StudioId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "nimble:studioId", }, + Resource: "studio", }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a container", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "container", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:nimble:${Region}:${Account}:streaming-image/${StreamingImageId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "nimble:studioId", }, + Resource: "streaming-image", }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a container", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "container", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:nimble:${Region}:${Account}:studio-component/${StudioComponentId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "nimble:studioId", }, + Resource: "studio-component", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:mediastore:${Region}:${Account}:container/${ContainerName}", + Arn: "arn:${Partition}:nimble:${Region}:${Account}:launch-profile/${LaunchProfileId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "nimble:studioId", + }, + Resource: "launch-profile", + }, + { + Arn: "arn:${Partition}:nimble:${Region}:${Account}:streaming-session/${StreamingSessionId}", ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "nimble:createdBy", + "nimble:ownedBy", }, - Resource: "container", + Resource: "streaming-session", }, { - Arn: "arn:${Partition}:mediastore:${Region}:${Account}:container/${ContainerName}/${ObjectPath}", - ConditionKeys: []string{}, - Resource: "object", + Arn: "arn:${Partition}:nimble:${Region}:${Account}:streaming-session-backup/${StreamingSessionBackupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "nimble:ownedBy", + }, + Resource: "streaming-session-backup", }, { - Arn: "arn:${Partition}:mediastore:${Region}:${Account}:container/${ContainerName}/${FolderPath}", + Arn: "arn:${Partition}:nimble:${Region}:${Account}:eula/${EulaId}", ConditionKeys: []string{}, - Resource: "folder", + Resource: "eula", + }, + { + Arn: "arn:${Partition}:nimble:${Region}:${Account}:eula-acceptance/${EulaAcceptanceId}", + ConditionKeys: []string{ + "nimble:studioId", + }, + Resource: "eula-acceptance", }, }, - ServiceName: "AWS Elemental MediaStore", + ServiceName: "Amazon Nimble Studio", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "mediatailor", + Prefix: "notifications", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to configure logs on the channel with the specified channel name", - Privilege: "ConfigureLogsForChannel", + Description: "Grants permission to associate a new Channel with a particular NotificationConfiguration", + Privilege: "AssociateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "NotificationConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configure logs for a playback configuration", - Privilege: "ConfigureLogsForPlaybackConfiguration", + Description: "Grants permission to associate an Account contact to a particular Managed Notification Configuration", + Privilege: "AssociateManagedNotificationAccountContact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "playbackConfiguration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ManagedNotificationConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new channel", - Privilege: "CreateChannel", + Description: "Grants permission to associate a Channel to a particular Managed Notification Configuration", + Privilege: "AssociateManagedNotificationAdditionalChannel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ManagedNotificationConfiguration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new EventRule, associating it with a NotificationConfiguration", + Privilege: "CreateEventRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -184185,13 +228133,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new live source on the source location with the specified source location name", - Privilege: "CreateLiveSource", + Description: "Grants permission to create a NotificationConfiguration", + Privilege: "CreateNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -184200,38 +228148,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a prefetch schedule for the playback configuration with the specified playback configuration name", - Privilege: "CreatePrefetchSchedule", + Description: "Grants permission to delete an EventRule", + Privilege: "DeleteEventRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration*", + ResourceType: "EventRule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new program on the channel with the specified channel name", - Privilege: "CreateProgram", + Description: "Grants permission to delete a NotificationConfiguration", + Privilege: "DeleteNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NotificationConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new source location", - Privilege: "CreateSourceLocation", + Description: "Grants permission to deregister a NotificationHub", + Privilege: "DeregisterNotificationHub", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -184239,237 +228184,241 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new VOD source on the source location with the specified source location name", - Privilege: "CreateVodSource", + Description: "Grants permission to disable Service Trust for AWS User Notifications", + Privilege: "DisableNotificationsAccessForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DisableAWSServiceAccess", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the channel with the specified channel name", - Privilege: "DeleteChannel", + Description: "Grants permission to remove a Channel from a NotificationConfiguration", + Privilege: "DisassociateChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "NotificationConfiguration*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the IAM policy on the channel with the specified channel name", - Privilege: "DeleteChannelPolicy", + AccessLevel: "Write", + Description: "Grants permission to remove an Account contact from a Managed Notification Configuration", + Privilege: "DisassociateManagedNotificationAccountContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "ManagedNotificationConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the live source with the specified live source name on the source location with the specified source location name", - Privilege: "DeleteLiveSource", + Description: "Grants permission to remove a Channel from a Managed Notification Configuration", + Privilege: "DisassociateManagedNotificationAdditionalChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "liveSource*", + ResourceType: "ManagedNotificationConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified playback configuration", - Privilege: "DeletePlaybackConfiguration", + Description: "Grants permission to enable Service Trust for AWS User Notifications", + Privilege: "EnableNotificationsAccessForOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "playbackConfiguration*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:EnableAWSServiceAccess", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a prefetch schedule for a playback configuration with the specified prefetch schedule name", - Privilege: "DeletePrefetchSchedule", + AccessLevel: "Read", + Description: "Grants permission to get an EventRule", + Privilege: "GetEventRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "prefetchSchedule*", + ResourceType: "EventRule*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the program with the specified program name on the channel with the specified channel name", - Privilege: "DeleteProgram", + AccessLevel: "Read", + Description: "Grants permission to read the opt-in status of an AWS User Notification Service feature", + Privilege: "GetFeatureOptInStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "program*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the source location with the specified source location name", - Privilege: "DeleteSourceLocation", + AccessLevel: "Read", + Description: "Grants permission to get a Managed Notification Child Event", + Privilege: "GetManagedNotificationChildEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sourceLocation*", + ResourceType: "ManagedNotificationChildEvent*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the VOD source with the specified VOD source name on the source location with the specified source location name", - Privilege: "DeleteVodSource", + AccessLevel: "Read", + Description: "Grants permission to get a Managed Notification Configuration", + Privilege: "GetManagedNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vodSource*", + ResourceType: "ManagedNotificationConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the channel with the specified channel name", - Privilege: "DescribeChannel", + Description: "Grants permission to get a Managed NotificationEvent", + Privilege: "GetManagedNotificationEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "ManagedNotificationEvent*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the live source with the specified live source name on the source location with the specified source location name", - Privilege: "DescribeLiveSource", + Description: "Grants permission to get a NotificationConfiguration", + Privilege: "GetNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "liveSource*", + ResourceType: "NotificationConfiguration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the program with the specified program name on the channel with the specified channel name", - Privilege: "DescribeProgram", + Description: "Grants permission to get a NotificationEvent", + Privilege: "GetNotificationEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "program*", + ResourceType: "NotificationEvent*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the source location with the specified source location name", - Privilege: "DescribeSourceLocation", + Description: "Grants permission to read Service Trust for AWS User Notifications", + Privilege: "GetNotificationsAccessForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sourceLocation*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the VOD source with the specified VOD source name on the source location with the specified source location name", - Privilege: "DescribeVodSource", + AccessLevel: "List", + Description: "Grants permission to list Channels by NotificationConfiguration", + Privilege: "ListChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vodSource*", + ResourceType: "NotificationConfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the IAM policy on the channel with the specified channel name", - Privilege: "GetChannelPolicy", + AccessLevel: "List", + Description: "Grants permission to list EventRules", + Privilege: "ListEventRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the schedule of programs on the channel with the specified channel name", - Privilege: "GetChannelSchedule", + AccessLevel: "List", + Description: "Grants permission to list Account contacts and Channels associated with a Managed Notification Configuration", + Privilege: "ListManagedNotificationChannelAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "ManagedNotificationConfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the configuration for the specified name", - Privilege: "GetPlaybackConfiguration", + AccessLevel: "List", + Description: "Grants permission to list Managed Notification Child Events", + Privilege: "ListManagedNotificationChildEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve prefetch schedule for a playback configuration with the specified prefetch schedule name", - Privilege: "GetPrefetchSchedule", + AccessLevel: "List", + Description: "Grants permission to list Managed Notification Configurations", + Privilege: "ListManagedNotificationConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Managed Notification Events", + Privilege: "ListManagedNotificationEvents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "prefetchSchedule*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the list of alerts on a resource", - Privilege: "ListAlerts", + AccessLevel: "List", + Description: "Grants permission to list NotificationConfigurations", + Privilege: "ListNotificationConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -184479,9 +228428,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the list of existing channels", - Privilege: "ListChannels", + AccessLevel: "List", + Description: "Grants permission to list NotificationEvents", + Privilege: "ListNotificationEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -184491,9 +228440,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the list of existing live sources on the source location with the specified source location name", - Privilege: "ListLiveSources", + AccessLevel: "List", + Description: "Grants permission to list NotificationHubs", + Privilege: "ListNotificationHubs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -184504,8 +228453,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve the list of available configurations", - Privilege: "ListPlaybackConfigurations", + Description: "Grants permission to get tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -184515,21 +228464,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the list of prefetch schedules for a playback configuration", - Privilege: "ListPrefetchSchedules", + AccessLevel: "Write", + Description: "Grants permission to update the opt-in status of an AWS User Notification Service feature", + Privilege: "PutFeatureOptInStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the list of existing source locations", - Privilege: "ListSourceLocations", + AccessLevel: "Write", + Description: "Grants permission to register a NotificationHub", + Privilege: "RegisterNotificationHub", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -184539,70 +228488,146 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags assigned to the specified playback configuration resource", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", + ResourceType: "NotificationConfiguration*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "liveSource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration", + ResourceType: "NotificationConfiguration*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "sourceLocation", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an EventRule", + Privilege: "UpdateEventRule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vodSource", + ResourceType: "EventRule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the list of existing VOD sources on the source location with the specified source location name", - Privilege: "ListVodSources", + AccessLevel: "Write", + Description: "Grants permission to update a NotificationConfiguration", + Privilege: "UpdateNotificationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "NotificationConfiguration*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Permissions management", - Description: "Grants permission to set the IAM policy on the channel with the specified channel name", - Privilege: "PutChannelPolicy", + Arn: "arn:${Partition}:notifications::${Account}:configuration/${NotificationConfigurationId}/rule/${EventRuleId}", + ConditionKeys: []string{}, + Resource: "EventRule", + }, + { + Arn: "arn:${Partition}:notifications::${Account}:configuration/${NotificationConfigurationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "NotificationConfiguration", + }, + { + Arn: "arn:${Partition}:notifications:${Region}:${Account}:configuration/${NotificationConfigurationId}/event/${NotificationEventId}", + ConditionKeys: []string{}, + Resource: "NotificationEvent", + }, + { + Arn: "arn:${Partition}:notifications::${Account}:managed-notification-configuration/category/${Category}/sub-category/${Subcategory}/event/${NotificationEventId}/child-event/${NotificationChildEventId}", + ConditionKeys: []string{}, + Resource: "ManagedNotificationChildEvent", + }, + { + Arn: "arn:${Partition}:notifications::${Account}:managed-notification-configuration/category/${Category}/sub-category/${Subcategory}", + ConditionKeys: []string{}, + Resource: "ManagedNotificationConfiguration", + }, + { + Arn: "arn:${Partition}:notifications::${Account}:managed-notification-configuration/category/${Category}/sub-category/${Subcategory}/event/${NotificationEventId}", + ConditionKeys: []string{}, + Resource: "ManagedNotificationEvent", + }, + }, + ServiceName: "AWS User Notifications", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "notifications-contacts", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to activate the email contact associated with the given ARN if the provided code is valid", + Privilege: "ActivateEmailContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "EmailContactResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a new configuration", - Privilege: "PutPlaybackConfiguration", + Description: "Grants permission to create an email contact", + Privilege: "CreateEmailContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -184611,62 +228636,78 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start the channel with the specified channel name", - Privilege: "StartChannel", + Description: "Grants permission to delete an email contact associated with the given ARN", + Privilege: "DeleteEmailContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "EmailContactResource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the channel with the specified channel name", - Privilege: "StopChannel", + AccessLevel: "Read", + Description: "Grants permission to get an email contact associated with the given ARN", + Privilege: "GetEmailContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "EmailContactResource*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the specified playback configuration resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list email contacts", + Privilege: "ListEmailContacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "liveSource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "playbackConfiguration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send an activation link to the email associated with the given ARN", + Privilege: "SendActivationCode", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sourceLocation", + ResourceType: "EmailContactResource*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vodSource", + ResourceType: "EmailContactResource*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -184675,37 +228716,77 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified playback configuration resource", + Description: "Grants permission to remove tags from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "liveSource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "playbackConfiguration", + ResourceType: "EmailContactResource*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "sourceLocation", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:notifications-contacts::${Account}:emailcontact/${EmailContactId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "EmailContactResource", + }, + }, + ServiceName: "AWS User Notifications Contacts", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "oam:ResourceTypes", + Description: "Filters access by the presence of resource types in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "oam", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a link between a monitoring account and a source account for cross-account monitoring", + Privilege: "CreateLink", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "vodSource", + ConditionKeys: []string{}, + DependentActions: []string{ + "oam:TagResource", + }, + ResourceType: "Sink*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "oam:ResourceTypes", }, DependentActions: []string{}, ResourceType: "", @@ -184714,298 +228795,363 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the channel with the specified channel name", - Privilege: "UpdateChannel", + Description: "Grants permission to create a sink in an account so that it can be used as a monitoring account for cross-account monitoring", + Privilege: "CreateSink", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "oam:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the live source with the specified live source name on the source location with the specified source location name", - Privilege: "UpdateLiveSource", + Description: "Grants permission to delete a link between a monitoring account and a source account for cross-account monitoring", + Privilege: "DeleteLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "liveSource*", + ResourceType: "Link*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the program with the specified program name on the channel with the specified channel name", - Privilege: "UpdateProgram", + Description: "Grants permission to delete a cross-account monitoring sink in a monitoring account", + Privilege: "DeleteSink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "program*", + ResourceType: "Sink*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the source location with the specified source location name", - Privilege: "UpdateSourceLocation", + AccessLevel: "Read", + Description: "Grants permission to retrieve complete information about one cross-account monitoring link", + Privilege: "GetLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sourceLocation*", + ResourceType: "Link*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the VOD source with the specified VOD source name on the source location with the specified source location name", - Privilege: "UpdateVodSource", + AccessLevel: "Read", + Description: "Grants permission to retrieve complete information about one cross-account monitoring sink", + Privilege: "GetSink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vodSource*", + ResourceType: "Sink*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:playbackConfiguration/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "playbackConfiguration", - }, - { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:prefetchSchedule/${ResourceId}", - ConditionKeys: []string{}, - Resource: "prefetchSchedule", - }, - { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:channel/${ChannelName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "channel", - }, - { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:program/${ChannelName}/${ProgramName}", - ConditionKeys: []string{}, - Resource: "program", - }, - { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:sourceLocation/${SourceLocationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "sourceLocation", - }, - { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:vodSource/${SourceLocationName}/${VodSourceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "vodSource", - }, { - Arn: "arn:${Partition}:mediatailor:${Region}:${Account}:liveSource/${SourceLocationName}/${LiveSourceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve information for the IAM policy for a cross-account monitoring sink", + Privilege: "GetSinkPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Sink*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "liveSource", - }, - }, - ServiceName: "AWS Elemental MediaTailor", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", }, - }, - Prefix: "medical-imaging", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to copy an image set", - Privilege: "CopyImageSet", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of links that are linked for a cross-account monitoring sink", + Privilege: "ListAttachedLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Sink*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a data store to ingest imaging data", - Privilege: "CreateDatastore", + AccessLevel: "Read", + Description: "Grants permission to retrieve the ARNs of cross-account monitoring links in this account", + Privilege: "ListLinks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a data store", - Privilege: "DeleteDatastore", + AccessLevel: "Read", + Description: "Grants permission to retrieve the ARNs of cross-account monitoring sinks in this account", + Privilege: "ListSinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an image set", - Privilege: "DeleteImageSet", + AccessLevel: "Read", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Link", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "Sink", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an import job's properties", - Privilege: "GetDICOMImportJob", + AccessLevel: "Write", + Description: "Grants permission to create or update the IAM policy for a cross-account monitoring sink", + Privilege: "PutSinkPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Sink*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get dicom instance in dcm format", - Privilege: "GetDICOMInstance", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Link", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Sink", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get data store properties", - Privilege: "GetDatastore", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Link", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Sink", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get image frame properties", - Privilege: "GetImageFrame", + AccessLevel: "Write", + Description: "Grants permission to update an existing link between a monitoring account and a source account", + Privilege: "UpdateLink", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "Link*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "oam:ResourceTypes", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:oam:${Region}:${Account}:link/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Link", + }, + { + Arn: "arn:${Partition}:oam:${Region}:${Account}:sink/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Sink", + }, + }, + ServiceName: "Amazon CloudWatch Observability Access Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "observabilityadmin", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the Telemetry Config feature status for the account", + Privilege: "GetTelemetryEvaluationStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get image set properties", - Privilege: "GetImageSet", + Description: "Grants permission to retrieve the Telemetry Config feature status for the organization", + Privilege: "GetTelemetryEvaluationStatusForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve telemetry configurations for resources associated with the account", + Privilege: "ListResourceTelemetry", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get image set metadata properties", - Privilege: "GetImageSetMetadata", + Description: "Grants permission to retrieve telemetry configurations for resources associated with accounts in the organization", + Privilege: "ListResourceTelemetryForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the Telemetry Config feature for the account", + Privilege: "StartTelemetryEvaluation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list import jobs for a data store", - Privilege: "ListDICOMImportJobs", + AccessLevel: "Write", + Description: "Grants permission to start the Telemetry Config feature for the organization", + Privilege: "StartTelemetryEvaluationForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list data stores", - Privilege: "ListDatastores", + AccessLevel: "Write", + Description: "Grants permission to stop the Telemetry Config feature for the account", + Privilege: "StopTelemetryEvaluation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -185015,82 +229161,133 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list versions of an image set", - Privilege: "ListImageSetVersions", + AccessLevel: "Write", + Description: "Grants permission to stop the Telemetry Config feature for the organization", + Privilege: "StopTelemetryEvaluationForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon CloudWatch Observability Admin Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "omics", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to abort multipart read set uploads", + Privilege: "AbortMultipartReadSetUpload", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "sequenceStore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for a medical imaging resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to accept a share", + Privilege: "AcceptShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to batch delete Read Sets in the given Sequence Store", + Privilege: "BatchDeleteReadSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset", + ResourceType: "sequenceStore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search image sets", - Privilege: "SearchImageSets", + AccessLevel: "Write", + Description: "Grants permission to cancel an Annotation Import Job", + Privilege: "CancelAnnotationImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a DICOM import job", - Privilege: "StartDICOMImportJob", + Description: "Grants permission to cancel a workflow run and stop all workflow tasks", + Privilege: "CancelRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", + ResourceType: "run*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a medical imaging resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to cancel a Variant Import Job", + Privilege: "CancelVariantImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to complete a multipart read set upload", + Privilege: "CompleteMultipartReadSetUpload", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "imageset", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Annotation Store", + Privilege: "CreateAnnotationStore", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -185099,22 +229296,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a medical imaging resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a Version in an Annotation Store", + Privilege: "CreateAnnotationStoreVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "imageset", + ResourceType: "AnnotationStore*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -185124,90 +229317,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update image set metadata properties", - Privilege: "UpdateImageSetMetadata", + Description: "Grants permission to create a multipart read set upload", + Privilege: "CreateMultipartReadSetUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datastore*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "imageset*", + ResourceType: "sequenceStore*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:medical-imaging:${Region}:${Account}:datastore/${DatastoreId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "datastore", - }, - { - Arn: "arn:${Partition}:medical-imaging:${Region}:${Account}:datastore/${DatastoreId}/imageset/${ImageSetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "imageset", - }, - }, - ServiceName: "AWS HealthImaging", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "memorydb:TLSEnabled", - Description: "Filters access by the TLSEnabled parameter present in the request or defaults to true value if parameter is not present", - Type: "Bool", - }, - { - Condition: "memorydb:UserAuthenticationMode", - Description: "Filters access by the UserAuthenticationMode.Type parameter in the request", - Type: "String", - }, - }, - Prefix: "memorydb", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permissions to apply service updates", - Privilege: "BatchUpdateCluster", + Description: "Grants permission to create a Reference Store", + Privilege: "CreateReferenceStore", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "s3:GetObject", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -185216,22 +229344,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Allows an IAM user or role to connect as a specified MemoryDB user to a node in a cluster", - Privilege: "Connect", + Description: "Grants permission to create a new workflow run cache", + Privilege: "CreateRunCache", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -185240,22 +229359,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permissions to make a copy of an existing snapshot", - Privilege: "CopySnapshot", + Description: "Grants permission to create a new workflow run group", + Privilege: "CreateRunGroup", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "memorydb:TagResource", - "s3:DeleteObject", - "s3:GetBucketAcl", - "s3:PutObject", - }, - ResourceType: "snapshot*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -185266,19 +229374,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permissions to create a new access control list", - Privilege: "CreateAcl", + Description: "Grants permission to create a Sequence Store", + Privilege: "CreateSequenceStore", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "memorydb:TagResource", - }, - ResourceType: "user*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -185289,84 +229389,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permissions to create a cluster", - Privilege: "CreateCluster", + Description: "Grants permission to create a share", + Privilege: "CreateShare", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "memorydb:TagResource", - "s3:GetObject", - }, - ResourceType: "acl*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subnetgroup*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "memorydb:TLSEnabled", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to create a new parameter group", - Privilege: "CreateParameterGroup", + Description: "Grants permission to create a Variant Store", + Privilege: "CreateVariantStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "memorydb:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to create a backup of a cluster at the current point in time", - Privilege: "CreateSnapshot", + Description: "Grants permission to create a new workflow with a workflow definition and template of workflow parameters", + Privilege: "CreateWorkflow", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "memorydb:TagResource", - "s3:DeleteObject", - "s3:GetBucketAcl", - "s3:PutObject", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -185377,212 +229431,199 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permissions to create a new subnet group", - Privilege: "CreateSubnetGroup", + Description: "Grants permission to create a new workflow version with a workflow definition and template of workflow parameters", + Privilege: "CreateWorkflowVersion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workflow*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "memorydb:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to create a new user", - Privilege: "CreateUser", + Description: "Grants permission to delete an Annotation Store", + Privilege: "DeleteAnnotationStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "memorydb:UserAuthenticationMode", - }, - DependentActions: []string{ - "memorydb:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AnnotationStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to delete an access control list", - Privilege: "DeleteAcl", + Description: "Grants permission to delete Versions in an Annotation Store", + Privilege: "DeleteAnnotationStoreVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl*", + ResourceType: "AnnotationStore*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnnotationStoreVersion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to delete a previously provisioned cluster", - Privilege: "DeleteCluster", + Description: "Grants permission to delete a Reference in the given Reference Store", + Privilege: "DeleteReference", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "reference*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "referenceStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to delete a parameter group", - Privilege: "DeleteParameterGroup", + Description: "Grants permission to delete a Reference Store", + Privilege: "DeleteReferenceStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "referenceStore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a workflow run", + Privilege: "DeleteRun", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "run*", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to delete a snapshot", - Privilege: "DeleteSnapshot", + Description: "Grants permission to delete a workflow run cache", + Privilege: "DeleteRunCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "runCache*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a workflow run group", + Privilege: "DeleteRunGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "runGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to delete a subnet group", - Privilege: "DeleteSubnetGroup", + Description: "Grants permission to delete an access policy on a given store", + Privilege: "DeleteS3AccessPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "subnetgroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permissions to delete a user", - Privilege: "DeleteUser", + Description: "Grants permission to delete a Sequence Store", + Privilege: "DeleteSequenceStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a share", + Privilege: "DeleteShare", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permissions to retrieve information about access control lists", - Privilege: "DescribeAcls", + AccessLevel: "Write", + Description: "Grants permission to delete a Variant Store", + Privilege: "DeleteVariantStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl*", + ResourceType: "VariantStore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a workflow", + Privilege: "DeleteWorkflow", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permissions to retrieve information about all provisioned clusters if no cluster identifier is specified, or about a specific cluster if a cluster identifier is supplied", - Privilege: "DescribeClusters", + AccessLevel: "Write", + Description: "Grants permission to delete a workflow version", + Privilege: "DeleteWorkflowVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "WorkflowVersion*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to list of the available engines and their versions", - Privilege: "DescribeEngineVersions", + Description: "Grants permission to get the status of an Annotation Import Job", + Privilege: "GetAnnotationImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -185593,583 +229634,566 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve events related to clusters, subnet groups, and parameter groups", - Privilege: "DescribeEvents", + Description: "Grants permission to get detailed information about an Annotation Store", + Privilege: "GetAnnotationStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnnotationStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve information about parameter groups", - Privilege: "DescribeParameterGroups", + Description: "Grants permission to get detailed information about a version in an Annotation Store", + Privilege: "GetAnnotationStoreVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnnotationStoreVersion*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve a detailed parameter list for a particular parameter group", - Privilege: "DescribeParameters", + Description: "Grants permission to get a Read Set in the given Sequence Store", + Privilege: "GetReadSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "readSet*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve reserved nodes", - Privilege: "DescribeReservedNodes", + Description: "Grants permission to get details about a Read Set activation job for the given Sequence Store", + Privilege: "GetReadSetActivationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reservednode*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve reserved nodes offerings", - Privilege: "DescribeReservedNodesOfferings", + Description: "Grants permission to get details about a Read Set export job for the given Sequence Store", + Privilege: "GetReadSetExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve details of the service updates", - Privilege: "DescribeServiceUpdates", + Description: "Grants permission to get details about a Read Set import job for the given Sequence Store", + Privilege: "GetReadSetImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve information about cluster snapshots", - Privilege: "DescribeSnapshots", + Description: "Grants permission to get details about a Read Set in the given Sequence Store", + Privilege: "GetReadSetMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "readSet*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve a list of subnet group", - Privilege: "DescribeSubnetGroups", + Description: "Grants permission to get a Reference in the given Reference Store", + Privilege: "GetReference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup*", + ResourceType: "reference*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "referenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to retrieve information about users", - Privilege: "DescribeUsers", + Description: "Grants permission to get details about a Reference import job for the given Reference Store", + Privilege: "GetReferenceImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "referenceStore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to test automatic failover on a specified shard in a cluster", - Privilege: "FailoverShard", + AccessLevel: "Read", + Description: "Grants permission to get details about a Reference in the given Reference Store", + Privilege: "GetReferenceMetadata", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reference*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "referenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to list available node type updates", - Privilege: "ListAllowedNodeTypeUpdates", + Description: "Grants permission to get details about a Reference Store", + Privilege: "GetReferenceStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "referenceStore*", }, }, }, { AccessLevel: "Read", - Description: "Grants permissions to list cost allocation tags", - Privilege: "ListTags", + Description: "Grants permission to retrieve workflow run details", + Privilege: "GetRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl", + ResourceType: "run*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve workflow run cache details", + Privilege: "GetRunCache", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "runCache*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve workflow run group details", + Privilege: "GetRunGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "runGroup*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve workflow task details", + Privilege: "GetRunTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "TaskResource*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "run*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about an access policy on a given store", + Privilege: "GetS3AccessPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details about a Sequence Store", + Privilege: "GetSequenceStore", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to purchase a new reserved node", - Privilege: "PurchaseReservedNodesOffering", + AccessLevel: "Read", + Description: "Grants permission to get detailed information about a Share", + Privilege: "GetShare", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "memorydb:TagResource", - }, - ResourceType: "reservednode*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to modify the parameters of a parameter group to the engine or system default value", - Privilege: "ResetParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to get the status of a Variant Import Job", + Privilege: "GetVariantImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permissions to add up to 10 cost allocation tags to the named resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get detailed information about a Variant Store", + Privilege: "GetVariantStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl", + ResourceType: "VariantStore*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve workflow details", + Privilege: "GetWorkflow", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "workflow*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve workflow version details", + Privilege: "GetWorkflowVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "WorkflowVersion*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reservednode", + ResourceType: "workflow*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of Annotation Import Jobs", + Privilege: "ListAnnotationImportJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of information about Versions in an Annotation Store", + Privilege: "ListAnnotationStoreVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "AnnotationStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of information about Annotation Stores", + Privilege: "ListAnnotationStores", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permissions to remove the tags identified by the TagKeys list from a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list multipart read set uploads", + Privilege: "ListMultipartReadSetUploads", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Read Set activation jobs for the given Sequence Store", + Privilege: "ListReadSetActivationJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Read Set export jobs for the given Sequence Store", + Privilege: "ListReadSetExportJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Read Set import jobs for the given Sequence Store", + Privilege: "ListReadSetImportJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list read set upload parts", + Privilege: "ListReadSetUploadParts", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "sequenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Read Sets in the given Sequence Store", + Privilege: "ListReadSets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to update an access control list", - Privilege: "UpdateAcl", + AccessLevel: "List", + Description: "Grants permission to list Reference import jobs for the given Reference Store", + Privilege: "ListReferenceImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl*", + ResourceType: "referenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Reference Stores", + Privilege: "ListReferenceStores", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to update the settings for a cluster", - Privilege: "UpdateCluster", + AccessLevel: "List", + Description: "Grants permission to list References in the given Reference Store", + Privilege: "ListReferences", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "acl", + ResourceType: "referenceStore*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of workflow run caches", + Privilege: "ListRunCaches", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to update parameters in a parameter group", - Privilege: "UpdateParameterGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of workflow run groups", + Privilege: "ListRunGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to update a subnet group", - Privilege: "UpdateSubnetGroup", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of tasks for a workflow run", + Privilege: "ListRunTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup*", + ResourceType: "run*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of workflow runs", + Privilege: "ListRuns", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permissions to update a user", - Privilege: "UpdateUser", + AccessLevel: "List", + Description: "Grants permission to list Sequence Stores", + Privilege: "ListSequenceStores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "memorydb:UserAuthenticationMode", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:parametergroup/${ParameterGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "parametergroup", - }, - { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:subnetgroup/${SubnetGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "subnetgroup", - }, - { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:cluster/${ClusterName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:snapshot/${SnapshotName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "snapshot", - }, { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:user/${UserName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of information about shares", + Privilege: "ListShares", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "user", }, { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:acl/${AclName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of resource AWS tags", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "acl", }, { - Arn: "arn:${Partition}:memorydb:${Region}:${Account}:reservednode/${ReservationID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to get a list of Variant Import Jobs", + Privilege: "ListVariantImportJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "reservednode", }, - }, - ServiceName: "Amazon MemoryDB", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "mgh", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate a given AWS artifact to a MigrationTask", - Privilege: "AssociateCreatedArtifact", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of metadata for Variant Stores", + Privilege: "ListVariantStores", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a given ADS resource to a MigrationTask", - Privilege: "AssociateDiscoveredResource", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of available versions for a workflow", + Privilege: "ListWorkflowVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "workflow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Migration Hub Home Region Control", - Privilege: "CreateHomeRegionControl", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of available workflows", + Privilege: "ListWorkflows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -186180,363 +230204,524 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a ProgressUpdateStream", - Privilege: "CreateProgressUpdateStream", + Description: "Grants permission to put an access policy on a given store", + Privilege: "PutS3AccessPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "progressUpdateStream*", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Migration Hub Home Region Control", - Privilege: "DeleteHomeRegionControl", + Description: "Grants permission to import a list of Annotation files to an Annotation Store", + Privilege: "StartAnnotationImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnnotationStore*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a ProgressUpdateStream", - Privilege: "DeleteProgressUpdateStream", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "progressUpdateStream*", + ResourceType: "AnnotationStoreVersion*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an Application Discovery Service Application's state", - Privilege: "DescribeApplicationState", + AccessLevel: "Write", + Description: "Grants permission to start a Read Set activation job from the given Sequence Store", + Privilege: "StartReadSetActivationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Home Region Controls", - Privilege: "DescribeHomeRegionControls", + AccessLevel: "Write", + Description: "Grants permission to start a Read Set export job from the given Sequence Store", + Privilege: "StartReadSetExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "sequenceStore*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a MigrationTask", - Privilege: "DescribeMigrationTask", + AccessLevel: "Write", + Description: "Grants permission to start a Read Set import job into the given Sequence Store", + Privilege: "StartReadSetImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a given AWS artifact from a MigrationTask", - Privilege: "DisassociateCreatedArtifact", + Description: "Grants permission to start a Reference import job into the given Reference Store", + Privilege: "StartReferenceImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "referenceStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a given ADS resource from a MigrationTask", - Privilege: "DisassociateDiscoveredResource", + Description: "Grants permission to start a workflow run", + Privilege: "StartRun", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "run*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "runCache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "runGroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the Migration Hub Home Region", - Privilege: "GetHomeRegion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "workflow", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import a MigrationTask", - Privilege: "ImportMigrationTask", + Description: "Grants permission to import a list of variant files to an Variant Store", + Privilege: "StartVariantImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "VariantStore*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Application statuses", - Privilege: "ListApplicationStates", + AccessLevel: "Tagging", + Description: "Grants permission to add AWS tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnnotationStore", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list associated created artifacts for a MigrationTask", - Privilege: "ListCreatedArtifacts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "AnnotationStoreVersion", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list associated ADS resources from MigrationTask", - Privilege: "ListDiscoveredResources", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "VariantStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WorkflowVersion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "readSet", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list MigrationTasks", - Privilege: "ListMigrationTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "reference", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "referenceStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "run", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "runCache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "runGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "sequenceStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workflow", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to to list ProgressUpdateStreams", - Privilege: "ListProgressUpdateStreams", + AccessLevel: "Tagging", + Description: "Grants permission to remove resource AWS tags", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "AnnotationStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AnnotationStoreVersion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VariantStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "WorkflowVersion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "readSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reference", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "referenceStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "run", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "runCache", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "runGroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "sequenceStore", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workflow", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Application Discovery Service Application's state", - Privilege: "NotifyApplicationState", + Description: "Grants permission to update information about the Annotation Store", + Privilege: "UpdateAnnotationStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AnnotationStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify latest MigrationTask state", - Privilege: "NotifyMigrationTaskState", + Description: "Grants permission to update information about the Version in an Annotation Store", + Privilege: "UpdateAnnotationStoreVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "AnnotationStoreVersion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put ResourceAttributes", - Privilege: "PutResourceAttributes", + Description: "Grants permission to update a workflow run cache", + Privilege: "UpdateRunCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "migrationTask*", + ResourceType: "runCache*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mgh:${Region}:${Account}:progressUpdateStream/${Stream}", - ConditionKeys: []string{}, - Resource: "progressUpdateStream", - }, - { - Arn: "arn:${Partition}:mgh:${Region}:${Account}:progressUpdateStream/${Stream}/migrationTask/${Task}", - ConditionKeys: []string{}, - Resource: "migrationTask", - }, - }, - ServiceName: "AWS Migration Hub", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "mgn:CreateAction", - Description: "Filters access by the name of a resource-creating API action", - Type: "String", - }, - }, - Prefix: "mgn", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to archive an application", - Privilege: "ArchiveApplication", + Description: "Grants permission to update a workflow run group", + Privilege: "UpdateRunGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "runGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to archive a wave", - Privilege: "ArchiveWave", + Description: "Grants permission to update details about a Sequence Store", + Privilege: "UpdateSequenceStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource*", + ResourceType: "sequenceStore*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate applications to a wave", - Privilege: "AssociateApplications", + Description: "Grants permission to update metadata about the Variant Store", + Privilege: "UpdateVariantStore", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "VariantStore*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update workflow details", + Privilege: "UpdateWorkflow", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource*", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate source servers to an application", - Privilege: "AssociateSourceServers", + Description: "Grants permission to update workflow version details", + Privilege: "UpdateWorkflowVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "WorkflowVersion*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "workflow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create volume snapshot group", - Privilege: "BatchCreateVolumeSnapshotGroupForMgn", + Description: "Grants permission to upload read set parts", + Privilege: "UploadReadSetPart", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "sequenceStore*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:annotationStore/${AnnotationStoreName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AnnotationStore", + }, { - AccessLevel: "Write", - Description: "Grants permission to batch delete snapshot request", - Privilege: "BatchDeleteSnapshotRequestForMgn", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:omics:${Region}:${Account}:annotationStore/${AnnotationStoreName}/version/${AnnotationStoreVersionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AnnotationStoreVersion", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:sequenceStore/${SequenceStoreId}/readSet/${ReadSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "readSet", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:referenceStore/${ReferenceStoreId}/reference/${ReferenceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "reference", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:referenceStore/${ReferenceStoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "referenceStore", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:run/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "run", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:runCache/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "runCache", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:runGroup/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "runGroup", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:sequenceStore/${SequenceStoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "sequenceStore", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:tag/${TagKey}", + ConditionKeys: []string{}, + Resource: "TaggingResource", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:task/${Id}", + ConditionKeys: []string{}, + Resource: "TaskResource", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:variantStore/${VariantStoreName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "VariantStore", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:workflow/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "workflow", + }, + { + Arn: "arn:${Partition}:omics:${Region}:${Account}:workflow/${Id}/version/${VersionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "WorkflowVersion", + }, + }, + ServiceName: "AWS HealthOmics", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by using tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by using tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "one", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to change source server life cycle state", - Privilege: "ChangeServerLifeCycleState", + Description: "Grants permission to create a QR code for a Device Instance", + Privilege: "CreateDeviceActivationQrCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -186545,8 +230730,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create connector", - Privilege: "CreateConnector", + Description: "Grants permission to create a Device Configuration Template", + Privilege: "CreateDeviceConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -186560,8 +230745,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create launch configuration template", - Privilege: "CreateLaunchConfigurationTemplate", + Description: "Grants permission to create a Device Instance", + Privilege: "CreateDeviceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -186575,13 +230760,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create replication configuration template", - Privilege: "CreateReplicationConfigurationTemplate", + Description: "Grants permission to create a Device Instance Configuration", + Privilege: "CreateDeviceInstanceConfiguration", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device-instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -186590,8 +230779,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create vcenter client", - Privilege: "CreateVcenterClientForMgn", + Description: "Grants permission to create a Site", + Privilege: "CreateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -186605,13 +230794,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a wave", - Privilege: "CreateWave", + Description: "Grants permission to disassociate Device from a Device Instance", + Privilege: "DeleteAssociatedDevice", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device-instance*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -186620,164 +230813,172 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApplication", + Description: "Grants permission to delete a Device Configuration Template", + Privilege: "DeleteDeviceConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "device-configuration-template*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete connector", - Privilege: "DeleteConnector", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "ConnectorResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete job", - Privilege: "DeleteJob", + Description: "Grants permission to delete a Device Instance", + Privilege: "DeleteDeviceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource*", + ResourceType: "device-instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete launch configuration template", - Privilege: "DeleteLaunchConfigurationTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete replication configuration template", - Privilege: "DeleteReplicationConfigurationTemplate", + Description: "Grants permission to delete a Site", + Privilege: "DeleteSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource*", + ResourceType: "site*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete source server", - Privilege: "DeleteSourceServer", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete vcenter client", - Privilege: "DeleteVcenterClient", + Description: "Grants permission to delete a User", + Privilege: "DeleteUserV1", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a wave", - Privilege: "DeleteWave", + AccessLevel: "Read", + Description: "Grants permission to view a Device Configuration Template", + Privilege: "GetDeviceConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource*", + ResourceType: "device-configuration-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe job log items", - Privilege: "DescribeJobLogItems", + Description: "Grants permission to view a Device Instance", + Privilege: "GetDeviceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource*", + ResourceType: "device-instance*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe jobs", - Privilege: "DescribeJobs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe launch configuration template", - Privilege: "DescribeLaunchConfigurationTemplates", + AccessLevel: "Read", + Description: "Grants permission to view a Device Instance Configuration", + Privilege: "GetDeviceInstanceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "configuration*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe replication configuration template", - Privilege: "DescribeReplicationConfigurationTemplates", + AccessLevel: "Read", + Description: "Grants permission to view a Site", + Privilege: "GetSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "site*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe replication server associations", - Privilege: "DescribeReplicationServerAssociationsForMgn", + Description: "Grants permission to view address of a Site", + Privilege: "GetSiteAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "site*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe snapshots requests", - Privilege: "DescribeSnapshotRequestsForMgn", + AccessLevel: "List", + Description: "Grants permission to retrieve list of Device Configuration Templates", + Privilege: "ListDeviceConfigurationTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -186788,8 +230989,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to describe source servers", - Privilege: "DescribeSourceServers", + Description: "Grants permission to retrieve list of Device Instances", + Privilege: "ListDeviceInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -186800,8 +231001,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to describe vcenter clients", - Privilege: "DescribeVcenterClients", + Description: "Grants permission to view list of Sites", + Privilege: "ListSites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -186811,462 +231012,506 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate applications from a wave", - Privilege: "DisassociateApplications", + AccessLevel: "Read", + Description: "Grants permission to list tags for an Amazon One Enterprise resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "device-configuration-template", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource*", + ResourceType: "device-instance", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate source servers from an application", - Privilege: "DisassociateSourceServers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "site", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disconnect source server from service", - Privilege: "DisconnectFromService", + AccessLevel: "List", + Description: "Grants permission to view list of Users", + Privilege: "ListUsersV1", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to finalize cutover", - Privilege: "FinalizeCutover", + Description: "Grants permission to reboot Device associated with a Device Instance", + Privilege: "RebootDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get agent command", - Privilege: "GetAgentCommandForMgn", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to an Amazon One Enterprise resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-configuration-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent confirmed resume info", - Privilege: "GetAgentConfirmedResumeInfoForMgn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent installation assets", - Privilege: "GetAgentInstallationAssetsForMgn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "site", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get agent replication info", - Privilege: "GetAgentReplicationInfoForMgn", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an Amazon One Enterprise resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-configuration-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent runtime configuration", - Privilege: "GetAgentRuntimeConfigurationForMgn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get agent snapshots credits", - Privilege: "GetAgentSnapshotCreditsForMgn", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "site", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get channel commands", - Privilege: "GetChannelCommandsForMgn", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get launch configuration", - Privilege: "GetLaunchConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update a Device Configuration Template", + Privilege: "UpdateDeviceConfigurationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "device-configuration-template*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get replication configuration", - Privilege: "GetReplicationConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get vcenter client commands", - Privilege: "GetVcenterClientCommandsForMgn", + AccessLevel: "Write", + Description: "Grants permission to update a Device Instance", + Privilege: "UpdateDeviceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource*", + ResourceType: "device-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initialize service", - Privilege: "InitializeService", + Description: "Grants permission to update a Site", + Privilege: "UpdateSite", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AddRoleToInstanceProfile", - "iam:CreateInstanceProfile", - "iam:CreateServiceLinkedRole", - "iam:GetInstanceProfile", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "site*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to issue a client certificate", - Privilege: "IssueClientCertificateForMgn", + Description: "Grants permission to update address of a Site", + Privilege: "UpdateSiteAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource", + ResourceType: "site*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list application summaries", - Privilege: "ListApplications", + Arn: "arn:${Partition}:one:${Region}:${Account}:device-instance/${DeviceInstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "device-instance", + }, + { + Arn: "arn:${Partition}:one:${Region}:${Account}:device-instance/${DeviceInstanceId}/configuration/${Version}", + ConditionKeys: []string{}, + Resource: "configuration", + }, + { + Arn: "arn:${Partition}:one:${Region}:${Account}:device-configuration-template/${TemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "device-configuration-template", + }, + { + Arn: "arn:${Partition}:one:${Region}:${Account}:site/${SiteId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "site", + }, + { + Arn: "arn:${Partition}:one:${Region}:${Account}:user/${UserId}", + ConditionKeys: []string{}, + Resource: "user", + }, + }, + ServiceName: "Amazon One Enterprise", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "opensearch", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to access OpenSearch Application", + Privilege: "ApplicationAccessAll", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list connectors", - Privilege: "ListConnectors", + AccessLevel: "Write", + Description: "Grants permission to cancel the query that is submitted on the OpenSearch DataSource resource", + Privilege: "CancelDirectQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datasource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the errors of an export task", - Privilege: "ListExportErrors", + AccessLevel: "Read", + Description: "Grants permission to get the query status that are performed on the OpenSearch DataSource resource", + Privilege: "GetDirectQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ExportResource*", + ResourceType: "datasource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list export tasks", - Privilege: "ListExports", + AccessLevel: "Read", + Description: "Grants permission to get the results of a query that is performed on the OpenSearch DataSource resource", + Privilege: "GetDirectQueryResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "datasource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the errors of an import task", - Privilege: "ListImportErrors", + AccessLevel: "Write", + Description: "Grants permission to start a direct query on the provided OpenSearch DataSource arns", + Privilege: "StartDirectQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ImportResource*", + ResourceType: "datasource*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:opensearch:${Region}:${Account}:application/${AppId}", + ConditionKeys: []string{}, + Resource: "application", + }, { - AccessLevel: "List", - Description: "Grants permission to list the import tasks", - Privilege: "ListImports", + Arn: "arn:${Partition}:opensearch:${Region}:${Account}:datasource/${DataSourceName}", + ConditionKeys: []string{}, + Resource: "datasource", + }, + }, + ServiceName: "Amazon OpenSearch", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "opsworks", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to assign a registered instance to a layer", + Privilege: "AssignInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list managed accounts", - Privilege: "ListManagedAccounts", + AccessLevel: "Write", + Description: "Grants permission to assign one of the stack's registered Amazon EBS volumes to a specified instance", + Privilege: "AssignVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list source server action documents", - Privilege: "ListSourceServerActions", + AccessLevel: "Write", + Description: "Grants permission to associate one of the stack's registered Elastic IP addresses with a specified instance", + Privilege: "AssociateElasticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to attach an Elastic Load Balancing load balancer to a specified layer", + Privilege: "AttachElasticLoadBalancer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list launch configuration template action documents", - Privilege: "ListTemplateActions", + AccessLevel: "Write", + Description: "Grants permission to create a clone of a specified stack", + Privilege: "CloneStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list wave summaries", - Privilege: "ListWaves", + AccessLevel: "Write", + Description: "Grants permission to create an app for a specified stack", + Privilege: "CreateApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to mark source server as archived", - Privilege: "MarkAsArchived", + Description: "Grants permission to run deployment or stack commands", + Privilege: "CreateDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify agent authentication", - Privilege: "NotifyAgentAuthenticationForMgn", + Description: "Grants permission to create an instance in a specified stack", + Privilege: "CreateInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify agent is connected", - Privilege: "NotifyAgentConnectedForMgn", + Description: "Grants permission to create a layer", + Privilege: "CreateLayer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify agent is disconnected", - Privilege: "NotifyAgentDisconnectedForMgn", + Description: "Grants permission to create a new stack", + Privilege: "CreateStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify agent replication progress", - Privilege: "NotifyAgentReplicationProgressForMgn", + Description: "Grants permission to create a new user profile", + Privilege: "CreateUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify vcenter client started", - Privilege: "NotifyVcenterClientStartedForMgn", + Description: "Grants permission to delete a specified app", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to pause replication", - Privilege: "PauseReplication", + Description: "Grants permission to delete a specified instance, which terminates the associated Amazon EC2 instance", + Privilege: "DeleteInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put source server action document", - Privilege: "PutSourceServerAction", + Description: "Grants permission to delete a specified layer", + Privilege: "DeleteLayer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put launch configuration template action document", - Privilege: "PutTemplateAction", + Description: "Grants permission to delete a specified stack", + Privilege: "DeleteStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register agent", - Privilege: "RegisterAgentForMgn", + Description: "Grants permission to delete a user profile", + Privilege: "DeleteUserProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -187274,870 +231519,680 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove source server action document", - Privilege: "RemoveSourceServerAction", + Description: "Grants permission to delete a user profile", + Privilege: "DeregisterEcsCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove launch configuration template action document", - Privilege: "RemoveTemplateAction", + Description: "Grants permission to deregister a specified Elastic IP address", + Privilege: "DeregisterElasticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to resume replication", - Privilege: "ResumeReplication", + Description: "Grants permission to deregister a registered Amazon EC2 or on-premises instance", + Privilege: "DeregisterInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to retry replication", - Privilege: "RetryDataReplication", + Description: "Grants permission to deregister an Amazon RDS instance", + Privilege: "DeregisterRdsDbInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send agent logs", - Privilege: "SendAgentLogsForMgn", + Description: "Grants permission to deregister an Amazon EBS volume", + Privilege: "DeregisterVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send agent metrics", - Privilege: "SendAgentMetricsForMgn", + AccessLevel: "List", + Description: "Grants permission to describe the available AWS OpsWorks agent versions", + Privilege: "DescribeAgentVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send channel command result", - Privilege: "SendChannelCommandResultForMgn", + AccessLevel: "List", + Description: "Grants permission to request a description of a specified set of apps", + Privilege: "DescribeApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send client logs", - Privilege: "SendClientLogsForMgn", + AccessLevel: "List", + Description: "Grants permission to describe the results of specified commands", + Privilege: "DescribeCommands", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send client metrics", - Privilege: "SendClientMetricsForMgn", + AccessLevel: "List", + Description: "Grants permission to request a description of a specified set of deployments", + Privilege: "DescribeDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send vcenter client command result", - Privilege: "SendVcenterClientCommandResultForMgn", + AccessLevel: "List", + Description: "Grants permission to describe Amazon ECS clusters that are registered with a stack", + Privilege: "DescribeEcsClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send vcenter client logs", - Privilege: "SendVcenterClientLogsForMgn", + AccessLevel: "List", + Description: "Grants permission to describe Elastic IP addresses", + Privilege: "DescribeElasticIps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send vcenter client metrics", - Privilege: "SendVcenterClientMetricsForMgn", + AccessLevel: "List", + Description: "Grants permission to describe a stack's Elastic Load Balancing instances", + Privilege: "DescribeElasticLoadBalancers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start cutover", - Privilege: "StartCutover", + AccessLevel: "List", + Description: "Grants permission to request a description of a set of instances", + Privilege: "DescribeInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:AttachVolume", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateLaunchTemplate", - "ec2:CreateLaunchTemplateVersion", - "ec2:CreateSecurityGroup", - "ec2:CreateSnapshot", - "ec2:CreateTags", - "ec2:CreateVolume", - "ec2:DeleteLaunchTemplateVersions", - "ec2:DeleteSnapshot", - "ec2:DeleteVolume", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeImages", - "ec2:DescribeInstanceAttribute", - "ec2:DescribeInstanceStatus", - "ec2:DescribeInstanceTypes", - "ec2:DescribeInstances", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribeLaunchTemplates", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSnapshots", - "ec2:DescribeSubnets", - "ec2:DescribeVolumes", - "ec2:DetachVolume", - "ec2:ModifyInstanceAttribute", - "ec2:ModifyLaunchTemplate", - "ec2:ReportInstanceStatus", - "ec2:RevokeSecurityGroupEgress", - "ec2:RunInstances", - "ec2:StartInstances", - "ec2:StopInstances", - "ec2:TerminateInstances", - "iam:PassRole", - "mgn:ListTagsForResource", - }, - ResourceType: "SourceServerResource*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an export task", - Privilege: "StartExport", + AccessLevel: "List", + Description: "Grants permission to request a description of one or more layers in a specified stack", + Privilege: "DescribeLayers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeLaunchTemplateVersions", - "mgn:DescribeSourceServers", - "mgn:GetLaunchConfiguration", - "mgn:ListApplications", - "mgn:ListWaves", - "s3:PutObject", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an import task", - Privilege: "StartImport", + AccessLevel: "List", + Description: "Grants permission to describe load-based auto scaling configurations for specified layers", + Privilege: "DescribeLoadBasedAutoScaling", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateLaunchTemplateVersion", - "ec2:DescribeLaunchTemplateVersions", - "ec2:ModifyLaunchTemplate", - "mgn:DescribeSourceServers", - "mgn:GetLaunchConfiguration", - "mgn:ListApplications", - "mgn:ListWaves", - "mgn:TagResource", - "mgn:UpdateLaunchConfiguration", - "s3:PutObject", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start replication", - Privilege: "StartReplication", + AccessLevel: "List", + Description: "Grants permission to describe a user's SSH information", + Privilege: "DescribeMyUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start test", - Privilege: "StartTest", + AccessLevel: "List", + Description: "Grants permission to describe the operating systems that are supported by AWS OpsWorks Stacks", + Privilege: "DescribeOperatingSystems", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:AttachVolume", - "ec2:AuthorizeSecurityGroupEgress", - "ec2:AuthorizeSecurityGroupIngress", - "ec2:CreateLaunchTemplate", - "ec2:CreateLaunchTemplateVersion", - "ec2:CreateSecurityGroup", - "ec2:CreateSnapshot", - "ec2:CreateTags", - "ec2:CreateVolume", - "ec2:DeleteLaunchTemplateVersions", - "ec2:DeleteSnapshot", - "ec2:DeleteVolume", - "ec2:DescribeAccountAttributes", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeImages", - "ec2:DescribeInstanceAttribute", - "ec2:DescribeInstanceStatus", - "ec2:DescribeInstanceTypes", - "ec2:DescribeInstances", - "ec2:DescribeLaunchTemplateVersions", - "ec2:DescribeLaunchTemplates", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSnapshots", - "ec2:DescribeSubnets", - "ec2:DescribeVolumes", - "ec2:DetachVolume", - "ec2:ModifyInstanceAttribute", - "ec2:ModifyLaunchTemplate", - "ec2:ReportInstanceStatus", - "ec2:RevokeSecurityGroupEgress", - "ec2:RunInstances", - "ec2:StartInstances", - "ec2:StopInstances", - "ec2:TerminateInstances", - "iam:PassRole", - "mgn:ListTagsForResource", - }, - ResourceType: "SourceServerResource*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop replication", - Privilege: "StopReplication", + AccessLevel: "List", + Description: "Grants permission to describe the permissions for a specified stack", + Privilege: "DescribePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to assign a resource tag", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to describe an instance's RAID arrays", + Privilege: "DescribeRaidArrays", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe Amazon RDS instances", + Privilege: "DescribeRdsDbInstances", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConnectorResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe AWS OpsWorks service errors", + Privilege: "DescribeServiceErrors", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "JobResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to request a description of a stack's provisioning parameters", + Privilege: "DescribeStackProvisioningParameters", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe the number of layers and apps in a specified stack, and the number of instances in each state, such as running_setup or online", + Privilege: "DescribeStackSummary", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to request a description of one or more stacks", + Privilege: "DescribeStacks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe time-based auto scaling configurations for specified instances", + Privilege: "DescribeTimeBasedAutoScaling", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe specified users", + Privilege: "DescribeUserProfiles", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "mgn:CreateAction", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate target instances", - Privilege: "TerminateTargetInstances", + AccessLevel: "List", + Description: "Grants permission to describe an instance's Amazon EBS volumes", + Privilege: "DescribeVolumes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteVolume", - "ec2:DescribeInstances", - "ec2:DescribeVolumes", - "ec2:TerminateInstances", - }, - ResourceType: "SourceServerResource*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unarchive an application", - Privilege: "UnarchiveApplication", + Description: "Grants permission to detache a specified Elastic Load Balancing instance from its layer", + Privilege: "DetachElasticLoadBalancer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unarchive a wave", - Privilege: "UnarchiveWave", + Description: "Grants permission to disassociate an Elastic IP address from its instance", + Privilege: "DisassociateElasticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get a generated host name for the specified layer, based on the current host name theme", + Privilege: "GetHostnameSuggestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ConnectorResource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "JobResource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to grant RDP access to a Windows instance for a specified time period", + Privilege: "GrantAccess", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of tags that are applied to the specified stack or layer", + Privilege: "ListTags", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VcenterClientResource", + ResourceType: "stack", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to reboot a specified instance", + Privilege: "RebootInstance", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent backlog", - Privilege: "UpdateAgentBacklogForMgn", + Description: "Grants permission to register a specified Amazon ECS cluster with a stack", + Privilege: "RegisterEcsCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent conversion info", - Privilege: "UpdateAgentConversionInfoForMgn", + Description: "Grants permission to register an Elastic IP address with a specified stack", + Privilege: "RegisterElasticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent replication info", - Privilege: "UpdateAgentReplicationInfoForMgn", + Description: "Grants permission to register instances with a specified stack that were created outside of AWS OpsWorks", + Privilege: "RegisterInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent replication process state", - Privilege: "UpdateAgentReplicationProcessStateForMgn", + Description: "Grants permission to register an Amazon RDS instance with a stack", + Privilege: "RegisterRdsDbInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update agent source properties", - Privilege: "UpdateAgentSourcePropertiesForMgn", + Description: "Grants permission to register an Amazon EBS volume with a specified stack", + Privilege: "RegisterVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an application", - Privilege: "UpdateApplication", + Description: "Grants permission to specify the load-based auto scaling configuration for a specified layer", + Privilege: "SetLoadBasedAutoScaling", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update connector", - Privilege: "UpdateConnector", + AccessLevel: "Permissions management", + Description: "Grants permission to specify a user's permissions", + Privilege: "SetPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConnectorResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update launch configuration", - Privilege: "UpdateLaunchConfiguration", + Description: "Grants permission to specify the time-based auto scaling configuration for a specified instance", + Privilege: "SetTimeBasedAutoScaling", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update launch configuration", - Privilege: "UpdateLaunchConfigurationTemplate", + Description: "Grants permission to start a specified instance", + Privilege: "StartInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "LaunchConfigurationTemplateResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update replication configuration", - Privilege: "UpdateReplicationConfiguration", + Description: "Grants permission to start a stack's instances", + Privilege: "StartStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update replication configuration template", - Privilege: "UpdateReplicationConfigurationTemplate", + Description: "Grants permission to stop a specified instance", + Privilege: "StopInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ReplicationConfigurationTemplateResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update source server", - Privilege: "UpdateSourceServer", + Description: "Grants permission to stop a specified stack", + Privilege: "StopStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update source server replication type", - Privilege: "UpdateSourceServerReplicationType", + AccessLevel: "Tagging", + Description: "Grants permission to apply tags to a specified stack or layer", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SourceServerResource*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a wave", - Privilege: "UpdateWave", + Description: "Grants permission to unassign a registered instance from all of it's layers", + Privilege: "UnassignInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "WaveResource*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to verify client role", - Privilege: "VerifyClientRoleForMgn", + AccessLevel: "Write", + Description: "Grants permission to unassign an assigned Amazon EBS volume", + Privilege: "UnassignVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:job/${JobID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "JobResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:replication-configuration-template/${ReplicationConfigurationTemplateID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ReplicationConfigurationTemplateResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:launch-configuration-template/${LaunchConfigurationTemplateID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "LaunchConfigurationTemplateResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:vcenter-client/${VcenterClientID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "VcenterClientResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:source-server/${SourceServerID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "SourceServerResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:application/${ApplicationID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ApplicationResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:wave/${WaveID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "WaveResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:import/${ImportID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ImportResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:export/${ExportID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ExportResource", - }, - { - Arn: "arn:${Partition}:mgn:${Region}:${Account}:connector/${ConnectorID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ConnectorResource", - }, - }, - ServiceName: "AWS Application Migration Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "migrationhub-orchestrator", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a custom template", - Privilege: "CreateTemplate", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a specified stack or layer", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workflow based on the selected template", - Privilege: "CreateWorkflow", + Description: "Grants permission to update a specified app", + Privilege: "UpdateApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a step under a workflow and a specific step group", - Privilege: "CreateWorkflowStep", + Description: "Grants permission to update a registered Elastic IP address's name", + Privilege: "UpdateElasticIp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to to create a custom step group for a given workflow", - Privilege: "CreateWorkflowStepGroup", + Description: "Grants permission to update a specified instance", + Privilege: "UpdateInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom template", - Privilege: "DeleteTemplate", + Description: "Grants permission to update a specified layer", + Privilege: "UpdateLayer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to a workflow", - Privilege: "DeleteWorkflow", + Description: "Grants permission to update a user's SSH public key", + Privilege: "UpdateMyUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a step from a specific step group under a workflow", - Privilege: "DeleteWorkflowStep", + Description: "Grants permission to update an Amazon RDS instance", + Privilege: "UpdateRdsDbInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "stack", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a step group associated with a workflow", - Privilege: "DeleteWorkflowStepGroup", + Description: "Grants permission to update a specified stack", + Privilege: "UpdateStack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "stack", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to the plugin to receive information from the service", - Privilege: "GetMessage", + AccessLevel: "Permissions management", + Description: "Grants permission to update a specified user profile", + Privilege: "UpdateUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188147,81 +232202,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get retrieve metadata for a Template", - Privilege: "GetTemplate", + AccessLevel: "Write", + Description: "Grants permission to update an Amazon EBS volume's name or mount point", + Privilege: "UpdateVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "stack", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve details of a step associated with a template and a step group", - Privilege: "GetTemplateStep", + Arn: "arn:${Partition}:opsworks:${Region}:${Account}:stack/${StackId}/", + ConditionKeys: []string{}, + Resource: "stack", + }, + }, + ServiceName: "AWS OpsWorks", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "opsworks-cm", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a node to a configuration management server", + Privilege: "AssociateNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata of a step group under a template", - Privilege: "GetTemplateStepGroup", + AccessLevel: "Write", + Description: "Grants permission to create a backup for the specified server", + Privilege: "CreateBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata asscociated with a workflow", - Privilege: "GetWorkflow", + AccessLevel: "Write", + Description: "Grants permission to create a new server", + Privilege: "CreateServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of step associated with a workflow and a step group", - Privilege: "GetWorkflowStep", + AccessLevel: "Write", + Description: "Grants permission to delete the specified backup and possibly its S3 bucket", + Privilege: "DeleteBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of a step group associated with a workflow", - Privilege: "GetWorkflowStepGroup", + AccessLevel: "Write", + Description: "Grants permission to delete the specified server with its corresponding CloudFormation stack and possibly the S3 bucket", + Privilege: "DeleteServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list all registered Plugins", - Privilege: "ListPlugins", + Description: "Grants permission to describe the service limits for the user's account", + Privilege: "DescribeAccountAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188231,50 +232300,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of all the tags tied to a resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to describe a single backup, all backups of a specified server or all backups of the user's account", + Privilege: "DescribeBackups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to describe all events of the specified server", + Privilege: "DescribeEvents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to lists step groups of a template", - Privilege: "ListTemplateStepGroups", + Description: "Grants permission to describe the association status for the specified node token and the specified server", + Privilege: "DescribeNodeAssociationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of steps in a step group", - Privilege: "ListTemplateSteps", + Description: "Grants permission to describe the specified server or all servers of the user's account", + Privilege: "DescribeServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of all Templates available to customer", - Privilege: "ListTemplates", + AccessLevel: "Write", + Description: "Grants permission to disassociate a specified node from a server", + Privilege: "DisassociateNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188284,33 +232360,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get list of step groups associated with a workflow", - Privilege: "ListWorkflowStepGroups", + AccessLevel: "Read", + Description: "Grants permission to export an engine attribute from a server", + Privilege: "ExportServerEngineAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of steps within step group associated with a workflow", - Privilege: "ListWorkflowSteps", + AccessLevel: "Read", + Description: "Grants permission to list the tags that are applied to the specified server or backup", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all workflows", - Privilege: "ListWorkflows", + AccessLevel: "Write", + Description: "Grants permission to apply a backup to specified server. Possibly swaps out the ec2-instance if specified", + Privilege: "RestoreServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188321,8 +232397,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to register the plugin to receive an ID and to start receiving messages from the service", - Privilege: "RegisterPlugin", + Description: "Grants permission to start the server maintenance immediately", + Privilege: "StartMaintenance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188332,21 +232408,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to retry a failed step within a workflow", - Privilege: "RetryWorkflowStep", + AccessLevel: "Tagging", + Description: "Grants permission to apply tags to the specified server or backup", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to the plugin to send information to the service", - Privilege: "SendMessage", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified server or backup", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188357,47 +232433,115 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a workflow or resume a stopped workflow", - Privilege: "StartWorkflow", + Description: "Grants permission to update general server settings", + Privilege: "UpdateServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a workflow", - Privilege: "StopWorkflow", + Description: "Grants permission to update server settings specific to the configuration management type", + Privilege: "UpdateServerEngineAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + Arn: "arn:${Partition}:opsworks-cm::${Account}:server/${ServerName}/${UniqueId}", + ConditionKeys: []string{}, + Resource: "server", + }, + { + Arn: "arn:${Partition}:opsworks-cm::${Account}:backup/${ServerName}-{Date-and-Time-Stamp-of-Backup}", + ConditionKeys: []string{}, + Resource: "backup", + }, + }, + ServiceName: "AWS OpsWorks Configuration Management", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "organizations:PolicyType", + Description: "Filters access by the specified policy type names", + Type: "String", + }, + { + Condition: "organizations:ServicePrincipal", + Description: "Filters access by the specified service principal names", + Type: "String", + }, + }, + Prefix: "organizations", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to send a response to the originator of a handshake agreeing to the action proposed by the handshake request", + Privilege: "AcceptHandshake", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "handshake*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach a policy to a root, an organizational unit, or an individual account", + Privilege: "AttachPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "policy*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "account", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "organizations:PolicyType", }, DependentActions: []string{}, ResourceType: "", @@ -188405,23 +232549,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to cancel a handshake", + Privilege: "CancelHandshake", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "handshake*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to close an AWS account that is now a part of an Organizations, either created within the organization, or invited to join the organization", + Privilege: "CloseAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "account*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS account that is automatically a member of the organization with the credentials that made the request", + Privilege: "CreateAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -188430,79 +232590,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a custom template", - Privilege: "UpdateTemplate", + Description: "Grants permission to create an AWS GovCloud (US) account", + Privilege: "CreateGovCloudAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata associated with the workflow", - Privilege: "UpdateWorkflow", + Description: "Grants permission to create an organization. The account with the credentials that calls the CreateOrganization operation automatically becomes the management account of the new organization", + Privilege: "CreateOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflow*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update metadata and status of a custom step within a workflow", - Privilege: "UpdateWorkflowStep", + Description: "Grants permission to create an organizational unit (OU) within a root or parent OU", + Privilege: "CreateOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update metadata associated with a step group in a given workflow", - Privilege: "UpdateWorkflowStepGroup", + Description: "Grants permission to create a policy that you can attach to a root, an organizational unit (OU), or an individual AWS account", + Privilege: "CreatePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "organizations:PolicyType", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:migrationhub-orchestrator:${Region}:${Account}:workflow/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "workflow", - }, { - Arn: "arn:${Partition}:migrationhub-orchestrator:${Region}:${Account}:template/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to decline a handshake request. This sets the handshake state to DECLINED and effectively deactivates the request", + Privilege: "DeclineHandshake", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "handshake*", + }, }, - Resource: "template", }, - }, - ServiceName: "AWS Migration Hub Orchestrator", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "migrationhub-strategy", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to get details of each anti pattern that collector should look at in a customer's environment", - Privilege: "GetAntiPattern", + AccessLevel: "Write", + Description: "Grants permission to delete the organization", + Privilege: "DeleteOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188512,33 +232685,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of an application", - Privilege: "GetApplicationComponentDetails", + AccessLevel: "Write", + Description: "Grants permission to delete an organizational unit from a root or another OU", + Privilege: "DeleteOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "organizationalunit*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of all recommended strategies and tools for an application running in a server", - Privilege: "GetApplicationComponentStrategies", + AccessLevel: "Write", + Description: "Grants permission to delete a policy from your organization", + Privilege: "DeletePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "policy*", + }, + { + ConditionKeys: []string{ + "organizations:PolicyType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve status of an on-going assessment", - Privilege: "GetAssessment", + AccessLevel: "Write", + Description: "Grants permission to delete a resource policy from your organization", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188548,33 +232728,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details of a specific import task", - Privilege: "GetImportFileTask", + AccessLevel: "Write", + Description: "Grants permission to deregister the specified member AWS account as a delegated administrator for the AWS service that is specified by ServicePrincipal", + Privilege: "DeregisterDelegatedAdministrator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "account*", + }, + { + ConditionKeys: []string{ + "organizations:ServicePrincipal", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the latest assessment id", - Privilege: "GetLatestAssessmentId", + Description: "Grants permission to retrieve Organizations-related details about the specified account", + Privilege: "DescribeAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "account*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to the collector to receive information from the service", - Privilege: "GetMessage", + Description: "Grants permission to retrieve the current status of an asynchronous request to create an account", + Privilege: "DescribeCreateAccountStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188585,32 +232772,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve customer migration/Modernization preferences", - Privilege: "GetPortfolioPreferences", + Description: "Grants permission to retrieve the effective policy for an account", + Privilege: "DescribeEffectivePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "account*", + }, + { + ConditionKeys: []string{ + "organizations:PolicyType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve overall summary (number-of servers to rehost etc as well as overall number of anti patterns)", - Privilege: "GetPortfolioSummary", + Description: "Grants permission to retrieve details about a previously requested handshake", + Privilege: "DescribeHandshake", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "handshake*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve detailed information about a recommendation report", - Privilege: "GetRecommendationReportDetails", + Description: "Grants permission to retrieves details about the organization that the calling credentials belong to", + Privilege: "DescribeOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188621,44 +232815,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get info about a specific server", - Privilege: "GetServerDetails", + Description: "Grants permission to retrieve details about an organizational unit (OU)", + Privilege: "DescribeOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "organizationalunit*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get recommended strategies and tools for a specific server", - Privilege: "GetServerStrategies", + Description: "Grants permission to retrieves details about a policy", + Privilege: "DescribePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of all analyzable servers in a customer's vcenter environment", - Privilege: "ListAnalyzableServers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "organizations:PolicyType", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of all anti patterns that collector should look for in a customer's environment", - Privilege: "ListAntiPatterns", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a resource policy", + Privilege: "DescribeResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188668,60 +232857,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of all applications running on servers on customer's servers", - Privilege: "ListApplicationComponents", + AccessLevel: "Write", + Description: "Grants permission to detach a policy from a target root, organizational unit, or account", + Privilege: "DetachPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "policy*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of all collectors installed by the customer", - Privilege: "ListCollectors", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "account", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get list of all imports performed by the customer", - Privilege: "ListImportFileTask", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "organizationalunit", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of binaries that collector should assess", - Privilege: "ListJarArtifacts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "root", + }, + { + ConditionKeys: []string{ + "organizations:PolicyType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of all servers in a customer's environment", - Privilege: "ListServers", + AccessLevel: "Write", + Description: "Grants permission to disable integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations", + Privilege: "DisableAWSServiceAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "organizations:ServicePrincipal", + }, DependentActions: []string{}, ResourceType: "", }, @@ -188729,23 +232906,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to the collector to send logs to the service", - Privilege: "PutLogData", + Description: "Grants permission to disable an organization policy type in a root", + Privilege: "DisablePolicyType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "root*", + }, + { + ConditionKeys: []string{ + "organizations:PolicyType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the collector to send metrics to the service", - Privilege: "PutMetricData", + Description: "Grants permission to enable integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations", + Privilege: "EnableAWSServiceAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "organizations:ServicePrincipal", + }, DependentActions: []string{}, ResourceType: "", }, @@ -188753,8 +232939,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to save customer's Migration/Modernization preferences", - Privilege: "PutPortfolioPreferences", + Description: "Grants permission to start the process to enable all features in an organization, upgrading it from supporting only Consolidated Billing features", + Privilege: "EnableAllFeatures", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188765,32 +232951,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to register the collector to receive an ID and to start receiving messages from the service", - Privilege: "RegisterCollector", + Description: "Grants permission to enable a policy type in a root", + Privilege: "EnablePolicyType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "root*", + }, + { + ConditionKeys: []string{ + "organizations:PolicyType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to the collector to send information to the service", - Privilege: "SendMessage", + Description: "Grants permission to send an invitation to another AWS account, asking it to join your organization as a member account", + Privilege: "InviteAccountToOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "account", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start assessment in a customer's environment (collect data from all servers and provide recommendations)", - Privilege: "StartAssessment", + Description: "Grants permission to remove a member account from its parent organization", + Privilege: "LeaveOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188800,9 +233001,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start importing data from a file provided by customer", - Privilege: "StartImportFileTask", + AccessLevel: "List", + Description: "Grants permission to retrieve the list of the AWS services for which you enabled integration with your organization", + Privilege: "ListAWSServiceAccessForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188812,9 +233013,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start generating a recommendation report", - Privilege: "StartRecommendationReportGeneration", + AccessLevel: "List", + Description: "Grants permission to list all of the the accounts in the organization", + Privilege: "ListAccounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188824,33 +233025,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an on-going assessment", - Privilege: "StopAssessment", + AccessLevel: "List", + Description: "Grants permission to list the accounts in an organization that are contained by a root or organizational unit (OU)", + Privilege: "ListAccountsForParent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update details for an application", - Privilege: "UpdateApplicationComponentConfig", + AccessLevel: "List", + Description: "Grants permission to list all of the OUs or accounts that are contained in a parent OU or root", + Privilege: "ListChildren", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to the collector to send configuration information to the service", - Privilege: "UpdateCollectorConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the asynchronous account creation requests that are currently being tracked for the organization", + Privilege: "ListCreateAccountStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188860,41 +233071,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update info on a server along with the recommended strategy", - Privilege: "UpdateServerConfig", + AccessLevel: "List", + Description: "Grants permission to list the AWS accounts that are designated as delegated administrators in this organization", + Privilege: "ListDelegatedAdministrators", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "organizations:ServicePrincipal", + }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Migration Hub Strategy Recommendations", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "mobileanalytics", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grant access to financial metrics for an app", - Privilege: "GetFinancialReports", + AccessLevel: "List", + Description: "Grants permission to list the AWS services for which the specified account is a delegated administrator in this organization", + Privilege: "ListDelegatedServicesForAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "account*", }, }, }, { - AccessLevel: "Read", - Description: "Grant access to standard metrics for an app", - Privilege: "GetReports", + AccessLevel: "List", + Description: "Grants permission to list all of the handshakes that are associated with an account", + Privilege: "ListHandshakesForAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188904,9 +233109,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "The PutEvents operation records one or more events", - Privilege: "PutEvents", + AccessLevel: "List", + Description: "Grants permission to list the handshakes that are associated with the organization", + Privilege: "ListHandshakesForOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -188915,66 +233120,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Mobile Analytics", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a key that is present in the request the user makes to the pinpoint service", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names present in the request the user makes to the pinpoint service", - Type: "ArrayOfString", - }, - }, - Prefix: "mobiletargeting", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an app", - Privilege: "CreateApp", + AccessLevel: "List", + Description: "Grants permission to lists all of the organizational units (OUs) in a parent organizational unit or root", + Privilege: "ListOrganizationalUnitsForParent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "apps*", + ResourceType: "organizationalunit", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "root", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a campaign for an app", - Privilege: "CreateCampaign", + AccessLevel: "List", + Description: "Grants permission to list the root or organizational units (OUs) that serve as the immediate parent of a child OU or account", + Privilege: "ListParents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "account", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all of the policies in an organization", + Privilege: "ListPolicies", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "organizations:PolicyType", }, DependentActions: []string{}, ResourceType: "", @@ -188982,20 +233169,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an email template", - Privilege: "CreateEmailTemplate", + AccessLevel: "List", + Description: "Grants permission to list all of the policies that are directly attached to a root, organizational unit (OU), or account", + Privilege: "ListPoliciesForTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "account", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "organizations:PolicyType", }, DependentActions: []string{}, ResourceType: "", @@ -189003,44 +233198,62 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an export job that exports endpoint definitions to Amazon S3", - Privilege: "CreateExportJob", + AccessLevel: "List", + Description: "Grants permission to list all of the roots that are defined in the organization", + Privilege: "ListRoots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import endpoint definitions from to create a segment", - Privilege: "CreateImportJob", + AccessLevel: "List", + Description: "Grants permission to list all tags for the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "account", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resourcepolicy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an in-app message template", - Privilege: "CreateInAppTemplate", + AccessLevel: "List", + Description: "Grants permission to list all the roots, OUs, and accounts to which a policy is attached", + Privilege: "ListTargetsForPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "policy*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "organizations:PolicyType", }, DependentActions: []string{}, ResourceType: "", @@ -189049,19 +233262,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Journey for an app", - Privilege: "CreateJourney", + Description: "Grants permission to move an account from its current root or OU to another parent root or OU", + Privilege: "MoveAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journeys*", + ResourceType: "account*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create or update a resource policy", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resourcepolicy*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -189070,19 +233304,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a push notification template", - Privilege: "CreatePushTemplate", + Description: "Grants permission to register the specified member account to administer the Organizations features of the AWS service that is specified by ServicePrincipal", + Privilege: "RegisterDelegatedAdministrator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "account*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "organizations:ServicePrincipal", }, DependentActions: []string{}, ResourceType: "", @@ -189091,31 +233323,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Pinpoint configuration for a recommender model", - Privilege: "CreateRecommenderConfiguration", + Description: "Grants permission to removes the specified account from the organization", + Privilege: "RemoveAccountFromOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommenders*", + ResourceType: "account*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a segment that is based on endpoint data reported to Pinpoint by your app. To allow a user to create a segment by importing endpoint data from outside of Pinpoint, allow the mobiletargeting:CreateImportJob action", - Privilege: "CreateSegment", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "account", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{ + "organizations:PolicyType", + }, + DependentActions: []string{}, + ResourceType: "policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resourcepolicy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -189123,20 +233376,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an sms message template", - Privilege: "CreateSmsTemplate", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "account", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organizationalunit", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resourcepolicy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -189145,1087 +233416,1296 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a voice message template", - Privilege: "CreateVoiceTemplate", + Description: "Grants permission to rename an organizational unit (OU)", + Privilege: "UpdateOrganizationalUnit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "organizationalunit*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing policy with a new name, description, or content", + Privilege: "UpdatePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "organizations:PolicyType", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:organizations::${Account}:account/o-${OrganizationId}/${AccountId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "account", + }, + { + Arn: "arn:${Partition}:organizations::${Account}:handshake/o-${OrganizationId}/${HandshakeType}/h-${HandshakeId}", + ConditionKeys: []string{}, + Resource: "handshake", + }, + { + Arn: "arn:${Partition}:organizations::${Account}:organization/o-${OrganizationId}", + ConditionKeys: []string{}, + Resource: "organization", + }, + { + Arn: "arn:${Partition}:organizations::${Account}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "organizationalunit", + }, + { + Arn: "arn:${Partition}:organizations::${Account}:policy/o-${OrganizationId}/${PolicyType}/p-${PolicyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "policy", + }, + { + Arn: "arn:${Partition}:organizations::${Account}:resourcepolicy/o-${OrganizationId}/rp-${ResourcePolicyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "resourcepolicy", + }, + { + Arn: "arn:${Partition}:organizations::aws:policy/${PolicyType}/p-${PolicyId}", + ConditionKeys: []string{}, + Resource: "awspolicy", + }, + { + Arn: "arn:${Partition}:organizations::${Account}:root/o-${OrganizationId}/r-${RootId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "root", + }, + }, + ServiceName: "AWS Organizations", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "osis", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete the ADM channel for an app", - Privilege: "DeleteAdmChannel", + Description: "Grants permission to create an OpenSearch Ingestion pipeline", + Privilege: "CreatePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlaintext", + "logs:CreateLogDelivery", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the APNs channel for an app", - Privilege: "DeleteApnsChannel", + Description: "Grants permission to delete an OpenSearch Ingestion pipeline", + Privilege: "DeletePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "channel*", + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:DeleteLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + }, + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the APNs sandbox channel for an app", - Privilege: "DeleteApnsSandboxChannel", + AccessLevel: "Read", + Description: "Grants permission to retrieve configuration information for an OpenSearch Ingestion pipeline", + Privilege: "GetPipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the APNs VoIP channel for an app", - Privilege: "DeleteApnsVoipChannel", + AccessLevel: "Read", + Description: "Grants permission to get the contents of an OpenSearch Ingestion pipeline blueprint", + Privilege: "GetPipelineBlueprint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "pipeline-blueprint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the APNs VoIP sandbox channel for an app", - Privilege: "DeleteApnsVoipSandboxChannel", + AccessLevel: "Read", + Description: "Grants permission to get granular information about the status of an OpenSearch Ingestion pipeline", + Privilege: "GetPipelineChangeProgress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specific campaign", - Privilege: "DeleteApp", + Description: "Grants permission to ingest data through an OpenSearch Ingestion pipeline", + Privilege: "Ingest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the Baidu channel for an app", - Privilege: "DeleteBaiduChannel", + AccessLevel: "List", + Description: "Grants permission to list the names of available blueprints for an OpenSearch Ingestion pipeline configuration", + Privilege: "ListPipelineBlueprints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specific campaign", - Privilege: "DeleteCampaign", + AccessLevel: "List", + Description: "Grants permission to list basic configuration for each OpenSearch Ingestion pipeline in the current account and Region", + Privilege: "ListPipelines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the email channel for an app", - Privilege: "DeleteEmailChannel", + AccessLevel: "Read", + Description: "Grants permission to list all resource tags associated with an OpenSearch Ingestion pipeline", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an email template or an email template version", - Privilege: "DeleteEmailTemplate", + Description: "Grants permission to start an OpenSearch Ingestion pipeline", + Privilege: "StartPipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an endpoint", - Privilege: "DeleteEndpoint", + Description: "Grants permission to stop an OpenSearch Ingestion pipeline", + Privilege: "StopPipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "pipeline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the event stream for an app", - Privilege: "DeleteEventStream", + AccessLevel: "Tagging", + Description: "Grants permission to attach resource tags to an OpenSearch Ingestion pipeline", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-stream*", + ResourceType: "pipeline*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the GCM channel for an app", - Privilege: "DeleteGcmChannel", + AccessLevel: "Tagging", + Description: "Grants permission to remove resource tags from an OpenSearch Ingestion Service pipeline", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "pipeline*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an in-app message template or an in-app message template version", - Privilege: "DeleteInAppTemplate", + Description: "Grants permission to modify the configuration of an OpenSearch Ingestion pipeline", + Privilege: "UpdatePipeline", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:DescribeKey", + "kms:GenerateDataKeyWithoutPlaintext", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:UpdateLogDelivery", + }, + ResourceType: "pipeline*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to validate the configuration of an OpenSearch Ingestion pipeline", + Privilege: "ValidatePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:osis:${Region}:${Account}:pipeline/${PipelineName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "pipeline", + }, + { + Arn: "arn:${Partition}:osis:${Region}:${Account}:blueprint/${BlueprintName}", + ConditionKeys: []string{}, + Resource: "pipeline-blueprint", + }, + }, + ServiceName: "Amazon OpenSearch Ingestion", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "outposts", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a specific journey", - Privilege: "DeleteJourney", + Description: "Grants permission to cancel a capacity task", + Privilege: "CancelCapacityTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a push notification template or a push notification template version", - Privilege: "DeletePushTemplate", + Description: "Grants permission to cancel an order", + Privilege: "CancelOrder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Pinpoint configuration for a recommender model", - Privilege: "DeleteRecommenderConfiguration", + Description: "Grants permission to create an order", + Privilege: "CreateOrder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specific segment", - Privilege: "DeleteSegment", + Description: "Grants permission to create an Outpost", + Privilege: "CreateOutpost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "site*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the SMS channel for an app", - Privilege: "DeleteSmsChannel", + Description: "Grants permission to create a private connectivity configuration", + Privilege: "CreatePrivateConnectivityConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an sms message template or an sms message template version", - Privilege: "DeleteSmsTemplate", + Description: "Grants permission to create a site", + Privilege: "CreateSite", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete all of the endpoints that are associated with a user ID", - Privilege: "DeleteUserEndpoints", + Description: "Grants permission to delete an Outpost", + Privilege: "DeleteOutpost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the Voice channel for an app", - Privilege: "DeleteVoiceChannel", + Description: "Grants permission to delete a site", + Privilege: "DeleteSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "site*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a voice message template or a voice message template version", - Privilege: "DeleteVoiceTemplate", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified capacity task", + Privilege: "GetCapacityTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Amazon Device Messaging (ADM) channel for an app", - Privilege: "GetAdmChannel", + Description: "Grants permission to get a catalog item", + Privilege: "GetCatalogItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the APNs channel for an app", - Privilege: "GetApnsChannel", + Description: "Grants permission to get information about the connection for your Outpost server", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the APNs sandbox channel for an app", - Privilege: "GetApnsSandboxChannel", + Description: "Grants permission to get information about an order", + Privilege: "GetOrder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the APNs VoIP channel for an app", - Privilege: "GetApnsVoipChannel", + Description: "Grants permission to get information about the specified Outpost", + Privilege: "GetOutpost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the APNs VoIP sandbox channel for an app", - Privilege: "GetApnsVoipSandboxChannel", + Description: "Grants permission to get the instance types for the specified Outpost", + Privilege: "GetOutpostInstanceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific app in your Amazon Pinpoint account", - Privilege: "GetApp", + Description: "Grants permission to get the supported instance types for the specified Outpost", + Privilege: "GetOutpostSupportedInstanceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "outpost*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard metric that applies to an application", - Privilege: "GetApplicationDateRangeKpi", + Description: "Grants permission to get a private connectivity configuration", + Privilege: "GetPrivateConnectivityConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application-metrics*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the default settings for an app", - Privilege: "GetApplicationSettings", + AccessLevel: "Read", + Description: "Grants permission to get a site", + Privilege: "GetSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "site*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of apps in your Amazon Pinpoint account", - Privilege: "GetApps", + Description: "Grants permission to get a site address", + Privilege: "GetSiteAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "apps*", + ResourceType: "site*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the Baidu channel for an app", - Privilege: "GetBaiduChannel", + AccessLevel: "List", + Description: "Grants permission to list all running instances for the specified Outpost", + Privilege: "ListAssetInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "outpost*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific campaign", - Privilege: "GetCampaign", + AccessLevel: "List", + Description: "Grants permission to list the assets for your Outpost", + Privilege: "ListAssets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve information about the activities performed by a campaign", - Privilege: "GetCampaignActivities", + Description: "Grants permission to list all running instances that are blocking the capacity task from running for the specified Outpost", + Privilege: "ListBlockingInstancesForCapacityTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "outpost*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard metric that applies to a campaign", - Privilege: "GetCampaignDateRangeKpi", + AccessLevel: "List", + Description: "Grants permission to list the capacity tasks for your AWS account", + Privilege: "ListCapacityTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign-metrics*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific campaign version", - Privilege: "GetCampaignVersion", + AccessLevel: "List", + Description: "Grants permission to list all catalog items", + Privilege: "ListCatalogItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve information about the current and prior versions of a campaign", - Privilege: "GetCampaignVersions", + Description: "Grants permission to list the orders for your AWS account", + Privilege: "ListOrders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve information about all campaigns for an app", - Privilege: "GetCampaigns", + Description: "Grants permission to list the Outposts for your AWS account", + Privilege: "ListOutposts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get all channels information for your app", - Privilege: "GetChannels", + Description: "Grants permission to list the sites for your AWS account", + Privilege: "ListSites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channels*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain information about the email channel in an app", - Privilege: "GetEmailChannel", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific or the active version of an email template", - Privilege: "GetEmailTemplate", + AccessLevel: "Write", + Description: "Grants permission to create a capacity task", + Privilege: "StartCapacityTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "outpost*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific endpoint", - Privilege: "GetEndpoint", + AccessLevel: "Write", + Description: "Grants permission to start a connection for your Outpost server", + Privilege: "StartConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the event stream for an app", - Privilege: "GetEventStream", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-stream*", + ResourceType: "outpost", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "site", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain information about a specific export job", - Privilege: "GetExportJob", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-job*", + ResourceType: "outpost", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all of the export jobs for an app", - Privilege: "GetExportJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "site", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the GCM channel for an app", - Privilege: "GetGcmChannel", + AccessLevel: "Write", + Description: "Grants permission to update an Outpost", + Privilege: "UpdateOutpost", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "outpost*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific import job", - Privilege: "GetImportJob", + AccessLevel: "Write", + Description: "Grants permission to update a site", + Privilege: "UpdateSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-job*", + ResourceType: "site*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all import jobs for an app", - Privilege: "GetImportJobs", + AccessLevel: "Write", + Description: "Grants permission to update the site address", + Privilege: "UpdateSiteAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "site*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrive in-app messages for the given endpoint id", - Privilege: "GetInAppMessages", + AccessLevel: "Write", + Description: "Grants permission to update the physical properties of a rack at a site", + Privilege: "UpdateSiteRackPhysicalProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "site*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific or the active version of an in-app message template", - Privilege: "GetInAppTemplate", + Arn: "arn:${Partition}:outposts:${Region}:${Account}:outpost/${OutpostId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "outpost", + }, + { + Arn: "arn:${Partition}:outposts:${Region}:${Account}:site/${SiteId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "site", + }, + }, + ServiceName: "AWS Outposts", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "panorama", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an AWS Panorama Application Instance", + Privilege: "CreateApplicationInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific journey", - Privilege: "GetJourney", + AccessLevel: "Write", + Description: "Grants permission to create a job for an AWS Panorama Appliance", + Privilege: "CreateJobForDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard engagement metric that applies to a journey", - Privilege: "GetJourneyDateRangeKpi", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Panorama Node", + Privilege: "CreateNodeFromTemplateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey-metrics*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey activity", - Privilege: "GetJourneyExecutionActivityMetrics", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Panorama Package", + Privilege: "CreatePackage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "journey-execution-activity-metrics*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey", - Privilege: "GetJourneyExecutionMetrics", + AccessLevel: "Write", + Description: "Grants permission to create an AWS Panorama Package", + Privilege: "CreatePackageImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey-execution-metrics*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey activity for a single journey run", - Privilege: "GetJourneyRunExecutionActivityMetrics", + AccessLevel: "Write", + Description: "Grants permission to deregister an AWS Panorama Appliance", + Privilege: "DeleteDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "device*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve (queries) pre-aggregated data for a standard execution metric that applies to a journey for a single journey run", - Privilege: "GetJourneyRunExecutionMetrics", + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Panorama Package", + Privilege: "DeletePackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "package*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all journey runs for a journey", - Privilege: "GetJourneyRuns", + AccessLevel: "Write", + Description: "Grants permission to deregister an AWS Panorama package version", + Privilege: "DeregisterPackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "package*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific or the active version of an push notification template", - Privilege: "GetPushTemplate", + Description: "Grants permission to view details about an AWS Panorama application instance", + Privilege: "DescribeApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "applicationInstance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an Amazon Pinpoint configuration for a recommender model", - Privilege: "GetRecommenderConfiguration", + Description: "Grants permission to view details about an AWS Panorama application instance", + Privilege: "DescribeApplicationInstanceDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "applicationInstance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all the recommender model configurations that are associated with an Amazon Pinpoint account", - Privilege: "GetRecommenderConfigurations", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Panorama Appliance", + Privilege: "DescribeDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommenders*", + ResourceType: "device*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to mobiletargeting:GetReports", - Privilege: "GetReports", + Description: "Grants permission to view job details for an AWS Panorama Appliance", + Privilege: "DescribeDeviceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reports*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific segment", - Privilege: "GetSegment", + Description: "Grants permission to view details about an AWS Panorama application node", + Privilege: "DescribeNode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about jobs that export endpoint definitions from segments to Amazon S3", - Privilege: "GetSegmentExportJobs", + AccessLevel: "Read", + Description: "Grants permission to view details about AWS Panorama application node", + Privilege: "DescribeNodeFromTemplateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about jobs that create segments by importing endpoint definitions from", - Privilege: "GetSegmentImportJobs", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Panorama package", + Privilege: "DescribePackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "package*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific segment version", - Privilege: "GetSegmentVersion", + Description: "Grants permission to view details about an AWS Panorama package", + Privilege: "DescribePackageImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about the current and prior versions of a segment", - Privilege: "GetSegmentVersions", + AccessLevel: "Read", + Description: "Grants permission to view details about an AWS Panorama package version", + Privilege: "DescribePackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "package*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about the segments for an app", - Privilege: "GetSegments", + AccessLevel: "Read", + Description: "Grants permission to view details about a software version for the AWS Panorama Appliance", + Privilege: "DescribeSoftware", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain information about the SMS channel in an app", - Privilege: "GetSmsChannel", + Description: "Grants permission to generate a WebSocket endpoint for communication with AWS Panorama", + Privilege: "GetWebSocketURL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific or the active version of an sms message template", - Privilege: "GetSmsTemplate", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of application instance dependencies in AWS Panorama", + Privilege: "ListApplicationInstanceDependencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "applicationInstance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the endpoints that are associated with a user ID", - Privilege: "GetUserEndpoints", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of node instances of application instances in AWS Panorama", + Privilege: "ListApplicationInstanceNodeInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "applicationInstance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain information about the Voice channel in an app", - Privilege: "GetVoiceChannel", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of application instances in AWS Panorama", + Privilege: "ListApplicationInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "device", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific or the active version of a voice message template", - Privilege: "GetVoiceTemplate", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of appliances in AWS Panorama", + Privilege: "ListDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve information about all journeys for an app", - Privilege: "ListJourneys", + Description: "Grants permission to retrieve a list of jobs for an AWS Panorama Appliance", + Privilege: "ListDevicesJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "device", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of Nodes for an AWS Panorama Appliance", + Privilege: "ListNodeFromTemplateJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "campaign", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "journey", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "segment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of nodes in AWS Panorama", + Privilege: "ListNodes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve all versions about a specific template", - Privilege: "ListTemplateVersions", + Description: "Grants permission to retrieve a list of packages in AWS Panorama", + Privilege: "ListPackageImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve metadata about the queried templates", - Privilege: "ListTemplates", + Description: "Grants permission to retrieve a list of packages in AWS Panorama", + Privilege: "ListPackages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "templates*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain metadata for a phone number, such as the number type (mobile, landline, or VoIP), location, and provider", - Privilege: "PhoneNumberValidate", + Description: "Grants permission to retrieve a list of tags for a resource in AWS Panorama", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "phone-number-validate*", + ResourceType: "applicationInstance", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create or update an event stream for an app", - Privilege: "PutEventStream", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "event-stream*", + ResourceType: "device", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create or update events for an app", - Privilege: "PutEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "events*", + ResourceType: "package", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the attributes for an app", - Privilege: "RemoveAttributes", + Description: "Grants permission to register an AWS Panorama Appliance", + Privilege: "ProvisionDevice", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "attribute*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an SMS message or push notification to specific endpoints", - Privilege: "SendMessages", + Description: "Grants permission to register an AWS Panorama package version", + Privilege: "RegisterPackageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "messages*", + ResourceType: "package*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an OTP code to a user of your application", - Privilege: "SendOTPMessage", + Description: "Grants permission to remove an AWS Panorama application instance", + Privilege: "RemoveApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "otp*", + ResourceType: "applicationInstance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an SMS message or push notification to all endpoints that are associated with a specific user ID", - Privilege: "SendUsersMessages", + Description: "Grants permission to signal camera nodes in an application instance to pause or resume", + Privilege: "SignalApplicationInstanceNodeInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "messages*", + ResourceType: "applicationInstance*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", + Description: "Grants permission to add tags to a resource in AWS Panorama", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "campaign", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "journey", + ResourceType: "applicationInstance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment", + ResourceType: "device", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "package", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -190234,37 +234714,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", + Description: "Grants permission to remove tags from a resource in AWS Panorama", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "campaign", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "journey", + ResourceType: "applicationInstance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment", + ResourceType: "device", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "package", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -190274,102 +234743,185 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the Amazon Device Messaging (ADM) channel for an app", - Privilege: "UpdateAdmChannel", + Description: "Grants permission to modify basic settings for an AWS Panorama Appliance", + Privilege: "UpdateDeviceMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "device*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:panorama:${Region}:${Account}:device/${DeviceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "device", + }, + { + Arn: "arn:${Partition}:panorama:${Region}:${Account}:package/${PackageId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "package", + }, + { + Arn: "arn:${Partition}:panorama:${Region}:${Account}:applicationInstance/${ApplicationInstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "applicationInstance", + }, + }, + ServiceName: "AWS Panorama", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "partnercentral:Catalog", + Description: "Filters access by a specific Catalog. Accepted values: [AWS, Sandbox]", + Type: "String", + }, + { + Condition: "partnercentral:RelatedEntityType", + Description: "Filters access by entity types for Opportunity association. Accepted values: [Solutions, AwsProducts, AwsMarketplaceOffers]", + Type: "String", + }, + }, + Prefix: "partnercentral", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update the Apple Push Notification service (APNs) channel for an app", - Privilege: "UpdateApnsChannel", + Description: "Grants permission to accept Engagement Invitations on AWS Partner Central", + Privilege: "AcceptEngagementInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "engagement-invitation*", + }, + { + ConditionKeys: []string{ + "partnercentral:Catalog", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the Apple Push Notification service (APNs) sandbox channel for an app", - Privilege: "UpdateApnsSandboxChannel", + Description: "Grants permission to assign Opportunities on AWS Partner Central", + Privilege: "AssignOpportunity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Opportunity*", + }, + { + ConditionKeys: []string{ + "partnercentral:Catalog", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the Apple Push Notification service (APNs) VoIP channel for an app", - Privilege: "UpdateApnsVoipChannel", + Description: "Grants permission to associate Opportunities on AWS Partner Central with other entities", + Privilege: "AssociateOpportunity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "Opportunity*", + }, + { + ConditionKeys: []string{ + "partnercentral:Catalog", + "partnercentral:RelatedEntityType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the Apple Push Notification service (APNs) VoIP sandbox channel for an app", - Privilege: "UpdateApnsVoipSandboxChannel", + Description: "Grants permission to creating engagements in AWS Partner Central", + Privilege: "CreateEngagement", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the default settings for an app", - Privilege: "UpdateApplicationSettings", + Description: "Grants permission to creating engagement invitations in AWS Partner Central", + Privilege: "CreateEngagementInvitation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the Baidu channel for an app", - Privilege: "UpdateBaiduChannel", + Description: "Grants permission to create new Opportunities on AWS Partner Central", + Privilege: "CreateOpportunity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a specific campaign", - Privilege: "UpdateCampaign", + Description: "Grants permission to creating resource snapshots in AWS Partner Central", + Privilege: "CreateResourceSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "ResourceSnapshot*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190378,30 +234930,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the email channel for an app", - Privilege: "UpdateEmailChannel", + Description: "Grants permission to creating resource snapshot jobs in AWS Partner Central", + Privilege: "CreateResourceSnapshotJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a specific email template under the same version or generate a new version", - Privilege: "UpdateEmailTemplate", + Description: "Grants permission to deleting resource snapshot jobs on AWS Partner Central", + Privilege: "DeleteResourceSnapshotJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "resource-snapshot-job*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190410,54 +234967,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint or update the information for an endpoint", - Privilege: "UpdateEndpoint", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create or update endpoints as a batch operation", - Privilege: "UpdateEndpointsBatch", + Description: "Grants permission to disassociate Opportunities on AWS Partner Central from other entities", + Privilege: "DisassociateOpportunity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "Opportunity*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the Firebase Cloud Messaging (FCM) or Google Cloud Messaging (GCM) API key that allows to send push notifications to your Android app", - Privilege: "UpdateGcmChannel", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + "partnercentral:RelatedEntityType", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific in-app message template under the same version or generate a new version", - Privilege: "UpdateInAppTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve AWS Opportunity Summaries for Opportunities on AWS Partner Central", + Privilege: "GetAwsOpportunitySummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "Opportunity*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190465,19 +235005,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific journey", - Privilege: "UpdateJourney", + AccessLevel: "Read", + Description: "Grants permission to retrieval of engagement details in AWS Partner Central", + Privilege: "GetEngagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "Engagement*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190485,19 +235024,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific journey state", - Privilege: "UpdateJourneyState", + AccessLevel: "Read", + Description: "Grants permission to retrieve details of Engagement Invitations on AWS Partner Central", + Privilege: "GetEngagementInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "journey*", + ResourceType: "engagement-invitation*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190505,19 +235043,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific push notification template under the same version or generate a new version", - Privilege: "UpdatePushTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve details of Opportunities on AWS Partner Central", + Privilege: "GetOpportunity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "Opportunity*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190525,31 +235062,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an Amazon Pinpoint configuration for a recommender model", - Privilege: "UpdateRecommenderConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieving resource snapshot details in AWS Partner Central", + Privilege: "GetResourceSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "ResourceSnapshot*", + }, + { + ConditionKeys: []string{ + "partnercentral:Catalog", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific segment", - Privilege: "UpdateSegment", + AccessLevel: "Read", + Description: "Grants permission to retrieving resource snapshot job details in AWS Partner Central", + Privilege: "GetResourceSnapshotJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "segment*", + ResourceType: "resource-snapshot-job*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190557,31 +235102,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the SMS channel for an app", - Privilege: "UpdateSmsChannel", + AccessLevel: "Read", + Description: "Grants permission to retrieving system settings settings in AWS Partner Central", + Privilege: "GetSellingSystemSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific sms message template under the same version or generate a new version", - Privilege: "UpdateSmsTemplate", + AccessLevel: "List", + Description: "Grants permission to listing engagements by accepting invitation tasks in AWS Partner Central", + Privilege: "ListEngagementByAcceptingInvitationTasks", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "template*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190589,43 +235130,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the active version parameter of a specific template", - Privilege: "UpdateTemplateActiveVersion", + AccessLevel: "List", + Description: "Grants permission to listing engagements from opportunity tasks in AWS Partner Central", + Privilege: "ListEngagementFromOpportunityTasks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the Voice channel for an app", - Privilege: "UpdateVoiceChannel", + AccessLevel: "List", + Description: "Grants permission to list Engagement Invitations on AWS Partner Central", + Privilege: "ListEngagementInvitations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "channel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a specific voice message template under the same version or generate a new version", - Privilege: "UpdateVoiceTemplate", + AccessLevel: "Read", + Description: "Grants permission to listing engagement members in AWS Partner Central", + Privilege: "ListEngagementMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "Engagement*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -190633,452 +235177,280 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to check the validity of One-Time Passwords (OTPs)", - Privilege: "VerifyOTPMessage", + AccessLevel: "Read", + Description: "Grants permission to listing engagement resource associations in AWS Partner Central", + Privilege: "ListEngagementResourceAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "verify-otp*", + ResourceType: "ResourceSnapshot*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "app", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/*", - ConditionKeys: []string{}, - Resource: "apps", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/campaigns/${CampaignId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "campaign", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "journey", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys", - ConditionKeys: []string{}, - Resource: "journeys", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/segments/${SegmentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "segment", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:templates/${TemplateName}/${TemplateType}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "template", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:templates", - ConditionKeys: []string{}, - Resource: "templates", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:recommenders/${RecommenderId}", - ConditionKeys: []string{}, - Resource: "recommender", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:recommenders/*", - ConditionKeys: []string{}, - Resource: "recommenders", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:phone/number/validate", - ConditionKeys: []string{}, - Resource: "phone-number-validate", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/channels", - ConditionKeys: []string{}, - Resource: "channels", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/channels/${ChannelType}", - ConditionKeys: []string{}, - Resource: "channel", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/eventstream", - ConditionKeys: []string{}, - Resource: "event-stream", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/events", - ConditionKeys: []string{}, - Resource: "events", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/messages", - ConditionKeys: []string{}, - Resource: "messages", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/verify-otp", - ConditionKeys: []string{}, - Resource: "verify-otp", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/otp", - ConditionKeys: []string{}, - Resource: "otp", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/attributes/${AttributeType}", - ConditionKeys: []string{}, - Resource: "attribute", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/users/${UserId}", - ConditionKeys: []string{}, - Resource: "user", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/endpoints/${EndpointId}", - ConditionKeys: []string{}, - Resource: "endpoint", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/jobs/import/${JobId}", - ConditionKeys: []string{}, - Resource: "import-job", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/jobs/export/${JobId}", - ConditionKeys: []string{}, - Resource: "export-job", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/kpis/daterange/${KpiName}", - ConditionKeys: []string{}, - Resource: "application-metrics", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/campaigns/${CampaignId}/kpis/daterange/${KpiName}", - ConditionKeys: []string{}, - Resource: "campaign-metrics", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}/kpis/daterange/${KpiName}", - ConditionKeys: []string{}, - Resource: "journey-metrics", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}/execution-metrics", - ConditionKeys: []string{}, - Resource: "journey-execution-metrics", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:apps/${AppId}/journeys/${JourneyId}/activities/${JourneyActivityId}/execution-metrics", - ConditionKeys: []string{}, - Resource: "journey-execution-activity-metrics", - }, - { - Arn: "arn:${Partition}:mobiletargeting:${Region}:${Account}:reports", - ConditionKeys: []string{}, - Resource: "reports", - }, - }, - ServiceName: "Amazon Pinpoint", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "monitron", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a user with the project as an administrator", - Privilege: "AssociateProjectAdminUser", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:AssociateProfile", - "sso:GetManagedApplicationInstance", - "sso:GetProfile", - "sso:ListDirectoryAssociations", - "sso:ListProfileAssociations", - "sso:ListProfiles", + ConditionKeys: []string{ + "partnercentral:Catalog", }, - ResourceType: "project*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a project", - Privilege: "CreateProject", + AccessLevel: "List", + Description: "Grants permission to listing engagements in AWS Partner Central", + Privilege: "ListEngagements", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "partnercentral:Catalog", }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "kms:CreateGrant", - "sso:CreateManagedApplicationInstance", - "sso:DeleteManagedApplicationInstance", - "sso:DescribeRegisteredRegions", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate a user with the project", - Privilege: "CreateProjectUserAssociation", + AccessLevel: "List", + Description: "Grants permission to list Opportunities on AWS Partner Central", + Privilege: "ListOpportunities", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:AssociateProfile", - "sso:GetManagedApplicationInstance", - "sso:GetProfile", - "sso:ListDirectoryAssociations", - "sso:ListProfileAssociations", - "sso:ListProfiles", + ConditionKeys: []string{ + "partnercentral:Catalog", }, - ResourceType: "project*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate an access role with the user", - Privilege: "CreateUserAccessRoleAssociation", + AccessLevel: "List", + Description: "Grants permission to listing resource snapshot jobs in AWS Partner Central", + Privilege: "ListResourceSnapshotJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:GetManagedApplicationInstance", - "sso:GetProfile", - "sso:ListDirectoryAssociations", - "sso:ListProfileAssociations", - "sso:ListProfiles", + ConditionKeys: []string{ + "partnercentral:Catalog", }, - ResourceType: "project*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", + AccessLevel: "Read", + Description: "Grants permission to listing resource snapshots in AWS Partner Central", + Privilege: "ListResourceSnapshots", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteManagedApplicationInstance", - }, - ResourceType: "project*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceSnapshot*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate a user from the project", - Privilege: "DeleteProjectUserAssociation", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:DisassociateProfile", - "sso:GetManagedApplicationInstance", - "sso:GetProfile", - "sso:ListDirectoryAssociations", - "sso:ListProfiles", + ConditionKeys: []string{ + "partnercentral:Catalog", }, - ResourceType: "project*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate an access role from the user", - Privilege: "DeleteUserAccessRoleAssociation", + AccessLevel: "List", + Description: "Grants permission to list Solutions on AWS Partner Central", + Privilege: "ListSolutions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to disassociate an administrator from the project", - Privilege: "DisassociateProjectAdminUser", + AccessLevel: "Read", + Description: "Grants permission to add lists tags to a resource. Supported resource: ResourceSnapshotJob", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:DisassociateProfile", - "sso:GetManagedApplicationInstance", - "sso:GetProfile", - "sso:ListDirectoryAssociations", - "sso:ListProfiles", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", }, - ResourceType: "project*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a project", - Privilege: "GetProject", + AccessLevel: "Write", + Description: "Grants permission to put system settings settings in AWS Partner Central", + Privilege: "PutSellingSystemSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an administrator who is associated with the project", - Privilege: "GetProjectAdminUser", + AccessLevel: "Write", + Description: "Grants permission to reject Engagement Invitations on AWS Partner Central", + Privilege: "RejectEngagementInvitation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:GetManagedApplicationInstance", - "sso:ListProfileAssociations", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "engagement-invitation*", + }, + { + ConditionKeys: []string{ + "partnercentral:Catalog", }, - ResourceType: "project*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to list all administrators associated with the project", - Privilege: "ListProjectAdminUsers", + AccessLevel: "Write", + Description: "Grants permission to initiate tasks that start Engagements on AWS Partner Central by accepting an Engagement Invitation", + Privilege: "StartEngagementByAcceptingInvitationTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", + }, DependentActions: []string{ - "sso-directory:DescribeUsers", - "sso:GetManagedApplicationInstance", + "partnercentral:AcceptEngagementInvitation", + "partnercentral:CreateOpportunity", + "partnercentral:CreateResourceSnapshotJob", + "partnercentral:GetEngagementInvitation", + "partnercentral:StartResourceSnapshotJob", + "partnercentral:SubmitOpportunity", }, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all users associated with the project", - Privilege: "ListProjectUserAssociations", + AccessLevel: "Write", + Description: "Grants permission to initiate tasks that start Engagements from Opportunities on AWS Partner Central", + Privilege: "StartEngagementFromOpportunityTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", + }, DependentActions: []string{ - "sso:GetManagedApplicationInstance", - "sso:GetProfile", - "sso:ListDirectoryAssociations", - "sso:ListProfileAssociations", - "sso:ListProfiles", + "partnercentral:CreateEngagement", + "partnercentral:CreateEngagementInvitation", + "partnercentral:CreateResourceSnapshotJob", + "partnercentral:GetOpportunity", + "partnercentral:StartResourceSnapshotJob", + "partnercentral:SubmitOpportunity", }, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all projects", - Privilege: "ListProjects", + AccessLevel: "Write", + Description: "Grants permission to starting resource snapshot jobs in AWS Partner Central", + Privilege: "StartResourceSnapshotJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "resource-snapshot-job*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to stopping resource snapshot jobs in AWS Partner Central", + Privilege: "StopResourceSnapshotJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "resource-snapshot-job*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all access roles associated with the user", - Privilege: "ListUserAccessRoleAssociations", + AccessLevel: "Write", + Description: "Grants permission to submit Opportunities on AWS Partner Central", + Privilege: "SubmitOpportunity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "Opportunity*", + }, + { + ConditionKeys: []string{ + "partnercentral:Catalog", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", + Description: "Grants permission to add new tags to a resource. Supported resource: ResourceSnapshotJob", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "partnercentral:Catalog", + }, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource. Supported resource: ResourceSnapshotJob", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", @@ -191086,139 +235458,233 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update Opportunities on AWS Partner Central", + Privilege: "UpdateOpportunity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "Opportunity*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "partnercentral:Catalog", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:partnercentral:${Region}::catalog/${Catalog}/engagement/${Identifier}", + ConditionKeys: []string{}, + Resource: "Engagement", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}::catalog/${Catalog}/engagement-by-accepting-invitation-task/${TaskId}", + ConditionKeys: []string{}, + Resource: "engagement-by-accepting-invitation-task", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}::catalog/${Catalog}/engagement-from-opportunity-task/${TaskId}", + ConditionKeys: []string{}, + Resource: "engagement-from-opportunity-task", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}::catalog/${Catalog}/engagement-invitation/${Identifier}", + ConditionKeys: []string{}, + Resource: "engagement-invitation", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}:${Account}:catalog/${Catalog}/opportunity/${Identifier}", + ConditionKeys: []string{}, + Resource: "Opportunity", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}:${Account}:catalog/${Catalog}/resource-snapshot-job/${Identifier}", + ConditionKeys: []string{}, + Resource: "resource-snapshot-job", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}:${Account}:catalog/${Catalog}/engagement/${EngagementIdentifier}/resource/${ResourceType}/${ResourceIdentifier}/template/${TemplateIdentifier}/resource-snapshot/${SnapshotRevision}", + ConditionKeys: []string{}, + Resource: "ResourceSnapshot", + }, + { + Arn: "arn:${Partition}:partnercentral:${Region}:${Account}:catalog/${Catalog}/solution/${Identifier}", + ConditionKeys: []string{}, + Resource: "Solution", + }, + }, + ServiceName: "AWS Partner Central Selling", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "partnercentral-account-management", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update a project", - Privilege: "UpdateProject", + Description: "Grants permission to associate Partner account to AWS account", + Privilege: "AssociatePartnerAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:monitron:${Region}:${Account}:project/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate Partner user to IAM role", + Privilege: "AssociatePartnerUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate Partner user to IAM role", + Privilege: "DisassociatePartnerUser", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "project", }, }, - ServiceName: "Amazon Monitron", + Resources: []ParliamentResource{}, + ServiceName: "AWS Partner central account management", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", + Description: "Filters access by both the key and value of the tag in the request for the specified operation", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Description: "Filters access by tags assigned to a key for the specified operation", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", + Description: "Filters access by the tag keys in the request for the specified operation", + Type: "ArrayOfString", + }, + { + Condition: "payment-cryptography:CertificateAuthorityPublicKeyIdentifier", + Description: "Filters access by the CertificateAuthorityPublicKeyIdentifier specified in the request or the ImportKey, and ExportKey operations", + Type: "String", + }, + { + Condition: "payment-cryptography:ImportKeyMaterial", + Description: "Filters access by the type of key material being imported [RootCertificatePublicKey, TrustedCertificatePublicKey, Tr34KeyBlock, Tr31KeyBlock] for the ImportKey operation", + Type: "String", + }, + { + Condition: "payment-cryptography:KeyAlgorithm", + Description: "Filters access by KeyAlgorithm specified in the request for the CreateKey operation", + Type: "String", + }, + { + Condition: "payment-cryptography:KeyClass", + Description: "Filters access by KeyClass specified in the request for the CreateKey operation", + Type: "String", + }, + { + Condition: "payment-cryptography:KeyUsage", + Description: "Filters access by KeyClass specified in the request or associated with a key for the CreateKey operation", + Type: "String", + }, + { + Condition: "payment-cryptography:RequestAlias", + Description: "Filters access by aliases in the request for the specified operation", + Type: "String", + }, + { + Condition: "payment-cryptography:ResourceAliases", + Description: "Filters access by aliases associated with a key for the specified operation", Type: "ArrayOfString", }, + { + Condition: "payment-cryptography:WrappingKeyIdentifier", + Description: "Filters access by the WrappingKeyIdentifier specified in the request for the ImportKey, and ExportKey operations", + Type: "String", + }, }, - Prefix: "mq", + Prefix: "payment-cryptography", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a broker", - Privilege: "CreateBroker", + Description: "Grants permission to create a user-friendly name for a Key", + Privilege: "CreateAlias", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "ec2:CreateSecurityGroup", - "ec2:CreateVpcEndpoint", - "ec2:DescribeInternetGateways", - "ec2:DescribeNetworkInterfacePermissions", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyNetworkInterfaceAttribute", - "iam:CreateServiceLinkedRole", - "route53:AssociateVPCWithHostedZone", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and engine version)", - Privilege: "CreateConfiguration", + Description: "Grants permission to create a unique customer managed key in the caller's AWS account and region", + Privilege: "CreateKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "payment-cryptography:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a replica broker", - Privilege: "CreateReplicaBroker", + Description: "Grants permission to decrypt ciphertext data to plaintext using symmetric, asymmetric or DUKPT data encryption key", + Privilege: "DecryptData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "alias*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to create tags", - Privilege: "CreateTags", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers", + ResourceType: "key*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified alias", + Privilege: "DeleteAlias", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurations", + ResourceType: "alias*", }, { ConditionKeys: []string{ @@ -191232,169 +235698,207 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an ActiveMQ user", - Privilege: "CreateUser", + Description: "Grants permission to schedule the deletion of a Key", + Privilege: "DeleteKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a broker", - Privilege: "DeleteBroker", + Description: "Grants permission to encrypt plaintext data to ciphertext using symmetric, asymmetric or DUKPT data encryption key", + Privilege: "EncryptData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - "ec2:DeleteNetworkInterfacePermission", - "ec2:DeleteVpcEndpoints", - "ec2:DetachNetworkInterface", - }, - ResourceType: "brokers*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete tags", - Privilege: "DeleteTags", + AccessLevel: "Write", + Description: "Grants permission to export a key from the service", + Privilege: "ExportKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers", + ResourceType: "key*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate card-related data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2) or Card Security Codes (CSC) that check the validity of a magnetic stripe card", + Privilege: "GenerateCardValidationData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurations", + ResourceType: "alias*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an ActiveMQ user", - Privilege: "DeleteUser", + Description: "Grants permission to generate a MAC (Message Authentication Code) cryptogram", + Privilege: "GenerateMac", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the specified broker", - Privilege: "DescribeBroker", + AccessLevel: "Write", + Description: "Grants permission to generate a MAC (Message Authentication Code) cryptogram", + Privilege: "GenerateMacEmvPinChange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about broker engines", - Privilege: "DescribeBrokerEngineTypes", + AccessLevel: "Write", + Description: "Grants permission to generate pin-related data such as PIN, PIN Verification Value (PVV), PIN Block and PIN Offset during new card issuance or card re-issuance", + Privilege: "GeneratePinData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the broker instance options", - Privilege: "DescribeBrokerInstanceOptions", + Description: "Grants permission to return the keyArn associated with an aliasName", + Privilege: "GetAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the specified configuration", - Privilege: "DescribeConfiguration", + Description: "Grants permission to return the detailed information about the specified key", + Privilege: "GetKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurations*", + ResourceType: "key*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the specified configuration revision for the specified configuration", - Privilege: "DescribeConfigurationRevision", + Description: "Grants permission to get the export token and the signing key certificate to initiate a TR-34 key export", + Privilege: "GetParametersForExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurations*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about an ActiveMQ user", - Privilege: "DescribeUser", + Description: "Grants permission to get the import token and the wrapping key certificate to initiate a TR-34 key import", + Privilege: "GetParametersForImport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of all brokers", - Privilege: "ListBrokers", + AccessLevel: "Read", + Description: "Grants permission to return the public key from a key of class PUBLIC_KEY", + Privilege: "GetPublicKeyCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "key*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of all existing revisions for the specified configuration", - Privilege: "ListConfigurationRevisions", + AccessLevel: "Write", + Description: "Grants permission to imports keys and public key certificates", + Privilege: "ImportKey", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configurations*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "payment-cryptography:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of all configurations", - Privilege: "ListConfigurations", + Description: "Grants permission to return a list of aliases created for all keys in the caller's AWS account and Region", + Privilege: "ListAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -191405,722 +235909,674 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of tags", - Privilege: "ListTags", + Description: "Grants permission to return a list of keys created in the caller's AWS account and Region", + Privilege: "ListKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configurations", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of all ActiveMQ users", - Privilege: "ListUsers", + AccessLevel: "Read", + Description: "Grants permission to return a list of tags created in the caller's AWS account and Region", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "key", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to promote a broker", - Privilege: "Promote", + Description: "Grants permission to re-encrypt ciphertext using DUKPT, Symmetric and Asymmetric Data Encryption Keys", + Privilege: "ReEncryptData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "alias*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reboot a broker", - Privilege: "RebootBroker", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a pending configuration change to a broker", - Privilege: "UpdateBroker", + Description: "Grants permission to cancel a scheduled key deletion if at any point during the waiting period a Key needs to be revived", + Privilege: "RestoreKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the specified configuration", - Privilege: "UpdateConfiguration", + Description: "Grants permission to enable a disabled Key", + Privilege: "StartKeyUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configurations*", + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the information for an ActiveMQ user", - Privilege: "UpdateUser", + Description: "Grants permission to disable an enabled Key", + Privilege: "StopKeyUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "brokers*", + ResourceType: "key*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:mq:${Region}:${Account}:broker:${BrokerName}:${BrokerId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "brokers", - }, - { - Arn: "arn:${Partition}:mq:${Region}:${Account}:configuration:${ConfigurationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "configurations", - }, - }, - ServiceName: "Amazon MQ", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "neptune-db:QueryLanguage", - Description: "Filters access by graph model", - Type: "String", - }, - }, - Prefix: "neptune-db", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to cancel a loader job", - Privilege: "CancelLoaderJob", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrites one or more tags for the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel an ML data processing job", - Privilege: "CancelMLDataProcessingJob", + Description: "Grants permission to translate encrypted PIN block from and to ISO 9564 formats 0,1,3,4", + Privilege: "TranslatePinData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "alias*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an ML model training job", - Privilege: "CancelMLModelTrainingJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "key*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel an ML model transform job", - Privilege: "CancelMLModelTransformJob", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tag or tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a query", - Privilege: "CancelQuery", + Description: "Grants permission to change the key to which an alias is assigned, or unassign it from its current key", + Privilege: "UpdateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an ML endpoint", - Privilege: "CreateMLEndpoint", + Description: "Grants permission to verify Authorization Request Cryptogram (ARQC) for a EMV chip payment card authorization", + Privilege: "VerifyAuthRequestCryptogram", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run delete data via query APIs on database", - Privilege: "DeleteDataViaQuery", + Description: "Grants permission to verify card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2) and Card Security Codes (CSC)", + Privilege: "VerifyCardValidationData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "alias*", }, { - ConditionKeys: []string{ - "neptune-db:QueryLanguage", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an ML endpoint", - Privilege: "DeleteMLEndpoint", + Description: "Grants permission to verify MAC (Message Authentication Code) of input data against a provided MAC", + Privilege: "VerifyMac", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete all the statistics in the database", - Privilege: "DeleteStatistics", + Description: "Grants permission to verify pin-related data such as PIN and PIN Offset using algorithms including VISA PVV and IBM3624", + Privilege: "VerifyPinData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "alias*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "key*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:payment-cryptography:${Region}:${Account}:key/${KeyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "payment-cryptography:ResourceAliases", + }, + Resource: "key", + }, { - AccessLevel: "Read", - Description: "Grants permission to check the status of the Neptune engine", - Privilege: "GetEngineStatus", + Arn: "arn:${Partition}:payment-cryptography:${Region}:${Account}:alias/${Alias}", + ConditionKeys: []string{ + "payment-cryptography:ResourceAliases", + }, + Resource: "alias", + }, + }, + ServiceName: "AWS Payment Cryptography", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "payments", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept financing application terms provided by a lender", + Privilege: "AcceptFinancingApplicationTerms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the graph summary from the database", - Privilege: "GetGraphSummary", + AccessLevel: "Write", + Description: "Grants permission to create a financing application", + Privilege: "CreateFinancingApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the status of a loader job", - Privilege: "GetLoaderJobStatus", + AccessLevel: "Write", + Description: "Grants permission to create a payment instrument", + Privilege: "CreatePaymentInstrument", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the status of an ML data processing job", - Privilege: "GetMLDataProcessingJobStatus", + AccessLevel: "Write", + Description: "Grants permission to delete a payment instrument", + Privilege: "DeletePaymentInstrument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to check the status of an ML endpoint", - Privilege: "GetMLEndpointStatus", + Description: "Grants permission to get information about a financing application", + Privilege: "GetFinancingApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to check the status of an ML model training job", - Privilege: "GetMLModelTrainingJobStatus", + Description: "Grants permission to get information about a financing line", + Privilege: "GetFinancingLine", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to check the status of an ML model transform job", - Privilege: "GetMLModelTransformJobStatus", + Description: "Grants permission to get information about a financing line withdrawal", + Privilege: "GetFinancingLineWithdrawal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to check the status of all active queries", - Privilege: "GetQueryStatus", + Description: "Grants permission to get information about a financing option", + Privilege: "GetFinancingOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{ - "neptune-db:QueryLanguage", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the status of statistics of the database", - Privilege: "GetStatisticsStatus", + AccessLevel: "List", + Description: "Grants permission to get information about a payment instrument", + Privilege: "GetPaymentInstrument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "payment-instrument", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to fetch stream records from Neptune", - Privilege: "GetStreamRecords", + Description: "Grants permission to get payment status of invoices", + Privilege: "GetPaymentStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{ - "neptune-db:QueryLanguage", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the loader jobs", - Privilege: "ListLoaderJobs", + Description: "Grants permission to list financing application metadata", + Privilege: "ListFinancingApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the ML data processing jobs", - Privilege: "ListMLDataProcessingJobs", + Description: "Grants permission to list financing line withdrawals metadata", + Privilege: "ListFinancingLineWithdrawals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the ML endpoints", - Privilege: "ListMLEndpoints", + Description: "Grants permission to list financing line metadata", + Privilege: "ListFinancingLines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the ML model training jobs", - Privilege: "ListMLModelTrainingJobs", + Description: "Grants permission to list payment instrument metadata", + Privilege: "ListPaymentInstruments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the ML model transform jobs", - Privilege: "ListMLModelTransformJobs", + Description: "Grants permission to get payment preferences (preferred payment currency, preferred payment method, etc.)", + Privilege: "ListPaymentPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to manage statistics in the database", - Privilege: "ManageStatistics", + AccessLevel: "List", + Description: "Grants permission to list information about payment options", + Privilege: "ListPaymentProgramOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to run read data via query APIs on database", - Privilege: "ReadDataViaQuery", + AccessLevel: "List", + Description: "Grants permission to list information about payment program eligibility and enrolment status", + Privilege: "ListPaymentProgramStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{ - "neptune-db:QueryLanguage", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to get the token needed for reset and resets the Neptune database", - Privilege: "ResetDatabase", + AccessLevel: "List", + Description: "Grants permission to list tags on a payment resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "payment-instrument", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a loader job", - Privilege: "StartLoaderJob", + Description: "Grants permission to make a payment, authenticate a payment, verify a payment method, and generate a funding request document for Advance Pay", + Privilege: "MakePayment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an ML data processing job", - Privilege: "StartMLDataProcessingJob", + AccessLevel: "Tagging", + Description: "Grants permission to tag a payment resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "payment-instrument", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an ML model training job", - Privilege: "StartMLModelTrainingJob", + AccessLevel: "Tagging", + Description: "Grants permission to untag a payment resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "payment-instrument", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an ML model transform job", - Privilege: "StartMLModelTransformJob", + Description: "Grants permission to update a financing application", + Privilege: "UpdateFinancingApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run write data via query APIs on database", - Privilege: "WriteDataViaQuery", + Description: "Grants permission to update a payment instrument", + Privilege: "UpdatePaymentInstrument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", - }, - { - ConditionKeys: []string{ - "neptune-db:QueryLanguage", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to all data-access actions in engine versions prior to 1.2.0.0", - Privilege: "connect", + Description: "Grants permission to update payment preferences (preferred payment currency, preferred payment method, etc.)", + Privilege: "UpdatePaymentPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "database*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:neptune-db:${Region}:${Account}:${ClusterResourceId}/*", - ConditionKeys: []string{}, - Resource: "database", + Arn: "arn:${Partition}:payments::${Account}:payment-instrument:${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "payment-instrument", }, }, - ServiceName: "Amazon Neptune", + ServiceName: "AWS Payments", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", + Description: "Filters access by on the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by on the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", + Description: "Filters access by on the tag keys that are passed in the request", Type: "ArrayOfString", }, - { - Condition: "neptune-graph:PublicConnectivity", - Description: "Filters access by the value of the public connectivity parameter provided in the request or its default value, if unspecified. All access to graphs is IAM authenticated", - Type: "Bool", - }, }, - Prefix: "neptune-graph", + Prefix: "pca-connector-ad", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel an ongoing import task", - Privilege: "CancelImportTask", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "import-task*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel a query", - Privilege: "CancelQuery", + Description: "Grants permission to create a Connector in your account", + Privilege: "CreateConnector", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "graph*", - }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new graph", - Privilege: "CreateGraph", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - }, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "neptune-graph:PublicConnectivity", + "acm-pca:DescribeCertificateAuthority", + "acm-pca:GetCertificate", + "acm-pca:GetCertificateAuthorityCertificate", + "acm-pca:IssueCertificate", + "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new snapshot from an existing graph", - Privilege: "CreateGraphSnapshot", + Description: "Grants permission to create a DirectoryRegistration in your account", + Privilege: "CreateDirectoryRegistration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "graph-snapshot", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ds:AuthorizeApplication", + "ds:DescribeDirectories", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new graph while importing data into the new graph", - Privilege: "CreateGraphUsingImportTask", + Description: "Grants permission to create a ServicePrincipalName for a DirectoryRegistration", + Privilege: "CreateServicePrincipalName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - }, - ResourceType: "import-task*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "graph", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "neptune-graph:PublicConnectivity", + "ds:UpdateAuthorizedApplication", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new private graph endpoint to access the graph from within a vpc", - Privilege: "CreatePrivateGraphEndpoint", + Description: "Grants permission to create a Template for a Connector", + Privilege: "CreateTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateVpcEndpoint", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - "route53:AssociateVPCWithHostedZone", - }, - ResourceType: "graph*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connector*", }, { ConditionKeys: []string{ @@ -192135,303 +236591,240 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete data via query APIs on the graph", - Privilege: "DeleteDataViaQuery", + Description: "Grants permission to create a TemplateGroupAccessControlEntry for a Template", + Privilege: "CreateTemplateGroupAccessControlEntry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a graph", - Privilege: "DeleteGraph", + Description: "Grants permission to delete a Connector in your account", + Privilege: "DeleteConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Connector*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a snapshot", - Privilege: "DeleteGraphSnapshot", + Description: "Grants permission to delete a DirectoryRegistration in your account", + Privilege: "DeleteDirectoryRegistration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "graph-snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:UnauthorizeApplication", + "ds:UpdateAuthorizedApplication", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a private graph endpoint of a graph", - Privilege: "DeletePrivateGraphEndpoint", + Description: "Grants permission to delete a ServicePrincipalName for a DirectoryRegistration", + Privilege: "DeleteServicePrincipalName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeAvailabilityZones", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcAttribute", - "ec2:DescribeVpcEndpoints", - "ec2:DescribeVpcs", - "ec2:ModifyVpcEndpoint", - "route53:DisassociateVPCFromHostedZone", - }, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + DependentActions: []string{ + "ds:UpdateAuthorizedApplication", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the engine status of the graph", - Privilege: "GetEngineStatus", + AccessLevel: "Write", + Description: "Grants permission to delete a Template for a Connector", + Privilege: "DeleteTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Template*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a TemplateGroupAccessControlEntry for a Template", + Privilege: "DeleteTemplateGroupAccessControlEntry", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Template*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a graph", - Privilege: "GetGraph", + Description: "Grants permission to get a Connector in your account", + Privilege: "GetConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Connector*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a snapshot", - Privilege: "GetGraphSnapshot", + Description: "Grants permission to get a DirectoryRegistration in your account", + Privilege: "GetDirectoryRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph-snapshot*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the summary for the data in the graph", - Privilege: "GetGraphSummary", + Description: "Grants permission to get a ServicePrincipalName for a DirectoryRegistration", + Privilege: "GetServicePrincipalName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about an import task", - Privilege: "GetImportTask", + Description: "Grants permission to get a Template for a Connector", + Privilege: "GetTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-task*", + ResourceType: "Template*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details about a private graph endpoint of a graph", - Privilege: "GetPrivateGraphEndpoint", + Description: "Grants permission to get a TemplateGroupAccessControlEntry for a Template", + Privilege: "GetTemplateGroupAccessControlEntry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Template*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Connectors in your account", + Privilege: "ListConnectors", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the status of a given query", - Privilege: "GetQueryStatus", + AccessLevel: "List", + Description: "Grants permission to list the DirectoryRegistrations in your account", + Privilege: "ListDirectoryRegistrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the statistics for the data in the graph", - Privilege: "GetStatisticsStatus", + AccessLevel: "List", + Description: "Grants permission to list the ServicePrincipalNames for a DirectoryRegistration", + Privilege: "ListServicePrincipalNames", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the snapshots in your account", - Privilege: "ListGraphSnapshots", + Description: "Grants permission to list the tags for a pca-connector-ad resource in your account", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph-snapshot*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the graphs in your account", - Privilege: "ListGraphs", + AccessLevel: "List", + Description: "Grants permission to list the TemplateGroupAccessControlEntries for a Template", + Privilege: "ListTemplateGroupAccessControlEntries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Template*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the import tasks in your account", - Privilege: "ListImportTasks", + AccessLevel: "List", + Description: "Grants permission to list the Templates for a Connector", + Privilege: "ListTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-task*", + ResourceType: "Connector*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the private graph endpoints for a given graph", - Privilege: "ListPrivateGraphEndpoints", + AccessLevel: "Tagging", + Description: "Grants permission to tag a pca-connector-ad resource in your account", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Connector", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "DirectoryRegistration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to check the status of all active queries", - Privilege: "ListQueries", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Template", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -192439,23 +236832,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to lists tag for a Neptune Analytics resource", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to untag a pca-connector-ad resource in your account", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph", + ResourceType: "Connector", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph-snapshot", + ResourceType: "DirectoryRegistration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Template", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -192463,37 +236861,84 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to read data via query APIs on the graph", - Privilege: "ReadDataViaQuery", + AccessLevel: "Write", + Description: "Grants permission to update a Template for a Connector", + Privilege: "UpdateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset a graph which deletes all data within the graph", - Privilege: "ResetGraph", + Description: "Grants permission to update a TemplateGroupAccessControlEntry for a Template", + Privilege: "UpdateTemplateGroupAccessControlEntry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Template*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:connector/${ConnectorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Connector", + }, + { + Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:directory-registration/${DirectoryId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "DirectoryRegistration", + }, + { + Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:connector/${ConnectorId}/template/${TemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Template", + }, + }, + ServiceName: "AWS Private CA Connector for Active Directory", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "pca-connector-scep", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a Challenge for a Connector", + Privilege: "CreateChallenge", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -192502,112 +236947,139 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new graph from an existing snapshot", - Privilege: "RestoreGraphFromSnapshot", + Description: "Grants permission to create a SCEP Connector in your account", + Privilege: "CreateConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{ - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", + "acm-pca:DescribeCertificateAuthority", + "acm-pca:GetCertificate", + "acm-pca:GetCertificateAuthorityCertificate", + "acm-pca:IssueCertificate", }, - ResourceType: "graph-snapshot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a Challenge for a Connector", + Privilege: "DeleteChallenge", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "neptune-graph:PublicConnectivity", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Challenge*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import data into an existing graph", - Privilege: "StartImportTask", + Description: "Grants permission to delete a SCEP Connector in your account", + Privilege: "DeleteConnector", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "graph*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connector*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a Neptune Analytics resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get a Challenge for a Connector", + Privilege: "GetChallengeMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph", + ResourceType: "Challenge*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a Challenge password for a Connector", + Privilege: "GetChallengePassword", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph-snapshot", + ResourceType: "Challenge*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a SCEP Connector in your account", + Privilege: "GetConnector", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Connector*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a Neptune Analytics resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list Challenges for a Connector", + Privilege: "ListChallengeMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the SCEP Connectors in your account", + Privilege: "ListConnectors", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph-snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for a pca-connector-scep resource in your account", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a graph", - Privilege: "UpdateGraph", + AccessLevel: "Tagging", + Description: "Grants permission to tag a pca-connector-scep resource in your account", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Challenge", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connector", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "neptune-graph:PublicConnectivity", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -192615,18 +237087,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to write data via query APIs on the graph", - Privilege: "WriteDataViaQuery", + AccessLevel: "Tagging", + Description: "Grants permission to untag a pca-connector-scep resource in your account", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "graph*", + ResourceType: "Challenge", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Connector", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -192636,95 +237113,111 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:graph/${ResourceId}", + Arn: "arn:${Partition}:pca-connector-scep:${Region}:${Account}:connector/${ConnectorId}/challenge/${ChallengeId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "graph", + Resource: "Challenge", }, { - Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:graph-snapshot/${ResourceId}", + Arn: "arn:${Partition}:pca-connector-scep:${Region}:${Account}:connector/${ConnectorId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "graph-snapshot", - }, - { - Arn: "arn:${Partition}:neptune-graph:${Region}:${Account}:import-task/${ResourceId}", - ConditionKeys: []string{}, - Resource: "import-task", + Resource: "Connector", }, }, - ServiceName: "Amazon Neptune Analytics", + ServiceName: "AWS Private CA Connector for SCEP", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by on the allowed set of values for each of the tags", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag value associated with the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, }, - Prefix: "network-firewall", + Prefix: "pcs", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an association between a firewall policy and a firewall", - Privilege: "AssociateFirewallPolicy", + Description: "Grants permission to configure vended log delivery for Skybridge cluster logs", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate VPC subnets to a firewall", - Privilege: "AssociateSubnets", + Description: "Grants permission to create clusters", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Firewall*", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:GetSecurityGroupsForVpc", + "iam:CreateServiceLinkedRole", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Network Firewall firewall", - Privilege: "CreateFirewall", + Description: "Grants permission to create compute node groups", + Privilege: "CreateComputeNodeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:CreateServiceLinkedRole", + "ec2:CreateFleet", + "ec2:CreateLaunchTemplate", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateTags", + "ec2:DescribeImages", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstances", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:RunInstances", + "iam:GetInstanceProfile", + "iam:PassRole", }, - ResourceType: "Firewall*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -192735,31 +237228,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Network Firewall firewall policy", - Privilege: "CreateFirewallPolicy", + Description: "Grants permission to create queues", + Privilege: "CreateQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration", + ResourceType: "cluster*", }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -192770,1049 +237249,1127 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Network Firewall rule group", - Privilege: "CreateRuleGroup", + Description: "Grants permission to delete clusters", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + "secretsmanager:DeleteSecret", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Network Firewall tls inspection configuration", - Privilege: "CreateTLSInspectionConfiguration", + Description: "Grants permission to delete compute node groups", + Privilege: "DeleteComputeNodeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:CreateServiceLinkedRole", + "ec2:DeleteLaunchTemplate", + "ec2:TerminateInstances", }, - ResourceType: "TLSInspectionConfiguration*", + ResourceType: "cluster*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "computenodegroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a firewall", - Privilege: "DeleteFirewall", + Description: "Grants permission to delete queues", + Privilege: "DeleteQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a firewall policy", - Privilege: "DeleteFirewallPolicy", + AccessLevel: "Read", + Description: "Grants permission to get cluster properties", + Privilege: "GetCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a resource policy for a firewall policy or rule group", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to get compute node group properties", + Privilege: "GetComputeNodeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "computenodegroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get queue properties", + Privilege: "GetQueue", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a rule group", - Privilege: "DeleteRuleGroup", + AccessLevel: "List", + Description: "Grants permission to list clusters", + Privilege: "ListClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list compute node groups", + Privilege: "ListComputeNodeGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a tls inspection configuration", - Privilege: "DeleteTLSInspectionConfiguration", + AccessLevel: "List", + Description: "Grants permission to list queues", + Privilege: "ListQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the data objects that define a firewall", - Privilege: "DescribeFirewall", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the data objects that define a firewall policy", - Privilege: "DescribeFirewallPolicy", + AccessLevel: "Write", + Description: "Grants permission to register a compute instance in a compute node group", + Privilege: "RegisterComputeNodeGroupInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "secretsmanager:GetSecretValue", + }, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "cluster", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "computenodegroup", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "queue", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the logging configuration of a firewall", - Privilege: "DescribeLoggingConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a resource policy for a firewall policy or rule group", - Privilege: "DescribeResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "FirewallPolicy", + ResourceType: "computenodegroup", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "queue", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the data objects that define a rule group", - Privilege: "DescribeRuleGroup", + AccessLevel: "Write", + Description: "Grants permission to update compute node group properties", + Privilege: "UpdateComputeNodeGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateFleet", + "ec2:CreateLaunchTemplate", + "ec2:CreateLaunchTemplateVersion", + "ec2:CreateTags", + "ec2:DescribeImages", + "ec2:DescribeInstanceStatus", + "ec2:DescribeInstanceTypes", + "ec2:DescribeInstances", + "ec2:DescribeLaunchTemplateVersions", + "ec2:DescribeLaunchTemplates", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "ec2:RunInstances", + "iam:GetInstanceProfile", + "iam:PassRole", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "computenodegroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the high-level information about a rule group", - Privilege: "DescribeRuleGroupMetadata", + AccessLevel: "Write", + Description: "Grants permission to update queue properties", + Privilege: "UpdateQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "queue*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve the data objects that define a tls inspection configuration", - Privilege: "DescribeTLSInspectionConfiguration", + Arn: "arn:${Partition}:pcs:${Region}:${Account}:cluster/${ClusterIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:pcs:${Region}:${Account}:cluster/${ClusterIdentifier}/computenodegroup/${ComputeNodeGroupIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "computenodegroup", + }, + { + Arn: "arn:${Partition}:pcs:${Region}:${Account}:cluster/${ClusterIdentifier}/queue/${QueueIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "queue", + }, + }, + ServiceName: "AWS Parallel Computing Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "personalize", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a batch inference job", + Privilege: "CreateBatchInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration*", + ResourceType: "batchInferenceJob*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate VPC subnets from a firewall", - Privilege: "DisassociateSubnets", + Description: "Grants permission to create a batch segment job", + Privilege: "CreateBatchSegmentJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "batchSegmentJob*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the metadata for firewall policies", - Privilege: "ListFirewallPolicies", + AccessLevel: "Write", + Description: "Grants permission to create a campaign", + Privilege: "CreateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the metadata for firewalls", - Privilege: "ListFirewalls", + AccessLevel: "Write", + Description: "Grants permission to create a data deletion job", + Privilege: "CreateDataDeletionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "dataDeletionJob*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the metadata for rule groups", - Privilege: "ListRuleGroups", + AccessLevel: "Write", + Description: "Grants permission to create a data insights job", + Privilege: "CreateDataInsightsJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataInsightsJob*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the metadata for tls inspection configurations", - Privilege: "ListTLSInspectionConfigurations", + AccessLevel: "Write", + Description: "Grants permission to create a dataset", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a dataset export job", + Privilege: "CreateDatasetExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "datasetExportJob*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataset group", + Privilege: "CreateDatasetGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "datasetGroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataset import job", + Privilege: "CreateDatasetImportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "datasetImportJob*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an event tracker", + Privilege: "CreateEventTracker", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "eventTracker*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a filter", + Privilege: "CreateFilter", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration", + ResourceType: "filter*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put a resource policy for a firewall policy or rule group", - Privilege: "PutResourcePolicy", + Description: "Grants permission to create a metric attribution", + Privilege: "CreateMetricAttribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy", + ResourceType: "metricAttribution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a recommender", + Privilege: "CreateRecommender", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "recommender*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a schema", + Privilege: "CreateSchema", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to attach tags to a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a solution", + Privilege: "CreateSolution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall", + ResourceType: "solution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a solution version", + Privilege: "CreateSolutionVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy", + ResourceType: "solution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a campaign", + Privilege: "DeleteCampaign", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "campaign*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataset", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a dataset group", + Privilege: "DeleteDatasetGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration", + ResourceType: "datasetGroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an event tracker", + Privilege: "DeleteEventTracker", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventTracker*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a filter", + Privilege: "DeleteFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall", + ResourceType: "filter*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a metric attribution", + Privilege: "DeleteMetricAttribution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy", + ResourceType: "metricAttribution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a recommender", + Privilege: "DeleteRecommender", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "recommender*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a schema", + Privilege: "DeleteSchema", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a solution including all versions of the solution", + Privilege: "DeleteSolution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration", + ResourceType: "solution*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an algorithm", + Privilege: "DescribeAlgorithm", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "algorithm*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or remove delete protection for a firewall", - Privilege: "UpdateFirewallDeleteProtection", + AccessLevel: "Read", + Description: "Grants permission to describe a batch inference job", + Privilege: "DescribeBatchInferenceJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "batchInferenceJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the description for a firewall", - Privilege: "UpdateFirewallDescription", + AccessLevel: "Read", + Description: "Grants permission to describe a batch segment job", + Privilege: "DescribeBatchSegmentJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "batchSegmentJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the encryption configuration of a firewall", - Privilege: "UpdateFirewallEncryptionConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe a campaign", + Privilege: "DescribeCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "campaign*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a firewall policy", - Privilege: "UpdateFirewallPolicy", + AccessLevel: "Read", + Description: "Grants permission to describe a data deletion job", + Privilege: "DescribeDataDeletionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "FirewallPolicy*", + ResourceType: "dataDeletionJob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a data insights job", + Privilege: "DescribeDataInsightsJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "dataInsightsJob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a dataset", + Privilege: "DescribeDataset", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a dataset export job", + Privilege: "DescribeDatasetExportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration", + ResourceType: "datasetExportJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or remove firewall policy change protection for a firewall", - Privilege: "UpdateFirewallPolicyChangeProtection", + AccessLevel: "Read", + Description: "Grants permission to describe a dataset group", + Privilege: "DescribeDatasetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "datasetGroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the logging configuration of a firewall", - Privilege: "UpdateLoggingConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe a dataset import job", + Privilege: "DescribeDatasetImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "datasetImportJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a rule group", - Privilege: "UpdateRuleGroup", + AccessLevel: "Read", + Description: "Grants permission to describe an event tracker", + Privilege: "DescribeEventTracker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatefulRuleGroup", + ResourceType: "eventTracker*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a feature transformation", + Privilege: "DescribeFeatureTransformation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "StatelessRuleGroup", + ResourceType: "featureTransformation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or remove subnet change protection for a firewall", - Privilege: "UpdateSubnetChangeProtection", + AccessLevel: "Read", + Description: "Grants permission to describe a filter", + Privilege: "DescribeFilter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Firewall*", + ResourceType: "filter*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a tls inspection configuration", - Privilege: "UpdateTLSInspectionConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe a metric attribution", + Privilege: "DescribeMetricAttribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TLSInspectionConfiguration*", + ResourceType: "metricAttribution*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:firewall/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Firewall", - }, { - Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:firewall-policy/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to describe a recipe", + Privilege: "DescribeRecipe", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recipe*", + }, }, - Resource: "FirewallPolicy", }, { - Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:stateful-rulegroup/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to describe a recommender", + Privilege: "DescribeRecommender", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recommender*", + }, }, - Resource: "StatefulRuleGroup", }, { - Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:stateless-rulegroup/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to describe a schema", + Privilege: "DescribeSchema", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "schema*", + }, }, - Resource: "StatelessRuleGroup", }, { - Arn: "arn:${Partition}:network-firewall:${Region}:${Account}:tls-configuration/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to describe a solution", + Privilege: "DescribeSolution", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "solution*", + }, }, - Resource: "TLSInspectionConfiguration", - }, - }, - ServiceName: "AWS Network Firewall", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "networkmanager:cgwArn", - Description: "Filters access by which customer gateways can be associated or disassociated", - Type: "ARN", - }, - { - Condition: "networkmanager:subnetArns", - Description: "Filters access by which VPC subnets can be added or removed from a VPC attachment", - Type: "ArrayOfARN", - }, - { - Condition: "networkmanager:tgwArn", - Description: "Filters access by which transit gateways can be registered, deregistered, or peered", - Type: "ARN", - }, - { - Condition: "networkmanager:tgwConnectPeerArn", - Description: "Filters access by which transit gateway connect peers can be associated or disassociated", - Type: "ARN", - }, - { - Condition: "networkmanager:tgwRtbArn", - Description: "Filters access by which Transit Gateway Route Table can be used to create an attachment", - Type: "ARN", - }, - { - Condition: "networkmanager:vpcArn", - Description: "Filters access by which VPC can be used to a create/update attachment", - Type: "ARN", - }, - { - Condition: "networkmanager:vpnConnectionArn", - Description: "Filters access by which Site-to-Site VPN can be used to a create/update attachment", - Type: "ARN", }, - }, - Prefix: "networkmanager", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept creation of an attachment between a source and destination in a core network", - Privilege: "AcceptAttachment", + AccessLevel: "Read", + Description: "Grants permission to describe a version of a solution", + Privilege: "DescribeSolutionVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "attachment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "solution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a Connect Peer", - Privilege: "AssociateConnectPeer", + AccessLevel: "Read", + Description: "Grants permission to get a list of recommended actions", + Privilege: "GetActionRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "campaign*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get data insights from a data insights job", + Privilege: "GetDataInsights", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "dataInsightsJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a customer gateway to a device", - Privilege: "AssociateCustomerGateway", + AccessLevel: "Read", + Description: "Grants permission to get a re-ranked list of recommendations", + Privilege: "GetPersonalizedRanking", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "campaign*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a list of recommendations from a campaign", + Privilege: "GetRecommendations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "campaign*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get metrics for a solution version", + Privilege: "GetSolutionMetrics", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link", + ResourceType: "solution*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list batch inference jobs", + Privilege: "ListBatchInferenceJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "networkmanager:cgwArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a link to a device", - Privilege: "AssociateLink", + AccessLevel: "List", + Description: "Grants permission to list batch segment jobs", + Privilege: "ListBatchSegmentJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list campaigns", + Privilege: "ListCampaigns", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list data deletion jobs", + Privilege: "ListDataDeletionJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a transit gateway connect peer to a device", - Privilege: "AssociateTransitGatewayConnectPeer", + AccessLevel: "List", + Description: "Grants permission to list data insights jobs", + Privilege: "ListDataInsightsJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list dataset export jobs", + Privilege: "ListDatasetExportJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list dataset groups", + Privilege: "ListDatasetGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link", - }, - { - ConditionKeys: []string{ - "networkmanager:tgwConnectPeerArn", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Connect attachment", - Privilege: "CreateConnectAttachment", + AccessLevel: "List", + Description: "Grants permission to list dataset import jobs", + Privilege: "ListDatasetImportJobs", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "attachment*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Connect Peer connection", - Privilege: "CreateConnectPeer", + AccessLevel: "List", + Description: "Grants permission to list datasets", + Privilege: "ListDatasets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "attachment*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new connection", - Privilege: "CreateConnection", + AccessLevel: "List", + Description: "Grants permission to list event trackers", + Privilege: "ListEventTrackers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "networkmanager:TagResource", - }, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new core network", - Privilege: "CreateCoreNetwork", + AccessLevel: "List", + Description: "Grants permission to list filters", + Privilege: "ListFilters", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new device", - Privilege: "CreateDevice", + AccessLevel: "List", + Description: "Grants permission to list metric attribution metrics", + Privilege: "ListMetricAttributionMetrics", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "networkmanager:TagResource", - }, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new global network", - Privilege: "CreateGlobalNetwork", + AccessLevel: "List", + Description: "Grants permission to list metric attributions", + Privilege: "ListMetricAttributions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "networkmanager:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new link", - Privilege: "CreateLink", + AccessLevel: "List", + Description: "Grants permission to list recipes", + Privilege: "ListRecipes", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "networkmanager:TagResource", - }, - ResourceType: "global-network*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new site", - Privilege: "CreateSite", + AccessLevel: "List", + Description: "Grants permission to list recommenders", + Privilege: "ListRecommenders", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "networkmanager:TagResource", - }, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a site-to-site VPN attachment", - Privilege: "CreateSiteToSiteVpnAttachment", + AccessLevel: "List", + Description: "Grants permission to list schemas", + Privilege: "ListSchemas", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "core-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "networkmanager:vpnConnectionArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Transit Gateway peering", - Privilege: "CreateTransitGatewayPeering", + AccessLevel: "List", + Description: "Grants permission to list versions of a solution", + Privilege: "ListSolutionVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "core-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "networkmanager:tgwArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a TGW RTB attachment", - Privilege: "CreateTransitGatewayRouteTableAttachment", + AccessLevel: "List", + Description: "Grants permission to list solutions", + Privilege: "ListSolutions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "peering*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "networkmanager:tgwRtbArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a VPC attachment", - Privilege: "CreateVpcAttachment", + AccessLevel: "List", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - "networkmanager:TagResource", - }, - ResourceType: "core-network*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "networkmanager:vpcArn", - "networkmanager:subnetArns", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -193820,220 +238377,318 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an attachment", - Privilege: "DeleteAttachment", + Description: "Grants permission to put real time action interaction data", + Privilege: "PutActionInteractions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "attachment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Connect Peer", - Privilege: "DeleteConnectPeer", + Description: "Grants permission to ingest Actions data", + Privilege: "PutActions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "connect-peer*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a connection", - Privilege: "DeleteConnection", + Description: "Grants permission to put real time event data", + Privilege: "PutEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a core network", - Privilege: "DeleteCoreNetwork", + Description: "Grants permission to ingest Items data", + Privilege: "PutItems", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "core-network*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the core network policy version", - Privilege: "DeleteCoreNetworkPolicyVersion", + Description: "Grants permission to ingest Users data", + Privilege: "PutUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a device", - Privilege: "DeleteDevice", + Description: "Grants permission to start a recommender", + Privilege: "StartRecommender", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "recommender*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a global network", - Privilege: "DeleteGlobalNetwork", + Description: "Grants permission to stop a recommender", + Privilege: "StopRecommender", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "recommender*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a link", - Privilege: "DeleteLink", + Description: "Grants permission to stop a solution version creation", + Privilege: "StopSolutionVersionCreation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "solution*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a peering", - Privilege: "DeletePeering", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "peering*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to update a campaign", + Privilege: "UpdateCampaign", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "campaign*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a site", - Privilege: "DeleteSite", + Description: "Grants permission to update a dataset", + Privilege: "UpdateDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a transit gateway from a global network", - Privilege: "DeregisterTransitGateway", + Description: "Grants permission to update a metric attribution", + Privilege: "UpdateMetricAttribution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{ - "networkmanager:tgwArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "metricAttribution*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe global networks", - Privilege: "DescribeGlobalNetworks", + AccessLevel: "Write", + Description: "Grants permission to update a recommender", + Privilege: "UpdateRecommender", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network", + ResourceType: "recommender*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a Connect Peer", - Privilege: "DisassociateConnectPeer", + Description: "Grants permission to update a solution", + Privilege: "UpdateSolution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "solution*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:schema/${ResourceId}", + ConditionKeys: []string{}, + Resource: "schema", + }, + { + Arn: "arn:${Partition}:personalize:::feature-transformation/${ResourceId}", + ConditionKeys: []string{}, + Resource: "featureTransformation", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset/${ResourceId}", + ConditionKeys: []string{}, + Resource: "dataset", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset-group/${ResourceId}", + ConditionKeys: []string{}, + Resource: "datasetGroup", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset-import-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "datasetImportJob", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:data-insights-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "dataInsightsJob", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset-export-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "datasetExportJob", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:data-deletion-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "dataDeletionJob", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:solution/${ResourceId}", + ConditionKeys: []string{}, + Resource: "solution", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:campaign/${ResourceId}", + ConditionKeys: []string{}, + Resource: "campaign", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:event-tracker/${ResourceId}", + ConditionKeys: []string{}, + Resource: "eventTracker", + }, + { + Arn: "arn:${Partition}:personalize:::recipe/${ResourceId}", + ConditionKeys: []string{}, + Resource: "recipe", + }, + { + Arn: "arn:${Partition}:personalize:::algorithm/${ResourceId}", + ConditionKeys: []string{}, + Resource: "algorithm", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:batch-inference-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "batchInferenceJob", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:filter/${ResourceId}", + ConditionKeys: []string{}, + Resource: "filter", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:recommender/${ResourceId}", + ConditionKeys: []string{}, + Resource: "recommender", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:batch-segment-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "batchSegmentJob", + }, + { + Arn: "arn:${Partition}:personalize:${Region}:${Account}:metric-attribution/${ResourceId}", + ConditionKeys: []string{}, + Resource: "metricAttribution", + }, + }, + ServiceName: "Amazon Personalize", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "pi:Dimensions", + Description: "Filters access by the requested dimensions", + Type: "ArrayOfString", + }, + }, + Prefix: "pi", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to disassociate a customer gateway from a device", - Privilege: "DisassociateCustomerGateway", + Description: "Grants permission to call CreatePerformanceAnalysisReport API to create a Performance Analysis Report for a specified DB instance", + Privilege: "CreatePerformanceAnalysisReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "perf-reports-resource*", }, { ConditionKeys: []string{ - "networkmanager:cgwArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -194042,465 +238697,557 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a link from a device", - Privilege: "DisassociateLink", + Description: "Grants permission to call DeletePerformanceAnalysisReport API to delete a Performance Analysis Report for a specified DB instance", + Privilege: "DeletePerformanceAnalysisReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "link*", + ResourceType: "perf-reports-resource*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a transit gateway connect peer from a device", - Privilege: "DisassociateTransitGatewayConnectPeer", + AccessLevel: "Read", + Description: "Grants permission to call DescribeDimensionKeys API to retrieve the top N dimension keys for a metric for a specific time period", + Privilege: "DescribeDimensionKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "metric-resource*", }, { ConditionKeys: []string{ - "networkmanager:tgwConnectPeerArn", + "pi:Dimensions", }, DependentActions: []string{}, ResourceType: "", }, }, }, - { - AccessLevel: "Write", - Description: "Grants permission to apply changes to the core network", - Privilege: "ExecuteCoreNetworkChangeSet", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "core-network*", - }, - }, - }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a Connect attachment", - Privilege: "GetConnectAttachment", + Description: "Grants permission to call GetDimensionKeyDetails API to retrieve the attributes of the specified dimension group", + Privilege: "GetDimensionKeyDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "metric-resource*", + }, + { + ConditionKeys: []string{ + "pi:Dimensions", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a Connect Peer", - Privilege: "GetConnectPeer", + Description: "Grants permission to call GetPerformanceAnalysisReport API to retrieve a Performance Analysis Report for a specified DB instance", + Privilege: "GetPerformanceAnalysisReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connect-peer*", + ResourceType: "perf-reports-resource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe Connect Peer associations", - Privilege: "GetConnectPeerAssociations", + Description: "Grants permission to call GetResourceMetadata API to retrieve the metadata for different features", + Privilege: "GetResourceMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "metric-resource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe connections", - Privilege: "GetConnections", + AccessLevel: "Read", + Description: "Grants permission to call GetResourceMetrics API to retrieve PI metrics for a set of data sources, over a time period", + Privilege: "GetResourceMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "metric-resource*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "pi:Dimensions", + }, DependentActions: []string{}, - ResourceType: "connection", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a core network", - Privilege: "GetCoreNetwork", + Description: "Grants permission to call ListAvailableResourceDimensions API to retrieve the dimensions that can be queried for each specified metric type on a specified DB instance", + Privilege: "ListAvailableResourceDimensions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "metric-resource*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of core network change events", - Privilege: "GetCoreNetworkChangeEvents", + Description: "Grants permission to call ListAvailableResourceMetrics API to retrieve metrics of the specified types that can be queried for a specified DB instance", + Privilege: "ListAvailableResourceMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "metric-resource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of core network change sets", - Privilege: "GetCoreNetworkChangeSet", + AccessLevel: "List", + Description: "Grants permission to call ListPerformanceAnalysisReports API to list Performance Analysis Reports for a specified DB instance", + Privilege: "ListPerformanceAnalysisReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "perf-reports-resource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve core network policy", - Privilege: "GetCoreNetworkPolicy", + AccessLevel: "List", + Description: "Grants permission to call ListTagsForResource API to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "perf-reports-resource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe customer gateway associations", - Privilege: "GetCustomerGatewayAssociations", + AccessLevel: "Tagging", + Description: "Grants permission to call TagResource API to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "perf-reports-resource*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe devices", - Privilege: "GetDevices", + AccessLevel: "Tagging", + Description: "Grants permission to call UntagResource API to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "perf-reports-resource*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to describe link associations", - Privilege: "GetLinkAssociations", + Arn: "arn:${Partition}:pi:${Region}:${Account}:metrics/${ServiceType}/${Identifier}", + ConditionKeys: []string{}, + Resource: "metric-resource", + }, + { + Arn: "arn:${Partition}:pi:${Region}:${Account}:perf-reports/${ServiceType}/${Identifier}/${ReportId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "perf-reports-resource", + }, + }, + ServiceName: "AWS Performance Insights", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "pipes", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a pipe", + Privilege: "CreatePipe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "global-network*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "pipe*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "link", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe links", - Privilege: "GetLinks", + AccessLevel: "Write", + Description: "Grants permission to delete a pipe", + Privilege: "DeletePipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "pipe*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "link", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the number of resources for a global network grouped by type", - Privilege: "GetNetworkResourceCounts", + Description: "Grants permission to describe a pipe", + Privilege: "DescribePipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "pipe*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve related resources for a resource within the global network", - Privilege: "GetNetworkResourceRelationships", + AccessLevel: "List", + Description: "Grants permission to list all pipes in your account", + Privilege: "ListPipes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a global network resource", - Privilege: "GetNetworkResources", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "pipe*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve routes for a route table within the global network", - Privilege: "GetNetworkRoutes", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve network telemetry objects for the global network", - Privilege: "GetNetworkTelemetry", + AccessLevel: "Write", + Description: "Grants permission to start a pipe", + Privilege: "StartPipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "pipe*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a resource policy", - Privilege: "GetResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a route analysis configuration and result", - Privilege: "GetRouteAnalysis", + AccessLevel: "Write", + Description: "Grants permission to stop a pipe", + Privilege: "StopPipe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "pipe*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a site-to-site VPN attachment", - Privilege: "GetSiteToSiteVpnAttachment", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "pipe*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe global networks", - Privilege: "GetSites", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "pipe*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe transit gateway connect peer associations", - Privilege: "GetTransitGatewayConnectPeerAssociations", + AccessLevel: "Write", + Description: "Grants permission to update a pipe", + Privilege: "UpdatePipe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "pipe*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve a Transit Gateway peering", - Privilege: "GetTransitGatewayPeering", + Arn: "arn:${Partition}:pipes:${Region}:${Account}:pipe/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "pipe", + }, + }, + ServiceName: "Amazon EventBridge Pipes", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "polly", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified pronunciation lexicon stored in an AWS Region", + Privilege: "DeleteLexicon", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "peering*", + ResourceType: "lexicon*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe transit gateway registrations", - Privilege: "GetTransitGatewayRegistrations", + Description: "Grants permission to describe the list of voices that are available for use when requesting speech synthesis", + Privilege: "DescribeVoices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a TGW RTB attachment", - Privilege: "GetTransitGatewayRouteTableAttachment", + Description: "Grants permission to retrieve the content of the specified pronunciation lexicon stored in an AWS Region", + Privilege: "GetLexicon", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "lexicon*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a VPC attachment", - Privilege: "GetVpcAttachment", + Description: "Grants permission to get information about specific speech synthesis task", + Privilege: "GetSpeechSynthesisTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe attachments", - Privilege: "ListAttachments", + Description: "Grants permission to list the pronunciation lexicons stored in an AWS Region", + Privilege: "ListLexicons", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe Connect Peers", - Privilege: "ListConnectPeers", + Description: "Grants permission to list requested speech synthesis tasks", + Privilege: "ListSpeechSynthesisTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connect-peer*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list core network policy versions", - Privilege: "ListCoreNetworkPolicyVersions", + AccessLevel: "Write", + Description: "Grants permission to store a pronunciation lexicon in an AWS Region", + Privilege: "PutLexicon", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "lexicon*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list core networks", - Privilege: "ListCoreNetworks", + AccessLevel: "Write", + Description: "Grants permission to synthesize long inputs to the provided S3 location", + Privilege: "StartSpeechSynthesisTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:PutObject", + }, + ResourceType: "lexicon", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list organization service access status", - Privilege: "ListOrganizationServiceAccessStatus", + AccessLevel: "Read", + Description: "Grants permission to synthesize speech", + Privilege: "SynthesizeSpeech", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "lexicon", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to describe peerings", - Privilege: "ListPeerings", + Arn: "arn:${Partition}:polly:${Region}:${Account}:lexicon/${LexiconName}", + ConditionKeys: []string{}, + Resource: "lexicon", + }, + }, + ServiceName: "Amazon Polly", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "pricing", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to retrieve service details for all (paginated) services (if serviceCode is not set) or service detail for a particular service (if given serviceCode)", + Privilege: "DescribeServices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -194511,57 +239258,126 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a Network Manager resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve all (paginated) possible values for a given attribute", + Privilege: "GetAttributeValues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the price list file URL for the given parameters", + Privilege: "GetPriceListFileUrl", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connect-peer", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all matching products with given search criteria", + Privilege: "GetProducts", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all (paginated) eligible price lists for the given parameters", + Privilege: "ListPriceLists", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Price List", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by checking the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by checking tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "private-networks", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to acknowledge that an order has been received", + Privilege: "AcknowledgeOrderReceipt", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "order*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to activate a device identifier", + Privilege: "ActivateDeviceIdentifier", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network", + ResourceType: "device-identifier*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "link", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to activate a network site", + Privilege: "ActivateNetworkSite", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "peering", + ResourceType: "network-site*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "order*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -194570,43 +239386,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a core network policy", - Privilege: "PutCoreNetworkPolicy", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "core-network*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create or update a resource policy", - Privilege: "PutResourcePolicy", + Description: "Grants permission to configure an access point", + Privilege: "ConfigureAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "network-resource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a transit gateway to a global network", - Privilege: "RegisterTransitGateway", + Description: "Grants permission to create a network", + Privilege: "CreateNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "network*", }, { ConditionKeys: []string{ - "networkmanager:tgwArn", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -194615,108 +239418,148 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reject attachment request", - Privilege: "RejectAttachment", + Description: "Grants permission to create a network site", + Privilege: "CreateNetworkSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment*", + ResourceType: "network*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore the core network policy to a previous version", - Privilege: "RestoreCoreNetworkPolicyVersion", + Description: "Grants permission to deactivate a device identifier", + Privilege: "DeactivateDeviceIdentifier", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "core-network*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device-identifier*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start organization service access update", - Privilege: "StartOrganizationServiceAccessUpdate", + Description: "Grants permission to delete a network", + Privilege: "DeleteNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a route analysis and stores analysis configuration", - Privilege: "StartRouteAnalysis", + Description: "Grants permission to delete a network site", + Privilege: "DeleteNetworkSite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "network-site*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a Network Manager resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get a device identifier", + Privilege: "GetDeviceIdentifier", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment", + ResourceType: "device-identifier*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "connect-peer", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a network", + Privilege: "GetNetwork", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection", + ResourceType: "network*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "core-network", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a network resource", + Privilege: "GetNetworkResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "network-resource*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "global-network", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a network site", + Privilege: "GetNetworkSite", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link", + ResourceType: "network-site*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "peering", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a network order", + Privilege: "GetOrder", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "order*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -194725,57 +239568,102 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a Network Manager resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list device identifiers", + Privilege: "ListDeviceIdentifiers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attachment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connect-peer", + ResourceType: "network*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list network resources", + Privilege: "ListNetworkResources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection", + ResourceType: "network*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list network sites", + Privilege: "ListNetworkSites", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network", + ResourceType: "network*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list networks", + Privilege: "ListNetworks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list network orders", + Privilege: "ListOrders", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network", + ResourceType: "network*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to check the health of the service", + Privilege: "Ping", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "peering", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an update on the specified network resource", + Privilege: "StartNetworkResourceUpdate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "network-resource*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -194784,925 +239672,722 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a connection", - Privilege: "UpdateConnection", + AccessLevel: "Tagging", + Description: "Grants permission to adds tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "device-identifier", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "network", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a core network", - Privilege: "UpdateCoreNetwork", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "core-network*", + ResourceType: "network-resource", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a device", - Privilege: "UpdateDevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "network-site", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "order", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a global network", - Privilege: "UpdateGlobalNetwork", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a link", - Privilege: "UpdateLink", + AccessLevel: "Tagging", + Description: "Grants permission to removes tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "device-identifier", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "link*", + ResourceType: "network", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add or update metadata key/value pairs on network resource", - Privilege: "UpdateNetworkResourceMetadata", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "network-resource", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a site", - Privilege: "UpdateSite", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-network*", + ResourceType: "network-site", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "order", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a VPC attachment", - Privilege: "UpdateVpcAttachment", + Description: "Grants permission to update a network site", + Privilege: "UpdateNetworkSite", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeRegions", - }, - ResourceType: "attachment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network-site*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a plan at a network site", + Privilege: "UpdateNetworkSitePlan", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "networkmanager:subnetArns", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "network-site*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:networkmanager::${Account}:global-network/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "global-network", - }, - { - Arn: "arn:${Partition}:networkmanager::${Account}:site/${GlobalNetworkId}/${ResourceId}", + Arn: "arn:${Partition}:private-networks:${Region}:${Account}:network/${NetworkName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "site", + Resource: "network", }, { - Arn: "arn:${Partition}:networkmanager::${Account}:link/${GlobalNetworkId}/${ResourceId}", + Arn: "arn:${Partition}:private-networks:${Region}:${Account}:network-site/${NetworkName}/${NetworkSiteName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "link", + Resource: "network-site", }, { - Arn: "arn:${Partition}:networkmanager::${Account}:device/${GlobalNetworkId}/${ResourceId}", + Arn: "arn:${Partition}:private-networks:${Region}:${Account}:network-resource/${NetworkName}/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "device", + Resource: "network-resource", }, { - Arn: "arn:${Partition}:networkmanager::${Account}:connection/${GlobalNetworkId}/${ResourceId}", + Arn: "arn:${Partition}:private-networks:${Region}:${Account}:order/${NetworkName}/${OrderId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "connection", + Resource: "order", }, { - Arn: "arn:${Partition}:networkmanager::${Account}:core-network/${ResourceId}", + Arn: "arn:${Partition}:private-networks:${Region}:${Account}:device-identifier/${NetworkName}/${DeviceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "core-network", + Resource: "device-identifier", }, + }, + ServiceName: "AWS service providing managed private networks", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:networkmanager::${Account}:attachment/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "attachment", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a key that is present in the request the user makes to the customer profile service", + Type: "String", }, { - Arn: "arn:${Partition}:networkmanager::${Account}:connect-peer/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "connect-peer", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", }, { - Arn: "arn:${Partition}:networkmanager::${Account}:peering/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "peering", + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names present in the request the user makes to the customer profile service", + Type: "ArrayOfString", }, }, - ServiceName: "AWS Network Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "networkmanager-chat", + Prefix: "profile", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel a response to a message", - Privilege: "CancelMessageResponse", + Description: "Grants permission to add a profile key", + Privilege: "AddProfileKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a conversation", - Privilege: "CreateConversation", + AccessLevel: "Read", + Description: "Grants permission to retrieve a calculated attribute for the specific profiles in the domain", + Privilege: "BatchGetCalculatedAttributeForProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "calculated-attributes*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a conversation", - Privilege: "DeleteConversation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list conversation messages", - Privilege: "ListConversationMessages", + AccessLevel: "Read", + Description: "Grants permission to get profiles in the domain", + Privilege: "BatchGetProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list conversations", - Privilege: "ListConversations", + AccessLevel: "Write", + Description: "Grants permission to create a calculated attribute definition in the domain", + Privilege: "CreateCalculatedAttributeDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "calculated-attributes*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to notify whether there is activity in a conversation", - Privilege: "NotifyConversationIsActive", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send a conversation message", - Privilege: "SendConversationMessage", + Description: "Grants permission to create a Domain", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "domains*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Network Manager Chat", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "networkmonitor", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a monitor", - Privilege: "CreateMonitor", + Description: "Grants permission to put an event stream in a domain", + Privilege: "CreateEventStream", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "monitor*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PutRolePolicy", + "kinesis:DescribeStreamSummary", + }, + ResourceType: "domains*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a probe", - Privilege: "CreateProbe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "event-streams*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a monitor", - Privilege: "DeleteMonitor", + Description: "Grants permission to create an event trigger in the domain", + Privilege: "CreateEventTrigger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "domains*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a probe", - Privilege: "DeleteProbe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "probe*", + ResourceType: "event-triggers*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a monitor", - Privilege: "GetMonitor", + AccessLevel: "Write", + Description: "Grants permission to create an integration workflow in a domain", + Privilege: "CreateIntegrationWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "domains*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a probe", - Privilege: "GetProbe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "probe*", + ResourceType: "integrations*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all monitors in an account and their statuses", - Privilege: "ListMonitors", + AccessLevel: "Write", + Description: "Grants permission to create a profile in the domain", + Privilege: "CreateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a segment definition in the domain", + Privilege: "CreateSegmentDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor", + ResourceType: "domains*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "probe", + ResourceType: "segment-definitions*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a segment estimate in the domain", + Privilege: "CreateSegmentEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "probe", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a segment snapshot in the domain", + Privilege: "CreateSegmentSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor", + ResourceType: "domains*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "probe", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "segment-definitions*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a monitor", - Privilege: "UpdateMonitor", + Description: "Grants permission to create a snapshot in the domain", + Privilege: "CreateSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitor*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a probe", - Privilege: "UpdateProbe", + Description: "Grants permission to delete a calculated attribute definition in the domain", + Privilege: "DeleteCalculatedAttributeDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "probe*", + ResourceType: "calculated-attributes*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:networkmonitor:${Region}:${Account}:monitor/${MonitorName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "monitor", - }, - { - Arn: "arn:${Partition}:networkmonitor:${Region}:${Account}:probe/${ProbeId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "probe", - }, - }, - ServiceName: "Amazon CloudWatch Network Monitor", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "nimble:createdBy", - Description: "Filters access by the createdBy request parameter or the ID of the creator of the resource", - Type: "String", - }, - { - Condition: "nimble:ownedBy", - Description: "Filters access by the ownedBy request parameter or the ID of the owner of the resource", - Type: "String", - }, - { - Condition: "nimble:principalId", - Description: "Filters access by the principalId request parameter", - Type: "String", - }, - { - Condition: "nimble:requesterPrincipalId", - Description: "Filters access by the ID of the logged in user", - Type: "String", - }, - { - Condition: "nimble:studioId", - Description: "Filters access by a specific studio", - Type: "ARN", - }, - }, - Prefix: "nimble", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to accept EULAs", - Privilege: "AcceptEulas", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eula*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a launch profile", - Privilege: "CreateLaunchProfile", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeNatGateways", - "ec2:DescribeNetworkAcls", - "ec2:DescribeRouteTables", - "ec2:DescribeSubnets", - "ec2:DescribeVpcEndpoints", - "ec2:RunInstances", - }, - ResourceType: "studio*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a streaming image", - Privilege: "CreateStreamingImage", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeImages", - "ec2:DescribeSnapshots", - "ec2:ModifyInstanceAttribute", - "ec2:ModifySnapshotAttribute", - "ec2:RegisterImage", - }, - ResourceType: "studio*", - }, + AccessLevel: "Write", + Description: "Grants permission to delete a Domain", + Privilege: "DeleteDomain", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a streaming session", - Privilege: "CreateStreamingSession", + Description: "Grants permission to delete an event stream in a domain", + Privilege: "DeleteEventStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "nimble:GetLaunchProfile", - "nimble:GetLaunchProfileInitialization", - "nimble:ListEulaAcceptances", + "iam:DeleteRolePolicy", }, - ResourceType: "launch-profile*", + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "event-streams*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a StreamingSessionStream", - Privilege: "CreateStreamingSessionStream", + Description: "Grants permission to delete an event trigger in the domain", + Privilege: "DeleteEventTrigger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session*", + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "event-triggers*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a studio", - Privilege: "CreateStudio", + Description: "Grants permission to delete a integration in a domain", + Privilege: "DeleteIntegration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sso:CreateManagedApplicationInstance", - }, - ResourceType: "studio*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "integrations*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a studio component. A studio component designates a network resource to which a launch profile will provide access", - Privilege: "CreateStudioComponent", + Description: "Grants permission to delete a profile", + Privilege: "DeleteProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:AuthorizeApplication", - "ds:DescribeDirectories", - "ec2:DescribeSecurityGroups", - "fsx:DescribeFileSystems", - "iam:PassRole", - }, - ResourceType: "studio*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a launch profile", - Privilege: "DeleteLaunchProfile", + Description: "Grants permission to delete a profile key", + Privilege: "DeleteProfileKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a launch profile member", - Privilege: "DeleteLaunchProfileMember", + Description: "Grants permission to delete a profile object", + Privilege: "DeleteProfileObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "domains*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a streaming image", - Privilege: "DeleteStreamingImage", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteSnapshot", - "ec2:DeregisterImage", - "ec2:ModifyInstanceAttribute", - "ec2:ModifySnapshotAttribute", - }, - ResourceType: "streaming-image*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "object-types*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a streaming session", - Privilege: "DeleteStreamingSession", + Description: "Grants permission to delete a specific profile object type in the domain", + Privilege: "DeleteProfileObjectType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - }, - ResourceType: "streaming-session*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object-types*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a studio", - Privilege: "DeleteStudio", + Description: "Grants permission to delete a segment definition in the domain", + Privilege: "DeleteSegmentDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteManagedApplicationInstance", - }, - ResourceType: "studio*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "segment-definitions*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a studio component", - Privilege: "DeleteStudioComponent", + Description: "Grants permission to delete a workflow in a domain", + Privilege: "DeleteWorkflow", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:UnauthorizeApplication", - }, - ResourceType: "studio-component*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a studio member", - Privilege: "DeleteStudioMember", + AccessLevel: "Read", + Description: "Grants permission to auto detect object type", + Privilege: "DetectProfileObjectType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a EULA", - Privilege: "GetEula", + Description: "Grants permission to get a preview of auto merging in a domain", + Privilege: "GetAutoMergingPreview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eula*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to allow Nimble Studio portal to show the appropriate features for this account", - Privilege: "GetFeatureMap", + Description: "Grants permission to get a calculated attribute definition in the domain", + Privilege: "GetCalculatedAttributeDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "calculated-attributes*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a launch profile", - Privilege: "GetLaunchProfile", + Description: "Grants permission to retrieve a calculated attribute for a specific profile in the domain", + Privilege: "GetCalculatedAttributeForProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "calculated-attributes*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a launch profile's details, which includes the summary of studio components and streaming images used by the launch profile", - Privilege: "GetLaunchProfileDetails", + Description: "Grants permission to get a specific domain in an account", + Privilege: "GetDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a launch profile initialization. A launch profile initialization is a dereferenced version of a launch profile, including attached studio component connection information", - Privilege: "GetLaunchProfileInitialization", + Description: "Grants permission to get a specific event stream in a domain", + Privilege: "GetEventStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ds:DescribeDirectories", - "ec2:DescribeSecurityGroups", - "fsx:DescribeFileSystems", + "kinesis:DescribeStreamSummary", }, - ResourceType: "launch-profile*", + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-streams*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a launch profile member", - Privilege: "GetLaunchProfileMember", + Description: "Grants permission to get an event trigger in the domain", + Privilege: "GetEventTrigger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-triggers*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a streaming image", - Privilege: "GetStreamingImage", + Description: "Grants permission to get an identity resolution job in a domain", + Privilege: "GetIdentityResolutionJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-image*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a streaming session", - Privilege: "GetStreamingSession", + Description: "Grants permission to get a specific integrations in a domain", + Privilege: "GetIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session*", + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "integrations*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get profile matches in a domain", + Privilege: "GetMatches", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a streaming session backup", - Privilege: "GetStreamingSessionBackup", + Description: "Grants permission to get a specific profile object type in the domain", + Privilege: "GetProfileObjectType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session-backup*", + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "object-types*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a specific object type template", + Privilege: "GetProfileObjectTypeTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -195710,383 +240395,464 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a streaming session stream", - Privilege: "GetStreamingSessionStream", + Description: "Grants permission to get a segment definition in the domain", + Privilege: "GetSegmentDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session*", + ResourceType: "domains*", }, { - ConditionKeys: []string{ - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "segment-definitions*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a studio", - Privilege: "GetStudio", + Description: "Grants permission to get a segment estimate in the domain", + Privilege: "GetSegmentEstimate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a studio component", - Privilege: "GetStudioComponent", + Description: "Grants permission to determine if the given profiles are part of a segment in the domain", + Privilege: "GetSegmentMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-component*", + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "segment-definitions*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a studio member", - Privilege: "GetStudioMember", + Description: "Grants permission to get a segment snapshot in the domain", + Privilege: "GetSegmentSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "segment-definitions*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list EULA acceptances", - Privilege: "ListEulaAcceptances", + AccessLevel: "List", + Description: "Grants permission to get all the similar profiles in the domain", + Privilege: "GetSimilarProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eula-acceptance*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list EULAs", - Privilege: "ListEulas", + Description: "Grants permission to get a snapshot in the domain", + Privilege: "GetSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eula*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list launch profile members", - Privilege: "ListLaunchProfileMembers", + Description: "Grants permission to get workflow details in a domain", + Privilege: "GetWorkflow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list launch profiles", - Privilege: "ListLaunchProfiles", + Description: "Grants permission to get workflow step details in a domain", + Privilege: "GetWorkflowSteps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the integrations in the account", + Privilege: "ListAccountIntegrations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "nimble:principalId", - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list streaming images", - Privilege: "ListStreamingImages", + AccessLevel: "List", + Description: "Grants permission to list all the calculated attribute definitions in the domain", + Privilege: "ListCalculatedAttributeDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list streaming session backups", - Privilege: "ListStreamingSessionBackups", + AccessLevel: "List", + Description: "Grants permission to list all calculated attributes for a specific profile in the domain", + Privilege: "ListCalculatedAttributesForProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the domains in an account", + Privilege: "ListDomains", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list streaming sessions", - Privilege: "ListStreamingSessions", + AccessLevel: "List", + Description: "Grants permission to list all the event streams in a specific domain", + Privilege: "ListEventStreams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the event triggers in the domain", + Privilege: "ListEventTriggers", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "nimble:createdBy", - "nimble:ownedBy", - "nimble:requesterPrincipalId", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list studio components", - Privilege: "ListStudioComponents", + AccessLevel: "List", + Description: "Grants permission to list identity resolution jobs in a domain", + Privilege: "ListIdentityResolutionJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list studio members", - Privilege: "ListStudioMembers", + AccessLevel: "List", + Description: "Grants permission to list all the integrations in a specific domain", + Privilege: "ListIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all studios", - Privilege: "ListStudios", + AccessLevel: "List", + Description: "Grants permission to list all the attributes of a specific object type in the domain", + Privilege: "ListObjectTypeAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "object-types*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags on a Nimble Studio resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list all the values of a profile attribute in the domain", + Privilege: "ListProfileAttributeValues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile", + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the profile object type templates in the account", + Privilege: "ListProfileObjectTypeTemplates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-image", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the profile object types in the domain", + Privilege: "ListProfileObjectTypes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session", + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the profile objects for a profile", + Privilege: "ListProfileObjects", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session-backup", + ResourceType: "domains*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio", + ResourceType: "object-types*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the rule-based matching result in the domain", + Privilege: "ListRuleBasedMatches", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-component", + ResourceType: "domains*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add/update launch profile members", - Privilege: "PutLaunchProfileMembers", + AccessLevel: "List", + Description: "Grants permission to list all the segment definitions in the domain", + Privilege: "ListSegmentDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - }, - ResourceType: "launch-profile*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to report metrics and logs for the Nimble Studio portal to monitor application health", - Privilege: "PutStudioLogEvents", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio*", + ResourceType: "calculated-attributes", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-streams", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integrations", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "object-types", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add/update studio members", - Privilege: "PutStudioMembers", + AccessLevel: "List", + Description: "Grants permission to list all the workflows in a specific domain", + Privilege: "ListWorkflows", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso-directory:DescribeUsers", - }, - ResourceType: "studio*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a streaming session", - Privilege: "StartStreamingSession", + Description: "Grants permission to merge profiles in a domain", + Privilege: "MergeProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "nimble:GetLaunchProfile", - "nimble:GetLaunchProfileMember", - }, - ResourceType: "streaming-session*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put a integration in a domain", + Privilege: "PutIntegration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session-backup", + ResourceType: "domains*", }, { ConditionKeys: []string{ - "nimble:requesterPrincipalId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "integrations*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to repair the studio's AWS IAM Identity Center configuration", - Privilege: "StartStudioSSOConfigurationRepair", + Description: "Grants permission to put an object for a profile", + Privilege: "PutProfileObject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:CreateManagedApplicationInstance", - "sso:GetManagedApplicationInstance", - }, - ResourceType: "studio*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "object-types*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a streaming session", - Privilege: "StopStreamingSession", + Description: "Grants permission to put a specific profile object type in the domain", + Privilege: "PutProfileObjectType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "nimble:GetLaunchProfile", - }, - ResourceType: "streaming-session*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, { ConditionKeys: []string{ - "nimble:requesterPrincipalId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object-types*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for the specified Nimble Studio resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to search for profiles in a domain", + Privilege: "SearchProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile", + ResourceType: "domains*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to adds tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-image", + ResourceType: "calculated-attributes", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session", + ResourceType: "domains", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session-backup", + ResourceType: "event-streams", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio", + ResourceType: "integrations", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-component", + ResourceType: "object-types", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -196095,38 +240861,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to disassociate one or more tags from the specified Nimble Studio resource", + Description: "Grants permission to remove tags from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "streaming-image", + ResourceType: "calculated-attributes", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session", + ResourceType: "domains", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streaming-session-backup", + ResourceType: "event-streams", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio", + ResourceType: "integrations", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-component", + ResourceType: "object-types", }, { ConditionKeys: []string{ @@ -196139,192 +240900,435 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a launch profile", - Privilege: "UpdateLaunchProfile", + Description: "Grants permission to update a calculated attribute definition in the domain", + Privilege: "UpdateCalculatedAttributeDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeNatGateways", - "ec2:DescribeNetworkAcls", - "ec2:DescribeRouteTables", - "ec2:DescribeSubnets", - "ec2:DescribeVpcEndpoints", - }, - ResourceType: "launch-profile*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "calculated-attributes*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a launch profile member", - Privilege: "UpdateLaunchProfileMember", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "launch-profile*", + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a streaming image", - Privilege: "UpdateStreamingImage", + Description: "Grants permission to update a Domain", + Privilege: "UpdateDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "streaming-image*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "domains*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a studio", - Privilege: "UpdateStudio", + Description: "Grants permission to update an event trigger in the domain", + Privilege: "UpdateEventTrigger", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "studio*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "event-triggers*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a studio component", - Privilege: "UpdateStudioComponent", + Description: "Grants permission to update a profile in the domain", + Privilege: "UpdateProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:AuthorizeApplication", - "ds:DescribeDirectories", - "ec2:DescribeSecurityGroups", - "fsx:DescribeFileSystems", - "iam:PassRole", - }, - ResourceType: "studio-component*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domains*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:studio/${StudioId}", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "nimble:studioId", }, - Resource: "studio", + Resource: "domains", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:streaming-image/${StreamingImageId}", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/object-types/${ObjectTypeName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "nimble:studioId", }, - Resource: "streaming-image", + Resource: "object-types", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:studio-component/${StudioComponentId}", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/integrations/${Uri}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "nimble:studioId", }, - Resource: "studio-component", + Resource: "integrations", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:launch-profile/${LaunchProfileId}", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/event-streams/${EventStreamName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "nimble:studioId", }, - Resource: "launch-profile", + Resource: "event-streams", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:streaming-session/${StreamingSessionId}", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/calculated-attributes/${CalculatedAttributeName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "nimble:createdBy", - "nimble:ownedBy", }, - Resource: "streaming-session", + Resource: "calculated-attributes", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:streaming-session-backup/${StreamingSessionBackupId}", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/segment-definitions/${SegmentDefinitionName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "nimble:ownedBy", }, - Resource: "streaming-session-backup", + Resource: "segment-definitions", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:eula/${EulaId}", - ConditionKeys: []string{}, - Resource: "eula", + Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/event-triggers/${EventTriggerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "event-triggers", + }, + }, + ServiceName: "Amazon Connect Customer Profiles", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tag key-value pairs in the request", + Type: "String", }, { - Arn: "arn:${Partition}:nimble:${Region}:${Account}:eula-acceptance/${EulaAcceptanceId}", - ConditionKeys: []string{ - "nimble:studioId", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "proton:EnvironmentTemplate", + Description: "Filters access by specified environment template related to resource", + Type: "String", + }, + { + Condition: "proton:ServiceTemplate", + Description: "Filters access by specified service template related to resource", + Type: "String", + }, + }, + Prefix: "proton", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to reject an environment account connection request from another environment account", + Privilege: "AcceptEnvironmentAccountConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-account-connection*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel component deployment", + Privilege: "CancelComponentDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "component*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel an environment deployment", + Privilege: "CancelEnvironmentDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "proton:EnvironmentTemplate", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a service instance deployment", + Privilege: "CancelServiceInstanceDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service-instance*", + }, + { + ConditionKeys: []string{ + "proton:ServiceTemplate", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a service pipeline deployment", + Privilege: "CancelServicePipelineDeployment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "proton:ServiceTemplate", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create component", + Privilege: "CreateComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "component*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an environment", + Privilege: "CreateEnvironment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "proton:EnvironmentTemplate", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an environment account connection", + Privilege: "CreateEnvironmentAccountConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an environment template", + Privilege: "CreateEnvironmentTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an environment template major version. DEPRECATED - use CreateEnvironmentTemplateVersion instead", + Privilege: "CreateEnvironmentTemplateMajorVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an environment template minor version. DEPRECATED - use CreateEnvironmentTemplateVersion instead", + Privilege: "CreateEnvironmentTemplateMinorVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an environment template version", + Privilege: "CreateEnvironmentTemplateVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a repository", + Privilege: "CreateRepository", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "repository*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a service", + Privilege: "CreateService", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "codestar-connections:PassConnection", + }, + ResourceType: "service*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "proton:ServiceTemplate", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "eula-acceptance", - }, - }, - ServiceName: "Amazon Nimble Studio", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", }, - }, - Prefix: "notifications", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate a new Channel with a particular NotificationConfiguration", - Privilege: "AssociateChannel", + Description: "Grants permission to create a service instance", + Privilege: "CreateServiceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", + ResourceType: "service-instance*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "proton:ServiceTemplate", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new EventRule, associating it with a NotificationConfiguration", - Privilege: "CreateEventRule", + Description: "Grants permission to create a service sync config", + Privilege: "CreateServiceSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -196335,9 +241339,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a NotificationConfiguration", - Privilege: "CreateNotificationConfiguration", + Description: "Grants permission to create a service template", + Privilege: "CreateServiceTemplate", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service-template*", + }, { ConditionKeys: []string{ "aws:TagKeys", @@ -196350,186 +241359,216 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an EventRule", - Privilege: "DeleteEventRule", + Description: "Grants permission to create a service template major version. DEPRECATED - use CreateServiceTemplateVersion instead", + Privilege: "CreateServiceTemplateMajorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EventRule*", + ResourceType: "service-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a NotificationConfiguration", - Privilege: "DeleteNotificationConfiguration", + Description: "Grants permission to create a service template minor version. DEPRECATED - use CreateServiceTemplateVersion instead", + Privilege: "CreateServiceTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", + ResourceType: "service-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a NotificationHub", - Privilege: "DeregisterNotificationHub", + Description: "Grants permission to create a service template version", + Privilege: "CreateServiceTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "service-template*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a Channel from a NotificationConfiguration", - Privilege: "DisassociateChannel", + Description: "Grants permission to create a template sync config", + Privilege: "CreateTemplateSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an EventRule", - Privilege: "GetEventRule", + AccessLevel: "Write", + Description: "Grants permission to delete account roles. DEPRECATED - use UpdateAccountSettings instead", + Privilege: "DeleteAccountRoles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EventRule*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a NotificationConfiguration", - Privilege: "GetNotificationConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete component", + Privilege: "DeleteComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", + ResourceType: "component*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a NotificationEvent", - Privilege: "GetNotificationEvent", + AccessLevel: "Write", + Description: "Grants permission to delete a deployment", + Privilege: "DeleteDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationEvent*", + ResourceType: "deployment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Channels by NotificationConfiguration", - Privilege: "ListChannels", + AccessLevel: "Write", + Description: "Grants permission to delete an environment", + Privilege: "DeleteEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "proton:EnvironmentTemplate", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list EventRules", - Privilege: "ListEventRules", + AccessLevel: "Write", + Description: "Grants permission to delete an environment account connection", + Privilege: "DeleteEnvironmentAccountConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-account-connection*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list NotificationConfigurations", - Privilege: "ListNotificationConfigurations", + AccessLevel: "Write", + Description: "Grants permission to delete an environment template", + Privilege: "DeleteEnvironmentTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list NotificationEvents", - Privilege: "ListNotificationEvents", + AccessLevel: "Write", + Description: "Grants permission to delete an environment template major version. DEPRECATED - use DeleteEnvironmentTemplateVersion instead", + Privilege: "DeleteEnvironmentTemplateMajorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list NotificationHubs", - Privilege: "ListNotificationHubs", + AccessLevel: "Write", + Description: "Grants permission to delete an environment template minor version. DEPRECATED - use DeleteEnvironmentTemplateVersion instead", + Privilege: "DeleteEnvironmentTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an environment template version", + Privilege: "DeleteEnvironmentTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a NotificationHub", - Privilege: "RegisterNotificationHub", + Description: "Grants permission to delete a repository", + Privilege: "DeleteRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a service", + Privilege: "DeleteService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", + ResourceType: "service*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "proton:ServiceTemplate", }, DependentActions: []string{}, ResourceType: "", @@ -196537,145 +241576,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a service sync config", + Privilege: "DeleteServiceSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an EventRule", - Privilege: "UpdateEventRule", + Description: "Grants permission to delete a service template", + Privilege: "DeleteServiceTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EventRule*", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a NotificationConfiguration", - Privilege: "UpdateNotificationConfiguration", + Description: "Grants permission to delete a service template major version. DEPRECATED - use DeleteServiceTemplateVersion instead", + Privilege: "DeleteServiceTemplateMajorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "NotificationConfiguration*", + ResourceType: "service-template*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:notifications::${Account}:configuration/${NotificationConfigurationId}/rule/${EventRuleId}", - ConditionKeys: []string{}, - Resource: "EventRule", - }, - { - Arn: "arn:${Partition}:notifications::${Account}:configuration/${NotificationConfigurationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "NotificationConfiguration", - }, - { - Arn: "arn:${Partition}:notifications:${Region}:${Account}:configuration/${NotificationConfigurationId}/event/${NotificationEventId}", - ConditionKeys: []string{}, - Resource: "NotificationEvent", - }, - }, - ServiceName: "AWS User Notifications", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "notifications-contacts", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to activate the email contact associated with the given ARN if the provided code is valid", - Privilege: "ActivateEmailContact", + Description: "Grants permission to delete a service template minor version. DEPRECATED - use DeleteServiceTemplateVersion instead", + Privilege: "DeleteServiceTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EmailContactResource*", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an email contact", - Privilege: "CreateEmailContact", + Description: "Grants permission to delete a service template version", + Privilege: "DeleteServiceTemplateVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an email contact associated with the given ARN", - Privilege: "DeleteEmailContact", + Description: "Grants permission to delete a TemplateSyncConfig", + Privilege: "DeleteTemplateSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EmailContactResource*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get an email contact associated with the given ARN", - Privilege: "GetEmailContact", + Description: "Grants permission to get account roles. DEPRECATED - use GetAccountSettings instead", + Privilege: "GetAccountRoles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EmailContactResource*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list email contacts", - Privilege: "ListEmailContacts", + AccessLevel: "Read", + Description: "Grants permission to describe the account settings", + Privilege: "GetAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -196686,177 +241673,119 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe a component", + Privilege: "GetComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "component*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send an activation link to the email associated with the given ARN", - Privilege: "SendActivationCode", + AccessLevel: "Read", + Description: "Grants permission to describe a deployment", + Privilege: "GetDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EmailContactResource*", + ResourceType: "deployment*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to describe an environment", + Privilege: "GetEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EmailContactResource*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe an environment account connection", + Privilege: "GetEnvironmentAccountConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EmailContactResource*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-account-connection*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:notifications-contacts::${Account}:emailcontact/${EmailContactId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "EmailContactResource", - }, - }, - ServiceName: "AWS User Notifications Contacts", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "oam:ResourceTypes", - Description: "Filters access by the presence of resource types in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "oam", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a link between a monitoring account and a source account for cross-account monitoring", - Privilege: "CreateLink", + AccessLevel: "Read", + Description: "Grants permission to describe an environment template", + Privilege: "GetEnvironmentTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "oam:TagResource", - }, - ResourceType: "Sink*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "oam:ResourceTypes", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a sink in an account so that it can be used as a monitoring account for cross-account monitoring", - Privilege: "CreateSink", + AccessLevel: "Read", + Description: "Grants permission to get an environment template major version. DEPRECATED - use GetEnvironmentTemplateVersion instead", + Privilege: "GetEnvironmentTemplateMajorVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "oam:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a link between a monitoring account and a source account for cross-account monitoring", - Privilege: "DeleteLink", + AccessLevel: "Read", + Description: "Grants permission to get an environment template minor version. DEPRECATED - use GetEnvironmentTemplateVersion instead", + Privilege: "GetEnvironmentTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Link*", + ResourceType: "environment-template*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an environment template version", + Privilege: "GetEnvironmentTemplateVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a cross-account monitoring sink in a monitoring account", - Privilege: "DeleteSink", + AccessLevel: "Read", + Description: "Grants permission to describe a repository", + Privilege: "GetRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink*", + ResourceType: "repository*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the latest sync status for a repository", + Privilege: "GetRepositorySyncStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -196864,75 +241793,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve complete information about one cross-account monitoring link", - Privilege: "GetLink", + Description: "Grants permission to list resource template version status counts", + Privilege: "GetResourceTemplateVersionStatusCounts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Link*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve complete information about one cross-account monitoring sink", - Privilege: "GetSink", + Description: "Grants permission to get resources summary", + Privilege: "GetResourcesSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information for the IAM policy for a cross-account monitoring sink", - Privilege: "GetSinkPolicy", + Description: "Grants permission to describe a service", + Privilege: "GetService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "service*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of links that are linked for a cross-account monitoring sink", - Privilege: "ListAttachedLinks", + Description: "Grants permission to describe a service instance", + Privilege: "GetServiceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink*", + ResourceType: "service-instance*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the sync status of a service instance", + Privilege: "GetServiceInstanceSyncStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -196940,8 +241853,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the ARNs of cross-account monitoring links in this account", - Privilege: "ListLinks", + Description: "Grants permission to describe service sync blockers on a service or service instance", + Privilege: "GetServiceSyncBlockerSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -196952,8 +241865,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the ARNs of cross-account monitoring sinks in this account", - Privilege: "ListSinks", + Description: "Grants permission to describe a service sync config", + Privilege: "GetServiceSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -196964,342 +241877,232 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe a service template", + Privilege: "GetServiceTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Link", + ResourceType: "service-template*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a service template major version. DEPRECATED - use GetServiceTemplateVersion instead", + Privilege: "GetServiceTemplateMajorVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink", + ResourceType: "service-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update the IAM policy for a cross-account monitoring sink", - Privilege: "PutSinkPolicy", + AccessLevel: "Read", + Description: "Grants permission to get a service template minor version. DEPRECATED - use GetServiceTemplateVersion instead", + Privilege: "GetServiceTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-template*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to describe a service template version", + Privilege: "GetServiceTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Link", + ResourceType: "service-template*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a TemplateSyncConfig", + Privilege: "GetTemplateSyncConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Sink", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe the sync status of a template", + Privilege: "GetTemplateSyncStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Link", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Sink", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing link between a monitoring account and a source account", - Privilege: "UpdateLink", + AccessLevel: "List", + Description: "Grants permission to list component outputs", + Privilege: "ListComponentOutputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Link*", + ResourceType: "component*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "oam:ResourceTypes", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:oam:${Region}:${Account}:link/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Link", - }, - { - Arn: "arn:${Partition}:oam:${Region}:${Account}:sink/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Sink", - }, - }, - ServiceName: "Amazon CloudWatch Observability Access Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "omics:AnnotationImportJobJobId", - Description: "Filters access by a unique resource identifier", - Type: "String", - }, - { - Condition: "omics:AnnotationStoreName", - Description: "Filters access by the name of the store", - Type: "String", - }, - { - Condition: "omics:AnnotationStoreVersionName", - Description: "Filters access by the name of the annotation store version", - Type: "String", - }, - { - Condition: "omics:VariantImportJobJobId", - Description: "Filters access by a unique resource identifier", - Type: "String", - }, - { - Condition: "omics:VariantStoreName", - Description: "Filters access by the name of the store", - Type: "String", - }, - }, - Prefix: "omics", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to abort multipart read set uploads", - Privilege: "AbortMultipartReadSetUpload", + AccessLevel: "List", + Description: "Grants permission to list component provisioned resources", + Privilege: "ListComponentProvisionedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "component*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to accept a share", - Privilege: "AcceptShare", + AccessLevel: "List", + Description: "Grants permission to list components", + Privilege: "ListComponents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to batch delete Read Sets in the given Sequence Store", - Privilege: "BatchDeleteReadSet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "service", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an Annotation Import Job", - Privilege: "CancelAnnotationImportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationImportJob*", + ResourceType: "service-instance", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a workflow run and stop all workflow tasks", - Privilege: "CancelRun", + AccessLevel: "List", + Description: "Grants permission to list deployments", + Privilege: "ListDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a Variant Import Job", - Privilege: "CancelVariantImportJob", + AccessLevel: "List", + Description: "Grants permission to list environment account connections", + Privilege: "ListEnvironmentAccountConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VariantImportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to complete a multipart read set upload", - Privilege: "CompleteMultipartReadSetUpload", + AccessLevel: "List", + Description: "Grants permission to list environment outputs", + Privilege: "ListEnvironmentOutputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an Annotation Store", - Privilege: "CreateAnnotationStore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deployment", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Version in an Annotation Store", - Privilege: "CreateAnnotationStoreVersion", + AccessLevel: "List", + Description: "Grants permission to list environment provisioned resources", + Privilege: "ListEnvironmentProvisionedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "environment*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a multipart read set upload", - Privilege: "CreateMultipartReadSetUpload", + AccessLevel: "List", + Description: "Grants permission to list environment template major versions. DEPRECATED - use ListEnvironmentTemplateVersions instead", + Privilege: "ListEnvironmentTemplateMajorVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Reference Store", - Privilege: "CreateReferenceStore", + AccessLevel: "List", + Description: "Grants permission to list an environment template minor versions. DEPRECATED - use ListEnvironmentTemplateVersions instead", + Privilege: "ListEnvironmentTemplateMinorVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new workflow run group", - Privilege: "CreateRunGroup", + AccessLevel: "List", + Description: "Grants permission to list environment template versions", + Privilege: "ListEnvironmentTemplateVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Sequence Store", - Privilege: "CreateSequenceStore", + AccessLevel: "List", + Description: "Grants permission to list environment templates", + Privilege: "ListEnvironmentTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a share", - Privilege: "CreateShare", + AccessLevel: "List", + Description: "Grants permission to list environments", + Privilege: "ListEnvironments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -197309,9 +242112,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Variant Store", - Privilege: "CreateVariantStore", + AccessLevel: "List", + Description: "Grants permission to list repositories", + Privilege: "ListRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -197321,667 +242124,488 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new workflow with a workflow definition and template of workflow parameters", - Privilege: "CreateWorkflow", + AccessLevel: "List", + Description: "Grants permission to list repository sync definitions", + Privilege: "ListRepositorySyncDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Annotation Store", - Privilege: "DeleteAnnotationStore", + AccessLevel: "List", + Description: "Grants permission to list service instance outputs", + Privilege: "ListServiceInstanceOutputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "service*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete Versions in an Annotation Store", - Privilege: "DeleteAnnotationStoreVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "service-instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStoreVersion*", + ResourceType: "deployment", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Reference in the given Reference Store", - Privilege: "DeleteReference", + AccessLevel: "List", + Description: "Grants permission to list service instance provisioned resources", + Privilege: "ListServiceInstanceProvisionedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reference*", + ResourceType: "service*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "service-instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Reference Store", - Privilege: "DeleteReferenceStore", + AccessLevel: "List", + Description: "Grants permission to list service instances", + Privilege: "ListServiceInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a workflow run", - Privilege: "DeleteRun", + AccessLevel: "List", + Description: "Grants permission to list service pipeline outputs", + Privilege: "ListServicePipelineOutputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "service*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a workflow run group", - Privilege: "DeleteRunGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "runGroup*", + ResourceType: "deployment", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Sequence Store", - Privilege: "DeleteSequenceStore", + AccessLevel: "List", + Description: "Grants permission to list service pipeline provisioned resources", + Privilege: "ListServicePipelineProvisionedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "service*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a share", - Privilege: "DeleteShare", + AccessLevel: "List", + Description: "Grants permission to list service template major versions. DEPRECATED - use ListServiceTemplateVersions instead", + Privilege: "ListServiceTemplateMajorVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Variant Store", - Privilege: "DeleteVariantStore", + AccessLevel: "List", + Description: "Grants permission to list service template minor versions. DEPRECATED - use ListServiceTemplateVersions instead", + Privilege: "ListServiceTemplateMinorVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VariantStore*", + ResourceType: "service-template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a workflow", - Privilege: "DeleteWorkflow", + AccessLevel: "List", + Description: "Grants permission to list service template versions", + Privilege: "ListServiceTemplateVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "service-template*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the status of an Annotation Import Job", - Privilege: "GetAnnotationImportJob", + AccessLevel: "List", + Description: "Grants permission to list service templates", + Privilege: "ListServiceTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationImportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get detailed information about an Annotation Store", - Privilege: "GetAnnotationStore", + AccessLevel: "List", + Description: "Grants permission to list services", + Privilege: "ListServices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get detailed information about a version in an Annotation Store", - Privilege: "GetAnnotationStoreVersion", + Description: "Grants permission to list tags of a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "component", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStoreVersion*", + ResourceType: "environment", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a Read Set in the given Sequence Store", - Privilege: "GetReadSet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readSet*", + ResourceType: "environment-account-connection", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a Read Set activation job for the given Sequence Store", - Privilege: "GetReadSetActivationJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template-major-version", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a Read Set export job for the given Sequence Store", - Privilege: "GetReadSetExportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template-minor-version", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a Read Set import job for the given Sequence Store", - Privilege: "GetReadSetImportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template-version", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a Read Set in the given Sequence Store", - Privilege: "GetReadSetMetadata", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readSet*", + ResourceType: "repository", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "service", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a Reference in the given Reference Store", - Privilege: "GetReference", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reference*", + ResourceType: "service-instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "service-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a Reference import job for the given Reference Store", - Privilege: "GetReferenceImportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "service-template-major-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service-template-minor-version", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service-template-version", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a Reference in the given Reference Store", - Privilege: "GetReferenceMetadata", + AccessLevel: "Write", + Description: "Grants permission to notify Proton of resource deployment status changes", + Privilege: "NotifyResourceDeploymentStatusChange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "reference*", + ResourceType: "environment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "service-instance", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about a Reference Store", - Privilege: "GetReferenceStore", + AccessLevel: "Write", + Description: "Grants permission to reject an environment account connection request from another environment account", + Privilege: "RejectEnvironmentAccountConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "environment-account-connection*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve workflow run details", - Privilege: "GetRun", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "component", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-account-connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve workflow run group details", - Privilege: "GetRunGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "runGroup*", + ResourceType: "environment-template-major-version", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve workflow task details", - Privilege: "GetRunTask", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TaskResource*", + ResourceType: "environment-template-minor-version", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "environment-template-version", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get details about a Sequence Store", - Privilege: "GetSequenceStore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "repository", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get detailed information about a Share", - Privilege: "GetShare", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the status of a Variant Import Job", - Privilege: "GetVariantImportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VariantImportJob*", + ResourceType: "service-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get detailed information about a Variant Store", - Privilege: "GetVariantStore", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VariantStore*", + ResourceType: "service-template", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve workflow details", - Privilege: "GetWorkflow", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "service-template-major-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of Annotation Import Jobs", - Privilege: "ListAnnotationImportJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-template-minor-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of information about Versions in an Annotation Store", - Privilege: "ListAnnotationStoreVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "service-template-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of information about Annotation Stores", - Privilege: "ListAnnotationStores", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list multipart read set uploads", - Privilege: "ListMultipartReadSetUploads", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "component", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Read Set activation jobs for the given Sequence Store", - Privilege: "ListReadSetActivationJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Read Set export jobs for the given Sequence Store", - Privilege: "ListReadSetExportJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-account-connection", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Read Set import jobs for the given Sequence Store", - Privilege: "ListReadSetImportJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list read set upload parts", - Privilege: "ListReadSetUploadParts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template-major-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Read Sets in the given Sequence Store", - Privilege: "ListReadSets", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template-minor-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Reference import jobs for the given Reference Store", - Privilege: "ListReferenceImportJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "environment-template-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Reference Stores", - Privilege: "ListReferenceStores", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "repository", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list References in the given Reference Store", - Privilege: "ListReferences", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "service", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of workflow run groups", - Privilege: "ListRunGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-instance", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of tasks for a workflow run", - Privilege: "ListRunTasks", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "run*", + ResourceType: "service-template", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of workflow runs", - Privilege: "ListRuns", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-template-major-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list Sequence Stores", - Privilege: "ListSequenceStores", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service-template-minor-version", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of information about shares", - Privilege: "ListShares", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "service-template-version", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of resource AWS tags", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update account roles. DEPRECATED - use UpdateAccountSettings instead", + Privilege: "UpdateAccountRoles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of Variant Import Jobs", - Privilege: "ListVariantImportJobs", + AccessLevel: "Write", + Description: "Grants permission to update the account settings", + Privilege: "UpdateAccountSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of metadata for Variant Stores", - Privilege: "ListVariantStores", + AccessLevel: "Write", + Description: "Grants permission to update component", + Privilege: "UpdateComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "component*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of available workflows", - Privilege: "ListWorkflows", + AccessLevel: "Write", + Description: "Grants permission to update an environment", + Privilege: "UpdateEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "proton:EnvironmentTemplate", + }, DependentActions: []string{}, ResourceType: "", }, @@ -197989,90 +242613,77 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import a list of Annotation files to an Annotation Store", - Privilege: "StartAnnotationImportJob", + Description: "Grants permission to update an environment account connection", + Privilege: "UpdateEnvironmentAccountConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "environment-account-connection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Read Set activation job from the given Sequence Store", - Privilege: "StartReadSetActivationJob", + Description: "Grants permission to update an environment template", + Privilege: "UpdateEnvironmentTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Read Set export job from the given Sequence Store", - Privilege: "StartReadSetExportJob", + Description: "Grants permission to update an environment template major version. DEPRECATED - use UpdateEnvironmentTemplateVersion instead", + Privilege: "UpdateEnvironmentTemplateMajorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Read Set import job into the given Sequence Store", - Privilege: "StartReadSetImportJob", + Description: "Grants permission to update an environment template minor version. DEPRECATED - use UpdateEnvironmentTemplateVersion instead", + Privilege: "UpdateEnvironmentTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "environment-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Reference import job into the given Reference Store", - Privilege: "StartReferenceImportJob", + Description: "Grants permission to update an environment template version", + Privilege: "UpdateEnvironmentTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "referenceStore*", + ResourceType: "environment-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a workflow run", - Privilege: "StartRun", + Description: "Grants permission to update a service", + Privilege: "UpdateService", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "run*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "runGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "service*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "proton:ServiceTemplate", }, DependentActions: []string{}, ResourceType: "", @@ -198081,60 +242692,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import a list of variant files to an Variant Store", - Privilege: "StartVariantImportJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add AWS tags to a resource", - Privilege: "TagResource", + Description: "Grants permission to update a service instance", + Privilege: "UpdateServiceInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "reference", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "referenceStore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "run", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "runGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "sequenceStore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "service-instance*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "proton:ServiceTemplate", }, DependentActions: []string{}, ResourceType: "", @@ -198142,48 +242710,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove resource AWS tags", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a service pipeline", + Privilege: "UpdateServicePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "reference", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "referenceStore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "run", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "runGroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "sequenceStore", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workflow", + ResourceType: "service*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "proton:ServiceTemplate", }, DependentActions: []string{}, ResourceType: "", @@ -198192,213 +242730,232 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update information about the Annotation Store", - Privilege: "UpdateAnnotationStore", + Description: "Grants permission to update a service sync blocker", + Privilege: "UpdateServiceSyncBlocker", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update information about the Version in an Annotation Store", - Privilege: "UpdateAnnotationStoreVersion", + Description: "Grants permission to update a service sync config", + Privilege: "UpdateServiceSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStore*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a service template", + Privilege: "UpdateServiceTemplate", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AnnotationStoreVersion*", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a workflow run group", - Privilege: "UpdateRunGroup", + Description: "Grants permission to update a service template major version. DEPRECATED - use UpdateServiceTemplateVersion instead", + Privilege: "UpdateServiceTemplateMajorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "runGroup*", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update metadata about the Variant Store", - Privilege: "UpdateVariantStore", + Description: "Grants permission to create a service template minor version. DEPRECATED - use UpdateServiceTemplateVersion instead", + Privilege: "UpdateServiceTemplateMinorVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VariantStore*", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update workflow details", - Privilege: "UpdateWorkflow", + Description: "Grants permission to update a service template version", + Privilege: "UpdateServiceTemplateVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workflow*", + ResourceType: "service-template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upload read set parts", - Privilege: "UploadReadSetPart", + Description: "Grants permission to update a TemplateSyncConfig", + Privilege: "UpdateTemplateSyncConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "sequenceStore*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:omics:${Region}:${Account}:annotationImportJob/${AnnotationImportJobId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${Name}", ConditionKeys: []string{ - "omics:AnnotationImportJobJobId", + "aws:ResourceTag/${TagKey}", }, - Resource: "AnnotationImportJob", + Resource: "environment-template", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:annotationStore/${AnnotationStoreId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${TemplateName}:${MajorVersion}.${MinorVersion}", ConditionKeys: []string{ - "omics:AnnotationStoreName", + "aws:ResourceTag/${TagKey}", }, - Resource: "AnnotationStore", + Resource: "environment-template-version", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:annotationStore/${AnnotationStoreName}/version/${AnnotationStoreVersionName}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${TemplateName}:${MajorVersionId}", ConditionKeys: []string{ - "omics:AnnotationStoreVersionName", + "aws:ResourceTag/${TagKey}", }, - Resource: "AnnotationStoreVersion", + Resource: "environment-template-major-version", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:sequenceStore/${SequenceStoreId}/readSet/${ReadSetId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${TemplateName}:${MajorVersionId}.${MinorVersionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "readSet", + Resource: "environment-template-minor-version", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:referenceStore/${ReferenceStoreId}/reference/${ReferenceId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "reference", + Resource: "service-template", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:referenceStore/${ReferenceStoreId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${TemplateName}:${MajorVersion}.${MinorVersion}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "referenceStore", + Resource: "service-template-version", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:run/${Id}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${TemplateName}:${MajorVersionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "run", + Resource: "service-template-major-version", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:runGroup/${Id}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${TemplateName}:${MajorVersionId}.${MinorVersionId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "runGroup", + Resource: "service-template-minor-version", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:sequenceStore/${SequenceStoreId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:environment/${Name}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "sequenceStore", + Resource: "environment", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:tag/${TagKey}", - ConditionKeys: []string{}, - Resource: "TaggingResource", + Arn: "arn:${Partition}:proton:${Region}:${Account}:service/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "service", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:task/${Id}", - ConditionKeys: []string{}, - Resource: "TaskResource", + Arn: "arn:${Partition}:proton:${Region}:${Account}:service/${ServiceName}/service-instance/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "service-instance", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:variantImportJob/${VariantImportJobId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-account-connection/${Id}", ConditionKeys: []string{ - "omics:VariantImportJobJobId", + "aws:ResourceTag/${TagKey}", }, - Resource: "VariantImportJob", + Resource: "environment-account-connection", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:variantStore/${VariantStoreId}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:repository/${Provider}:${Name}", ConditionKeys: []string{ - "omics:VariantStoreName", + "aws:ResourceTag/${TagKey}", }, - Resource: "VariantStore", + Resource: "repository", }, { - Arn: "arn:${Partition}:omics:${Region}:${Account}:workflow/${Id}", + Arn: "arn:${Partition}:proton:${Region}:${Account}:component/${Id}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "workflow", + Resource: "component", + }, + { + Arn: "arn:${Partition}:proton:${Region}:${Account}:deployment/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deployment", }, }, - ServiceName: "AWS HealthOmics", + ServiceName: "AWS Proton", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by using tag key-value pairs in the request", + Description: "Filters access by a tag's key and value in a request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by using tag key-value pairs attached to the resource", + Description: "Filters access by the set of tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", + Description: "Filters access by the tag keys in a request", Type: "ArrayOfString", }, }, - Prefix: "one", + Prefix: "purchase-orders", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a QR code for a Device Instance", - Privilege: "CreateDeviceActivationQrCode", + Description: "Grants permission to add a new purchase order", + Privilege: "AddPurchaseOrder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", + ResourceType: "purchase-order*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -198407,13 +242964,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Device Configuration Template", - Privilege: "CreateDeviceConfigurationTemplate", + Description: "Grants permission to delete a purchase order", + Privilege: "DeletePurchaseOrder", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "purchase-order*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -198421,14 +242982,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Device Instance", - Privilege: "CreateDeviceInstance", + AccessLevel: "Read", + Description: "Grants permission to view whether existing or fine-grained IAM actions are being used to control authorization to Billing, Cost Management, and Account consoles", + Privilege: "GetConsoleActionSetEnforced", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a purchase order", + Privilege: "GetPurchaseOrder", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "purchase-order*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -198436,14 +243013,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Device Instance Configuration", - Privilege: "CreateDeviceInstanceConfiguration", + AccessLevel: "List", + Description: "Grants permission to list purchase order invoices", + Privilege: "ListPurchaseOrderInvoices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", + ResourceType: "purchase-order*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all purchase orders for an account", + Privilege: "ListPurchaseOrders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a purchase order", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "purchase-order", }, { ConditionKeys: []string{ @@ -198456,11 +243064,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Site", - Privilege: "CreateSite", + Description: "Grants permission to modify purchase orders and details", + Privilege: "ModifyPurchaseOrders", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "purchase-order*", + }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -198470,17 +243084,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate Device from a Device Instance", - Privilege: "DeleteAssociatedDevice", + AccessLevel: "Tagging", + Description: "Grants permission to tag purchase orders with given key value pairs", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", + ResourceType: "purchase-order*", }, { ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -198489,17 +243105,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Device Configuration Template", - Privilege: "DeleteDeviceConfigurationTemplate", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a purchase order", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-configuration-template*", + ResourceType: "purchase-order*", }, { ConditionKeys: []string{ + "aws:TagKeys", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -198509,13 +243126,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Device Instance", - Privilege: "DeleteDeviceInstance", + Description: "Grants permission to change whether existing or fine-grained IAM actions will be used to control authorization to Billing, Cost Management, and Account consoles", + Privilege: "UpdateConsoleActionSetEnforced", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing purchase order", + Privilege: "UpdatePurchaseOrder", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "purchase-order*", }, { ConditionKeys: []string{ @@ -198528,13 +243157,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Site", - Privilege: "DeleteSite", + Description: "Grants permission to set purchase order status", + Privilege: "UpdatePurchaseOrderStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "purchase-order*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view purchase orders and details", + Privilege: "ViewPurchaseOrders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "purchase-order", }, { ConditionKeys: []string{ @@ -198545,31 +243193,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:purchase-orders::${Account}:purchase-order/${ResourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "purchase-order", + }, + }, + ServiceName: "AWS Purchase Orders Console", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the Amazon Q resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "identitystore:GroupId", + Description: "Filters access by IAM Identity Center Group ID", + Type: "ArrayOfString", + }, + { + Condition: "identitystore:UserId", + Description: "Filters access by IAM Identity Center User ID", + Type: "ArrayOfString", + }, + }, + Prefix: "q", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a User", - Privilege: "DeleteUser", + Description: "Grants permission to associate an AWS resource with an Amazon Q connector", + Privilege: "AssociateConnectorResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a Device Configuration Template", - Privilege: "GetDeviceConfigurationTemplate", + AccessLevel: "Write", + Description: "Grants permission to create a user or group assignment for an Amazon Q Developer Profile", + Privilege: "CreateAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-configuration-template*", + ResourceType: "profile*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "identitystore:UserId", + "identitystore:GroupId", }, DependentActions: []string{}, ResourceType: "", @@ -198577,18 +243268,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a Device Instance", - Privilege: "GetDeviceInstance", + AccessLevel: "Write", + Description: "Grants permission to create OAuth user in Amazon Q", + Privilege: "CreateAuthGrant", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to register an OAuth application in Amazon Q", + Privilege: "CreateOAuthAppConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create and configure a third party plugin in Amazon Q", + Privilege: "CreatePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", + ResourceType: "plugin*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -198596,18 +243322,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a Device Instance Configuration", - Privilege: "GetDeviceInstanceConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete a user or group assignment for an Amazon Q Developer Profile", + Privilege: "DeleteAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration*", + ResourceType: "profile*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "identitystore:UserId", + "identitystore:GroupId", }, DependentActions: []string{}, ResourceType: "", @@ -198615,14 +243342,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a Site", - Privilege: "GetSite", + AccessLevel: "Write", + Description: "Grants permission to delete an OAuth application in Amazon Q", + Privilege: "DeleteOAuthAppConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a configured plugin in Amazon Q", + Privilege: "DeletePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "plugin*", }, { ConditionKeys: []string{ @@ -198635,13 +243379,73 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view address of a Site", - Privilege: "GetSiteAddress", + Description: "Grants permission to generate code from CLI commands in Amazon Q", + Privilege: "GenerateCodeFromCommands", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to generate code recommendations in Amazon Q", + Privilege: "GenerateCodeRecommendations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about a specific Amazon Q connector", + Privilege: "GetConnector", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get individual messages associated with a specific conversation with Amazon Q", + Privilege: "GetConversation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to Amazon Q to get the identity metadata", + Privilege: "GetIdentityMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view information about a specific configured Amazon Q plugin", + Privilege: "GetPlugin", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "plugin*", }, { ConditionKeys: []string{ @@ -198653,9 +243457,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve list of Device Configuration Templates", - Privilege: "ListDeviceConfigurationTemplates", + AccessLevel: "Read", + Description: "Grants permission to get troubleshooting results with Amazon Q", + Privilege: "GetTroubleshootingResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -198665,9 +243469,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve list of Device Instances", - Privilege: "ListDeviceInstances", + AccessLevel: "Read", + Description: "Grants permission to list individual conversations associated with a specific Amazon Q user", + Privilege: "ListConversations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -198678,8 +243482,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to view list of Sites", - Privilege: "ListSites", + Description: "Grants permission to read metrics to populate Amazon Q dashboard", + Privilege: "ListDashboardMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -198689,24 +243493,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for an Amazon One Enterprise resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list available plugins in Amazon Q", + Privilege: "ListPluginProviders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-configuration-template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list configured plugins in Amazon Q", + Privilege: "ListPlugins", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance", + ResourceType: "plugin*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all tags associated with an Amazon Q resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "plugin", }, { ConditionKeys: []string{ @@ -198718,9 +243536,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view list of Users", - Privilege: "ListUsers", + AccessLevel: "Write", + Description: "Grants permission to allow Amazon Q to perform actions on your behalf", + Privilege: "PassRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -198731,47 +243549,96 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reboot Device associated with a Device Instance", - Privilege: "RebootDevice", + Description: "Grants permission to reject a connection request for an Amazon Q connector", + Privilege: "RejectConnector", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to trigger asynchronous Amazon Q actions", + Privilege: "SendEvent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a message to Amazon Q", + Privilege: "SendMessage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to an Amazon One Enterprise resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to start a conversation with Amazon Q", + Privilege: "StartConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-configuration-template", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a troubleshooting analysis with Amazon Q", + Privilege: "StartTroubleshootingAnalysis", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a troubleshooting resolution explanation with Amazon Q", + Privilege: "StartTroubleshootingResolutionExplanation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to associate tags with an Amazon Q resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "plugin", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -198780,46 +243647,72 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an Amazon One Enterprise resource", + Description: "Grants permission to remove tags associated with an Amazon Q resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-configuration-template", + ResourceType: "plugin", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "device-instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update OAuth user in Amazon Q", + Privilege: "UpdateAuthGrant", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "site", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an OAuth application in Amazon Q", + Privilege: "UpdateOAuthAppConnection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Device Configuration Template", - Privilege: "UpdateDeviceConfigurationTemplate", + Description: "Grants permission to update a third party plugin in Amazon Q", + Privilege: "UpdatePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-configuration-template*", + ResourceType: "plugin*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -198828,1007 +243721,1002 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a Device Instance", - Privilege: "UpdateDeviceInstance", + Description: "Grants permission to update a troubleshooting command result with Amazon Q", + Privilege: "UpdateTroubleshootingCommandResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Site", - Privilege: "UpdateSite", + Description: "Grants permission to use Amazon Q plugins", + Privilege: "UsePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "plugin*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update address of a Site", - Privilege: "UpdateSiteAddress", + Description: "Grants permission to verify an OAuth application in Amazon Q", + Privilege: "VerifyOAuthAppConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "site*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:Decrypt", + "kms:GenerateDataKeyWithoutPlaintext", + "kms:ReEncryptFrom", + "kms:ReEncryptTo", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:one:${Region}:${Account}:device-instance/${DeviceInstanceId}", + Arn: "arn:${Partition}:codewhisperer:${Region}:${Account}:profile/${Identifier}", + ConditionKeys: []string{}, + Resource: "profile", + }, + { + Arn: "arn:${Partition}:qdeveloper:${Region}:${Account}:plugin/${Identifier}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "device-instance", + Resource: "plugin", }, + }, + ServiceName: "Amazon Q", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:one:${Region}:${Account}:device-instance/${DeviceInstanceId}/configuration/${Version}", - ConditionKeys: []string{}, - Resource: "configuration", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", }, { - Arn: "arn:${Partition}:one:${Region}:${Account}:device-configuration-template/${TemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "device-configuration-template", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", }, { - Arn: "arn:${Partition}:one:${Region}:${Account}:site/${SiteId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "site", + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, { - Arn: "arn:${Partition}:one:${Region}:${Account}:user/${UserId}", - ConditionKeys: []string{}, - Resource: "user", + Condition: "qapps:AppIsPublished", + Description: "Filters access by whether Q App is published", + Type: "String", + }, + { + Condition: "qapps:SessionIsShared", + Description: "Filters access by whether Q App Session is shared", + Type: "String", + }, + { + Condition: "qapps:UserIsAppOwner", + Description: "Filters access by whether requester is Q App owner", + Type: "String", + }, + { + Condition: "qapps:UserIsSessionModerator", + Description: "Filters access by whether requester is Q App Session moderator", + Type: "String", }, }, - ServiceName: "Amazon One Enterprise", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "opsworks", + Prefix: "qapps", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to assign a registered instance to a layer", - Privilege: "AssignInstance", + Description: "Grants permission to associate a library item review in the Q Business application environment", + Privilege: "AssociateLibraryItemReview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to assign one of the stack's registered Amazon EBS volumes to a specified instance", - Privilege: "AssignVolume", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate one of the stack's registered Elastic IP addresses with a specified instance", - Privilege: "AssociateElasticIp", + Description: "Grants permission to associate Q App with a user in the Q Business application environment", + Privilege: "AssociateQAppWithUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to attach an Elastic Load Balancing load balancer to a specified layer", - Privilege: "AttachElasticLoadBalancer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a clone of a specified stack", - Privilege: "CloneStack", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an app for a specified stack", - Privilege: "CreateApp", + Description: "Grants permission to create the categories of a library in the Q Business application environment", + Privilege: "BatchCreateCategory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run deployment or stack commands", - Privilege: "CreateDeployment", + Description: "Grants permission to delete the categories of a library in the Q Business application environment", + Privilege: "BatchDeleteCategory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an instance in a specified stack", - Privilege: "CreateInstance", + Description: "Grants permission to update the categories of a library in the Q Business application environment", + Privilege: "BatchUpdateCategory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a layer", - Privilege: "CreateLayer", + Description: "Grants permission to copy Q App in the Q Business application environment", + Privilege: "CopyQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new stack", - Privilege: "CreateStack", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new user profile", - Privilege: "CreateUserProfile", + Description: "Grants permission to create a library item in the Q Business application environment", + Privilege: "CreateLibraryItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a specified app", - Privilege: "DeleteApp", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified instance, which terminates the associated Amazon EC2 instance", - Privilege: "DeleteInstance", + Description: "Grants permission to create a library item review in the Q Business application environment", + Privilege: "CreateLibraryItemReview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a specified layer", - Privilege: "DeleteLayer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified stack", - Privilege: "DeleteStack", + Description: "Grants permission to create a presigned URL for uploading a file to a Q App or Q App Session in the Q Business application environment", + Privilege: "CreatePresignedUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a user profile", - Privilege: "DeleteUserProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "qapp-session", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "qapps:UserIsSessionModerator", + "qapps:SessionIsShared", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a user profile", - Privilege: "DeregisterEcsCluster", + Description: "Grants permission to create Q App in the Q Business application environment", + Privilege: "CreateQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a specified Elastic IP address", - Privilege: "DeregisterElasticIp", + Description: "Grants permission to subscribe to a Q App event bus topic in the Q Business application environment", + Privilege: "CreateSubscriptionToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a registered Amazon EC2 or on-premises instance", - Privilege: "DeregisterInstance", + Description: "Grants permission to delete a library item in the Q Business application environment", + Privilege: "DeleteLibraryItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deregister an Amazon RDS instance", - Privilege: "DeregisterRdsDbInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an Amazon EBS volume", - Privilege: "DeregisterVolume", + Description: "Grants permission to delete Q App in the Q Business application environment", + Privilege: "DeleteQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the available AWS OpsWorks agent versions", - Privilege: "DescribeAgentVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to request a description of a specified set of apps", - Privilege: "DescribeApps", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the results of specified commands", - Privilege: "DescribeCommands", + AccessLevel: "Read", + Description: "Grants permission to get Q App sharing permissions in the Q Business application environment", + Privilege: "DescribeQAppPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to request a description of a specified set of deployments", - Privilege: "DescribeDeployments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe Amazon ECS clusters that are registered with a stack", - Privilege: "DescribeEcsClusters", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe Elastic IP addresses", - Privilege: "DescribeElasticIps", + AccessLevel: "Write", + Description: "Grants permission to disassociate a library item review in the Q Business application environment", + Privilege: "DisassociateLibraryItemReview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe a stack's Elastic Load Balancing instances", - Privilege: "DescribeElasticLoadBalancers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to request a description of a set of instances", - Privilege: "DescribeInstances", + AccessLevel: "Write", + Description: "Grants permission to disassociate Q App with a user in the Q Business application environment", + Privilege: "DisassociateQAppFromUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to request a description of one or more layers in a specified stack", - Privilege: "DescribeLayers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe load-based auto scaling configurations for specified layers", - Privilege: "DescribeLoadBasedAutoScaling", + AccessLevel: "Write", + Description: "Grants permission to export Q App session data in the Q Business application environment", + Privilege: "ExportQAppSessionData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe a user's SSH information", - Privilege: "DescribeMyUserProfile", + AccessLevel: "Read", + Description: "Grants permission to get a library item in the Q Business application environment", + Privilege: "GetLibraryItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the operating systems that are supported by AWS OpsWorks Stacks", - Privilege: "DescribeOperatingSystems", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the permissions for a specified stack", - Privilege: "DescribePermissions", + AccessLevel: "Read", + Description: "Grants permission to get Q App in the Q Business application environment", + Privilege: "GetQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe an instance's RAID arrays", - Privilege: "DescribeRaidArrays", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe Amazon RDS instances", - Privilege: "DescribeRdsDbInstances", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe AWS OpsWorks service errors", - Privilege: "DescribeServiceErrors", + AccessLevel: "Read", + Description: "Grants permission to get Q App session in the Q Business application environment", + Privilege: "GetQAppSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to request a description of a stack's provisioning parameters", - Privilege: "DescribeStackProvisioningParameters", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "qapps:UserIsSessionModerator", + "qapps:SessionIsShared", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the number of layers and apps in a specified stack, and the number of instances in each state, such as running_setup or online", - Privilege: "DescribeStackSummary", + AccessLevel: "Read", + Description: "Grants permission to get Q App session metadata in the Q Business application environment", + Privilege: "GetQAppSessionMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to request a description of one or more stacks", - Privilege: "DescribeStacks", + AccessLevel: "Write", + Description: "Grants permission to import a document to Q App or Q App Session in the Q Business application environment", + Privilege: "ImportDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe time-based auto scaling configurations for specified instances", - Privilege: "DescribeTimeBasedAutoScaling", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe specified users", - Privilege: "DescribeUserProfiles", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "qapps:UserIsSessionModerator", + "qapps:SessionIsShared", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe an instance's Amazon EBS volumes", - Privilege: "DescribeVolumes", + AccessLevel: "Write", + Description: "Grants permission to import a document to Q App in the Q Business application environment", + Privilege: "ImportDocumentToQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to detache a specified Elastic Load Balancing instance from its layer", - Privilege: "DetachElasticLoadBalancer", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an Elastic IP address from its instance", - Privilege: "DisassociateElasticIp", + Description: "Grants permission to import a document to Q App session in the Q Business application environment", + Privilege: "ImportDocumentToQAppSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a generated host name for the specified layer, based on the current host name theme", - Privilege: "GetHostnameSuggestion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to grant RDP access to a Windows instance for a specified time period", - Privilege: "GrantAccess", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "qapps:UserIsSessionModerator", + "qapps:SessionIsShared", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of tags that are applied to the specified stack or layer", - Privilege: "ListTags", + Description: "Grants permission to list categories in the Q Business application environment", + Privilege: "ListCategories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reboot a specified instance", - Privilege: "RebootInstance", + AccessLevel: "List", + Description: "Grants permission to list library items in the Q Business application environment", + Privilege: "ListLibraryItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a specified Amazon ECS cluster with a stack", - Privilege: "RegisterEcsCluster", + AccessLevel: "Read", + Description: "Grants permission to get Q App session data in the Q Business application environment", + Privilege: "ListQAppSessionData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register an Elastic IP address with a specified stack", - Privilege: "RegisterElasticIp", + AccessLevel: "List", + Description: "Grants permission to list Q Apps in the Q Business application environment", + Privilege: "ListQApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register instances with a specified stack that were created outside of AWS OpsWorks", - Privilege: "RegisterInstance", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to register an Amazon RDS instance with a stack", - Privilege: "RegisterRdsDbInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register an Amazon EBS volume with a specified stack", - Privilege: "RegisterVolume", + Description: "Grants permission to predict problem statement from conversation log in the Q Business application environment", + Privilege: "PredictProblemStatementFromConversation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify the load-based auto scaling configuration for a specified layer", - Privilege: "SetLoadBasedAutoScaling", + Description: "Grants permission to predict Q App from conversation log or problem statement in the Q Business application environment", + Privilege: "PredictQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to specify a user's permissions", - Privilege: "SetPermission", + AccessLevel: "Write", + Description: "Grants permission to predict Q App metadata from problem statement in the Q Business application environment", + Privilege: "PredictQAppFromProblemStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify the time-based auto scaling configuration for a specified instance", - Privilege: "SetTimeBasedAutoScaling", + Description: "Grants permission to start Q App session in the Q Business application environment", + Privilege: "StartQAppSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a specified instance", - Privilege: "StartInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a stack's instances", - Privilege: "StartStack", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a specified instance", - Privilege: "StopInstance", + Description: "Grants permission to stop Q App session in the Q Business application environment", + Privilege: "StopQAppSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop a specified stack", - Privilege: "StopStack", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "qapps:UserIsSessionModerator", + "qapps:SessionIsShared", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to apply tags to a specified stack or layer", + Description: "Grants permission to tag a resource with given key value pairs", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to unassign a registered instance from all of it's layers", - Privilege: "UnassignInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to unassign an assigned Amazon EBS volume", - Privilege: "UnassignVolume", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a specified stack or layer", + Description: "Grants permission to remove the tag with the given key from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a specified app", - Privilege: "UpdateApp", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a registered Elastic IP address's name", - Privilege: "UpdateElasticIp", + Description: "Grants permission to update a library item in the Q Business application environment", + Privilege: "UpdateLibraryItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a specified instance", - Privilege: "UpdateInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a specified layer", - Privilege: "UpdateLayer", + Description: "Grants permission to update the metadata of a library item in the Q Business application environment", + Privilege: "UpdateLibraryItemMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp*", + }, + { + ConditionKeys: []string{ + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a user's SSH public key", - Privilege: "UpdateMyUserProfile", + Description: "Grants permission to update Q App in the Q Business application environment", + Privilege: "UpdateQApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Amazon RDS instance", - Privilege: "UpdateRdsDbInstance", + Description: "Grants permission to update Q App sharing permissions in the Q Business application environment", + Privilege: "UpdateQAppPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a specified stack", - Privilege: "UpdateStack", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update a specified user profile", - Privilege: "UpdateUserProfile", + AccessLevel: "Write", + Description: "Grants permission to update Q App session in the Q Business application environment", + Privilege: "UpdateQAppSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "qapp-session*", + }, + { + ConditionKeys: []string{ + "qapps:UserIsAppOwner", + "qapps:AppIsPublished", + "qapps:UserIsSessionModerator", + "qapps:SessionIsShared", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Amazon EBS volume's name or mount point", - Privilege: "UpdateVolume", + Description: "Grants permission to update Q App session metadata in the Q Business application environment", + Privilege: "UpdateQAppSessionMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stack", + ResourceType: "qapp-session*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:opsworks:${Region}:${Account}:stack/${StackId}/", + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}", ConditionKeys: []string{}, - Resource: "stack", + Resource: "application", + }, + { + Arn: "arn:${Partition}:qapps:${Region}:${Account}:application/${ApplicationId}/qapp/${AppId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "qapp", + }, + { + Arn: "arn:${Partition}:qapps:${Region}:${Account}:application/${ApplicationId}/qapp/${AppId}/session/${SessionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "qapp-session", }, }, - ServiceName: "AWS OpsWorks", + ServiceName: "Amazon Q Business Q Apps", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "opsworks-cm", + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "identitystore:GroupId", + Description: "Filters access by IAM Identity Center Group ID", + Type: "ArrayOfString", + }, + { + Condition: "identitystore:UserId", + Description: "Filters access by IAM Identity Center User ID", + Type: "ArrayOfString", + }, + }, + Prefix: "qbusiness", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate a node to a configuration management server", - Privilege: "AssociateNode", + Description: "Grants permission to add one or more users for licenses", + Privilege: "AddUserLicenses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -199838,144 +244726,157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a backup for the specified server", - Privilege: "CreateBackup", + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for Amazon Q Business application resource", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new server", - Privilege: "CreateServer", + Description: "Grants permission to associate resource based policy statement to the application", + Privilege: "AssociatePermission", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "qbusiness:PutResourcePolicy", + }, + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified backup and possibly its S3 bucket", - Privilege: "DeleteBackup", + Description: "Grants permission to batch delete document", + Privilege: "BatchDeleteDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified server with its corresponding CloudFormation stack and possibly the S3 bucket", - Privilege: "DeleteServer", + Description: "Grants permission to batch put document", + Privilege: "BatchPutDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the service limits for the user's account", - Privilege: "DescribeAccountAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe a single backup, all backups of a specified server or all backups of the user's account", - Privilege: "DescribeBackups", + AccessLevel: "Write", + Description: "Grants permission to cancel a subscription", + Privilege: "CancelSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subscription*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe all events of the specified server", - Privilege: "DescribeEvents", + AccessLevel: "Read", + Description: "Grants permission to chat using an application", + Privilege: "Chat", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the association status for the specified node token and the specified server", - Privilege: "DescribeNodeAssociationStatus", + AccessLevel: "Read", + Description: "Grants permission to chat synchronously using an application", + Privilege: "ChatSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe the specified server or all servers of the user's account", - Privilege: "DescribeServers", + AccessLevel: "Read", + Description: "Grants permission to check if a user has access to a document", + Privilege: "CheckDocumentAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a specified node from a server", - Privilege: "DisassociateNode", + Description: "Grants permission to create a unique URL for anonymous Amazon Q Business web experience", + Privilege: "CreateAnonymousWebExperienceUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to export an engine attribute from a server", - Privilege: "ExportServerEngineAttribute", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "web-experience*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags that are applied to the specified server or backup", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -199983,56 +244884,85 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to apply a backup to specified server. Possibly swaps out the ec2-instance if specified", - Privilege: "RestoreServer", + Description: "Grants permission to create DataAccessor to the application", + Privilege: "CreateDataAccessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the server maintenance immediately", - Privilege: "StartMaintenance", + Description: "Grants permission to create a data source for a given application and index", + Privilege: "CreateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to apply tags to the specified server or backup", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create an index for a given application", + Privilege: "CreateIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified server or backup", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a new integration for a Q Business application", + Privilege: "CreateIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update general server settings", - Privilege: "UpdateServer", + Description: "Grants permission to create a license", + Privilege: "CreateLicense", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -200043,103 +244973,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update server settings specific to the configuration management type", - Privilege: "UpdateServerEngineAttributes", + Description: "Grants permission to create a plugin for a given application", + Privilege: "CreatePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:opsworks-cm::${Account}:server/${ServerName}/${UniqueId}", - ConditionKeys: []string{}, - Resource: "server", - }, - { - Arn: "arn:${Partition}:opsworks-cm::${Account}:backup/${ServerName}-{Date-and-Time-Stamp-of-Backup}", - ConditionKeys: []string{}, - Resource: "backup", - }, - }, - ServiceName: "AWS OpsWorks Configuration Management", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "organizations:PolicyType", - Description: "Filters access by the specified policy type names", - Type: "String", - }, - { - Condition: "organizations:ServicePrincipal", - Description: "Filters access by the specified service principal names", - Type: "String", - }, - }, - Prefix: "organizations", - Privileges: []ParliamentPrivilege{ + }, + }, { AccessLevel: "Write", - Description: "Grants permission to send a response to the originator of a handshake agreeing to the action proposed by the handshake request", - Privilege: "AcceptHandshake", + Description: "Grants permission to create a retriever for a given application", + Privilege: "CreateRetriever", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "handshake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to attach a policy to a root, an organizational unit, or an individual account", - Privilege: "AttachPolicy", + Description: "Grants permission to create a subscription", + Privilege: "CreateSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "identitystore:UserId", + "identitystore:GroupId", + }, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a user", + Privilege: "CreateUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a web experience for a given application", + Privilege: "CreateWebExperience", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "application*", }, { ConditionKeys: []string{ - "organizations:PolicyType", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -200148,654 +245065,729 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to cancel a handshake", - Privilege: "CancelHandshake", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "handshake*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to close an AWS account that is now a part of an Organizations, either created within the organization, or invited to join the organization", - Privilege: "CloseAccount", + Description: "Grants permission to delete an attachment in the current chat context", + Privilege: "DeleteAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS account that is automatically a member of the organization with the credentials that made the request", - Privilege: "CreateAccount", + Description: "Grants permission to delete chat controls configuration for an application", + Privilege: "DeleteChatControlsConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS GovCloud (US) account", - Privilege: "CreateGovCloudAccount", + Description: "Grants permission to delete a conversation", + Privilege: "DeleteConversation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an organization. The account with the credentials that calls the CreateOrganization operation automatically becomes the management account of the new organization", - Privilege: "CreateOrganization", + Description: "Grants permission to delete DataAccessor", + Privilege: "DeleteDataAccessor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-accessor*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an organizational unit (OU) within a root or parent OU", - Privilege: "CreateOrganizationalUnit", + Description: "Grants permission to delete a DataSource", + Privilege: "DeleteDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "data-source*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a policy that you can attach to a root, an organizational unit (OU), or an individual AWS account", - Privilege: "CreatePolicy", + Description: "Grants permission to delete a group", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:PolicyType", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to decline a handshake request. This sets the handshake state to DECLINED and effectively deactivates the request", - Privilege: "DeclineHandshake", + Description: "Grants permission to delete an index", + Privilege: "DeleteIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "handshake*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the organization", - Privilege: "DeleteOrganization", + Description: "Grants permission to delete an integration for a Q Business application", + Privilege: "DeleteIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an organizational unit from a root or another OU", - Privilege: "DeleteOrganizationalUnit", + Description: "Grants permission to delete a plugin", + Privilege: "DeletePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "plugin*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a policy from your organization", - Privilege: "DeletePolicy", + Description: "Grants permission to delete a retriever", + Privilege: "DeleteRetriever", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "retriever*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy from your organization", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to delete a user", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister the specified member AWS account as a delegated administrator for the AWS service that is specified by ServicePrincipal", - Privilege: "DeregisterDelegatedAdministrator", + Description: "Grants permission to delete a web-experience", + Privilege: "DeleteWebExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "organizations:ServicePrincipal", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "web-experience*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve Organizations-related details about the specified account", - Privilege: "DescribeAccount", + AccessLevel: "Write", + Description: "Grants permission to disable the ACL crawl while creating the Amazon Q Business data source resource", + Privilege: "DisableAclOnDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the current status of an asynchronous request to create an account", - Privilege: "DescribeCreateAccountStatus", + AccessLevel: "Write", + Description: "Grants permission to disassociate resource based policy statement to the application", + Privilege: "DisassociatePermission", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "qbusiness:PutResourcePolicy", + }, + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the effective policy for an account", - Privilege: "DescribeEffectivePolicy", + Description: "Grants permission to get an application", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get chat controls configuration for an application", + Privilege: "GetChatControlsConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about a previously requested handshake", - Privilege: "DescribeHandshake", + Description: "Grants permission to get DataAccessor", + Privilege: "GetDataAccessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "handshake*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-accessor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieves details about the organization that the calling credentials belong to", - Privilege: "DescribeOrganization", + Description: "Grants permission to get a data source", + Privilege: "GetDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-source*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about an organizational unit (OU)", - Privilege: "DescribeOrganizationalUnit", + Description: "Grants permission to get a group", + Privilege: "GetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieves details about a policy", - Privilege: "DescribePolicy", + Description: "Grants permission to get an index", + Privilege: "GetIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a resource policy", - Privilege: "DescribeResourcePolicy", + Description: "Grants permission to get an integration for a Q Business application", + Privilege: "GetIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to detach a policy from a target root, organizational unit, or account", - Privilege: "DetachPolicy", + AccessLevel: "Read", + Description: "Grants permission to get a license", + Privilege: "GetLicense", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "user-license*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the media associated to a system message", + Privilege: "GetMedia", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a plugin", + Privilege: "GetPlugin", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", - }, - { - ConditionKeys: []string{ - "organizations:PolicyType", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "plugin*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations", - Privilege: "DisableAWSServiceAccess", + AccessLevel: "Read", + Description: "Grants permission to get resource based policy of the application", + Privilege: "GetPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:ServicePrincipal", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable an organization policy type in a root", - Privilege: "DisablePolicyType", + AccessLevel: "Read", + Description: "Grants permission to get a retriever", + Privilege: "GetRetriever", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "retriever*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable integration of an AWS service (the service that is specified by ServicePrincipal) with AWS Organizations", - Privilege: "EnableAWSServiceAccess", + AccessLevel: "Read", + Description: "Grants permission to get a user", + Privilege: "GetUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:ServicePrincipal", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the process to enable all features in an organization, upgrading it from supporting only Consolidated Billing features", - Privilege: "EnableAllFeatures", + AccessLevel: "Read", + Description: "Grants permission to get a web-experience", + Privilege: "GetWebExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "web-experience*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable a policy type in a root", - Privilege: "EnablePolicyType", + AccessLevel: "List", + Description: "Grants permission to list the applications", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root*", - }, - { - ConditionKeys: []string{ - "organizations:PolicyType", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send an invitation to another AWS account, asking it to join your organization as a member account", - Privilege: "InviteAccountToOrganization", + AccessLevel: "List", + Description: "Grants permission to list attachments in the current chat context", + Privilege: "ListAttachments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a member account from its parent organization", - Privilege: "LeaveOrganization", + AccessLevel: "List", + Description: "Grants permission to list all conversations for an application", + Privilege: "ListConversations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve the list of the AWS services for which you enabled integration with your organization", - Privilege: "ListAWSServiceAccessForOrganization", + Description: "Grants permission to list DataAccessors for the application", + Privilege: "ListDataAccessors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all of the the accounts in the organization", - Privilege: "ListAccounts", + Description: "Grants permission to get Data Source sync job history", + Privilege: "ListDataSourceSyncJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-source*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the accounts in an organization that are contained by a root or organizational unit (OU)", - Privilege: "ListAccountsForParent", + Description: "Grants permission to list the data sources of an application and an index", + Privilege: "ListDataSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all of the OUs or accounts that are contained in a parent OU or root", - Privilege: "ListChildren", + Description: "Grants permission to list all documents", + Privilege: "ListDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the asynchronous account creation requests that are currently being tracked for the organization", - Privilege: "ListCreateAccountStatus", + Description: "Grants permission to list groups", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "index*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the AWS accounts that are designated as delegated administrators in this organization", - Privilege: "ListDelegatedAdministrators", + Description: "Grants permission to list the indices of an application", + Privilege: "ListIndices", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:ServicePrincipal", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the AWS services for which the specified account is a delegated administrator in this organization", - Privilege: "ListDelegatedServicesForAccount", + Description: "Grants permission to list all integrations for a Q Business application", + Privilege: "ListIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all of the handshakes that are associated with an account", - Privilege: "ListHandshakesForAccount", + Description: "Grants permission to list all messages", + Privilege: "ListMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the handshakes that are associated with the organization", - Privilege: "ListHandshakesForOrganization", + AccessLevel: "Read", + Description: "Grants permission to list the plugins actions of a plugin within application", + Privilege: "ListPluginActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "plugin*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to lists all of the organizational units (OUs) in a parent organizational unit or root", - Privilege: "ListOrganizationalUnitsForParent", + AccessLevel: "Read", + Description: "Grants permission to list all the actions for a plugin type", + Privilege: "ListPluginTypeActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the plugin type metadata", + Privilege: "ListPluginTypeMetadata", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the root or organizational units (OUs) that serve as the immediate parent of a child OU or account", - Privilege: "ListParents", + Description: "Grants permission to list the plugins of an application", + Privilege: "ListPlugins", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the retrievers of an application", + Privilege: "ListRetrievers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all of the policies in an organization", - Privilege: "ListPolicies", + Description: "Grants permission to list subscriptions", + Privilege: "ListSubscriptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the policies that are directly attached to a root, organizational unit (OU), or account", - Privilege: "ListPoliciesForTarget", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "data-accessor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "data-source", }, { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "plugin", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "retriever", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "web-experience", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all of the roots that are defined in the organization", - Privilege: "ListRoots", + Description: "Grants permission to list licenses", + Privilege: "ListUserLicenses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -200806,162 +245798,191 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all tags for the specified resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to list the web experiences of an application", + Privilege: "ListWebExperiences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put feedback about a conversation message", + Privilege: "PutFeedback", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put a group of users", + Privilege: "PutGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy", + ResourceType: "application*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcepolicy", + ResourceType: "index*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put resource based policy statement to the application", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the roots, OUs, and accounts to which a policy is attached", - Privilege: "ListTargetsForPolicy", + AccessLevel: "Write", + Description: "Grants permission to remove licenses for one or more users", + Privilege: "RemoveUserLicenses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to search relevant content from the Amazon Q Business Application", + Privilege: "SearchRelevantContent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "organizations:PolicyType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to move an account from its current root or OU to another parent root or OU", - Privilege: "MoveAccount", + Description: "Grants permission to start Data Source sync job", + Privilege: "StartDataSourceSyncJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit*", + ResourceType: "data-source*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root*", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a resource policy", - Privilege: "PutResourcePolicy", + Description: "Grants permission to start deployment for an integration", + Privilege: "StartDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcepolicy*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "integration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register the specified member account to administer the Organizations features of the AWS service that is specified by ServicePrincipal", - Privilege: "RegisterDelegatedAdministrator", + Description: "Grants permission to stop Data Source sync job", + Privilege: "StopDataSourceSyncJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "organizations:ServicePrincipal", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-source*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to removes the specified account from the organization", - Privilege: "RemoveAccountFromOrganization", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "index*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to the specified resource", + Description: "Grants permission to tag a resource with given key value pairs", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "data-accessor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy", + ResourceType: "data-source", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcepolicy", + ResourceType: "index", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "integration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "plugin", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "retriever", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "web-experience", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -200970,380 +245991,305 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the specified resource", + Description: "Grants permission to remove the tag with the given key from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit", + ResourceType: "data-accessor", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy", + ResourceType: "data-source", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcepolicy", + ResourceType: "index", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "root", + ResourceType: "integration", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "plugin", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to rename an organizational unit (OU)", - Privilege: "UpdateOrganizationalUnit", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "organizationalunit*", + ResourceType: "retriever", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing policy with a new name, description, or content", - Privilege: "UpdatePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "policy*", + ResourceType: "web-experience", }, { ConditionKeys: []string{ - "organizations:PolicyType", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:organizations::${Account}:account/o-${OrganizationId}/${AccountId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "account", - }, - { - Arn: "arn:${Partition}:organizations::${Account}:handshake/o-${OrganizationId}/${HandshakeType}/h-${HandshakeId}", - ConditionKeys: []string{}, - Resource: "handshake", - }, - { - Arn: "arn:${Partition}:organizations::${Account}:organization/o-${OrganizationId}", - ConditionKeys: []string{}, - Resource: "organization", - }, - { - Arn: "arn:${Partition}:organizations::${Account}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "organizationalunit", - }, - { - Arn: "arn:${Partition}:organizations::${Account}:policy/o-${OrganizationId}/${PolicyType}/p-${PolicyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "policy", - }, - { - Arn: "arn:${Partition}:organizations::${Account}:resourcepolicy/o-${OrganizationId}/rp-${ResourcePolicyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resourcepolicy", - }, - { - Arn: "arn:${Partition}:organizations::aws:policy/${PolicyType}/p-${PolicyId}", - ConditionKeys: []string{}, - Resource: "awspolicy", - }, - { - Arn: "arn:${Partition}:organizations::${Account}:root/o-${OrganizationId}/r-${RootId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "root", - }, - }, - ServiceName: "AWS Organizations", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "osis", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an OpenSearch Ingestion pipeline", - Privilege: "CreatePipeline", + Description: "Grants permission to update an Application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlaintext", - "logs:CreateLogDelivery", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an OpenSearch Ingestion pipeline", - Privilege: "DeletePipeline", + Description: "Grants permission to update chat controls configuration for an application", + Privilege: "UpdateChatControlsConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "logs:DeleteLogDelivery", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - }, - ResourceType: "pipeline*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve configuration information for an OpenSearch Ingestion pipeline", - Privilege: "GetPipeline", + AccessLevel: "Write", + Description: "Grants permission to update DataAccessor", + Privilege: "UpdateDataAccessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "application*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the contents of an OpenSearch Ingestion pipeline blueprint", - Privilege: "GetPipelineBlueprint", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-blueprint*", + ResourceType: "data-accessor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get granular information about the status of an OpenSearch Ingestion pipeline", - Privilege: "GetPipelineChangeProgress", + AccessLevel: "Write", + Description: "Grants permission to update a DataSource", + Privilege: "UpdateDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "application*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to ingest data through an OpenSearch Ingestion pipeline", - Privilege: "Ingest", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "data-source*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the names of available blueprints for an OpenSearch Ingestion pipeline configuration", - Privilege: "ListPipelineBlueprints", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "index*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list basic configuration for each OpenSearch Ingestion pipeline in the current account and Region", - Privilege: "ListPipelines", + AccessLevel: "Write", + Description: "Grants permission to update an index", + Privilege: "UpdateIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all resource tags associated with an OpenSearch Ingestion pipeline", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "index*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an OpenSearch Ingestion pipeline", - Privilege: "StartPipeline", + Description: "Grants permission to update an integration for a Q Business application", + Privilege: "UpdateIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "integration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an OpenSearch Ingestion pipeline", - Privilege: "StopPipeline", + Description: "Grants permission to update a plugin", + Privilege: "UpdatePlugin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "plugin*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to attach resource tags to an OpenSearch Ingestion pipeline", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update a Retriever", + Privilege: "UpdateRetriever", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "retriever*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove resource tags from an OpenSearch Ingestion Service pipeline", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a subscription", + Privilege: "UpdateSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "application*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subscription*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the configuration of an OpenSearch Ingestion pipeline", - Privilege: "UpdatePipeline", + Description: "Grants permission to update a user", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "kms:DescribeKey", - "kms:GenerateDataKeyWithoutPlaintext", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:UpdateLogDelivery", - }, - ResourceType: "pipeline*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to validate the configuration of an OpenSearch Ingestion pipeline", - Privilege: "ValidatePipeline", + AccessLevel: "Write", + Description: "Grants permission to update a WebExperience", + Privilege: "UpdateWebExperience", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "web-experience*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:osis:${Region}:${Account}:pipeline/${PipelineName}", + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "pipeline", + Resource: "application", }, { - Arn: "arn:${Partition}:osis:${Region}:${Account}:blueprint/${BlueprintName}", + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/integration/${IntegrationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "integration", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/retriever/${RetrieverId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "retriever", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/index/${IndexId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "index", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/index/${IndexId}/data-source/${DataSourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "data-source", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/plugin/${PluginId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "plugin", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/web-experience/${WebExperienceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "web-experience", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/user-license/${UserLicenseId}", ConditionKeys: []string{}, - Resource: "pipeline-blueprint", + Resource: "user-license", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/subscription/${SubscriptionId}", + ConditionKeys: []string{}, + Resource: "subscription", + }, + { + Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/data-accessor/${DataAccessorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "data-accessor", }, }, - ServiceName: "Amazon OpenSearch Ingestion", + ServiceName: "Amazon Q Business", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -201354,7 +246300,7 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Description: "Filters access by the tags associated with the Amazon Q Developer resource", Type: "String", }, { @@ -201363,58 +246309,53 @@ func getParliamentIamPermissions() ParliamentPermissions { Type: "ArrayOfString", }, }, - Prefix: "outposts", + Prefix: "qdeveloper", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to cancel a Capacity Task", - Privilege: "CancelCapacityTask", + Description: "Grants permission to export artifacts from Amazon Q Developer", + Privilege: "ExportArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "codeTransformation", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel an order", - Privilege: "CancelOrder", + Description: "Grants permission to import artifacts to Amazon Q Developer", + Privilege: "ImportArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "codeTransformation", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an order", - Privilege: "CreateOrder", + AccessLevel: "List", + Description: "Grants permission to list all tags associated with an Amazon Q Developer resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "codeTransformation", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Outpost", - Privilege: "CreateOutpost", + Description: "Grants permission to start an agent session with Amazon Q Developer", + Privilege: "StartAgentSession", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "site*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -201422,26 +246363,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a private connectivity configuration", - Privilege: "CreatePrivateConnectivityConfig", + AccessLevel: "Tagging", + Description: "Grants permission to associate tags with an Amazon Q Developer resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "codeTransformation", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a site", - Privilege: "CreateSite", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -201450,188 +246384,240 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an Outpost", - Privilege: "DeleteOutpost", + Description: "Grants permission to transform code with Amazon Q Developer Transform Agent", + Privilege: "TransformCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "codeTransformation", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a site", - Privilege: "DeleteSite", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with an Amazon Q Developer resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "codeTransformation", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified Capacity Task", - Privilege: "GetCapacityTask", + Arn: "arn:${Partition}:qdeveloper:${Region}:${Account}:codeTransformation/${Identifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "codeTransformation", + }, + }, + ServiceName: "Amazon Q Developer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "qldb:Purge", + Description: "Filters access by the value of purge that is specified in a PartiQL DROP statement", + Type: "String", + }, + }, + Prefix: "qldb", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to cancel a journal kinesis stream", + Privilege: "CancelJournalKinesisStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "stream*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a catalog item", - Privilege: "GetCatalogItem", + AccessLevel: "Write", + Description: "Grants permission to create a ledger", + Privilege: "CreateLedger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "ledger*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the connection for your Outpost server", - Privilege: "GetConnection", + AccessLevel: "Write", + Description: "Grants permission to delete a ledger", + Privilege: "DeleteLedger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ledger*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about an order", - Privilege: "GetOrder", + Description: "Grants permission to describe information about a journal kinesis stream", + Privilege: "DescribeJournalKinesisStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about the specified Outpost", - Privilege: "GetOutpost", + Description: "Grants permission to describe information about a journal export job", + Privilege: "DescribeJournalS3Export", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "ledger*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the instance types for the specified Outpost", - Privilege: "GetOutpostInstanceTypes", + Description: "Grants permission to describe a ledger", + Privilege: "DescribeLedger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "ledger*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the supported instance types for the specified Outpost", - Privilege: "GetOutpostSupportedInstanceTypes", + AccessLevel: "Write", + Description: "Grants permission to send commands to a ledger via the console", + Privilege: "ExecuteStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "ledger*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a private connectivity configuration", - Privilege: "GetPrivateConnectivityConfig", + AccessLevel: "Write", + Description: "Grants permission to export journal contents to an Amazon S3 bucket", + Privilege: "ExportJournalToS3", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ledger*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a site", - Privilege: "GetSite", + Description: "Grants permission to retrieve a block from a ledger for a given BlockAddress", + Privilege: "GetBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "ledger*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a site address", - Privilege: "GetSiteAddress", + Description: "Grants permission to retrieve a digest from a ledger for a given BlockAddress", + Privilege: "GetDigest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "ledger*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the assets for your Outpost", - Privilege: "ListAssets", + AccessLevel: "Read", + Description: "Grants permission to retrieve a revision for a given document ID and a given BlockAddress", + Privilege: "GetRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ledger*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Capacity Tasks for your AWS account", - Privilege: "ListCapacityTasks", + AccessLevel: "Write", + Description: "Grants permission to insert sample application data via the console", + Privilege: "InsertSampleData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ledger*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all catalog items", - Privilege: "ListCatalogItems", + Description: "Grants permission to list journal kinesis streams for a specified ledger", + Privilege: "ListJournalKinesisStreamsForLedger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the orders for your AWS account", - Privilege: "ListOrders", + Description: "Grants permission to list journal export jobs for all ledgers", + Privilege: "ListJournalS3Exports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -201642,20 +246628,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the Outposts for your AWS account", - Privilege: "ListOutposts", + Description: "Grants permission to list journal export jobs for a specified ledger", + Privilege: "ListJournalS3ExportsForLedger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ledger*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the sites for your AWS account", - Privilege: "ListSites", + Description: "Grants permission to list existing ledgers", + Privilege: "ListLedgers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -201672,48 +246658,46 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Capacity Task", - Privilege: "StartCapacityTask", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "ledger", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "stream", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "table", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a connection for your Outpost server", - Privilege: "StartConnection", + Description: "Grants permission to create an index on a table", + Privilege: "PartiQLCreateIndex", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a table", + Privilege: "PartiQLCreateTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "site", + ResourceType: "table*", }, { ConditionKeys: []string{ @@ -201726,23 +246710,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete documents from a table", + Privilege: "PartiQLDelete", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost", + ResourceType: "table*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to drop an index from a table", + Privilege: "PartiQLDropIndex", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site", + ResourceType: "table*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "qldb:Purge", }, DependentActions: []string{}, ResourceType: "", @@ -201751,401 +246742,340 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an Outpost", - Privilege: "UpdateOutpost", + Description: "Grants permission to drop a table", + Privilege: "PartiQLDropTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost*", + ResourceType: "table*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a site", - Privilege: "UpdateSite", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "qldb:Purge", + }, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the site address", - Privilege: "UpdateSiteAddress", + AccessLevel: "Read", + Description: "Grants permission to use the history function on a table", + Privilege: "PartiQLHistoryFunction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the physical properties of a rack at a site", - Privilege: "UpdateSiteRackPhysicalProperties", + Description: "Grants permission to insert documents into a table", + Privilege: "PartiQLInsert", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "site*", + ResourceType: "table*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:outposts:${Region}:${Account}:outpost/${OutpostId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "outpost", - }, - { - Arn: "arn:${Partition}:outposts:${Region}:${Account}:site/${SiteId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "site", - }, - }, - ServiceName: "AWS Outposts", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "panorama", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an AWS Panorama Application Instance", - Privilege: "CreateApplicationInstance", + Description: "Grants permission to redact historic revisions", + Privilege: "PartiQLRedact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a job for an AWS Panorama Appliance", - Privilege: "CreateJobForDevices", + AccessLevel: "Read", + Description: "Grants permission to select documents from a table", + Privilege: "PartiQLSelect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "catalog", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an AWS Panorama Node", - Privilege: "CreateNodeFromTemplateJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Panorama Package", - Privilege: "CreatePackage", + Description: "Grants permission to undrop a table", + Privilege: "PartiQLUndropTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS Panorama Package", - Privilege: "CreatePackageImportJob", + Description: "Grants permission to update existing documents in a table", + Privilege: "PartiQLUpdate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an AWS Panorama Appliance", - Privilege: "DeleteDevice", + Description: "Grants permission to send commands to a ledger", + Privilege: "SendCommand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "ledger*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Panorama Package", - Privilege: "DeletePackage", + Description: "Grants permission to view a ledger's catalog via the console", + Privilege: "ShowCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "ledger*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister an AWS Panorama package version", - Privilege: "DeregisterPackageVersion", + Description: "Grants permission to stream journal contents to a Kinesis Data Stream", + Privilege: "StreamJournalToKinesis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "stream*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama application instance", - Privilege: "DescribeApplicationInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "applicationInstance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama application instance", - Privilege: "DescribeApplicationInstanceDetails", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance*", + ResourceType: "catalog", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama Appliance", - Privilege: "DescribeDevice", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "ledger", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view job details for an AWS Panorama Appliance", - Privilege: "DescribeDeviceJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "stream", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama application node", - Privilege: "DescribeNode", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about AWS Panorama application node", - Privilege: "DescribeNodeFromTemplateJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama package", - Privilege: "DescribePackage", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "catalog", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama package", - Privilege: "DescribePackageImportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ledger", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about an AWS Panorama package version", - Privilege: "DescribePackageVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "stream", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details about a software version for the AWS Panorama Appliance", - Privilege: "DescribeSoftware", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "table", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to generate a WebSocket endpoint for communication with AWS Panorama", - Privilege: "GetWebSocketURL", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of application instance dependencies in AWS Panorama", - Privilege: "ListApplicationInstanceDependencies", + AccessLevel: "Write", + Description: "Grants permission to update properties on a ledger", + Privilege: "UpdateLedger", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance*", + ResourceType: "ledger*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of node instances of application instances in AWS Panorama", - Privilege: "ListApplicationInstanceNodeInstances", + AccessLevel: "Write", + Description: "Grants permission to update the permissions mode on a ledger", + Privilege: "UpdateLedgerPermissionsMode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance*", + ResourceType: "ledger*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of application instances in AWS Panorama", - Privilege: "ListApplicationInstances", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device", - }, + Arn: "arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "ledger", }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of appliances in AWS Panorama", - Privilege: "ListDevices", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:qldb:${Region}:${Account}:stream/${LedgerName}/${StreamId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "stream", }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of jobs for an AWS Panorama Appliance", - Privilege: "ListDevicesJobs", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device", - }, + Arn: "arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}/table/${TableId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "table", }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of Nodes for an AWS Panorama Appliance", - Privilege: "ListNodeFromTemplateJobs", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}/information_schema/user_tables", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "catalog", + }, + }, + ServiceName: "Amazon QLDB", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tag key-value pairs in the request", + Type: "String", }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of nodes in AWS Panorama", - Privilege: "ListNodes", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys", + Type: "ArrayOfString", + }, + { + Condition: "identitystore:GroupId", + Description: "Filters access by IdentityStore group ARN", + Type: "ARN", + }, + { + Condition: "quicksight:AllowedEmbeddingDomains", + Description: "Filters access by the allowed embedding domains", + Type: "ArrayOfString", + }, + { + Condition: "quicksight:DirectoryType", + Description: "Filters access by the user management options", + Type: "String", + }, + { + Condition: "quicksight:Edition", + Description: "Filters access by the edition of QuickSight", + Type: "String", + }, + { + Condition: "quicksight:Group", + Description: "Filters access by QuickSight group ARN", + Type: "ARN", + }, + { + Condition: "quicksight:IamArn", + Description: "Filters access by IAM user or role ARN", + Type: "ARN", + }, + { + Condition: "quicksight:KmsKeyArns", + Description: "Filters access by KMS key ARNs", + Type: "ArrayOfARN", + }, + { + Condition: "quicksight:SessionName", + Description: "Filters access by session name", + Type: "String", + }, + { + Condition: "quicksight:UserName", + Description: "Filters access by user name", + Type: "String", + }, + }, + Prefix: "quicksight", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to enable setting default access to AWS resources", + Privilege: "AccountConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -202155,60 +247085,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of packages in AWS Panorama", - Privilege: "ListPackageImportJobs", + AccessLevel: "Write", + Description: "Grants permission to create reviewed answers for a topic", + Privilege: "BatchCreateTopicReviewedAnswer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "topic*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of packages in AWS Panorama", - Privilege: "ListPackages", + AccessLevel: "Write", + Description: "Grants permission to delete reviewed answers for a topic", + Privilege: "BatchDeleteTopicReviewedAnswer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "topic*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of tags for a resource in AWS Panorama", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to cancel a SPICE ingestions on a dataset", + Privilege: "CancelIngestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device", + ResourceType: "ingestion*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "package", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register an AWS Panorama Appliance", - Privilege: "ProvisionDevice", + Description: "Grants permission to create an account customization for QuickSight account or namespace", + Privilege: "CreateAccountCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -202217,64 +247161,85 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to register an AWS Panorama package version", - Privilege: "RegisterPackageVersion", + Description: "Grants permission to subscribe to QuickSight", + Privilege: "CreateAccountSubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:Edition", + "quicksight:DirectoryType", + }, DependentActions: []string{}, - ResourceType: "package*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove an AWS Panorama application instance", - Privilege: "RemoveApplicationInstance", + Description: "Grants permission to provision Amazon QuickSight administrators, authors, and readers", + Privilege: "CreateAdmin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to signal camera nodes in an application instance to pause or resume", - Privilege: "SignalApplicationInstanceNodeInstances", + Description: "Grants permission to create an analysis from a template", + Privilege: "CreateAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance*", + ResourceType: "analysis*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource in AWS Panorama", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon QuickSight brand", + Privilege: "CreateBrand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance", + ResourceType: "brand*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a QuickSight custom permissions resource", + Privilege: "CreateCustomPermissions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "package", + ResourceType: "custompermissions*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -202282,27 +247247,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource in AWS Panorama", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a QuickSight Dashboard", + Privilege: "CreateDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applicationInstance", + ResourceType: "dashboard*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a dataset", + Privilege: "CreateDataSet", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "package", + ConditionKeys: []string{}, + DependentActions: []string{ + "quicksight:PassDataSource", + }, + ResourceType: "datasource*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -202312,201 +247290,135 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to modify basic settings for an AWS Panorama Appliance", - Privilege: "UpdateDeviceMetadata", + Description: "Grants permission to create a data source", + Privilege: "CreateDataSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:panorama:${Region}:${Account}:device/${DeviceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "device", - }, - { - Arn: "arn:${Partition}:panorama:${Region}:${Account}:package/${PackageId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "package", - }, - { - Arn: "arn:${Partition}:panorama:${Region}:${Account}:applicationInstance/${ApplicationInstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "applicationInstance", - }, - }, - ServiceName: "AWS Panorama", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "partnercentral-account-management", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate Partner account to AWS account", - Privilege: "AssociatePartnerAccount", + Description: "Grants permission to create a QuickSight email customization template", + Privilege: "CreateEmailCustomizationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "emailCustomizationTemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate Partner user to IAM role", - Privilege: "AssociatePartnerUser", + Description: "Grants permission to create a QuickSight folder", + Privilege: "CreateFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "folder*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate Partner user to IAM role", - Privilege: "DisassociatePartnerUser", + Description: "Grants permission to add a QuickSight Dashboard, Analysis or Dataset to a QuickSight Folder", + Privilege: "CreateFolderMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "folder*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "analysis", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dashboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Partner central account management", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by both the key and value of the tag in the request for the specified operation", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags assigned to a key for the specified operation", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in the request for the specified operation", - Type: "ArrayOfString", - }, - { - Condition: "payment-cryptography:CertificateAuthorityPublicKeyIdentifier", - Description: "Filters access by the CertificateAuthorityPublicKeyIdentifier specified in the request or the ImportKey, and ExportKey operations", - Type: "String", - }, - { - Condition: "payment-cryptography:ImportKeyMaterial", - Description: "Filters access by the type of key material being imported [RootCertificatePublicKey, TrustedCertificatePublicKey, Tr34KeyBlock, Tr31KeyBlock] for the ImportKey operation", - Type: "String", - }, - { - Condition: "payment-cryptography:KeyAlgorithm", - Description: "Filters access by KeyAlgorithm specified in the request for the CreateKey operation", - Type: "String", - }, - { - Condition: "payment-cryptography:KeyClass", - Description: "Filters access by KeyClass specified in the request for the CreateKey operation", - Type: "String", - }, - { - Condition: "payment-cryptography:KeyUsage", - Description: "Filters access by KeyClass specified in the request or associated with a key for the CreateKey operation", - Type: "String", - }, - { - Condition: "payment-cryptography:RequestAlias", - Description: "Filters access by aliases in the request for the specified operation", - Type: "String", - }, - { - Condition: "payment-cryptography:ResourceAliases", - Description: "Filters access by aliases associated with a key for the specified operation", - Type: "ArrayOfString", - }, - { - Condition: "payment-cryptography:WrappingKeyIdentifier", - Description: "Filters access by the WrappingKeyIdentifier specified in the request for the ImportKey, and ExportKey operations", - Type: "String", - }, - }, - Prefix: "payment-cryptography", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a user-friendly name for a Key", - Privilege: "CreateAlias", + Description: "Grants permission to create a QuickSight group", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a unique customer managed key in the caller's AWS account and region", - Privilege: "CreateKey", + Description: "Grants permission to add a QuickSight user to a QuickSight group", + Privilege: "CreateGroupMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "quicksight:UserName", }, - DependentActions: []string{ - "payment-cryptography:TagResource", + DependentActions: []string{}, + ResourceType: "group*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to decrypt ciphertext data to plaintext using symmetric, asymmetric or DUKPT data encryption key", - Privilege: "DecryptData", + Description: "Grants permission to create an assignment with one specified IAM Policy ARN that will be assigned to specified groups or users of QuickSight", + Privilege: "CreateIAMPolicyAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assignment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified alias", - Privilege: "DeleteAlias", + Description: "Grants permission to start a SPICE ingestion on a dataset", + Privilege: "CreateIngestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", + ResourceType: "ingestion*", }, { ConditionKeys: []string{ @@ -202520,90 +247432,126 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to schedule the deletion of a Key", - Privilege: "DeleteKey", + Description: "Grants permission to create an QuickSight namespace", + Privilege: "CreateNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:CreateIdentityPoolDirectory", + }, + ResourceType: "namespace*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provision Amazon QuickSight readers", + Privilege: "CreateReader", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to encrypt plaintext data to ciphertext using symmetric, asymmetric or DUKPT data encryption key", - Privilege: "EncryptData", + Description: "Grants permission to create a refresh schedule for a dataset", + Privilege: "CreateRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "refreshschedule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to export a key from the service", - Privilege: "ExportKey", + Description: "Grants permission to add a group member to a role", + Privilege: "CreateRoleMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:Group", + "identitystore:GroupId", + }, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate card-related data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2) or Card Security Codes (CSC) that check the validity of a magnetic stripe card", - Privilege: "GenerateCardValidationData", + Description: "Grants permission to create a template", + Privilege: "CreateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate a MAC (Message Authentication Code) cryptogram", - Privilege: "GenerateMac", + Description: "Grants permission to create a template alias", + Privilege: "CreateTemplateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate pin-related data such as PIN, PIN Verification Value (PVV), PIN Block and PIN Offset during new card issuance or card re-issuance", - Privilege: "GeneratePinData", + Description: "Grants permission to create a theme", + Privilege: "CreateTheme", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "theme*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the keyArn associated with an aliasName", - Privilege: "GetAlias", + AccessLevel: "Write", + Description: "Grants permission to create an alias for a theme version", + Privilege: "CreateThemeAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "theme*", }, { ConditionKeys: []string{ @@ -202616,57 +247564,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the detailed information about the specified key", - Privilege: "GetKey", + AccessLevel: "Write", + Description: "Grants permission to create a topic", + Privilege: "CreateTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key*", + ConditionKeys: []string{}, + DependentActions: []string{ + "quicksight:PassDataSet", + }, + ResourceType: "dataset*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the export token and the signing key certificate to initiate a TR-34 key export", - Privilege: "GetParametersForExport", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the import token and the wrapping key certificate to initiate a TR-34 key import", - Privilege: "GetParametersForImport", + AccessLevel: "Write", + Description: "Grants permission to create a refresh schedule for a topic", + Privilege: "CreateTopicRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the public key from a key of class PUBLIC_KEY", - Privilege: "GetPublicKeyCertificate", + AccessLevel: "Write", + Description: "Grants permission to provision Amazon QuickSight authors and readers", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to imports keys and public key certificates", - Privilege: "ImportKey", + Description: "Grants permission to create a vpc connection", + Privilege: "CreateVPCConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -202674,110 +247620,110 @@ func getParliamentIamPermissions() ParliamentPermissions { "aws:TagKeys", }, DependentActions: []string{ - "payment-cryptography:TagResource", + "iam:PassRole", }, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of aliases created for all keys in the caller's AWS account and Region", - Privilege: "ListAliases", + AccessLevel: "Write", + Description: "Grants permission to delete an account customization for QuickSight account or namespace", + Privilege: "DeleteAccountCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "customization*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of keys created in the caller's AWS account and Region", - Privilege: "ListKeys", + AccessLevel: "Write", + Description: "Grants permission to delete a QuickSight account", + Privilege: "DeleteAccountSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "account*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a list of tags created in the caller's AWS account and Region", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an analysis", + Privilege: "DeleteAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key", + ResourceType: "analysis*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to re-encrypt ciphertext using DUKPT, Symmetric and Asymmetric Data Encryption Keys", - Privilege: "ReEncryptData", + Description: "Grants permission to delete an Amazon QuickSight brand", + Privilege: "DeleteBrand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "brand*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a scheduled key deletion if at any point during the waiting period a Key needs to be revived", - Privilege: "RestoreKey", + Description: "Grants permission to delete a brand assignment", + Privilege: "DeleteBrandAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable a disabled Key", - Privilege: "StartKeyUsage", + Description: "Grants permission to delete a QuickSight custom permissions resource", + Privilege: "DeleteCustomPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable an enabled Key", - Privilege: "StopKeyUsage", + Description: "Grants permission to delete a QuickSight Dashboard", + Privilege: "DeleteDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrites one or more tags for the specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a dataset", + Privilege: "DeleteDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "dataset*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -202786,28 +247732,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to translate encrypted PIN block from and to ISO 9564 formats 0,1,3,4", - Privilege: "TranslatePinData", + Description: "Grants permission to delete dataset refresh properties for a dataset", + Privilege: "DeleteDataSetRefreshProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the specified tag or tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a data source", + Privilege: "DeleteDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "key*", + ResourceType: "datasource*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -202817,172 +247764,109 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change the key to which an alias is assigned, or unassign it from its current key", - Privilege: "UpdateAlias", + Description: "Grants permission to delete linked QBusiness application for QuickSight account", + Privilege: "DeleteDefaultQBusinessApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "alias*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "key*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to verify Authorization Request Cryptogram (ARQC) for a EMV chip payment card authorization", - Privilege: "VerifyAuthRequestCryptogram", + Description: "Grants permission to delete a QuickSight email customization template", + Privilege: "DeleteEmailCustomizationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "emailCustomizationTemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to verify card-related validation data using algorithms such as Card Verification Values (CVV/CVV2), Dynamic Card Verification Values (dCVV/dCVV2) and Card Security Codes (CSC)", - Privilege: "VerifyCardValidationData", + Description: "Grants permission to delete a QuickSight Folder", + Privilege: "DeleteFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "folder*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to verify MAC (Message Authentication Code) of input data against a provided MAC", - Privilege: "VerifyMac", + Description: "Grants permission to remove a QuickSight Dashboard, Analysis or Dataset from a QuickSight Folder", + Privilege: "DeleteFolderMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "folder*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to verify pin-related data such as PIN and PIN Offset using algorithms including VISA PVV and IBM3624", - Privilege: "VerifyPinData", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysis", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:payment-cryptography:${Region}:${Account}:key/${KeyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "payment-cryptography:ResourceAliases", - }, - Resource: "key", - }, - { - Arn: "arn:${Partition}:payment-cryptography:${Region}:${Account}:alias/${Alias}", - ConditionKeys: []string{ - "payment-cryptography:ResourceAliases", - }, - Resource: "alias", - }, - }, - ServiceName: "AWS Payment Cryptography", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "payments", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create a payment instrument", - Privilege: "CreatePaymentInstrument", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a payment instrument", - Privilege: "DeletePaymentInstrument", + Description: "Grants permission to remove a user group from QuickSight", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a payment instrument", - Privilege: "GetPaymentInstrument", + AccessLevel: "Write", + Description: "Grants permission to remove a user from a group so that he/she is no longer a member of the group", + Privilege: "DeleteGroupMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:UserName", + }, DependentActions: []string{}, - ResourceType: "payment-instrument", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get payment status of invoices", - Privilege: "GetPaymentStatus", + AccessLevel: "Write", + Description: "Grants permission to update an existing assignment", + Privilege: "DeleteIAMPolicyAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assignment*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list payment instrument metadata", - Privilege: "ListPaymentInstruments", + AccessLevel: "Write", + Description: "Grants permission to remove AWS services for trusted identity propagation in QuickSight", + Privilege: "DeleteIdentityPropagationConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -202992,33 +247876,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to get payment preferences (preferred payment currency, preferred payment method, etc.)", - Privilege: "ListPaymentPreferences", + AccessLevel: "Write", + Description: "Grants permission to delete a QuickSight namespace", + Privilege: "DeleteNamespace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DeleteDirectory", + }, + ResourceType: "namespace*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags on a payment resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a refresh schedule for a dataset", + Privilege: "DeleteRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "payment-instrument", + ResourceType: "refreshschedule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to make a payment, authenticate a payment, verify a payment method, and generate a funding request document for Advance Pay", - Privilege: "MakePayment", + Description: "Grants permission to remove the custom permission associated with a role", + Privilege: "DeleteRoleCustomPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -203028,19 +247914,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a payment resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to remove a group member from a role", + Privilege: "DeleteRoleMembership", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "payment-instrument", - }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "quicksight:Group", + "identitystore:GroupId", }, DependentActions: []string{}, ResourceType: "", @@ -203048,297 +247929,241 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a payment resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a template", + Privilege: "DeleteTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "payment-instrument", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a payment instrument", - Privilege: "UpdatePaymentInstrument", + Description: "Grants permission to delete a template alias", + Privilege: "DeleteTemplateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update payment preferences (preferred payment currency, preferred payment method, etc.)", - Privilege: "UpdatePaymentPreferences", + Description: "Grants permission to delete a theme", + Privilege: "DeleteTheme", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "theme*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:payments::${Account}:payment-instrument:${ResourceId}", - ConditionKeys: []string{}, - Resource: "payment-instrument", - }, - }, - ServiceName: "AWS Payments", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "pca-connector-ad", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a Connector in your account", - Privilege: "CreateConnector", + Description: "Grants permission to delete the alias of a theme", + Privilege: "DeleteThemeAlias", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificate", - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:IssueCertificate", - "ec2:CreateTags", - "ec2:CreateVpcEndpoint", - "ec2:DescribeVpcEndpoints", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "theme*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a DirectoryRegistration in your account", - Privilege: "CreateDirectoryRegistration", + Description: "Grants permission to delete a topic", + Privilege: "DeleteTopic", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "ds:AuthorizeApplication", - "ds:DescribeDirectories", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a ServicePrincipalName for a DirectoryRegistration", - Privilege: "CreateServicePrincipalName", + Description: "Grants permission to delete a refresh schedule for a topic", + Privilege: "DeleteTopicRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:UpdateAuthorizedApplication", - }, - ResourceType: "DirectoryRegistration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Template for a Connector", - Privilege: "CreateTemplate", + Description: "Grants permission to delete a QuickSight user, given the user name", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a TemplateGroupAccessControlEntry for a Template", - Privilege: "CreateTemplateGroupAccessControlEntry", + Description: "Grants permission to deletes a user identified by its principal ID", + Privilege: "DeleteUserByPrincipalId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Connector in your account", - Privilege: "DeleteConnector", + Description: "Grants permission to remove the custom permission associated with a user", + Privilege: "DeleteUserCustomPermission", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteVpcEndpoints", - "ec2:DescribeVpcEndpoints", - }, - ResourceType: "Connector*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a DirectoryRegistration in your account", - Privilege: "DeleteDirectoryRegistration", + Description: "Grants permission to delete a vpc connection", + Privilege: "DeleteVPCConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:UnauthorizeApplication", - "ds:UpdateAuthorizedApplication", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpcconnection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "DirectoryRegistration*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a ServicePrincipalName for a DirectoryRegistration", - Privilege: "DeleteServicePrincipalName", + AccessLevel: "Read", + Description: "Grants permission to describe an account customization for QuickSight account or namespace", + Privilege: "DescribeAccountCustomization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:UpdateAuthorizedApplication", - }, - ResourceType: "DirectoryRegistration*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "customization*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Template for a Connector", - Privilege: "DeleteTemplate", + AccessLevel: "Read", + Description: "Grants permission to describe the administrative account settings for QuickSight account", + Privilege: "DescribeAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a TemplateGroupAccessControlEntry for a Template", - Privilege: "DeleteTemplateGroupAccessControlEntry", + AccessLevel: "Read", + Description: "Grants permission to describe a QuickSight account", + Privilege: "DescribeAccountSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "account*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a Connector in your account", - Privilege: "GetConnector", + Description: "Grants permission to describe an analysis", + Privilege: "DescribeAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector*", + ResourceType: "analysis*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a DirectoryRegistration in your account", - Privilege: "GetDirectoryRegistration", + Description: "Grants permission to describe permissions for an analysis", + Privilege: "DescribeAnalysisPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DirectoryRegistration*", + ResourceType: "analysis*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a ServicePrincipalName for a DirectoryRegistration", - Privilege: "GetServicePrincipalName", + Description: "Grants permission to describe an asset bundle export job", + Privilege: "DescribeAssetBundleExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DirectoryRegistration*", + ResourceType: "assetBundleExportJob*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a Template for a Connector", - Privilege: "GetTemplate", + Description: "Grants permission to describe an asset bundle import job", + Privilege: "DescribeAssetBundleImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "assetBundleImportJob*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a TemplateGroupAccessControlEntry for a Template", - Privilege: "GetTemplateGroupAccessControlEntry", + Description: "Grants permission to describe a brand", + Privilege: "DescribeBrand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "brand*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Connectors in your account", - Privilege: "ListConnectors", + AccessLevel: "Read", + Description: "Grants permission to describe a brand assignment", + Privilege: "DescribeBrandAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -203348,84 +248173,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the DirectoryRegistrations in your account", - Privilege: "ListDirectoryRegistrations", + AccessLevel: "Read", + Description: "Grants permission to describes the published version of the brand", + Privilege: "DescribeBrandPublishedVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "brand*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the ServicePrincipalNames for a DirectoryRegistration", - Privilege: "ListServicePrincipalNames", + AccessLevel: "Read", + Description: "Grants permission to describe a custom permissions resource in a QuickSight account", + Privilege: "DescribeCustomPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DirectoryRegistration*", + ResourceType: "custompermissions*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a pca-connector-ad resource in your account", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe a QuickSight Dashboard", + Privilege: "DescribeDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the TemplateGroupAccessControlEntries for a Template", - Privilege: "ListTemplateGroupAccessControlEntries", + AccessLevel: "Read", + Description: "Grants permission to describe permissions for a QuickSight Dashboard", + Privilege: "DescribeDashboardPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Templates for a Connector", - Privilege: "ListTemplates", + AccessLevel: "Read", + Description: "Grants permission to describe a dashboard snapshot job", + Privilege: "DescribeDashboardSnapshotJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector*", + ResourceType: "dashboardSnapshotJob*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a pca-connector-ad resource in your account", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to describe result of a dashboard snapshot job", + Privilege: "DescribeDashboardSnapshotJobResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector", + ResourceType: "dashboardSnapshotJob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe dashboards qa configuration", + Privilege: "DescribeDashboardsQAConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "DirectoryRegistration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a dataset", + Privilege: "DescribeDataSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template", + ResourceType: "dataset*", }, { ConditionKeys: []string{ @@ -203438,27 +248277,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a pca-connector-ad resource in your account", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to describe the resource policy of a dataset", + Privilege: "DescribeDataSetPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "DirectoryRegistration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Template", + ResourceType: "dataset*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -203467,90 +248297,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Template for a Connector", - Privilege: "UpdateTemplate", + AccessLevel: "Read", + Description: "Grants permission to describe refresh properties for a dataset", + Privilege: "DescribeDataSetRefreshProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a TemplateGroupAccessControlEntry for a Template", - Privilege: "UpdateTemplateGroupAccessControlEntry", + AccessLevel: "Read", + Description: "Grants permission to describe a data source", + Privilege: "DescribeDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Template*", + ResourceType: "datasource*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:connector/${ConnectorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Connector", - }, - { - Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:directory-registration/${DirectoryId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "DirectoryRegistration", - }, - { - Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:directory-registration/${DirectoryId}", - ConditionKeys: []string{}, - Resource: "ServicePrincipalName", - }, - { - Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:connector/${ConnectorId}/template/${TemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Template", - }, - { - Arn: "arn:${Partition}:pca-connector-ad:${Region}:${Account}:connector/${ConnectorId}/template/${TemplateId}", - ConditionKeys: []string{}, - Resource: "TemplateGroupAccessControlEntry", - }, - }, - ServiceName: "AWS Private CA Connector for Active Directory", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "pca-connector-scep", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create a Challenge for a Connector", - Privilege: "CreateChallenge", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -203562,135 +248329,132 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a SCEP Connector in your account", - Privilege: "CreateConnector", + AccessLevel: "Permissions management", + Description: "Grants permission to describe the resource policy of a data source", + Privilege: "DescribeDataSourcePermissions", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "acm-pca:DescribeCertificateAuthority", - "acm-pca:GetCertificate", - "acm-pca:GetCertificateAuthorityCertificate", - "acm-pca:IssueCertificate", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Challenge for a Connector", - Privilege: "DeleteChallenge", + AccessLevel: "Read", + Description: "Grants permission to describe linked QBusiness application Id for QuickSight account", + Privilege: "DescribeDefaultQBusinessApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Challenge*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a SCEP Connector in your account", - Privilege: "DeleteConnector", + AccessLevel: "Read", + Description: "Grants permission to describe a QuickSight email customization template", + Privilege: "DescribeEmailCustomizationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector*", + ResourceType: "emailCustomizationTemplate*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a Challenge for a Connector", - Privilege: "GetChallengeMetadata", + Description: "Grants permission to describe a QuickSight Folder", + Privilege: "DescribeFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Challenge*", + ResourceType: "folder*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a Challenge password for a Connector", - Privilege: "GetChallengePassword", + Description: "Grants permission to describe permissions for a QuickSight Folder", + Privilege: "DescribeFolderPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Challenge*", + ResourceType: "folder*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a SCEP Connector in your account", - Privilege: "GetConnector", + Description: "Grants permission to describe resolved permissions for a QuickSight Folder", + Privilege: "DescribeFolderResolvedPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Connector*", + ResourceType: "folder*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Challenges for a Connector", - Privilege: "ListChallengeMetadata", + AccessLevel: "Read", + Description: "Grants permission to describe a QuickSight group", + Privilege: "DescribeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the SCEP Connectors in your account", - Privilege: "ListConnectors", + AccessLevel: "Read", + Description: "Grants permission to describe a QuickSight group member", + Privilege: "DescribeGroupMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:UserName", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a pca-connector-scep resource in your account", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe an existing assignment", + Privilege: "DescribeIAMPolicyAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assignment*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a pca-connector-scep resource in your account", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to describe a SPICE ingestion on a dataset", + Privilege: "DescribeIngestion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Challenge", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Connector", + ResourceType: "ingestion*", }, { ConditionKeys: []string{ @@ -203703,656 +248467,628 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a pca-connector-scep resource in your account", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe the IP restrictions for QuickSight account", + Privilege: "DescribeIpRestriction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Challenge", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Connector", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:pca-connector-scep:${Region}:${Account}:connector/${ConnectorId}/challenge/${ChallengeId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Challenge", - }, - { - Arn: "arn:${Partition}:pca-connector-scep:${Region}:${Account}:connector/${ConnectorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Connector", - }, - }, - ServiceName: "AWS Private CA Connector for SCEP", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "personalize", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a batch inference job", - Privilege: "CreateBatchInferenceJob", + AccessLevel: "Read", + Description: "Grants permission to describe QuickSight key registration", + Privilege: "DescribeKeyRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchInferenceJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a batch segment job", - Privilege: "CreateBatchSegmentJob", + AccessLevel: "Read", + Description: "Grants permission to describe a QuickSight namespace", + Privilege: "DescribeNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchSegmentJob*", + ResourceType: "namespace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a campaign", - Privilege: "CreateCampaign", + AccessLevel: "Read", + Description: "Grants permission to describe a personalization configuration", + Privilege: "DescribeQPersonalizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a data deletion job", - Privilege: "CreateDataDeletionJob", + AccessLevel: "Read", + Description: "Grants permission to describe QuickSight Q Search configuration", + Privilege: "DescribeQuickSightQSearchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataDeletionJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a data insights job", - Privilege: "CreateDataInsightsJob", + AccessLevel: "Read", + Description: "Grants permission to describe a refresh schedule for a dataset", + Privilege: "DescribeRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataInsightsJob*", + ResourceType: "refreshschedule*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset", - Privilege: "CreateDataset", + AccessLevel: "Read", + Description: "Grants permission to describe the custom permission associated with a role", + Privilege: "DescribeRoleCustomPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset export job", - Privilege: "CreateDatasetExportJob", + AccessLevel: "Read", + Description: "Grants permission to describe a template", + Privilege: "DescribeTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetExportJob*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset group", - Privilege: "CreateDatasetGroup", + AccessLevel: "Read", + Description: "Grants permission to describe a template alias", + Privilege: "DescribeTemplateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a dataset import job", - Privilege: "CreateDatasetImportJob", + AccessLevel: "Read", + Description: "Grants permission to describe permissions for a template", + Privilege: "DescribeTemplatePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", + ResourceType: "template*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an event tracker", - Privilege: "CreateEventTracker", + AccessLevel: "Read", + Description: "Grants permission to describe a theme", + Privilege: "DescribeTheme", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventTracker*", + ResourceType: "theme*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a filter", - Privilege: "CreateFilter", + AccessLevel: "Read", + Description: "Grants permission to describe a theme alias", + Privilege: "DescribeThemeAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "theme*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a metric attribution", - Privilege: "CreateMetricAttribution", + AccessLevel: "Read", + Description: "Grants permission to describe permissions for a theme", + Privilege: "DescribeThemePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metricAttribution*", + ResourceType: "theme*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a recommender", - Privilege: "CreateRecommender", + AccessLevel: "Read", + Description: "Grants permission to describe a topic", + Privilege: "DescribeTopic", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "topic*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a schema", - Privilege: "CreateSchema", + AccessLevel: "Permissions management", + Description: "Grants permission to describe the resource policy of a topic", + Privilege: "DescribeTopicPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "topic*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a solution", - Privilege: "CreateSolution", + AccessLevel: "Read", + Description: "Grants permission to describe the refresh status of a topic", + Privilege: "DescribeTopicRefresh", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "topic*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a solution version", - Privilege: "CreateSolutionVersion", + AccessLevel: "Read", + Description: "Grants permission to describe a refresh schedule for a topic", + Privilege: "DescribeTopicRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "topic*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a campaign", - Privilege: "DeleteCampaign", + AccessLevel: "Read", + Description: "Grants permission to describe a QuickSight user given the user name", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a dataset", - Privilege: "DeleteDataset", + AccessLevel: "Read", + Description: "Grants permission to describe a vpc connection", + Privilege: "DescribeVPCConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "vpcconnection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a dataset group", - Privilege: "DeleteDatasetGroup", + Description: "Grants permission to generate a URL used to embed a QuickSight Dashboard or Q Topic for a user not registered with QuickSight", + Privilege: "GenerateEmbedUrlForAnonymousUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "namespace*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an event tracker", - Privilege: "DeleteEventTracker", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventTracker*", + ResourceType: "dashboard", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a filter", - Privilege: "DeleteFilter", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "theme", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "quicksight:AllowedEmbeddingDomains", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a metric attribution", - Privilege: "DeleteMetricAttribution", + Description: "Grants permission to generate a URL used to embed a QuickSight Dashboard for a user registered with QuickSight", + Privilege: "GenerateEmbedUrlForRegisteredUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metricAttribution*", + ResourceType: "user*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a recommender", - Privilege: "DeleteRecommender", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:AllowedEmbeddingDomains", + }, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a schema", - Privilege: "DeleteSchema", + Description: "Grants permission to generate a URL used to embed a QuickSight Experience for a user registered with QuickSight using Identity-enhanced role session", + Privilege: "GenerateEmbedUrlForRegisteredUserWithIdentity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:AllowedEmbeddingDomains", + }, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a solution including all versions of the solution", - Privilege: "DeleteSolution", + AccessLevel: "Read", + Description: "Grants permission to get a URL used to embed a QuickSight Dashboard for a user not registered with QuickSight", + Privilege: "GetAnonymousUserEmbedUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an algorithm", - Privilege: "DescribeAlgorithm", + Description: "Grants permission to get an auth code representing a QuickSight user", + Privilege: "GetAuthCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "algorithm*", + ResourceType: "user*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a batch inference job", - Privilege: "DescribeBatchInferenceJob", + Description: "Grants permission to get a URL used to embed a QuickSight Dashboard", + Privilege: "GetDashboardEmbedUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchInferenceJob*", + ResourceType: "dashboard*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a batch segment job", - Privilege: "DescribeBatchSegmentJob", + Description: "Grants permission to use Amazon QuickSight, in Enterprise edition, to identify and display the Microsoft Active Directory (Microsoft Active Directory) directory groups that are mapped to roles in Amazon QuickSight", + Privilege: "GetGroupMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "batchSegmentJob*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a campaign", - Privilege: "DescribeCampaign", + Description: "Grants permission to get a URL to embed QuickSight console experience", + Privilege: "GetSessionEmbedUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a data deletion job", - Privilege: "DescribeDataDeletionJob", + AccessLevel: "List", + Description: "Grants permission to list all analyses in an account", + Privilege: "ListAnalyses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataDeletionJob*", + ResourceType: "analysis*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a data insights job", - Privilege: "DescribeDataInsightsJob", + AccessLevel: "List", + Description: "Grants permission to list all asset bundle export jobs", + Privilege: "ListAssetBundleExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataInsightsJob*", + ResourceType: "assetBundleExportJob*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset", - Privilege: "DescribeDataset", + AccessLevel: "List", + Description: "Grants permission to list all asset bundle import jobs", + Privilege: "ListAssetBundleImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "assetBundleImportJob*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset export job", - Privilege: "DescribeDatasetExportJob", + AccessLevel: "List", + Description: "Grants permission to lists all brands in an Amazon QuickSight account", + Privilege: "ListBrands", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetExportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset group", - Privilege: "DescribeDatasetGroup", + AccessLevel: "List", + Description: "Grants permission to list custom permissions resources in QuickSight account", + Privilege: "ListCustomPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetGroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset import job", - Privilege: "DescribeDatasetImportJob", + AccessLevel: "List", + Description: "Grants permission to list all registered customer managed keys", + Privilege: "ListCustomerManagedKeys", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasetImportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an event tracker", - Privilege: "DescribeEventTracker", + AccessLevel: "List", + Description: "Grants permission to list all versions of a QuickSight Dashboard", + Privilege: "ListDashboardVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventTracker*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a feature transformation", - Privilege: "DescribeFeatureTransformation", + AccessLevel: "List", + Description: "Grants permission to list all Dashboards in a QuickSight Account", + Privilege: "ListDashboards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "featureTransformation*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a filter", - Privilege: "DescribeFilter", + AccessLevel: "List", + Description: "Grants permission to list all datasets", + Privilege: "ListDataSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "filter*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a metric attribution", - Privilege: "DescribeMetricAttribution", + AccessLevel: "List", + Description: "Grants permission to list all data sources", + Privilege: "ListDataSources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "metricAttribution*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a recipe", - Privilege: "DescribeRecipe", + Description: "Grants permission to list all members in a folder", + Privilege: "ListFolderMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recipe*", + ResourceType: "folder*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a recommender", - Privilege: "DescribeRecommender", + AccessLevel: "List", + Description: "Grants permission to list all Folders in a QuickSight Account", + Privilege: "ListFolders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "folder*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a schema", - Privilege: "DescribeSchema", + AccessLevel: "List", + Description: "Grants permission to list all Folders in which a QuickSight resource is a member", + Privilege: "ListFoldersForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "analysis", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a solution", - Privilege: "DescribeSolution", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "dashboard", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a version of a solution", - Privilege: "DescribeSolutionVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a list of recommended actions", - Privilege: "GetActionRecommendations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "datasource", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get data insights from a data insights job", - Privilege: "GetDataInsights", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataInsightsJob*", + ResourceType: "topic", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a re-ranked list of recommendations", - Privilege: "GetPersonalizedRanking", + AccessLevel: "List", + Description: "Grants permission to list member users in a group", + Privilege: "ListGroupMemberships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of recommendations from a campaign", - Privilege: "GetRecommendations", + AccessLevel: "List", + Description: "Grants permission to list all user groups in QuickSight", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get metrics for a solution version", - Privilege: "GetSolutionMetrics", + AccessLevel: "List", + Description: "Grants permission to list all assignments in the current Amazon QuickSight account", + Privilege: "ListIAMPolicyAssignments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "assignment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list batch inference jobs", - Privilege: "ListBatchInferenceJobs", + Description: "Grants permission to list all assignments assigned to a user and the groups it belongs", + Privilege: "ListIAMPolicyAssignmentsForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "assignment*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list batch segment jobs", - Privilege: "ListBatchSegmentJobs", + Description: "Grants permission to list AWS services enabled for trusted identity propagation in QuickSight", + Privilege: "ListIdentityPropagationConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204363,11 +249099,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list campaigns", - Privilege: "ListCampaigns", + Description: "Grants permission to list all SPICE ingestions on a dataset", + Privilege: "ListIngestions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -204375,8 +249114,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list data deletion jobs", - Privilege: "ListDataDeletionJobs", + Description: "Grants permission to list a user's KMS keys", + Privilege: "ListKMSKeysForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204387,8 +249126,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list data insights jobs", - Privilege: "ListDataInsightsJobs", + Description: "Grants permission to lists all namespaces in a QuickSight account", + Privilege: "ListNamespaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204399,8 +249138,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list dataset export jobs", - Privilege: "ListDatasetExportJobs", + Description: "Grants permission to list all refresh schedules on a dataset", + Privilege: "ListRefreshSchedules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204411,8 +249150,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list dataset groups", - Privilege: "ListDatasetGroups", + Description: "Grants permission to list the members of a role", + Privilege: "ListRoleMemberships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204422,93 +249161,148 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list dataset import jobs", - Privilege: "ListDatasetImportJobs", + AccessLevel: "Read", + Description: "Grants permission to list tags of a QuickSight resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysis", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "brand", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "customization", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "custompermissions", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dashboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datasource", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "folder", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "theme", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpcconnection", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list datasets", - Privilege: "ListDatasets", + Description: "Grants permission to list all aliases for a template", + Privilege: "ListTemplateAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list event trackers", - Privilege: "ListEventTrackers", + Description: "Grants permission to list all versions of a template", + Privilege: "ListTemplateVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list filters", - Privilege: "ListFilters", + Description: "Grants permission to list all templates in a QuickSight account", + Privilege: "ListTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list metric attribution metrics", - Privilege: "ListMetricAttributionMetrics", + Description: "Grants permission to list all aliases of a theme", + Privilege: "ListThemeAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "theme*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list metric attributions", - Privilege: "ListMetricAttributions", + Description: "Grants permission to list all versions of a theme", + Privilege: "ListThemeVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "theme*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list recipes", - Privilege: "ListRecipes", + Description: "Grants permission to list all themes in an account", + Privilege: "ListThemes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "theme*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list recommenders", - Privilege: "ListRecommenders", + Description: "Grants permission to list all refresh schedules on a topic", + Privilege: "ListTopicRefreshSchedules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204519,11 +249313,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list schemas", - Privilege: "ListSchemas", + Description: "Grants permission to list all reviewed answers for topic", + Privilege: "ListTopicReviewedAnswers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -204531,11 +249328,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list versions of a solution", - Privilege: "ListSolutionVersions", + Description: "Grants permission to list all topics", + Privilege: "ListTopics", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -204543,80 +249343,104 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list solutions", - Privilege: "ListSolutions", + Description: "Grants permission to list groups that a given user is a member of", + Privilege: "ListUserGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to list all of the QuickSight users belonging to this account", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put real time action interaction data", - Privilege: "PutActionInteractions", + AccessLevel: "List", + Description: "Grants permission to list all vpc connections", + Privilege: "ListVPCConnections", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to ingest Actions data", - Privilege: "PutActions", + AccessLevel: "Read", + Description: "Grants permission to use a dataset for a template", + Privilege: "PassDataSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "dataset*", }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put real time event data", - Privilege: "PutEvents", + AccessLevel: "Read", + Description: "Grants permission to use a data source for a data set", + Privilege: "PassDataSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "datasource*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to ingest Items data", - Privilege: "PutItems", + AccessLevel: "Read", + Description: "Grants permission to predict QA results", + Privilege: "PredictQAResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "dashboard", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to ingest Users data", - Privilege: "PutUsers", + Description: "Grants permission to put dataset refresh properties for a dataset", + Privilege: "PutDataSetRefreshProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204627,56 +249451,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a recommender", - Privilege: "StartRecommender", + Description: "Grants permission to register a customer managed key", + Privilege: "RegisterCustomerManagedKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a recommender", - Privilege: "StopRecommender", + Description: "Grants permission to create a QuickSight user, whose identity is associated with the IAM identity/role specified in the request", + Privilege: "RegisterUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:IamArn", + "quicksight:SessionName", + }, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a solution version creation", - Privilege: "StopSolutionVersionCreation", + Description: "Grants permission to remove a customer managed key", + Privilege: "RemoveCustomerManagedKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "solution*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to restore a deleted analysis", + Privilege: "RestoreAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysis*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to manage scoping policies for permissions to AWS resources", + Privilege: "ScopeDownPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -204686,465 +249513,262 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a campaign", - Privilege: "UpdateCampaign", + AccessLevel: "List", + Description: "Grants permission to search for a sub-set of analyses", + Privilege: "SearchAnalyses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "campaign*", + ResourceType: "analysis*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a dataset", - Privilege: "UpdateDataset", + AccessLevel: "List", + Description: "Grants permission to search for a sub-set of QuickSight Dashboards", + Privilege: "SearchDashboards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a metric attribution", - Privilege: "UpdateMetricAttribution", + AccessLevel: "List", + Description: "Grants permission to search for a sub-set of QuickSight DatSets", + Privilege: "SearchDataSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metricAttribution*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a recommender", - Privilege: "UpdateRecommender", + AccessLevel: "List", + Description: "Grants permission to search for a sub-set of QuickSight Data Sources", + Privilege: "SearchDataSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recommender*", + ResourceType: "datasource*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:schema/${ResourceId}", - ConditionKeys: []string{}, - Resource: "schema", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:feature-transformation/${ResourceId}", - ConditionKeys: []string{}, - Resource: "featureTransformation", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset/${ResourceId}", - ConditionKeys: []string{}, - Resource: "dataset", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset-group/${ResourceId}", - ConditionKeys: []string{}, - Resource: "datasetGroup", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset-import-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "datasetImportJob", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:data-insights-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "dataInsightsJob", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:dataset-export-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "datasetExportJob", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:data-deletion-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "dataDeletionJob", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:solution/${ResourceId}", - ConditionKeys: []string{}, - Resource: "solution", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:campaign/${ResourceId}", - ConditionKeys: []string{}, - Resource: "campaign", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:event-tracker/${ResourceId}", - ConditionKeys: []string{}, - Resource: "eventTracker", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:recipe/${ResourceId}", - ConditionKeys: []string{}, - Resource: "recipe", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:algorithm/${ResourceId}", - ConditionKeys: []string{}, - Resource: "algorithm", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:batch-inference-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "batchInferenceJob", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:filter/${ResourceId}", - ConditionKeys: []string{}, - Resource: "filter", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:recommender/${ResourceId}", - ConditionKeys: []string{}, - Resource: "recommender", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:batch-segment-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "batchSegmentJob", - }, - { - Arn: "arn:${Partition}:personalize:${Region}:${Account}:metric-attribution/${ResourceId}", - ConditionKeys: []string{}, - Resource: "metricAttribution", - }, - }, - ServiceName: "Amazon Personalize", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "pi:Dimensions", - Description: "Filters access by the requested dimensions", - Type: "ArrayOfString", - }, - }, - Prefix: "pi", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to call CreatePerformanceAnalysisReport API to create a Performance Analysis Report for a specified DB instance", - Privilege: "CreatePerformanceAnalysisReport", + AccessLevel: "List", + Description: "Grants permission to use Amazon QuickSight, in Enterprise edition, to display your Microsoft Active Directory directory groups so that you can choose which ones to map to roles in Amazon QuickSight", + Privilege: "SearchDirectoryGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to call DeletePerformanceAnalysisReport API to delete a Performance Analysis Report for a specified DB instance", - Privilege: "DeletePerformanceAnalysisReport", + AccessLevel: "Read", + Description: "Grants permission to search for a sub-set of QuickSight Folders", + Privilege: "SearchFolders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", + ResourceType: "folder*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call DescribeDimensionKeys API to retrieve the top N dimension keys for a metric for a specific time period", - Privilege: "DescribeDimensionKeys", + AccessLevel: "List", + Description: "Grants permission to search for a sub-set of QuickSight groups", + Privilege: "SearchGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-resource*", - }, - { - ConditionKeys: []string{ - "pi:Dimensions", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call GetDimensionKeyDetails API to retrieve the attributes of the specified dimension group", - Privilege: "GetDimensionKeyDetails", + AccessLevel: "List", + Description: "Grants permission to search for a sub-set of topics", + Privilege: "SearchTopics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-resource*", - }, - { - ConditionKeys: []string{ - "pi:Dimensions", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call GetPerformanceAnalysisReport API to retrieve a Performance Analysis Report for a specified DB instance", - Privilege: "GetPerformanceAnalysisReport", + AccessLevel: "List", + Description: "Grants permission to search the QuickSight users belonging to this account", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", + ResourceType: "user*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call GetResourceMetadata API to retrieve the metadata for different features", - Privilege: "GetResourceMetadata", + AccessLevel: "Write", + Description: "Grants permission to use Amazon QuickSight, in Enterprise edition, to display your Microsoft Active Directory directory groups so that you can choose which ones to map to roles in Amazon QuickSight", + Privilege: "SetGroupMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-resource*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call GetResourceMetrics API to retrieve PI metrics for a set of data sources, over a time period", - Privilege: "GetResourceMetrics", + AccessLevel: "Write", + Description: "Grants permission to start an asset bundle export job", + Privilege: "StartAssetBundleExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-resource*", - }, - { - ConditionKeys: []string{ - "pi:Dimensions", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "assetBundleExportJob*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call ListAvailableResourceDimensions API to retrieve the dimensions that can be queried for each specified metric type on a specified DB instance", - Privilege: "ListAvailableResourceDimensions", + AccessLevel: "Write", + Description: "Grants permission to start an asset bundle import job", + Privilege: "StartAssetBundleImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-resource*", + ResourceType: "assetBundleImportJob*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to call ListAvailableResourceMetrics API to retrieve metrics of the specified types that can be queried for a specified DB instance", - Privilege: "ListAvailableResourceMetrics", + AccessLevel: "Write", + Description: "Grants permission to start a dashboard snapshot job", + Privilege: "StartDashboardSnapshotJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "metric-resource*", + ResourceType: "dashboardSnapshotJob*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to call ListPerformanceAnalysisReports API to list Performance Analysis Reports for a specified DB instance", - Privilege: "ListPerformanceAnalysisReports", + AccessLevel: "Write", + Description: "Grants permission to start a dashboard snapshot job schedule", + Privilege: "StartDashboardSnapshotJobSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to call ListTagsForResource API to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to subscribe to Amazon QuickSight, and also to allow the user to upgrade the subscription to Enterprise edition", + Privilege: "Subscribe", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "quicksight:Edition", + "quicksight:DirectoryType", + }, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to call TagResource API to tag a resource", + Description: "Grants permission to add tags to a QuickSight resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", + ResourceType: "analysis", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "brand", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to call UntagResource API to untag a resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "perf-reports-resource*", + ResourceType: "customization", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custompermissions", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:pi:${Region}:${Account}:metrics/${ServiceType}/${Identifier}", - ConditionKeys: []string{}, - Resource: "metric-resource", - }, - { - Arn: "arn:${Partition}:pi:${Region}:${Account}:perf-reports/${ServiceType}/${Identifier}/${ReportId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "perf-reports-resource", - }, - }, - ServiceName: "AWS Performance Insights", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by allowed set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "pipes", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create a pipe", - Privilege: "CreatePipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "pipe*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dashboard", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a pipe", - Privilege: "DeletePipe", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "datasource", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "folder", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a pipe", - Privilege: "DescribePipe", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "ingestion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "theme", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "vpcconnection", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -205152,9 +249776,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all pipes in your account", - Privilege: "ListPipes", + AccessLevel: "Write", + Description: "Grants permission to unsubscribe from Amazon QuickSight, which permanently deletes all users and their resources from Amazon QuickSight", + Privilege: "Unsubscribe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -205164,180 +249788,100 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a QuickSight resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "analysis", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "brand", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a pipe", - Privilege: "StartPipe", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "customization", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custompermissions", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop a pipe", - Privilege: "StopPipe", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "dashboard", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "datasource", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "folder", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipe*", + ResourceType: "ingestion", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a pipe", - Privilege: "UpdatePipe", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "pipe*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "theme", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:pipes:${Region}:${Account}:pipe/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "pipe", - }, - }, - ServiceName: "Amazon EventBridge Pipes", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "polly", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to delete the specified pronunciation lexicon stored in an AWS Region", - Privilege: "DeleteLexicon", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lexicon*", + ResourceType: "vpcconnection", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to describe the list of voices that are available for use when requesting speech synthesis", - Privilege: "DescribeVoices", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the content of the specified pronunciation lexicon stored in an AWS Region", - Privilege: "GetLexicon", + AccessLevel: "Write", + Description: "Grants permission to update an account customization for QuickSight account or namespace", + Privilege: "UpdateAccountCustomization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lexicon*", + ResourceType: "customization*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about specific speech synthesis task", - Privilege: "GetSpeechSynthesisTask", + AccessLevel: "Write", + Description: "Grants permission to update the administrative account settings for QuickSight account", + Privilege: "UpdateAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -205347,210 +249891,165 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the pronunciation lexicons stored in an AWS Region", - Privilege: "ListLexicons", + AccessLevel: "Write", + Description: "Grants permission to update an analysis", + Privilege: "UpdateAnalysis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysis*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list requested speech synthesis tasks", - Privilege: "ListSpeechSynthesisTasks", + AccessLevel: "Permissions management", + Description: "Grants permission to update permissions for an analysis", + Privilege: "UpdateAnalysisPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "analysis*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to store a pronunciation lexicon in an AWS Region", - Privilege: "PutLexicon", + Description: "Grants permission to update QuickSight IAM Identity Center application with Token Exchange grant", + Privilege: "UpdateApplicationWithTokenExchangeGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lexicon*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to synthesize long inputs to the provided S3 location", - Privilege: "StartSpeechSynthesisTask", + Description: "Grants permission to update a brand", + Privilege: "UpdateBrand", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:PutObject", - }, - ResourceType: "lexicon", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "brand*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to synthesize speech", - Privilege: "SynthesizeSpeech", + AccessLevel: "Write", + Description: "Grants permission to update a brand assignment", + Privilege: "UpdateBrandAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lexicon", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:polly:${Region}:${Account}:lexicon/${LexiconName}", - ConditionKeys: []string{}, - Resource: "lexicon", - }, - }, - ServiceName: "Amazon Polly", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "pricing", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve service details for all (paginated) services (if serviceCode is not set) or service detail for a particular service (if given serviceCode)", - Privilege: "DescribeServices", + AccessLevel: "Write", + Description: "Grants permission to update the published version of a brand", + Privilege: "UpdateBrandPublishedVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "brand*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all (paginated) possible values for a given attribute", - Privilege: "GetAttributeValues", + AccessLevel: "Write", + Description: "Grants permission to update a QuickSight custom permissions resource", + Privilege: "UpdateCustomPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "custompermissions*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the price list file URL for the given parameters", - Privilege: "GetPriceListFileUrl", + AccessLevel: "Write", + Description: "Grants permission to update a QuickSight Dashboard", + Privilege: "UpdateDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all matching products with given search criteria", - Privilege: "GetProducts", + AccessLevel: "Write", + Description: "Grants permission to update a QuickSight Dashboard's links", + Privilege: "UpdateDashboardLinks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all (paginated) eligible price lists for the given parameters", - Privilege: "ListPriceLists", + AccessLevel: "Permissions management", + Description: "Grants permission to update permissions for a QuickSight Dashboard", + Privilege: "UpdateDashboardPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dashboard*", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Price List", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by checking the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by checking tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "private-networks", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to acknowledge that an order has been received", - Privilege: "AcknowledgeOrderReceipt", + Description: "Grants permission to update a QuickSight Dashboard's Published Version", + Privilege: "UpdateDashboardPublishedVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "order*", + ResourceType: "dashboard*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate a device identifier", - Privilege: "ActivateDeviceIdentifier", + Description: "Grants permission to update dashboards qa configuration", + Privilege: "UpdateDashboardsQAConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-identifier*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate a network site", - Privilege: "ActivateNetworkSite", + Description: "Grants permission to update a dataset", + Privilege: "UpdateDataSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "network-site*", + ConditionKeys: []string{}, + DependentActions: []string{ + "quicksight:PassDataSource", + }, + ResourceType: "dataset*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "order*", + ResourceType: "datasource", }, { ConditionKeys: []string{ @@ -205563,26 +250062,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to configure an access point", - Privilege: "ConfigureAccessPoint", + AccessLevel: "Permissions management", + Description: "Grants permission to update the resource policy of a dataset", + Privilege: "UpdateDataSetPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-resource*", + ResourceType: "dataset*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a network", - Privilege: "CreateNetwork", + Description: "Grants permission to update a data source", + Privilege: "UpdateDataSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "network*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "datasource*", }, { ConditionKeys: []string{ @@ -205595,14 +250104,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a network site", - Privilege: "CreateNetworkSite", + AccessLevel: "Permissions management", + Description: "Grants permission to update the resource policy of a data source", + Privilege: "UpdateDataSourcePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "datasource*", }, { ConditionKeys: []string{ @@ -205616,175 +250125,164 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deactivate a device identifier", - Privilege: "DeactivateDeviceIdentifier", + Description: "Grants permission to update linked QBusiness application Id for QuickSight account", + Privilege: "UpdateDefaultQBusinessApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-identifier*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a network", - Privilege: "DeleteNetwork", + Description: "Grants permission to update a QuickSight email customization template", + Privilege: "UpdateEmailCustomizationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "emailCustomizationTemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a network site", - Privilege: "DeleteNetworkSite", + Description: "Grants permission to update a QuickSight Folder", + Privilege: "UpdateFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-site*", + ResourceType: "folder*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a device identifier", - Privilege: "GetDeviceIdentifier", + AccessLevel: "Permissions management", + Description: "Grants permission to update permissions for a QuickSight Folder", + Privilege: "UpdateFolderPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-identifier*", + ResourceType: "folder*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change group description", + Privilege: "UpdateGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a network", - Privilege: "GetNetwork", + AccessLevel: "Write", + Description: "Grants permission to update an existing assignment", + Privilege: "UpdateIAMPolicyAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "assignment*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add and update AWS services for trusted identity propagation in QuickSight", + Privilege: "UpdateIdentityPropagationConfig", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a network resource", - Privilege: "GetNetworkResource", + AccessLevel: "Write", + Description: "Grants permission to update the IP restrictions for QuickSight account", + Privilege: "UpdateIpRestriction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-resource*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a network site", - Privilege: "GetNetworkSite", + AccessLevel: "Write", + Description: "Grants permission to update QuickSight key registration", + Privilege: "UpdateKeyRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-site*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a network order", - Privilege: "GetOrder", + AccessLevel: "Write", + Description: "Grants permission to enable or disable public sharing on an account", + Privilege: "UpdatePublicSharingSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "order*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list device identifiers", - Privilege: "ListDeviceIdentifiers", + AccessLevel: "Write", + Description: "Grants permission to update a personalization configuration", + Privilege: "UpdateQPersonalizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list network resources", - Privilege: "ListNetworkResources", + AccessLevel: "Write", + Description: "Grants permission to update QuickSight Q Search configuration", + Privilege: "UpdateQuickSightQSearchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list network sites", - Privilege: "ListNetworkSites", + AccessLevel: "Write", + Description: "Grants permission to update a refresh schedule for a dataset", + Privilege: "UpdateRefreshSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "refreshschedule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list networks", - Privilege: "ListNetworks", + AccessLevel: "Write", + Description: "Grants permission to update resource-level permissions in QuickSight", + Privilege: "UpdateResourcePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -205794,21 +250292,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list network orders", - Privilege: "ListOrders", + AccessLevel: "Write", + Description: "Grants permission to update the custom permission associated with a role", + Privilege: "UpdateRoleCustomPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update QuickSight SPICE capacity configuration", + Privilege: "UpdateSPICECapacityConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -205818,71 +250316,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to check the health of the service", - Privilege: "Ping", + AccessLevel: "Write", + Description: "Grants permission to update a template", + Privilege: "UpdateTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an update on the specified network resource", - Privilege: "StartNetworkResourceUpdate", + Description: "Grants permission to update a template alias", + Privilege: "UpdateTemplateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-resource*", + ResourceType: "template*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update permissions for a template", + Privilege: "UpdateTemplatePermissions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to adds tags to the specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update a theme", + Privilege: "UpdateTheme", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-identifier", + ResourceType: "theme*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the alias of a theme", + Privilege: "UpdateThemeAlias", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network", + ResourceType: "theme*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update permissions for a theme", + Privilege: "UpdateThemePermissions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-resource", + ResourceType: "theme*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a topic", + Privilege: "UpdateTopic", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "network-site", + ConditionKeys: []string{}, + DependentActions: []string{ + "quicksight:PassDataSet", + }, + ResourceType: "topic*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "order", + ResourceType: "dataset", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -205890,590 +250415,594 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to removes tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to update the resource policy of a topic", + Privilege: "UpdateTopicPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-identifier", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "network", + ResourceType: "topic*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "network-resource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a refresh schedule for a topic", + Privilege: "UpdateTopicRefreshSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-site", + ResourceType: "topic*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an Amazon QuickSight user", + Privilege: "UpdateUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "order", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a network site", - Privilege: "UpdateNetworkSite", + Description: "Grants permission to update the custom permission associated with a user", + Privilege: "UpdateUserCustomPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network-site*", + ResourceType: "user*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a plan at a network site", - Privilege: "UpdateNetworkSitePlan", + Description: "Grants permission to update a vpc connection", + Privilege: "UpdateVPCConnection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "vpcconnection*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "network-site*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:private-networks:${Region}:${Account}:network/${NetworkName}", + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:account/${ResourceId}", + ConditionKeys: []string{}, + Resource: "account", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:user/${ResourceId}", + ConditionKeys: []string{}, + Resource: "user", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:group/${ResourceId}", + ConditionKeys: []string{}, + Resource: "group", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:analysis/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "network", + Resource: "analysis", }, { - Arn: "arn:${Partition}:private-networks:${Region}:${Account}:network-site/${NetworkName}/${NetworkSiteName}", + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dashboard/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "network-site", + Resource: "dashboard", }, { - Arn: "arn:${Partition}:private-networks:${Region}:${Account}:network-resource/${NetworkName}/${ResourceId}", + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:template/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "network-resource", + Resource: "template", }, { - Arn: "arn:${Partition}:private-networks:${Region}:${Account}:order/${NetworkName}/${OrderId}", + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:vpcConnection/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "order", + Resource: "vpcconnection", }, { - Arn: "arn:${Partition}:private-networks:${Region}:${Account}:device-identifier/${NetworkName}/${DeviceId}", + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:asset-bundle-export-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "assetBundleExportJob", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:asset-bundle-import-job/${ResourceId}", + ConditionKeys: []string{}, + Resource: "assetBundleImportJob", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:datasource/${ResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "device-identifier", + Resource: "datasource", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dataset/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dataset", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dataset/${DatasetId}/ingestion/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ingestion", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dataset/${DatasetId}/refresh-schedule/${ResourceId}", + ConditionKeys: []string{}, + Resource: "refreshschedule", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:theme/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "theme", + }, + { + Arn: "arn:${Partition}:quicksight::${Account}:assignment/${ResourceId}", + ConditionKeys: []string{}, + Resource: "assignment", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:customization/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "customization", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:namespace/${ResourceId}", + ConditionKeys: []string{}, + Resource: "namespace", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:folder/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "folder", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:email-customization-template/${ResourceId}", + ConditionKeys: []string{}, + Resource: "emailCustomizationTemplate", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:topic/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "topic", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dashboard/${DashboardId}/snapshot-job/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dashboardSnapshotJob", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:brand/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "brand", + }, + { + Arn: "arn:${Partition}:quicksight:${Region}:${Account}:custompermissions/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "custompermissions", }, }, - ServiceName: "AWS service providing managed private networks", + ServiceName: "Amazon QuickSight", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a key that is present in the request the user makes to the customer profile service", + Description: "Filters access by the tags that are passed in the request when creating or tagging a resource share. If users don't pass these specific tags, or if they don't specify tags at all, the request fails", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names present in the request the user makes to the customer profile service", + Description: "Filters access by the tag keys that are passed when creating or tagging a resource share", Type: "ArrayOfString", }, - }, - Prefix: "profile", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to add a profile key", - Privilege: "AddProfileKey", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, + Condition: "ram:AllowsExternalPrincipals", + Description: "Filters access by resource shares that allow or deny sharing with external principals. For example, specify true if the action can only be performed on resource shares that allow sharing with external principals. External principals are AWS accounts that are outside of its AWS organization", + Type: "Bool", }, { - AccessLevel: "Write", - Description: "Grants permission to create a calculated attribute definition in the domain", - Privilege: "CreateCalculatedAttributeDefinition", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "calculated-attributes*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, + Condition: "ram:PermissionArn", + Description: "Filters access by the specified Permission ARN", + Type: "ARN", }, { - AccessLevel: "Write", - Description: "Grants permission to create a Domain", - Privilege: "CreateDomain", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "domains*", - }, - }, + Condition: "ram:PermissionResourceType", + Description: "Filters access by permissions of specified resource type", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to put an event stream in a domain", - Privilege: "CreateEventStream", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PutRolePolicy", - "kinesis:DescribeStreamSummary", - }, - ResourceType: "domains*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "event-streams*", - }, - }, + Condition: "ram:Principal", + Description: "Filters access by format of the specified principal", + Type: "String", + }, + { + Condition: "ram:RequestedAllowsExternalPrincipals", + Description: "Filters access by the specified value for 'allowExternalPrincipals'. External principals are AWS accounts that are outside of its AWS Organization", + Type: "Bool", + }, + { + Condition: "ram:RequestedResourceType", + Description: "Filters access by the specified resource type", + Type: "String", + }, + { + Condition: "ram:ResourceArn", + Description: "Filters access by the specified ARN", + Type: "ARN", + }, + { + Condition: "ram:ResourceShareName", + Description: "Filters access by a resource share with the specified name", + Type: "String", + }, + { + Condition: "ram:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", }, + { + Condition: "ram:ShareOwnerAccountId", + Description: "Filters access by resource shares owned by a specific account. For example, you can use this condition key to specify which resource share invitations can be accepted or rejected based on the resource share owner's account ID", + Type: "String", + }, + }, + Prefix: "ram", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an integration workflow in a domain", - Privilege: "CreateIntegrationWorkflow", + Description: "Grants permission to accept the specified resource share invitation", + Privilege: "AcceptResourceShareInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share-invitation*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ram:ShareOwnerAccountId", + "ram:ResourceShareName", }, DependentActions: []string{}, - ResourceType: "integrations*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a profile in the domain", - Privilege: "CreateProfile", + Description: "Grants permission to associate resource(s) and/or principal(s) to a resource share", + Privilege: "AssociateResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot in the domain", - Privilege: "CreateSnapshot", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + "ram:Principal", + "ram:RequestedResourceType", + "ram:ResourceArn", + }, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a calculated attribute definition in the domain", - Privilege: "DeleteCalculatedAttributeDefinition", + Description: "Grants permission to associate a Permission with a Resource Share", + Privilege: "AssociateResourceSharePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes*", + ResourceType: "customer-managed-permission*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "permission*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a Domain", - Privilege: "DeleteDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an event stream in a domain", - Privilege: "DeleteEventStream", + Description: "Grants permission to create a Permission that can be associated to a Resource Share", + Privilege: "CreatePermission", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{ - "iam:DeleteRolePolicy", + "ram:TagResource", }, - ResourceType: "domains*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-streams*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a integration in a domain", - Privilege: "DeleteIntegration", + Description: "Grants permission to create a new version of a Permission that can be associated to a Resource Share", + Privilege: "CreatePermissionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integrations*", + ResourceType: "customer-managed-permission*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a profile", - Privilege: "DeleteProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + }, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a profile key", - Privilege: "DeleteProfileKey", + Description: "Grants permission to create a resource share with provided resource(s) and/or principal(s)", + Privilege: "CreateResourceShare", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ram:RequestedResourceType", + "ram:ResourceArn", + "ram:RequestedAllowsExternalPrincipals", + "ram:Principal", + "ram:AllowsExternalPrincipals", + }, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a profile object", - Privilege: "DeleteProfileObject", + Description: "Grants permission to delete a specified Permission", + Privilege: "DeletePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:PermissionArn", + "ram:PermissionResourceType", + }, DependentActions: []string{}, - ResourceType: "object-types*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specific profile object type in the domain", - Privilege: "DeleteProfileObjectType", + Description: "Grants permission to delete a specified version of a permission", + Privilege: "DeletePermissionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + }, DependentActions: []string{}, - ResourceType: "object-types*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a workflow in a domain", - Privilege: "DeleteWorkflow", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to auto detect object type", - Privilege: "DetectProfileObjectType", + Description: "Grants permission to delete resource share", + Privilege: "DeleteResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a preview of auto merging in a domain", - Privilege: "GetAutoMergingPreview", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + }, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a calculated attribute definition in the domain", - Privilege: "GetCalculatedAttributeDefinition", + AccessLevel: "Write", + Description: "Grants permission to disassociate resource(s) and/or principal(s) from a resource share", + Privilege: "DisassociateResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes*", + ResourceType: "resource-share*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + "ram:Principal", + "ram:RequestedResourceType", + "ram:ResourceArn", + }, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a calculated attribute for a specific profile in the domain", - Privilege: "GetCalculatedAttributeForProfile", + AccessLevel: "Write", + Description: "Grants permission to disassociate a Permission from a Resource Share", + Privilege: "DisassociateResourceSharePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes*", + ResourceType: "customer-managed-permission*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "permission*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a specific domain in an account", - Privilege: "GetDomain", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a specific event stream in a domain", - Privilege: "GetEventStream", + AccessLevel: "Permissions management", + Description: "Grants permission to access customer's organization and create a SLR in the customer's account", + Privilege: "EnableSharingWithAwsOrganization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "kinesis:DescribeStreamSummary", + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", }, - ResourceType: "domains*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-streams*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an identity resolution job in a domain", - Privilege: "GetIdentityResolutionJob", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a specific integrations in a domain", - Privilege: "GetIntegration", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integrations*", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get profile matches in a domain", - Privilege: "GetMatches", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a specific profile object type in the domain", - Privilege: "GetProfileObjectType", + Description: "Grants permission to get the contents of an AWS RAM permission", + Privilege: "GetPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object-types*", + ResourceType: "permission*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a specific object type template", - Privilege: "GetProfileObjectTypeTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ram:PermissionArn", + }, DependentActions: []string{}, ResourceType: "", }, }, }, - { - AccessLevel: "List", - Description: "Grants permission to get all the similar profiles in the domain", - Privilege: "GetSimilarProfiles", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a snapshot in the domain", - Privilege: "GetSnapshot", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get workflow details in a domain", - Privilege: "GetWorkflow", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", - }, - }, - }, { AccessLevel: "Read", - Description: "Grants permission to get workflow step details in a domain", - Privilege: "GetWorkflowSteps", + Description: "Grants permission to get the policies for the specified resources that you own and have shared", + Privilege: "GetResourcePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the integrations in the account", - Privilege: "ListAccountIntegrations", + AccessLevel: "Read", + Description: "Grants permission to get a set of resource share associations from a provided list or with a specified status of the specified type", + Privilege: "GetResourceShareAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -206483,81 +251012,104 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the calculated attribute definitions in the domain", - Privilege: "ListCalculatedAttributeDefinitions", + AccessLevel: "Read", + Description: "Grants permission to get resource share invitations by the specified invitation arn or those for the resource share", + Privilege: "GetResourceShareInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all calculated attributes for a specific profile in the domain", - Privilege: "ListCalculatedAttributesForProfile", + AccessLevel: "Read", + Description: "Grants permission to get a set of resource shares from a provided list or with a specified status", + Privilege: "GetResourceShares", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the domains in an account", - Privilege: "ListDomains", + AccessLevel: "Read", + Description: "Grants permission to list the resources in a resource share that is shared with you but that the invitation is still pending for", + Privilege: "ListPendingInvitationResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "resource-share-invitation*", + }, + { + ConditionKeys: []string{ + "ram:ResourceShareName", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the event streams in a specific domain", - Privilege: "ListEventStreams", + Description: "Grants permission to list information about the permission and any associations", + Privilege: "ListPermissionAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "permission*", + }, + { + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list identity resolution jobs in a domain", - Privilege: "ListIdentityResolutionJobs", + Description: "Grants permission to list the versions of an AWS RAM permission", + Privilege: "ListPermissionVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the integrations in a specific domain", - Privilege: "ListIntegrations", + Description: "Grants permission to list the AWS RAM permissions", + Privilege: "ListPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the profile object type templates in the account", - Privilege: "ListProfileObjectTypeTemplates", + Description: "Grants permission to list the principals that you have shared resources with or that have shared resources with you", + Privilege: "ListPrincipals", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -206568,199 +251120,172 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all the profile object types in the domain", - Privilege: "ListProfileObjectTypes", + Description: "Grants permission to retrieve the status of the asynchronous permission replacement", + Privilege: "ListReplacePermissionAssociationsWork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the profile objects for a profile", - Privilege: "ListProfileObjects", + Description: "Grants permission to list the Permissions associated with a Resource Share", + Privilege: "ListResourceSharePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + }, DependentActions: []string{}, - ResourceType: "object-types*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the rule-based matching result in the domain", - Privilege: "ListRuleBasedMatches", + Description: "Grants permission to list the shareable resource types supported by AWS RAM", + Privilege: "ListResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list the resources that you added to resource shares or the resources that are shared with you", + Privilege: "ListResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-streams", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integrations", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "object-types", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the workflows in a specific domain", - Privilege: "ListWorkflows", + AccessLevel: "Write", + Description: "Grants permission to create a separate, fully manageable customer managed permission", + Privilege: "PromotePermissionCreatedFromPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", + }, + { + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to merge profiles in a domain", - Privilege: "MergeProfiles", + Description: "Grants permission to promote the specified resource share", + Privilege: "PromoteResourceShareCreatedFromPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put a integration in a domain", - Privilege: "PutIntegration", + Description: "Grants permission to reject the specified resource share invitation", + Privilege: "RejectResourceShareInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share-invitation*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ram:ShareOwnerAccountId", + "ram:ResourceShareName", }, DependentActions: []string{}, - ResourceType: "integrations*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put an object for a profile", - Privilege: "PutProfileObject", + Description: "Grants permission to update all resource shares to a new permission", + Privilege: "ReplacePermissionAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object-types*", + ResourceType: "permission*", + }, + { + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put a specific profile object type in the domain", - Privilege: "PutProfileObjectType", + Description: "Grants permission to specify a version number as the default version for the respective customer managed permission", + Privilege: "SetDefaultPermissionVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "customer-managed-permission*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ram:PermissionArn", + "ram:PermissionResourceType", }, DependentActions: []string{}, - ResourceType: "object-types*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to search for profiles in a domain", - Privilege: "SearchProfiles", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to adds tags to a resource", + Description: "Grants permission to tag the specified resource share or permission", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-streams", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integrations", + ResourceType: "customer-managed-permission", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object-types", + ResourceType: "resource-share", }, { ConditionKeys: []string{ @@ -206774,33 +251299,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", + Description: "Grants permission to untag the specified resource share or permission", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "event-streams", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "integrations", + ResourceType: "customer-managed-permission", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object-types", + ResourceType: "resource-share", }, { ConditionKeys: []string{ @@ -206813,154 +251323,167 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a calculated attribute definition in the domain", - Privilege: "UpdateCalculatedAttributeDefinition", + Description: "Grants permission to update attributes of the resource share", + Privilege: "UpdateResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "calculated-attributes*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "resource-share*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a Domain", - Privilege: "UpdateDomain", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + "ram:RequestedAllowsExternalPrincipals", }, - ResourceType: "domains*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a profile in the domain", - Privilege: "UpdateProfile", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domains*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "domains", - }, - { - Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/object-types/${ObjectTypeName}", + Arn: "arn:${Partition}:ram:${Region}:${Account}:resource-share/${ResourcePath}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ram:AllowsExternalPrincipals", + "ram:ResourceShareName", }, - Resource: "object-types", + Resource: "resource-share", }, { - Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/integrations/${Uri}", + Arn: "arn:${Partition}:ram:${Region}:${Account}:resource-share-invitation/${ResourcePath}", ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "ram:ShareOwnerAccountId", }, - Resource: "integrations", + Resource: "resource-share-invitation", }, { - Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/event-streams/${EventStreamName}", + Arn: "arn:${Partition}:ram::${Account}:permission/${ResourcePath}", ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "ram:PermissionArn", + "ram:PermissionResourceType", }, - Resource: "event-streams", + Resource: "permission", }, { - Arn: "arn:${Partition}:profile:${Region}:${Account}:domains/${DomainName}/calculated-attributes/${CalculatedAttributeName}", + Arn: "arn:${Partition}:ram:${Region}:${Account}:permission/${ResourcePath}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "ram:PermissionArn", + "ram:PermissionResourceType", }, - Resource: "calculated-attributes", + Resource: "customer-managed-permission", }, }, - ServiceName: "Amazon Connect Customer Profiles", + ServiceName: "AWS Resource Access Manager (RAM)", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tag key-value pairs in the request", + Description: "Filters access based on the tags that are passed in the request when creating or tagging a resource share. If users don't pass these specific tags, or if they don't specify tags at all, the request fails", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", + Description: "Filters access based on the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by tag keys in the request", + Description: "Filters access based on the tag keys that are passed when creating or tagging a resource share", Type: "ArrayOfString", }, { - Condition: "proton:EnvironmentTemplate", - Description: "Filters access by specified environment template related to resource", + Condition: "ram:AllowsExternalPrincipals", + Description: "Filters access based on resource shares that allow or deny sharing with external principals. For example, specify true if the action can only be performed on resource shares that allow sharing with external principals. External principals are AWS accounts that are outside of its AWS organization", + Type: "Bool", + }, + { + Condition: "ram:PermissionArn", + Description: "Filters access based on the specified Permission ARN", + Type: "ARN", + }, + { + Condition: "ram:PermissionResourceType", + Description: "Filters access based on permissions of specified resource type", Type: "String", }, { - Condition: "proton:ServiceTemplate", - Description: "Filters access by specified service template related to resource", + Condition: "ram:Principal", + Description: "Filters access based on the format of the specified principal", + Type: "String", + }, + { + Condition: "ram:RequestedAllowsExternalPrincipals", + Description: "Filters access based on the specified value for 'allowExternalPrincipals'. External principals are AWS accounts that are outside of its AWS Organization", + Type: "Bool", + }, + { + Condition: "ram:RequestedResourceType", + Description: "Filters access based on the specified resource type", + Type: "String", + }, + { + Condition: "ram:ResourceArn", + Description: "Filters access based on a resource with the specified ARN", + Type: "ARN", + }, + { + Condition: "ram:ResourceShareName", + Description: "Filters access based on a resource share with the specified name", + Type: "String", + }, + { + Condition: "ram:ShareOwnerAccountId", + Description: "Filters access based on resource shares owned by a specific account. For example, you can use this condition key to specify which resource share invitations can be accepted or rejected based on the resource share owner's account ID", Type: "String", }, }, - Prefix: "proton", + Prefix: "ram", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to reject an environment account connection request from another environment account", - Privilege: "AcceptEnvironmentAccountConnection", + Description: "Grants permission to accept the specified resource share invitation", + Privilege: "AcceptResourceShareInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-account-connection*", + ResourceType: "resource-share-invitation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel component deployment", - Privilege: "CancelComponentDeployment", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ram:ShareOwnerAccountId", + }, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel an environment deployment", - Privilege: "CancelEnvironmentDeployment", + Description: "Grants permission to associate resource(s) and/or principal(s) to a resource share", + Privilege: "AssociateResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "proton:EnvironmentTemplate", + "aws:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + "ram:Principal", + "ram:RequestedResourceType", + "ram:ResourceArn", }, DependentActions: []string{}, ResourceType: "", @@ -206969,36 +251492,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to cancel a service instance deployment", - Privilege: "CancelServiceInstanceDeployment", + Description: "Grants permission to associate a Permission with a Resource Share", + Privilege: "AssociateResourceSharePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance*", + ResourceType: "permission*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-share*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a resource share with provided resource(s) and/or principal(s)", + Privilege: "CreateResourceShare", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "proton:ServiceTemplate", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ram:RequestedResourceType", + "ram:ResourceArn", + "ram:RequestedAllowsExternalPrincipals", + "ram:Principal", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "ec2:CreateTags", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a service pipeline deployment", - Privilege: "CancelServicePipelineDeployment", + Description: "Grants permission to delete resource share", + Privilege: "DeleteResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "proton:ServiceTemplate", + "aws:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", }, DependentActions: []string{}, ResourceType: "", @@ -207007,18 +251551,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create component", - Privilege: "CreateComponent", + Description: "Grants permission to disassociate resource(s) and/or principal(s) from a resource share", + Privilege: "DisassociateResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + "ram:Principal", + "ram:RequestedResourceType", + "ram:ResourceArn", }, DependentActions: []string{}, ResourceType: "", @@ -207027,56 +251575,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an environment", - Privilege: "CreateEnvironment", + Description: "Grants permission to disassociate a Permission from a Resource Share", + Privilege: "DisassociateResourceSharePermission", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "environment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "permission*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "proton:EnvironmentTemplate", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resource-share*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an environment account connection", - Privilege: "CreateEnvironmentAccountConnection", + AccessLevel: "Permissions management", + Description: "Grants permission to access customer's organization and create a SLR in the customer's account", + Privilege: "EnableSharingWithAwsOrganization", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an environment template", - Privilege: "CreateEnvironmentTemplate", + AccessLevel: "Read", + Description: "Grants permission to get the contents of an AWS RAM permission", + Privilege: "GetPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "permission*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ram:PermissionArn", }, DependentActions: []string{}, ResourceType: "", @@ -207084,39 +251626,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an environment template major version. DEPRECATED - use CreateEnvironmentTemplateVersion instead", - Privilege: "CreateEnvironmentTemplateMajorVersion", + AccessLevel: "Read", + Description: "Grants permission to get the policies for the specified resources that you own and have shared", + Privilege: "GetResourcePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a set of resource share associations from a provided list or with a specified status of the specified type", + Privilege: "GetResourceShareAssociations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an environment template minor version. DEPRECATED - use CreateEnvironmentTemplateVersion instead", - Privilege: "CreateEnvironmentTemplateMinorVersion", + AccessLevel: "Read", + Description: "Grants permission to get resource share invitations by the specified invitation arn or those for the resource share", + Privilege: "GetResourceShareInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a set of resource shares from a provided list or with a specified status", + Privilege: "GetResourceShares", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -207124,62 +251677,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an environment template version", - Privilege: "CreateEnvironmentTemplateVersion", + AccessLevel: "Read", + Description: "Grants permission to list the resources in a resource share that is shared with you but that the invitation is still pending for", + Privilege: "ListPendingInvitationResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "resource-share-invitation*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the versions of an AWS RAM permission", + Privilege: "ListPermissionVersions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a repository", - Privilege: "CreateRepository", + AccessLevel: "List", + Description: "Grants permission to list the AWS RAM permissions", + Privilege: "ListPermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the principals that you have shared resources with or that have shared resources with you", + Privilege: "ListPrincipals", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a service", - Privilege: "CreateService", + AccessLevel: "List", + Description: "Grants permission to list the Permissions associated with a Resource Share", + Privilege: "ListResourceSharePermissions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "codestar-connections:PassConnection", - }, - ResourceType: "service*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "proton:ServiceTemplate", + "aws:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", }, DependentActions: []string{}, ResourceType: "", @@ -207187,21 +251746,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a service instance", - Privilege: "CreateServiceInstance", + AccessLevel: "List", + Description: "Grants permission to list the shareable resource types supported by AWS RAM", + Privilege: "ListResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the resources that you added to resource shares or the resources that are shared with you", + Privilege: "ListResources", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "proton:ServiceTemplate", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -207209,30 +251771,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a service sync config", - Privilege: "CreateServiceSyncConfig", + Description: "Grants permission to promote the specified resource share", + Privilege: "PromoteResourceShareCreatedFromPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resource-share*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a service template", - Privilege: "CreateServiceTemplate", + Description: "Grants permission to reject the specified resource share invitation", + Privilege: "RejectResourceShareInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "resource-share-invitation*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ram:ShareOwnerAccountId", }, DependentActions: []string{}, ResourceType: "", @@ -207240,19 +251801,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a service template major version. DEPRECATED - use CreateServiceTemplateVersion instead", - Privilege: "CreateServiceTemplateMajorVersion", + AccessLevel: "Tagging", + Description: "Grants permission to tag the specified resource share", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -207260,19 +251821,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a service template minor version. DEPRECATED - use CreateServiceTemplateVersion instead", - Privilege: "CreateServiceTemplateMinorVersion", + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified resource share", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -207281,85 +251842,174 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a service template version", - Privilege: "CreateServiceTemplateVersion", + Description: "Grants permission to update attributes of the resource share", + Privilege: "UpdateResourceShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "resource-share*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "ram:ResourceShareName", + "ram:AllowsExternalPrincipals", + "ram:RequestedAllowsExternalPrincipals", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ram:${Region}:${Account}:resource-share/${ResourcePath}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ram:AllowsExternalPrincipals", + "ram:ResourceShareName", + }, + Resource: "resource-share", + }, + { + Arn: "arn:${Partition}:ram:${Region}:${Account}:resource-share-invitation/${ResourcePath}", + ConditionKeys: []string{ + "ram:ShareOwnerAccountId", + }, + Resource: "resource-share-invitation", + }, + { + Arn: "arn:${Partition}:ram::${Account}:permission/${ResourcePath}", + ConditionKeys: []string{ + "ram:PermissionArn", + "ram:PermissionResourceType", + }, + Resource: "permission", + }, + }, + ServiceName: "AWS Resource Access Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in a request", + Type: "ArrayOfString", + }, + { + Condition: "rbin:Attribute/ResourceType", + Description: "Filters access by the resource type of the existing rule", + Type: "String", + }, + { + Condition: "rbin:Request/ResourceType", + Description: "Filters access by the resource type in a request", + Type: "String", + }, + }, + Prefix: "rbin", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a template sync config", - Privilege: "CreateTemplateSyncConfig", + Description: "Grants permission to create a Recycle Bin retention rule", + Privilege: "CreateRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rbin:Request/ResourceType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete account roles. DEPRECATED - use UpdateAccountSettings instead", - Privilege: "DeleteAccountRoles", + Description: "Grants permission to delete a Recycle Bin retention rule", + Privilege: "DeleteRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rbin:Attribute/ResourceType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete component", - Privilege: "DeleteComponent", + AccessLevel: "Read", + Description: "Grants permission to get detailed information about a Recycle Bin retention rule", + Privilege: "GetRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rbin:Attribute/ResourceType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a deployment", - Privilege: "DeleteDeployment", + AccessLevel: "Read", + Description: "Grants permission to list the Recycle Bin retention rules in the Region", + Privilege: "ListRules", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "rbin:Request/ResourceType", + }, DependentActions: []string{}, - ResourceType: "deployment*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an environment", - Privilege: "DeleteEnvironment", + AccessLevel: "Read", + Description: "Grants permission to list the tags associated with a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "rule*", }, { ConditionKeys: []string{ - "proton:EnvironmentTemplate", + "aws:ResourceTag/${TagKey}", + "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -207368,89 +252018,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an environment account connection", - Privilege: "DeleteEnvironmentAccountConnection", + Description: "Grants permission to lock an existing Recycle Bin retention rule", + Privilege: "LockRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-account-connection*", + ResourceType: "rule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an environment template", - Privilege: "DeleteEnvironmentTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rbin:Attribute/ResourceType", + }, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an environment template major version. DEPRECATED - use DeleteEnvironmentTemplateVersion instead", - Privilege: "DeleteEnvironmentTemplateMajorVersion", + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags of a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "rule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an environment template minor version. DEPRECATED - use DeleteEnvironmentTemplateVersion instead", - Privilege: "DeleteEnvironmentTemplateMinorVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "rbin:Attribute/ResourceType", + }, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an environment template version", - Privilege: "DeleteEnvironmentTemplateVersion", + Description: "Grants permission to unlock an existing Recycle Bin retention rule", + Privilege: "UnlockRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "rule*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a repository", - Privilege: "DeleteRepository", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rbin:Attribute/ResourceType", + }, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a service", - Privilege: "DeleteService", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "rule*", }, { ConditionKeys: []string{ - "proton:ServiceTemplate", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -207459,356 +252101,387 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a service sync config", - Privilege: "DeleteServiceSyncConfig", + Description: "Grants permission to update an existing Recycle Bin retention rule", + Privilege: "UpdateRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "rule*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rbin:Attribute/ResourceType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:rbin:${Region}:${Account}:rule/${ResourceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "rule", + }, + }, + ServiceName: "AWS Recycle Bin", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the set of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the set of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the set of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "rds:BackupTarget", + Description: "Filters access by the type of backup target. One of: region, outposts", + Type: "String", + }, + { + Condition: "rds:CopyOptionGroup", + Description: "Filters access by the value that specifies whether the CopyDBSnapshot action requires copying the DB option group", + Type: "Bool", + }, + { + Condition: "rds:DatabaseClass", + Description: "Filters access by the type of DB instance class", + Type: "String", + }, + { + Condition: "rds:DatabaseEngine", + Description: "Filters access by the database engine. For possible values refer to the engine parameter in CreateDBInstance API", + Type: "String", + }, + { + Condition: "rds:DatabaseName", + Description: "Filters access by the user-defined name of the database on the DB instance", + Type: "String", + }, + { + Condition: "rds:EndpointType", + Description: "Filters access by the type of the endpoint. One of: READER, WRITER, CUSTOM", + Type: "String", + }, + { + Condition: "rds:ManageMasterUserPassword", + Description: "Filters access by the value that specifies whether RDS manages master user password in AWS Secrets Manager for the DB instance or cluster", + Type: "Bool", + }, + { + Condition: "rds:MultiAz", + Description: "Filters access by the value that specifies whether the DB instance runs in multiple Availability Zones. To indicate that the DB instance is using Multi-AZ, specify true", + Type: "Bool", + }, + { + Condition: "rds:Piops", + Description: "Filters access by the value that contains the number of Provisioned IOPS (PIOPS) that the instance supports. To indicate a DB instance that does not have PIOPS enabled, specify 0", + Type: "Numeric", + }, + { + Condition: "rds:StorageEncrypted", + Description: "Filters access by the value that specifies whether the DB instance storage should be encrypted. To enforce storage encryption, specify true", + Type: "Bool", + }, + { + Condition: "rds:StorageSize", + Description: "Filters access by the storage volume size (in GB)", + Type: "Numeric", + }, + { + Condition: "rds:TenantDatabaseName", + Description: "Filters access by the tenant database name in CreateTenantDatabase and by the new tenant database name in ModifyTenantDatabase", + Type: "String", + }, + { + Condition: "rds:Vpc", + Description: "Filters access by the value that specifies whether the DB instance runs in an Amazon Virtual Private Cloud (Amazon VPC). To indicate that the DB instance runs in an Amazon VPC, specify true", + Type: "Bool", + }, + { + Condition: "rds:cluster-pg-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB cluster parameter group", + Type: "String", + }, + { + Condition: "rds:cluster-snapshot-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB cluster snapshot", + Type: "String", + }, + { + Condition: "rds:cluster-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB cluster", + Type: "String", + }, + { + Condition: "rds:db-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB instance", + Type: "String", + }, + { + Condition: "rds:es-tag/${TagKey}", + Description: "Filters access by the tag attached to an event subscription", + Type: "String", + }, + { + Condition: "rds:og-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB option group", + Type: "String", + }, + { + Condition: "rds:pg-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB parameter group", + Type: "String", + }, + { + Condition: "rds:req-tag/${TagKey}", + Description: "Filters access by the set of tag keys and values that can be used to tag a resource", + Type: "String", + }, + { + Condition: "rds:ri-tag/${TagKey}", + Description: "Filters access by the tag attached to a reserved DB instance", + Type: "String", + }, + { + Condition: "rds:secgrp-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB security group", + Type: "String", + }, + { + Condition: "rds:snapshot-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB snapshot", + Type: "String", + }, + { + Condition: "rds:subgrp-tag/${TagKey}", + Description: "Filters access by the tag attached to a DB subnet group", + Type: "String", + }, + }, + Prefix: "rds", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a service template", - Privilege: "DeleteServiceTemplate", + Description: "Grants permission to associate an Identity and Access Management (IAM) role from an Aurora DB cluster", + Privilege: "AddRoleToDBCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a service template major version. DEPRECATED - use DeleteServiceTemplateVersion instead", - Privilege: "DeleteServiceTemplateMajorVersion", + Description: "Grants permission to associate an AWS Identity and Access Management (IAM) role with a DB instance", + Privilege: "AddRoleToDBInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a service template minor version. DEPRECATED - use DeleteServiceTemplateVersion instead", - Privilege: "DeleteServiceTemplateMinorVersion", + Description: "Grants permission to add a source identifier to an existing RDS event notification subscription", + Privilege: "AddSourceIdentifierToSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "es*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a service template version", - Privilege: "DeleteServiceTemplateVersion", + AccessLevel: "Tagging", + Description: "Grants permission to add metadata tags to an Amazon RDS resource", + Privilege: "AddTagsToResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "cev", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a TemplateSyncConfig", - Privilege: "DeleteTemplateSyncConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get account roles. DEPRECATED - use GetAccountSettings instead", - Privilege: "GetAccountRoles", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-endpoint", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the account settings", - Privilege: "GetAccountSettings", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-pg", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a component", - Privilege: "GetComponent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "cluster-snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a deployment", - Privilege: "GetDeployment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment*", + ResourceType: "db", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an environment", - Privilege: "GetEnvironment", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "deployment", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an environment account connection", - Privilege: "GetEnvironmentAccountConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-account-connection*", + ResourceType: "es", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an environment template", - Privilege: "GetEnvironmentTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "integration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an environment template major version. DEPRECATED - use GetEnvironmentTemplateVersion instead", - Privilege: "GetEnvironmentTemplateMajorVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "og", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get an environment template minor version. DEPRECATED - use GetEnvironmentTemplateVersion instead", - Privilege: "GetEnvironmentTemplateMinorVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "pg", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an environment template version", - Privilege: "GetEnvironmentTemplateVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "proxy", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a repository", - Privilege: "GetRepository", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "repository*", + ResourceType: "proxy-endpoint", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the latest sync status for a repository", - Privilege: "GetRepositorySyncStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ri", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list resource template version status counts", - Privilege: "GetResourceTemplateVersionStatusCounts", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "secgrp", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get resources summary", - Privilege: "GetResourcesSummary", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "shardgrp", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a service", - Privilege: "GetService", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a service instance", - Privilege: "GetServiceInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance*", + ResourceType: "snapshot-tenant-database", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the sync status of a service instance", - Privilege: "GetServiceInstanceSyncStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subgrp", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe service sync blockers on a service or service instance", - Privilege: "GetServiceSyncBlockerSummary", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "target-group", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a service sync config", - Privilege: "GetServiceSyncConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "tenant-database", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a service template", - Privilege: "GetServiceTemplate", + AccessLevel: "Write", + Description: "Grants permission to apply a pending maintenance action to a resource", + Privilege: "ApplyPendingMaintenanceAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a service template major version. DEPRECATED - use GetServiceTemplateVersion instead", - Privilege: "GetServiceTemplateMajorVersion", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "db", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a service template minor version. DEPRECATED - use GetServiceTemplateVersion instead", - Privilege: "GetServiceTemplateMinorVersion", + AccessLevel: "Permissions management", + Description: "Grants permission to enable ingress to a DBSecurityGroup using one of two forms of authorization", + Privilege: "AuthorizeDBSecurityGroupIngress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "secgrp*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a service template version", - Privilege: "GetServiceTemplateVersion", + AccessLevel: "Write", + Description: "Grants permission to backtrack a DB cluster to a specific time, without creating a new DB cluster", + Privilege: "BacktrackDBCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a TemplateSyncConfig", - Privilege: "GetTemplateSyncConfig", + AccessLevel: "Write", + Description: "Grants permission to cancel an export task in progress", + Privilege: "CancelExportTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -207818,530 +252491,595 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the sync status of a template", - Privilege: "GetTemplateSyncStatus", + AccessLevel: "Write", + Description: "Grants permission to copy a custom engine version", + Privilege: "CopyCustomDBEngineVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cev*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list component outputs", - Privilege: "ListComponentOutputs", + AccessLevel: "Write", + Description: "Grants permission to copy the specified DB cluster parameter group", + Privilege: "CopyDBClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "cluster-pg*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list component provisioned resources", - Privilege: "ListComponentProvisionedResources", + AccessLevel: "Write", + Description: "Grants permission to create a snapshot of a DB cluster", + Privilege: "CopyDBClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "cluster-snapshot*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list components", - Privilege: "ListComponents", + AccessLevel: "Write", + Description: "Grants permission to copy the specified DB parameter group", + Privilege: "CopyDBParameterGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "pg*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "service-instance", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list deployments", - Privilege: "ListDeployments", + AccessLevel: "Write", + Description: "Grants permission to copy the specified DB snapshot", + Privilege: "CopyDBSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + "rds:CopyCustomDBEngineVersion", + }, + ResourceType: "snapshot*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list environment account connections", - Privilege: "ListEnvironmentAccountConnections", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:CopyOptionGroup", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list environment outputs", - Privilege: "ListEnvironmentOutputs", + AccessLevel: "Write", + Description: "Grants permission to copy the specified option group", + Privilege: "CopyOptionGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "og*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list environment provisioned resources", - Privilege: "ListEnvironmentProvisionedResources", + AccessLevel: "Write", + Description: "Grants permission to create a blue-green deployment for a given source cluster or instance", + Privilege: "CreateBlueGreenDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBClusterEndpoint", + "rds:CreateDBInstance", + "rds:CreateDBInstanceReadReplica", + }, + ResourceType: "deployment*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list environment template major versions. DEPRECATED - use ListEnvironmentTemplateVersions instead", - Privilege: "ListEnvironmentTemplateMajorVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list an environment template minor versions. DEPRECATED - use ListEnvironmentTemplateVersions instead", - Privilege: "ListEnvironmentTemplateMinorVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "cluster-pg", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list environment template versions", - Privilege: "ListEnvironmentTemplateVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "db", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list environment templates", - Privilege: "ListEnvironmentTemplates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pg", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list environments", - Privilege: "ListEnvironments", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "rds:cluster-tag/${TagKey}", + "rds:cluster-pg-tag/${TagKey}", + "rds:db-tag/${TagKey}", + "rds:pg-tag/${TagKey}", + "rds:req-tag/${TagKey}", + "rds:DatabaseEngine", + "rds:DatabaseName", + "rds:StorageEncrypted", + "rds:DatabaseClass", + "rds:StorageSize", + "rds:MultiAz", + "rds:Piops", + "rds:Vpc", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list repositories", - Privilege: "ListRepositories", + AccessLevel: "Write", + Description: "Grants permission to create a custom engine version", + Privilege: "CreateCustomDBEngineVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "mediaimport:CreateDatabaseBinarySnapshot", + "rds:AddTagsToResource", + }, + ResourceType: "cev*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list repository sync definitions", - Privilege: "ListRepositorySyncDefinitions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list service instance outputs", - Privilege: "ListServiceInstanceOutputs", + AccessLevel: "Write", + Description: "Grants permission to create a new DB cluster", + Privilege: "CreateDBCluster", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "rds:AddTagsToResource", + "rds:CreateDBInstance", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "cluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "cluster-pg*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance*", + ResourceType: "og*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "subgrp*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list service instance provisioned resources", - Privilege: "ListServiceInstanceProvisionedResources", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "db", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance*", + ResourceType: "global-cluster", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list service instances", - Privilege: "ListServiceInstances", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + "rds:DatabaseEngine", + "rds:DatabaseName", + "rds:StorageEncrypted", + "rds:DatabaseClass", + "rds:StorageSize", + "rds:Piops", + "rds:ManageMasterUserPassword", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list service pipeline outputs", - Privilege: "ListServicePipelineOutputs", + AccessLevel: "Write", + Description: "Grants permission to create a new custom endpoint and associates it with an Amazon Aurora DB cluster or Amazon DocumentDB cluster", + Privilege: "CreateDBClusterEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "cluster-endpoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list service pipeline provisioned resources", - Privilege: "ListServicePipelineProvisionedResources", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "rds:EndpointType", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list service template major versions. DEPRECATED - use ListServiceTemplateVersions instead", - Privilege: "ListServiceTemplateMajorVersions", + AccessLevel: "Write", + Description: "Grants permission to create a new DB cluster parameter group", + Privilege: "CreateDBClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "cluster-pg*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list service template minor versions. DEPRECATED - use ListServiceTemplateVersions instead", - Privilege: "ListServiceTemplateMinorVersions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list service template versions", - Privilege: "ListServiceTemplateVersions", + AccessLevel: "Write", + Description: "Grants permission to create a snapshot of a DB cluster", + Privilege: "CreateDBClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "cluster*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list service templates", - Privilege: "ListServiceTemplates", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-snapshot*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list services", - Privilege: "ListServices", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags of a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a new DB instance", + Privilege: "CreateDBInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "rds:AddTagsToResource", + "rds:CreateTenantDatabase", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "db*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-account-connection", + ResourceType: "cluster", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template", + ResourceType: "og", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template-major-version", + ResourceType: "pg", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template-minor-version", + ResourceType: "secgrp", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template-version", + ResourceType: "subgrp", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "rds:BackupTarget", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + "rds:ManageMasterUserPassword", + }, DependentActions: []string{}, - ResourceType: "repository", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a DB instance that acts as a Read Replica of a source DB instance", + Privilege: "CreateDBInstanceReadReplica", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "rds:AddTagsToResource", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance", + ResourceType: "db*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template", + ResourceType: "og*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template-major-version", + ResourceType: "pg*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template-minor-version", + ResourceType: "subgrp*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service-template-version", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to notify Proton of resource deployment status changes", - Privilege: "NotifyResourceDeploymentStatusChange", + Description: "Grants permission to create a new DB parameter group", + Privilege: "CreateDBParameterGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "pg*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service-instance", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reject an environment account connection request from another environment account", - Privilege: "RejectEnvironmentAccountConnection", + Description: "Grants permission to create a database proxy", + Privilege: "CreateDBProxy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment-account-connection*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a database proxy endpoint", + Privilege: "CreateDBProxyEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment-account-connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment-template-major-version", + ResourceType: "proxy*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template-minor-version", + ResourceType: "proxy-endpoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "environment-template-version", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new DB security group. DB security groups control access to a DB instance", + Privilege: "CreateDBSecurityGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "secgrp*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Aurora Limitless Database DB shard group", + Privilege: "CreateDBShardGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-instance", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template", + ResourceType: "shardgrp*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "service-template-major-version", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a DBSnapshot", + Privilege: "CreateDBSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template-minor-version", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "db*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template-version", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "rds:BackupTarget", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -208349,83 +253087,143 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create a new DB subnet group", + Privilege: "CreateDBSubnetGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "subgrp*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "environment-account-connection", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an RDS event notification subscription", + Privilege: "CreateEventSubscription", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment-template", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "es*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "environment-template-major-version", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Aurora global database or DocumentDB global database spread across multiple regions", + Privilege: "CreateGlobalCluster", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template-minor-version", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template-version", + ResourceType: "global-cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Aurora zero-ETL integration with Redshift", + Privilege: "CreateIntegration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "repository", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:DescribeKey", + "rds:AddTagsToResource", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service", + ResourceType: "integration*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service-instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new option group", + Privilege: "CreateOptionGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "og*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service-template-major-version", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new tenant database", + Privilege: "CreateTenantDatabase", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service-template-minor-version", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + }, + ResourceType: "db*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template-version", + ResourceType: "tenant-database*", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "rds:TenantDatabaseName", }, DependentActions: []string{}, ResourceType: "", @@ -208434,489 +253232,333 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update account roles. DEPRECATED - use UpdateAccountSettings instead", - Privilege: "UpdateAccountRoles", + Description: "Grants permission to access a resource in the remote Region when executing cross-Region operations, such as cross-Region snapshot copy or cross-Region read replica creation", + Privilege: "CrossRegionCommunication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the account settings", - Privilege: "UpdateAccountSettings", + Description: "Grants permission to delete blue green deployments", + Privilege: "DeleteBlueGreenDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "rds:DeleteDBCluster", + "rds:DeleteDBClusterEndpoint", + "rds:DeleteDBInstance", + "rds:PromoteReadReplica", + "rds:PromoteReadReplicaDBCluster", + }, + ResourceType: "deployment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update component", - Privilege: "UpdateComponent", + Description: "Grants permission to delete an existing custom engine version", + Privilege: "DeleteCustomDBEngineVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component*", + ResourceType: "cev*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment", - Privilege: "UpdateEnvironment", + Description: "Grants permission to delete a previously provisioned DB cluster", + Privilege: "DeleteDBCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "rds:AddTagsToResource", + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBInstance", }, - ResourceType: "environment*", + ResourceType: "cluster*", }, { - ConditionKeys: []string{ - "proton:EnvironmentTemplate", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment account connection", - Privilege: "UpdateEnvironmentAccountConnection", + Description: "Grants permission to delete cluster automated backups based on the source cluster's DbClusterResourceId value or the restorable cluster's resource ID", + Privilege: "DeleteDBClusterAutomatedBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-account-connection*", + ResourceType: "cluster-auto-backup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment template", - Privilege: "UpdateEnvironmentTemplate", + Description: "Grants permission to delete a custom endpoint and removes it from an Amazon Aurora DB cluster or Amazon DocumentDB cluster", + Privilege: "DeleteDBClusterEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "cluster-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment template major version. DEPRECATED - use UpdateEnvironmentTemplateVersion instead", - Privilege: "UpdateEnvironmentTemplateMajorVersion", + Description: "Grants permission to delete a specified DB cluster parameter group", + Privilege: "DeleteDBClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "cluster-pg*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment template minor version. DEPRECATED - use UpdateEnvironmentTemplateVersion instead", - Privilege: "UpdateEnvironmentTemplateMinorVersion", + Description: "Grants permission to delete a DB cluster snapshot", + Privilege: "DeleteDBClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment-template*", + ResourceType: "cluster-snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an environment template version", - Privilege: "UpdateEnvironmentTemplateVersion", + Description: "Grants permission to delete a previously provisioned DB instance", + Privilege: "DeleteDBInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment-template*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + "rds:CreateDBSnapshot", + "rds:DeleteTenantDatabase", + }, + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service", - Privilege: "UpdateService", + Description: "Grants permission to delete automated backups based on the source instance's DbiResourceId value or the restorable instance's resource ID", + Privilege: "DeleteDBInstanceAutomatedBackup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", - }, - { - ConditionKeys: []string{ - "proton:ServiceTemplate", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "auto-backup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service instance", - Privilege: "UpdateServiceInstance", + Description: "Grants permission to delete a specified DBParameterGroup", + Privilege: "DeleteDBParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-instance*", - }, - { - ConditionKeys: []string{ - "proton:ServiceTemplate", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "pg*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service pipeline", - Privilege: "UpdateServicePipeline", + Description: "Grants permission to delete a database proxy", + Privilege: "DeleteDBProxy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", - }, - { - ConditionKeys: []string{ - "proton:ServiceTemplate", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service sync blocker", - Privilege: "UpdateServiceSyncBlocker", + Description: "Grants permission to delete a database proxy endpoint", + Privilege: "DeleteDBProxyEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service sync config", - Privilege: "UpdateServiceSyncConfig", + Description: "Grants permission to delete a DB security group", + Privilege: "DeleteDBSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "secgrp*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service template", - Privilege: "UpdateServiceTemplate", + Description: "Grants permission to delete an Aurora Limitless Database DB shard group", + Privilege: "DeleteDBShardGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "shardgrp*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service template major version. DEPRECATED - use UpdateServiceTemplateVersion instead", - Privilege: "UpdateServiceTemplateMajorVersion", + Description: "Grants permission to delete a DBSnapshot", + Privilege: "DeleteDBSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a service template minor version. DEPRECATED - use UpdateServiceTemplateVersion instead", - Privilege: "UpdateServiceTemplateMinorVersion", + Description: "Grants permission to delete a DB subnet group", + Privilege: "DeleteDBSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "subgrp*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a service template version", - Privilege: "UpdateServiceTemplateVersion", + Description: "Grants permission to delete an RDS event notification subscription", + Privilege: "DeleteEventSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service-template*", + ResourceType: "es*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a TemplateSyncConfig", - Privilege: "UpdateTemplateSyncConfig", + Description: "Grants permission to delete a global database cluster", + Privilege: "DeleteGlobalCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-cluster*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment-template", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${TemplateName}:${MajorVersion}.${MinorVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment-template-version", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${TemplateName}:${MajorVersionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment-template-major-version", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-template/${TemplateName}:${MajorVersionId}.${MinorVersionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment-template-minor-version", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service-template", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${TemplateName}:${MajorVersion}.${MinorVersion}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service-template-version", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${TemplateName}:${MajorVersionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service-template-major-version", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:service-template/${TemplateName}:${MajorVersionId}.${MinorVersionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service-template-minor-version", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:environment/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:service/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:service/${ServiceName}/service-instance/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service-instance", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:environment-account-connection/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment-account-connection", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:repository/${Provider}:${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "repository", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:component/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "component", - }, - { - Arn: "arn:${Partition}:proton:${Region}:${Account}:deployment/${Id}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "deployment", - }, - }, - ServiceName: "AWS Proton", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the set of tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", - Type: "ArrayOfString", - }, - }, - Prefix: "purchase-orders", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add a new purchase order", - Privilege: "AddPurchaseOrder", + Description: "Grants permission to delete an Aurora zero-ETL integration with Redshift", + Privilege: "DeleteIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "integration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a purchase order", - Privilege: "DeletePurchaseOrder", + Description: "Grants permission to delete an existing option group", + Privilege: "DeleteOptionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "og*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view whether existing or fine-grained IAM actions are being used to control authorization to Billing, Cost Management, and Account consoles", - Privilege: "GetConsoleActionSetEnforced", + AccessLevel: "Write", + Description: "Grants permission to delete a tenant database", + Privilege: "DeleteTenantDatabase", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + "rds:CreateDBSnapshot", + }, + ResourceType: "db*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tenant-database*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a purchase order", - Privilege: "GetPurchaseOrder", + AccessLevel: "Write", + Description: "Grants permission to remove targets from a database proxy target group", + Privilege: "DeregisterDBProxyTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", + ResourceType: "cluster*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "db*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list purchase order invoices", - Privilege: "ListPurchaseOrderInvoices", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", + ResourceType: "proxy*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "target-group*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all purchase orders for an account", - Privilege: "ListPurchaseOrders", + Description: "Grants permission to list all of the attributes for a customer account", + Privilege: "DescribeAccountAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -208926,187 +253568,144 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a purchase order", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to describe blue green deployments", + Privilege: "DescribeBlueGreenDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order", + ResourceType: "deployment", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the set of CA certificates provided by Amazon RDS for this AWS account", + Privilege: "DescribeCertificates", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify purchase orders and details", - Privilege: "ModifyPurchaseOrders", + AccessLevel: "List", + Description: "Grants permission to return a list of cluster automated backups for both current and deleted clusters", + Privilege: "DescribeDBClusterAutomatedBackups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", + ResourceType: "cluster-auto-backup*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag purchase orders with given key value pairs", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to return information about backtracks for a DB cluster", + Privilege: "DescribeDBClusterBacktracks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a purchase order", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to return information about endpoints for an Amazon Aurora DB cluster", + Privilege: "DescribeDBClusterEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-endpoint", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change whether existing or fine-grained IAM actions will be used to control authorization to Billing, Cost Management, and Account consoles", - Privilege: "UpdateConsoleActionSetEnforced", + AccessLevel: "List", + Description: "Grants permission to return a list of DBClusterParameterGroup descriptions", + Privilege: "DescribeDBClusterParameterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-pg*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing purchase order", - Privilege: "UpdatePurchaseOrder", + AccessLevel: "List", + Description: "Grants permission to return the detailed parameter list for a particular DB cluster parameter group", + Privilege: "DescribeDBClusterParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-pg*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set purchase order status", - Privilege: "UpdatePurchaseOrderStatus", + AccessLevel: "List", + Description: "Grants permission to return a list of DB cluster snapshot attribute names and values for a manual DB cluster snapshot", + Privilege: "DescribeDBClusterSnapshotAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-snapshot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view purchase orders and details", - Privilege: "ViewPurchaseOrders", + AccessLevel: "List", + Description: "Grants permission to return information about DB cluster snapshots", + Privilege: "DescribeDBClusterSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "purchase-order", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-snapshot", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:purchase-orders::${Account}:purchase-order/${ResourceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "purchase-order", - }, - }, - ServiceName: "AWS Purchase Orders Console", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "q", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a user or group assignment for an Amazon Q Developer Profile", - Privilege: "CreateAssignment", + AccessLevel: "List", + Description: "Grants permission to return information about provisioned Aurora DB clusters or DocumentDB clusters", + Privilege: "DescribeDBClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a user or group assignment for an Amazon Q Developer Profile", - Privilege: "DeleteAssignment", + AccessLevel: "List", + Description: "Grants permission to return a list of the available DB engines", + Privilege: "DescribeDBEngineVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -209116,117 +253715,132 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get individual messages associated with a specific conversation with Amazon Q", - Privilege: "GetConversation", + AccessLevel: "List", + Description: "Grants permission to return a list of automated backups for both current and deleted instances", + Privilege: "DescribeDBInstanceAutomatedBackups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "auto-backup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to Amazon Q to get the identity metadata", - Privilege: "GetIdentityMetadata", + AccessLevel: "List", + Description: "Grants permission to return information about provisioned RDS instances", + Privilege: "DescribeDBInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "db*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get troubleshooting results with Amazon Q", - Privilege: "GetTroubleshootingResults", + AccessLevel: "List", + Description: "Grants permission to return a list of DB log files for the DB instance", + Privilege: "DescribeDBLogFiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "db*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list individual conversations associated with a specific Amazon Q user", - Privilege: "ListConversations", + AccessLevel: "List", + Description: "Grants permission to return a list of DBParameterGroup descriptions", + Privilege: "DescribeDBParameterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pg*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to allow Amazon Q to perform actions on your behalf", - Privilege: "PassRequest", + AccessLevel: "List", + Description: "Grants permission to return the detailed parameter list for a particular DB parameter group", + Privilege: "DescribeDBParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pg*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a message to Amazon Q", - Privilege: "SendMessage", + AccessLevel: "List", + Description: "Grants permission to view proxies", + Privilege: "DescribeDBProxies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a conversation with Amazon Q", - Privilege: "StartConversation", + AccessLevel: "List", + Description: "Grants permission to view proxy endpoints", + Privilege: "DescribeDBProxyEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "proxy-endpoint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a troubleshooting analysis with Amazon Q", - Privilege: "StartTroubleshootingAnalysis", + AccessLevel: "List", + Description: "Grants permission to view database proxy target group details", + Privilege: "DescribeDBProxyTargetGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a troubleshooting resolution explanation with Amazon Q", - Privilege: "StartTroubleshootingResolutionExplanation", + AccessLevel: "List", + Description: "Grants permission to view database proxy target details", + Privilege: "DescribeDBProxyTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "target-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a troubleshooting command result with Amazon Q", - Privilege: "UpdateTroubleshootingCommandResult", + AccessLevel: "List", + Description: "Grants permission to list recommendation details", + Privilege: "DescribeDBRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -209235,1391 +253849,1180 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Q", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "qapps", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate a library item review in Q Business application", - Privilege: "AssociateLibraryItemReview", + AccessLevel: "List", + Description: "Grants permission to return a list of DBSecurityGroup descriptions", + Privilege: "DescribeDBSecurityGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp*", + ResourceType: "secgrp*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate Q App with a user in Q Business application", - Privilege: "AssociateQAppWithUser", + AccessLevel: "List", + Description: "Grants permission to return information about all Aurora Limitless Database DB shard groups for this account. You can filter by shard group(s)", + Privilege: "DescribeDBShardGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "shardgrp*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to copy Q App in Q Business application", - Privilege: "CopyQApp", + AccessLevel: "List", + Description: "Grants permission to return a list of DB snapshot attribute names and values for a manual DB snapshot", + Privilege: "DescribeDBSnapshotAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "snapshot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a library item in Q Business application", - Privilege: "CreateLibraryItem", + AccessLevel: "List", + Description: "Grants permission to return information about tenant databases in DB snapshots. You can filter by Region or snapshot", + Privilege: "DescribeDBSnapshotTenantDatabases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "snapshot-tenant-database*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a library item review in Q Business application", - Privilege: "CreateLibraryItemReview", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create Q App in Q Business application", - Privilege: "CreateQApp", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "snapshot", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to subscribe to a Q App event bus topic in Q Business application", - Privilege: "CreateSubscriptionToken", + AccessLevel: "List", + Description: "Grants permission to return information about DB snapshots", + Privilege: "DescribeDBSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a library item in Q Business application", - Privilege: "DeleteLibraryItem", + AccessLevel: "List", + Description: "Grants permission to return a list of DBSubnetGroup descriptions", + Privilege: "DescribeDBSubnetGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "subgrp*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete Q App in Q Business application", - Privilege: "DeleteQApp", + AccessLevel: "List", + Description: "Grants permission to return the default engine and system parameter information for the cluster database engine", + Privilege: "DescribeEngineDefaultClusterParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a library item review in Q Business application", - Privilege: "DisassociateLibraryItemReview", + AccessLevel: "List", + Description: "Grants permission to return the default engine and system parameter information for the specified database engine", + Privilege: "DescribeEngineDefaultParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate Q App with a user in Q Business application", - Privilege: "DisassociateQAppFromUser", + AccessLevel: "List", + Description: "Grants permission to display a list of categories for all event source types, or, if specified, for a specified source type", + Privilege: "DescribeEventCategories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a library item in Q Business application", - Privilege: "GetLibraryItem", + AccessLevel: "List", + Description: "Grants permission to list all the subscription descriptions for a customer account", + Privilege: "DescribeEventSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "es*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Q App in Q Business application", - Privilege: "GetQApp", + AccessLevel: "List", + Description: "Grants permission to return events related to DB instances, DB security groups, DB snapshots, and DB parameter groups for the past 14 days", + Privilege: "DescribeEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Q App session in Q Business application", - Privilege: "GetQAppSession", + AccessLevel: "List", + Description: "Grants permission to return information about the export tasks", + Privilege: "DescribeExportTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp-session*", + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster-snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Q App session metadata in Q Business application", - Privilege: "GetQAppSessionMetadata", + AccessLevel: "List", + Description: "Grants permission to return information about Aurora global database clusters or DocumentDB global database clusters", + Privilege: "DescribeGlobalClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp-session*", + ResourceType: "global-cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a document to Q App or Q App Session in Q Business application", - Privilege: "ImportDocument", + AccessLevel: "List", + Description: "Grants permission to describe an Aurora zero-ETL integration with Redshift", + Privilege: "DescribeIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp", + ResourceType: "integration*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "qapp-session", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a document to Q App in Q Business application", - Privilege: "ImportDocumentToQApp", + AccessLevel: "List", + Description: "Grants permission to describe all available options", + Privilege: "DescribeOptionGroupOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a document to Q App session in Q Business application", - Privilege: "ImportDocumentToQAppSession", + AccessLevel: "List", + Description: "Grants permission to describe the available option groups", + Privilege: "DescribeOptionGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "og*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list library items in Q Business application", - Privilege: "ListLibraryItems", + Description: "Grants permission to return a list of orderable DB instance options for the specified engine", + Privilege: "DescribeOrderableDBInstanceOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list Q Apps in Q Business application", - Privilege: "ListQApps", + Description: "Grants permission to return a list of resources (for example, DB instances) that have at least one pending maintenance action", + Privilege: "DescribePendingMaintenanceActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to predict problem statement from conversation log in Q Business application", - Privilege: "PredictProblemStatementFromConversation", + AccessLevel: "Read", + Description: "Grants permission to return information about recommendation groups", + Privilege: "DescribeRecommendationGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to predict Q App from conversation log or problem statement in Q Business application", - Privilege: "PredictQApp", + AccessLevel: "Read", + Description: "Grants permission to return information about recommendations", + Privilege: "DescribeRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to predict Q App metadata from problem statement in Q Business application", - Privilege: "PredictQAppFromProblemStatement", + AccessLevel: "List", + Description: "Grants permission to return information about reserved DB instances for this account, or about a specified reserved DB instance", + Privilege: "DescribeReservedDBInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "ri*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start Q App session in Q Business application", - Privilege: "StartQAppSession", + AccessLevel: "List", + Description: "Grants permission to list available reserved DB instance offerings", + Privilege: "DescribeReservedDBInstancesOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop Q App session in Q Business application", - Privilege: "StopQAppSession", + AccessLevel: "List", + Description: "Grants permission to return a list of the source AWS Regions where the current AWS Region can create a Read Replica or copy a DB snapshot from", + Privilege: "DescribeSourceRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource with given key value pairs", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to return information about provisioned tenant databases. You can filter by Region or snapshot", + Privilege: "DescribeTenantDatabases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp", + ResourceType: "tenant-database*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp-session", + ResourceType: "db", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list available modifications you can make to your DB instance", + Privilege: "DescribeValidDBInstanceModifications", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a library item in Q Business application", - Privilege: "UpdateLibraryItem", + Description: "Grants permission to disable http endpoint for a DB cluster", + Privilege: "DisableHttpEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Q App in Q Business application", - Privilege: "UpdateQApp", + AccessLevel: "Read", + Description: "Grants permission to download specified log file", + Privilege: "DownloadCompleteDBLogFile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Q App session in Q Business application", - Privilege: "UpdateQAppSession", + AccessLevel: "Read", + Description: "Grants permission to download all or a portion of the specified log file, up to 1 MB in size", + Privilege: "DownloadDBLogFilePortion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp-session*", + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Q App session metadata in Q Business application", - Privilege: "UpdateQAppSessionMetadata", + Description: "Grants permission to enable http endpoint for a DB cluster", + Privilege: "EnableHttpEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "qapp-session*", + ResourceType: "cluster*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}", - ConditionKeys: []string{}, - Resource: "application", - }, - { - Arn: "arn:${Partition}:qapps:${Region}:${Account}:application/${ApplicationId}/qapp/${AppId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "qapp", - }, - { - Arn: "arn:${Partition}:qapps:${Region}:${Account}:application/${ApplicationId}/qapp/${AppId}/session/${SessionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "qapp-session", - }, - }, - ServiceName: "Amazon Q Business Q Apps", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "qbusiness", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add one or more users for licenses", - Privilege: "AddUserLicenses", + Description: "Grants permission to force a failover for a DB cluster", + Privilege: "FailoverDBCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch delete document", - Privilege: "BatchDeleteDocument", + Description: "Grants permission to failover a global cluster", + Privilege: "FailoverGlobalCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "global-cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to batch put document", - Privilege: "BatchPutDocument", + AccessLevel: "Read", + Description: "Grants permission to list all tags on an Amazon RDS resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cev", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel a subscription", - Privilege: "CancelSubscription", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-endpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscription*", + ResourceType: "cluster-pg", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to chat using an application", - Privilege: "Chat", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to chat synchronously using an application", - Privilege: "ChatSync", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "es", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a data source for a given application and index", - Privilege: "CreateDataSource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "integration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "og", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pg", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an index for a given application", - Privilege: "CreateIndex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "proxy", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "proxy-endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ri", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "secgrp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a license", - Privilege: "CreateLicense", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "shardgrp", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a plugin for a given application", - Privilege: "CreatePlugin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "snapshot", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot-tenant-database", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a retriever for a given application", - Privilege: "CreateRetriever", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "subgrp", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "target-group", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a subscription", - Privilege: "CreateSubscription", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "tenant-database", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a user", - Privilege: "CreateUser", + Description: "Grants permission to modify a database activity stream", + Privilege: "ModifyActivityStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a web experience for a given application", - Privilege: "CreateWebExperience", + Description: "Grants permission to modify the system-default Secure Sockets Layer/Transport Layer Security (SSL/TLS) certificate for Amazon RDS for new DB instances", + Privilege: "ModifyCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApplication", + Description: "Grants permission to modify current cluster capacity for an Amazon Aurora Serverless DB cluster", + Privilege: "ModifyCurrentDBClusterCapacity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete chat controls configuration for an application", - Privilege: "DeleteChatControlsConfiguration", + Description: "Grants permission to modify an existing custom engine version", + Privilege: "ModifyCustomDBEngineVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cev*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a conversation", - Privilege: "DeleteConversation", + Description: "Grants permission to modify a setting for an Amazon Aurora DB cluster or Amazon DocumentDB cluster", + Privilege: "ModifyDBCluster", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "rds:ModifyDBInstance", + "secretsmanager:CreateSecret", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "cluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-pg", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a DataSource", - Privilege: "DeleteDataSource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "og", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "pg", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "rds:DatabaseClass", + "rds:StorageSize", + "rds:Piops", + "rds:ManageMasterUserPassword", + }, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a group", - Privilege: "DeleteGroup", + Description: "Grants permission to modify the properties of an endpoint in an Amazon Aurora DB cluster or Amazon DocumentDB cluster", + Privilege: "ModifyDBClusterEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "cluster-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an index", - Privilege: "DeleteIndex", + Description: "Grants permission to modify the parameters of a DB cluster parameter group", + Privilege: "ModifyDBClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-pg*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot", + Privilege: "ModifyDBClusterSnapshotAttribute", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "cluster-snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a plugin", - Privilege: "DeletePlugin", + Description: "Grants permission to modify settings for a DB instance", + Privilege: "ModifyDBInstance", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "rds:AddTagsToResource", + "rds:CreateTenantDatabase", + "secretsmanager:CreateSecret", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "db*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "og", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "plugin*", + ResourceType: "pg", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a retriever", - Privilege: "DeleteRetriever", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "secgrp", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "retriever*", + ResourceType: "subgrp", + }, + { + ConditionKeys: []string{ + "rds:ManageMasterUserPassword", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a user", - Privilege: "DeleteUser", + Description: "Grants permission to modify the parameters of a DB parameter group", + Privilege: "ModifyDBParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "pg*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a web-experience", - Privilege: "DeleteWebExperience", + Description: "Grants permission to modify database proxy", + Privilege: "ModifyDBProxy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "web-experience*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "proxy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an application", - Privilege: "GetApplication", + AccessLevel: "Write", + Description: "Grants permission to modify database proxy endpoint", + Privilege: "ModifyDBProxyEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "proxy-endpoint*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get chat controls configuration for an application", - Privilege: "GetChatControlsConfiguration", + AccessLevel: "Write", + Description: "Grants permission to modify target group for a database proxy", + Privilege: "ModifyDBProxyTargetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "target-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a data source", - Privilege: "GetDataSource", + AccessLevel: "Write", + Description: "Grants permission to modify recommendation", + Privilege: "ModifyDBRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-source*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a group", - Privilege: "GetGroup", + AccessLevel: "Write", + Description: "Grants permission to modify properties of an Aurora Limitless Database DB shard group", + Privilege: "ModifyDBShardGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "shardgrp*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an index", - Privilege: "GetIndex", + AccessLevel: "Write", + Description: "Grants permission to update a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version", + Privilege: "ModifyDBSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "snapshot*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "og", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a license", - Privilege: "GetLicense", + AccessLevel: "Write", + Description: "Grants permission to add an attribute and values to, or removes an attribute and values from, a manual DB snapshot", + Privilege: "ModifyDBSnapshotAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user-license*", + ResourceType: "snapshot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a plugin", - Privilege: "GetPlugin", + AccessLevel: "Write", + Description: "Grants permission to modify an existing DB subnet group", + Privilege: "ModifyDBSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "plugin*", + ResourceType: "subgrp*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a retriever", - Privilege: "GetRetriever", + AccessLevel: "Write", + Description: "Grants permission to modify an existing RDS event notification subscription", + Privilege: "ModifyEventSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "retriever*", + ResourceType: "es*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a user", - Privilege: "GetUser", + AccessLevel: "Write", + Description: "Grants permission to modify a setting for an Amazon Aurora global cluster or Amazon DocumentDB global cluster", + Privilege: "ModifyGlobalCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "global-cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a web-experience", - Privilege: "GetWebExperience", + AccessLevel: "Write", + Description: "Grants permission to modify an Aurora zero-ETL integration with Redshift", + Privilege: "ModifyIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "web-experience*", + ResourceType: "integration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the applications", - Privilege: "ListApplications", + AccessLevel: "Write", + Description: "Grants permission to modify an existing option group", + Privilege: "ModifyOptionGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "og*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all conversations for an application", - Privilege: "ListConversations", + AccessLevel: "Write", + Description: "Grants permission to modify recommendation", + Privilege: "ModifyRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get Data Source sync job history", - Privilege: "ListDataSourceSyncJobs", + AccessLevel: "Write", + Description: "Grants permission to modify a tenant database", + Privilege: "ModifyTenantDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "tenant-database*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "rds:TenantDatabaseName", + }, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the data sources of an application and an index", - Privilege: "ListDataSources", + AccessLevel: "Write", + Description: "Grants permission to promote a Read Replica DB instance to a standalone DB instance", + Privilege: "PromoteReadReplica", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "db*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all documents", - Privilege: "ListDocuments", + AccessLevel: "Write", + Description: "Grants permission to promote a Read Replica DB cluster to a standalone DB cluster", + Privilege: "PromoteReadReplicaDBCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list groups", - Privilege: "ListGroups", + AccessLevel: "Write", + Description: "Grants permission to purchase a reserved DB instance offering", + Privilege: "PurchaseReservedDBInstancesOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "ri*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the indices of an application", - Privilege: "ListIndices", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all messages", - Privilege: "ListMessages", + AccessLevel: "Write", + Description: "Grants permission to reboot a previously provisioned DB cluster", + Privilege: "RebootDBCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:RebootDBInstance", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the plugins of an application", - Privilege: "ListPlugins", + AccessLevel: "Write", + Description: "Grants permission to restart the database engine service", + Privilege: "RebootDBInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "db*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the retrievers of an application", - Privilege: "ListRetrievers", + AccessLevel: "Write", + Description: "Grants permission to reboot an Aurora Limitless Database DB shard group", + Privilege: "RebootDBShardGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "shardgrp*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list subscriptions", - Privilege: "ListSubscriptions", + AccessLevel: "Write", + Description: "Grants permission to add targets to a database proxy target group", + Privilege: "RegisterDBProxyTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "target-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to detach an Aurora secondary cluster from an Aurora global database cluster or DocumentDB global cluster", + Privilege: "RemoveFromGlobalCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-source", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "index", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "plugin", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "retriever", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "web-experience", + ResourceType: "global-cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list licenses", - Privilege: "ListUserLicenses", + AccessLevel: "Write", + Description: "Grants permission to disassociate an AWS Identity and Access Management (IAM) role from an Amazon Aurora DB cluster", + Privilege: "RemoveRoleFromDBCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the web experiences of an application", - Privilege: "ListWebExperiences", + AccessLevel: "Write", + Description: "Grants permission to disassociate an AWS Identity and Access Management (IAM) role from a DB instance", + Privilege: "RemoveRoleFromDBInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put feedback about a conversation message", - Privilege: "PutFeedback", + Description: "Grants permission to remove a source identifier from an existing RDS event notification subscription", + Privilege: "RemoveSourceIdentifierFromSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "es*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a group of users", - Privilege: "PutGroup", + AccessLevel: "Tagging", + Description: "Grants permission to remove metadata tags from an Amazon RDS resource", + Privilege: "RemoveTagsFromResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cev", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove licenses for one or more users", - Privilege: "RemoveUserLicenses", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-endpoint", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start Data Source sync job", - Privilege: "StartDataSourceSyncJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-pg", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "cluster-snapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "db", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to stop Data Source sync job", - Privilege: "StopDataSourceSyncJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "deployment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "es", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "integration", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource with given key value pairs", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "og", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", + ResourceType: "pg", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "proxy", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "plugin", + ResourceType: "proxy-endpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "retriever", + ResourceType: "ri", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "web-experience", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "secgrp", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove the tag with the given key from a resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "shardgrp", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source", + ResourceType: "snapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "snapshot-tenant-database", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "plugin", + ResourceType: "subgrp", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "retriever", + ResourceType: "target-group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "web-experience", + ResourceType: "tenant-database", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "rds:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -210628,255 +255031,172 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an Application", - Privilege: "UpdateApplication", + Description: "Grants permission to modify the parameters of a DB cluster parameter group to the default value", + Privilege: "ResetDBClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-pg*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update chat controls configuration for an application", - Privilege: "UpdateChatControlsConfiguration", + Description: "Grants permission to modify the parameters of a DB parameter group to the engine/system default value", + Privilege: "ResetDBParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "pg*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a DataSource", - Privilege: "UpdateDataSource", + Description: "Grants permission to create an Amazon Aurora DB cluster from data stored in an Amazon S3 bucket", + Privilege: "RestoreDBClusterFromS3", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "rds:AddTagsToResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-source*", + ResourceType: "cluster-pg*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "og*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an index", - Privilege: "UpdateIndex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "subgrp*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + "rds:DatabaseEngine", + "rds:DatabaseName", + "rds:StorageEncrypted", + "rds:ManageMasterUserPassword", + }, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a plugin", - Privilege: "UpdatePlugin", + Description: "Grants permission to create a new DB cluster from a DB cluster snapshot", + Privilege: "RestoreDBClusterFromSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "rds:AddTagsToResource", + "rds:CreateDBInstance", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "plugin*", + ResourceType: "cluster-pg*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a Retriever", - Privilege: "UpdateRetriever", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "og*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "retriever*", + ResourceType: "subgrp*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a subscription", - Privilege: "UpdateSubscription", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-snapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subscription*", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a user", - Privilege: "UpdateUser", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + "rds:DatabaseClass", + "rds:StorageSize", + "rds:Piops", + }, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a WebExperience", - Privilege: "UpdateWebExperience", + Description: "Grants permission to restore a DB cluster to an arbitrary point in time", + Privilege: "RestoreDBClusterToPointInTime", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "rds:AddTagsToResource", + "rds:CreateDBInstance", + }, + ResourceType: "cluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "cluster-pg*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "web-experience*", + ResourceType: "og*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "application", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/retriever/${RetrieverId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "retriever", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/index/${IndexId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "index", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/index/${IndexId}/data-source/${DataSourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "data-source", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/plugin/${PluginId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "plugin", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/web-experience/${WebExperienceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "web-experience", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/user-license/${UserLicenseId}", - ConditionKeys: []string{}, - Resource: "user-license", - }, - { - Arn: "arn:${Partition}:qbusiness:${Region}:${Account}:application/${ApplicationId}/subscription/${SubscriptionId}", - ConditionKeys: []string{}, - Resource: "subscription", - }, - }, - ServiceName: "Amazon Q Business", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "qldb:Purge", - Description: "Filters access by the value of purge that is specified in a PartiQL DROP statement", - Type: "String", - }, - }, - Prefix: "qldb", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to cancel a journal kinesis stream", - Privilege: "CancelJournalKinesisStream", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "subgrp*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a ledger", - Privilege: "CreateLedger", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "cluster-auto-backup", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "rds:req-tag/${TagKey}", + "rds:DatabaseClass", + "rds:StorageSize", + "rds:Piops", }, DependentActions: []string{}, ResourceType: "", @@ -210885,225 +255205,146 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a ledger", - Privilege: "DeleteLedger", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ledger*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe information about a journal kinesis stream", - Privilege: "DescribeJournalKinesisStream", + Description: "Grants permission to create a new DB instance from a DB snapshot", + Privilege: "RestoreDBInstanceFromDBSnapshot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "rds:AddTagsToResource", + "rds:CreateTenantDatabase", + }, + ResourceType: "db*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe information about a journal export job", - Privilege: "DescribeJournalS3Export", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "og*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a ledger", - Privilege: "DescribeLedger", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "pg*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send commands to a ledger via the console", - Privilege: "ExecuteStatement", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "subgrp*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to export journal contents to an Amazon S3 bucket", - Privilege: "ExportJournalToS3", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "cluster-snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a block from a ledger for a given BlockAddress", - Privilege: "GetBlock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve a digest from a ledger for a given BlockAddress", - Privilege: "GetDigest", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "rds:BackupTarget", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a revision for a given document ID and a given BlockAddress", - Privilege: "GetRevision", + AccessLevel: "Write", + Description: "Grants permission to create a new DB instance from an Amazon S3 bucket", + Privilege: "RestoreDBInstanceFromS3", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ledger*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "rds:AddTagsToResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource", + }, + ResourceType: "db*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to insert sample application data via the console", - Privilege: "InsertSampleData", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "og*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list journal kinesis streams for a specified ledger", - Privilege: "ListJournalKinesisStreamsForLedger", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", + ResourceType: "pg*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list journal export jobs for all ledgers", - Privilege: "ListJournalS3Exports", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subgrp*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list journal export jobs for a specified ledger", - Privilege: "ListJournalS3ExportsForLedger", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "secgrp", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list existing ledgers", - Privilege: "ListLedgers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "rds:req-tag/${TagKey}", + "rds:ManageMasterUserPassword", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to restore a DB instance to an arbitrary point in time", + Privilege: "RestoreDBInstanceToPointInTime", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "catalog", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ledger", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "rds:AddTagsToResource", + "rds:CreateTenantDatabase", + }, + ResourceType: "db*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream", + ResourceType: "og*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table", + ResourceType: "pg*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an index on a table", - Privilege: "PartiQLCreateIndex", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "subgrp*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a table", - Privilege: "PartiQLCreateTable", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "auto-backup", }, { ConditionKeys: []string{ + "rds:BackupTarget", "aws:RequestTag/${TagKey}", "aws:TagKeys", + "rds:req-tag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -211112,204 +255353,177 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete documents from a table", - Privilege: "PartiQLDelete", + Description: "Grants permission to revoke ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC Security Groups", + Privilege: "RevokeDBSecurityGroupIngress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "secgrp*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to drop an index from a table", - Privilege: "PartiQLDropIndex", + Description: "Grants permission to start Activity Stream", + Privilege: "StartActivityStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "qldb:Purge", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "db", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to drop a table", - Privilege: "PartiQLDropTable", + Description: "Grants permission to start the DB cluster", + Privilege: "StartDBCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", - }, - { - ConditionKeys: []string{ - "qldb:Purge", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to use the history function on a table", - Privilege: "PartiQLHistoryFunction", + AccessLevel: "Write", + Description: "Grants permission to start the DB instance", + Privilege: "StartDBInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "db*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to insert documents into a table", - Privilege: "PartiQLInsert", + Description: "Grants permission to start replication of automated backups to a different AWS Region", + Privilege: "StartDBInstanceAutomatedBackupsReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "auto-backup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to redact historic revisions", - Privilege: "PartiQLRedact", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "db*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to select documents from a table", - Privilege: "PartiQLSelect", + AccessLevel: "Write", + Description: "Grants permission to start a new Export task for a DB snapshot", + Privilege: "StartExportTask", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "cluster", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog", + ResourceType: "cluster-snapshot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table", + ResourceType: "snapshot", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to undrop a table", - Privilege: "PartiQLUndropTable", + Description: "Grants permission to stop Activity Stream", + Privilege: "StopActivityStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update existing documents in a table", - Privilege: "PartiQLUpdate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table*", + ResourceType: "db", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send commands to a ledger", - Privilege: "SendCommand", + Description: "Grants permission to stop the DB cluster", + Privilege: "StopDBCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to view a ledger's catalog via the console", - Privilege: "ShowCatalog", + Description: "Grants permission to stop the DB instance", + Privilege: "StopDBInstance", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:AddTagsToResource", + "rds:CreateDBSnapshot", + }, + ResourceType: "db*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "snapshot", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stream journal contents to a Kinesis Data Stream", - Privilege: "StreamJournalToKinesis", + Description: "Grants permission to stop automated backup replication for a DB instance", + Privilege: "StopDBInstanceAutomatedBackupsReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "stream*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "db*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to switch a blue-green deployment from source instance or cluster to target", + Privilege: "SwitchoverBlueGreenDeployment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "catalog", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ledger", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "table", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:PromoteReadReplica", + "rds:PromoteReadReplicaDBCluster", + }, + ResourceType: "deployment*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -211317,254 +255531,248 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to switchover a global cluster", + Privilege: "SwitchoverGlobalCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "catalog", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ledger", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "stream", + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "table", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "global-cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update properties on a ledger", - Privilege: "UpdateLedger", + Description: "Grants permission to switch over a read replica, making it the new primary database", + Privilege: "SwitchoverReadReplica", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ledger*", + ResourceType: "db*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update the permissions mode on a ledger", - Privilege: "UpdateLedgerPermissionsMode", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ledger*", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster:${DbClusterInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:cluster-tag/${TagKey}", }, + Resource: "cluster", }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}", + Arn: "arn:${Partition}:rds:${Region}:${Account}:shard-group:${DbShardGroupResourceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "ledger", + Resource: "shardgrp", }, { - Arn: "arn:${Partition}:qldb:${Region}:${Account}:stream/${LedgerName}/${StreamId}", + Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-auto-backup:${DbClusterAutomatedBackupId}", + ConditionKeys: []string{}, + Resource: "cluster-auto-backup", + }, + { + Arn: "arn:${Partition}:rds:${Region}:${Account}:auto-backup:${DbInstanceAutomatedBackupId}", + ConditionKeys: []string{}, + Resource: "auto-backup", + }, + { + Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-endpoint:${DbClusterEndpoint}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "stream", + Resource: "cluster-endpoint", }, { - Arn: "arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}/table/${TableId}", + Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-pg:${ClusterParameterGroupName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "rds:cluster-pg-tag/${TagKey}", }, - Resource: "table", + Resource: "cluster-pg", }, { - Arn: "arn:${Partition}:qldb:${Region}:${Account}:ledger/${LedgerName}/information_schema/user_tables", + Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-snapshot:${ClusterSnapshotName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "rds:cluster-snapshot-tag/${TagKey}", }, - Resource: "catalog", + Resource: "cluster-snapshot", }, - }, - ServiceName: "Amazon QLDB", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tag key-value pairs in the request", - Type: "String", + Arn: "arn:${Partition}:rds:${Region}:${Account}:db:${DbInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:DatabaseClass", + "rds:DatabaseEngine", + "rds:DatabaseName", + "rds:MultiAz", + "rds:Piops", + "rds:StorageEncrypted", + "rds:StorageSize", + "rds:Vpc", + "rds:db-tag/${TagKey}", + }, + Resource: "db", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", + Arn: "arn:${Partition}:rds:${Region}:${Account}:es:${SubscriptionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:es-tag/${TagKey}", + }, + Resource: "es", }, { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys", - Type: "ArrayOfString", + Arn: "arn:${Partition}:rds::${Account}:global-cluster:${GlobalCluster}", + ConditionKeys: []string{}, + Resource: "global-cluster", }, { - Condition: "quicksight:AllowedEmbeddingDomains", - Description: "Filters access by the allowed embedding domains", - Type: "ArrayOfString", + Arn: "arn:${Partition}:rds:${Region}:${Account}:og:${OptionGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:og-tag/${TagKey}", + }, + Resource: "og", }, { - Condition: "quicksight:DirectoryType", - Description: "Filters access by the user management options", - Type: "String", + Arn: "arn:${Partition}:rds:${Region}:${Account}:pg:${ParameterGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:pg-tag/${TagKey}", + }, + Resource: "pg", }, { - Condition: "quicksight:Edition", - Description: "Filters access by the edition of QuickSight", - Type: "String", + Arn: "arn:${Partition}:rds:${Region}:${Account}:db-proxy:${DbProxyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "proxy", }, { - Condition: "quicksight:IamArn", - Description: "Filters access by IAM user or role ARN", - Type: "ARN", + Arn: "arn:${Partition}:rds:${Region}:${Account}:db-proxy-endpoint:${DbProxyEndpointId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "proxy-endpoint", }, { - Condition: "quicksight:KmsKeyArns", - Description: "Filters access by KMS key ARNs", - Type: "ArrayOfARN", + Arn: "arn:${Partition}:rds:${Region}:${Account}:ri:${ReservedDbInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:ri-tag/${TagKey}", + }, + Resource: "ri", }, { - Condition: "quicksight:SessionName", - Description: "Filters access by session name", - Type: "String", + Arn: "arn:${Partition}:rds:${Region}:${Account}:secgrp:${SecurityGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:secgrp-tag/${TagKey}", + }, + Resource: "secgrp", }, { - Condition: "quicksight:UserName", - Description: "Filters access by user name", - Type: "String", + Arn: "arn:${Partition}:rds:${Region}:${Account}:snapshot:${SnapshotName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:snapshot-tag/${TagKey}", + }, + Resource: "snapshot", }, - }, - Prefix: "quicksight", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to enable setting default access to AWS resources", - Privilege: "AccountConfigurations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:subgrp:${SubnetGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "rds:subgrp-tag/${TagKey}", }, + Resource: "subgrp", }, { - AccessLevel: "Write", - Description: "Grants permission to cancel a SPICE ingestions on a dataset", - Privilege: "CancelIngestion", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ingestion*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:target-group:${TargetGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "target-group", }, { - AccessLevel: "Write", - Description: "Grants permission to create an account customization for QuickSight account or namespace", - Privilege: "CreateAccountCustomization", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:cev:${Engine}/${EngineVersion}/${CustomDbEngineVersionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "cev", }, { - AccessLevel: "Write", - Description: "Grants permission to subscribe to QuickSight", - Privilege: "CreateAccountSubscription", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "quicksight:Edition", - "quicksight:DirectoryType", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:deployment:${BlueGreenDeploymentIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "deployment", }, { - AccessLevel: "Write", - Description: "Grants permission to provision Amazon QuickSight administrators, authors, and readers", - Privilege: "CreateAdmin", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:integration:${IntegrationIdentifier}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "integration", + }, + { + Arn: "arn:${Partition}:rds:${Region}:${Account}:snapshot-tenant-database:${SnapshotName}:${TenantResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "snapshot-tenant-database", + }, + { + Arn: "arn:${Partition}:rds:${Region}:${Account}:tenant-database:${TenantResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "tenant-database", + }, + }, + ServiceName: "Amazon RDS", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys associated with the resource", + Type: "ArrayOfString", }, + }, + Prefix: "rds-data", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an analysis from a template", - Privilege: "CreateAnalysis", + Description: "Grants permission to run a batch SQL statement over an array of data", + Privilege: "BatchExecuteStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to create a custom permissions resource for restricting user access", - Privilege: "CreateCustomPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -211574,17 +255782,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a QuickSight Dashboard", - Privilege: "CreateDashboard", + Description: "Grants permission to start a SQL transaction", + Privilege: "BeginTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -211594,19 +255802,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a dataset", - Privilege: "CreateDataSet", + Description: "Grants permission to end a SQL transaction started with the BeginTransaction operation and commits the changes", + Privilege: "CommitTransaction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "quicksight:PassDataSource", + "rds-data:BeginTransaction", }, - ResourceType: "datasource*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -211616,46 +255824,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a data source", - Privilege: "CreateDataSource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a QuickSight email customization template", - Privilege: "CreateEmailCustomizationTemplate", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "emailCustomizationTemplate*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a QuickSight folder", - Privilege: "CreateFolder", + Description: "Grants permission to run one or more SQL statements. This operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation", + Privilege: "ExecuteSql", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -211665,139 +255844,154 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a QuickSight Dashboard, Analysis or Dataset to a QuickSight Folder", - Privilege: "CreateFolderMembership", + Description: "Grants permission to run a SQL statement against a database", + Privilege: "ExecuteStatement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "analysis", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dashboard", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset", + ResourceType: "cluster*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a QuickSight group", - Privilege: "CreateGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a QuickSight user to a QuickSight group", - Privilege: "CreateGroupMembership", + Description: "Grants permission to perform a rollback of a transaction. Rolling back a transaction cancels its changes", + Privilege: "RollbackTransaction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "quicksight:UserName", + ConditionKeys: []string{}, + DependentActions: []string{ + "rds-data:BeginTransaction", }, - DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "cluster*", }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to create an assignment with one specified IAM Policy ARN that will be assigned to specified groups or users of QuickSight", - Privilege: "CreateIAMPolicyAssignment", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "assignment*", - }, + Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster:${DbClusterInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, + Resource: "cluster", }, + }, + ServiceName: "Amazon RDS Data API", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "rds-db", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to start a SPICE ingestion on a dataset", - Privilege: "CreateIngestion", + AccessLevel: "Permissions management", + Description: "Allows IAM role or user to connect to RDS database", + Privilege: "connect", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ingestion*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "db-user*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to create an QuickSight namespace", - Privilege: "CreateNamespace", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:CreateIdentityPoolDirectory", - }, - ResourceType: "namespace*", - }, - }, + Arn: "arn:${Partition}:rds-db:${Region}:${Account}:dbuser:${DbiResourceId}/${DbUserName}", + ConditionKeys: []string{}, + Resource: "db-user", }, + }, + ServiceName: "Amazon RDS IAM Authentication", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to provision Amazon QuickSight readers", - Privilege: "CreateReader", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by actions based on the allowed set of values for each of the tags", + Type: "String", }, { - AccessLevel: "Write", - Description: "Grants permission to create a refresh schedule for a dataset", - Privilege: "CreateRefreshSchedule", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "refreshschedule*", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by actions based on the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "redshift:AllowWrites", + Description: "Filters access by the allowWrites input parameter", + Type: "Bool", + }, + { + Condition: "redshift:ConsumerArn", + Description: "Filters access by the datashare consumer arn", + Type: "ARN", + }, + { + Condition: "redshift:ConsumerIdentifier", + Description: "Filters access by the datashare consumer", + Type: "String", + }, + { + Condition: "redshift:DbName", + Description: "Filters access by the database name", + Type: "String", + }, + { + Condition: "redshift:DbUser", + Description: "Filters access by the database user name", + Type: "String", + }, + { + Condition: "redshift:DurationSeconds", + Description: "Filters access by the number of seconds until a temporary credential set expires", + Type: "String", + }, + { + Condition: "redshift:InboundIntegrationArn", + Description: "Filters access by the ARN of an inbound zero-ETL Integration resource", + Type: "ARN", + }, + { + Condition: "redshift:IntegrationSourceArn", + Description: "Filters access by the ARN of a zero-ETL Integration source", + Type: "ARN", + }, + { + Condition: "redshift:IntegrationTargetArn", + Description: "Filters access by the ARN of a zero-ETL Integration target", + Type: "ARN", }, + }, + Prefix: "redshift", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add a group member to a role", - Privilege: "CreateRoleMembership", + Description: "Grants permission to exchange a DC1 reserved node for a DC2 reserved node with no changes to the configuration", + Privilege: "AcceptReservedNodeExchange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -211808,38 +256002,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a template", - Privilege: "CreateTemplate", + Description: "Grants permission to add a partner integration to a cluster", + Privilege: "AddPartner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a template alias", - Privilege: "CreateTemplateAlias", + Description: "Grants permission to associate a consumer to a datashare", + Privilege: "AssociateDataShareConsumer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "datashare*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "redshift:ConsumerArn", + "redshift:AllowWrites", }, DependentActions: []string{}, ResourceType: "", @@ -211848,38 +256034,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a theme", - Privilege: "CreateTheme", + Description: "Grants permission to add an inbound (ingress) rule to an Amazon Redshift security group", + Privilege: "AuthorizeClusterSecurityGroupIngress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "securitygroup*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "securitygroupingress-ec2securitygroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an alias for a theme version", - Privilege: "CreateThemeAlias", + AccessLevel: "Permissions management", + Description: "Grants permission to authorize the specified datashare consumer to consume a datashare", + Privilege: "AuthorizeDataShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "datashare*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "redshift:ConsumerIdentifier", + "redshift:AllowWrites", }, DependentActions: []string{}, ResourceType: "", @@ -211887,22 +256070,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a topic", - Privilege: "CreateTopic", + AccessLevel: "Permissions management", + Description: "Grants permission to authorize endpoint related activities for redshift-managed vpc endpoint", + Privilege: "AuthorizeEndpointAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "quicksight:PassDataSet", - }, - ResourceType: "dataset*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -211910,85 +256083,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a refresh schedule for a topic", - Privilege: "CreateTopicRefreshSchedule", + Description: "Grants permission to Amazon Redshift to continuously validate that the target data warehouse can receive data replicated from the source ARN", + Privilege: "AuthorizeInboundIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "integration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provision Amazon QuickSight authors and readers", - Privilege: "CreateUser", + AccessLevel: "Permissions management", + Description: "Grants permission to the specified AWS account to restore a snapshot", + Privilege: "AuthorizeSnapshotAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a vpc connection", - Privilege: "CreateVPCConnection", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an account customization for QuickSight account or namespace", - Privilege: "DeleteAccountCustomization", + Description: "Grants permission to delete snapshots in a batch of size upto 100", + Privilege: "BatchDeleteClusterSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a QuickSight account", - Privilege: "DeleteAccountSubscription", + Description: "Grants permission to modify settings for a list of snapshots", + Privilege: "BatchModifyClusterSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an analysis", - Privilege: "DeleteAnalysis", + Description: "Grants permission to cancel a query through the Amazon Redshift console", + Privilege: "CancelQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a custom permissions resource", - Privilege: "DeleteCustomPermissions", + AccessLevel: "Write", + Description: "Grants permission to see queries in the Amazon Redshift console", + Privilege: "CancelQuerySession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -211999,25 +256155,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a QuickSight Dashboard", - Privilege: "DeleteDashboard", + Description: "Grants permission to cancel a resize operation", + Privilege: "CancelResize", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a dataset", - Privilege: "DeleteDataSet", + Description: "Grants permission to copy a cluster snapshot", + Privilege: "CopyClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ @@ -212031,25 +256187,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete dataset refresh properties for a dataset", - Privilege: "DeleteDataSetRefreshProperties", + Description: "Grants permission to create an Amazon Redshift authentication profile", + Privilege: "CreateAuthenticationProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a data source", - Privilege: "DeleteDataSource", + Description: "Grants permission to create a cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "datasource*", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:RetireGrant", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetRandomPassword", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + "secretsmanager:UpdateSecret", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{ @@ -212063,100 +256232,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a QuickSight email customization template", - Privilege: "DeleteEmailCustomizationTemplate", + Description: "Grants permission to create an Amazon Redshift parameter group", + Privilege: "CreateClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "emailCustomizationTemplate*", + ResourceType: "parametergroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a QuickSight Folder", - Privilege: "DeleteFolder", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a QuickSight Dashboard, Analysis or Dataset from a QuickSight Folder", - Privilege: "DeleteFolderMembership", + Description: "Grants permission to create an Amazon Redshift security group", + Privilege: "CreateClusterSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "securitygroup*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "analysis", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a manual snapshot of the specified cluster", + Privilege: "CreateClusterSnapshot", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard", + ResourceType: "snapshot*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "dataset", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a user group from QuickSight", - Privilege: "DeleteGroup", + Description: "Grants permission to create an Amazon Redshift subnet group", + Privilege: "CreateClusterSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "subnetgroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove a user from a group so that he/she is no longer a member of the group", - Privilege: "DeleteGroupMembership", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "quicksight:UserName", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing assignment", - Privilege: "DeleteIAMPolicyAssignment", + AccessLevel: "Permissions management", + Description: "Grants permission to automatically create the specified Amazon Redshift user if it does not exist", + Privilege: "CreateClusterUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assignment*", + ResourceType: "dbuser*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove AWS services for trusted identity propagation in QuickSight", - Privilege: "DeleteIdentityPropagationConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "redshift:DbUser", + }, DependentActions: []string{}, ResourceType: "", }, @@ -212164,49 +256331,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a QuickSight namespace", - Privilege: "DeleteNamespace", + Description: "Grants permission to create a custom domain name for a cluster", + Privilege: "CreateCustomDomainAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ds:DeleteDirectory", + "acm:DescribeCertificate", }, - ResourceType: "namespace*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a refresh schedule for a dataset", - Privilege: "DeleteRefreshSchedule", + Description: "Grants permission to create a redshift-managed vpc endpoint", + Privilege: "CreateEndpointAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "refreshschedule*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the custom permission associated with a role", - Privilege: "DeleteRoleCustomPermission", + Description: "Grants permission to create an Amazon Redshift event notification subscription", + Privilege: "CreateEventSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventsubscription*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove a group member from a role", - Privilege: "DeleteRoleMembership", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -212214,66 +256377,75 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a template", - Privilege: "DeleteTemplate", + Description: "Grants permission to create an HSM client certificate that a cluster uses to connect to an HSM", + Privilege: "CreateHsmClientCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "hsmclientcertificate*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a template alias", - Privilege: "DeleteTemplateAlias", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a theme", - Privilege: "DeleteTheme", + Description: "Grants permission to create an HSM configuration that contains information required by a cluster to store and use database encryption keys in a hardware security module (HSM)", + Privilege: "CreateHsmConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hsmconfiguration*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the alias of a theme", - Privilege: "DeleteThemeAlias", + Description: "Grants permission to the source principal to create an inbound integration for data to be replicated from the source into the target data warehouse", + Privilege: "CreateInboundIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a topic", - Privilege: "DeleteTopic", + Description: "Grants permission to create an Amazon Redshift zero-ETL integration", + Privilege: "CreateIntegration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:DescribeKey", + }, + ResourceType: "integration*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "redshift:IntegrationSourceArn", + "redshift:IntegrationTargetArn", }, DependentActions: []string{}, ResourceType: "", @@ -212282,49 +256454,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a refresh schedule for a topic", - Privilege: "DeleteTopicRefreshSchedule", + Description: "Grants permission to create a qev2 idc application", + Privilege: "CreateQev2IdcApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:CreateApplication", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a QuickSight user, given the user name", - Privilege: "DeleteUser", + Description: "Grants permission to create a redshift idc application", + Privilege: "CreateRedshiftIdcApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:CreateApplication", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create saved SQL queries through the Amazon Redshift console", + Privilege: "CreateSavedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deletes a user identified by its principal ID", - Privilege: "DeleteUserByPrincipalId", + Description: "Grants permission to create an Amazon Redshift scheduled action", + Privilege: "CreateScheduledAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a vpc connection", - Privilege: "DeleteVPCConnection", + AccessLevel: "Permissions management", + Description: "Grants permission to create a snapshot copy grant and encrypt copied snapshots in a destination AWS Region", + Privilege: "CreateSnapshotCopyGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpcconnection*", + ResourceType: "snapshotcopygrant*", }, { ConditionKeys: []string{ @@ -212337,178 +256531,99 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an account customization for QuickSight account or namespace", - Privilege: "DescribeAccountCustomization", + AccessLevel: "Write", + Description: "Grants permission to create a snapshot schedule", + Privilege: "CreateSnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "snapshotschedule*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the administrative account settings for QuickSight account", - Privilege: "DescribeAccountSettings", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight account", - Privilege: "DescribeAccountSubscription", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a specified resource", + Privilege: "CreateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "account*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an analysis", - Privilege: "DescribeAnalysis", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "eventsubscription", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe permissions for an analysis", - Privilege: "DescribeAnalysisPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "hsmclientcertificate", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an asset bundle export job", - Privilege: "DescribeAssetBundleExportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assetBundleExportJob*", + ResourceType: "hsmconfiguration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an asset bundle import job", - Privilege: "DescribeAssetBundleImportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assetBundleImportJob*", + ResourceType: "integration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to describe a custom permissions resource in a QuickSight account", - Privilege: "DescribeCustomPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parametergroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight Dashboard", - Privilege: "DescribeDashboard", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "securitygroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe permissions for a QuickSight Dashboard", - Privilege: "DescribeDashboardPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "securitygroupingress-cidr", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a dashboard snapshot job", - Privilege: "DescribeDashboardSnapshotJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboardSnapshotJob*", + ResourceType: "securitygroupingress-ec2securitygroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe result of a dashboard snapshot job", - Privilege: "DescribeDashboardSnapshotJobResult", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboardSnapshotJob*", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a dataset", - Privilege: "DescribeDataSet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "snapshotcopygrant", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshotschedule", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to describe the resource policy of a dataset", - Privilege: "DescribeDataSetPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usagelimit", }, { ConditionKeys: []string{ @@ -212521,26 +256636,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe refresh properties for a dataset", - Privilege: "DescribeDataSetRefreshProperties", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset*", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a data source", - Privilege: "DescribeDataSource", + AccessLevel: "Write", + Description: "Grants permission to create a usage limit", + Privilege: "CreateUsageLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "usagelimit*", }, { ConditionKeys: []string{ @@ -212554,18 +256657,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Permissions management", - Description: "Grants permission to describe the resource policy of a data source", - Privilege: "DescribeDataSourcePermissions", + Description: "Grants permission to remove permission from the specified datashare consumer to consume a datashare", + Privilege: "DeauthorizeDataShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "datashare*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "redshift:ConsumerIdentifier", }, DependentActions: []string{}, ResourceType: "", @@ -212573,163 +256675,160 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight email customization template", - Privilege: "DescribeEmailCustomizationTemplate", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift authentication profile", + Privilege: "DeleteAuthenticationProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "emailCustomizationTemplate*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight Folder", - Privilege: "DescribeFolder", + AccessLevel: "Write", + Description: "Grants permission to delete a previously provisioned cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe permissions for a QuickSight Folder", - Privilege: "DescribeFolderPermissions", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift parameter group", + Privilege: "DeleteClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "parametergroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe resolved permissions for a QuickSight Folder", - Privilege: "DescribeFolderResolvedPermissions", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift security group", + Privilege: "DeleteClusterSecurityGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "securitygroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight group", - Privilege: "DescribeGroup", + AccessLevel: "Write", + Description: "Grants permission to delete a manual snapshot", + Privilege: "DeleteClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "snapshot*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight group member", - Privilege: "DescribeGroupMembership", + AccessLevel: "Write", + Description: "Grants permission to delete a cluster subnet group", + Privilege: "DeleteClusterSubnetGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "quicksight:UserName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "subnetgroup*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an existing assignment", - Privilege: "DescribeIAMPolicyAssignment", + AccessLevel: "Write", + Description: "Grants permission to delete a custom domain name for a cluster", + Privilege: "DeleteCustomDomainAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assignment*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a SPICE ingestion on a dataset", - Privilege: "DescribeIngestion", + AccessLevel: "Write", + Description: "Grants permission to delete a redshift-managed vpc endpoint", + Privilege: "DeleteEndpointAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ingestion*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the IP restrictions for QuickSight account", - Privilege: "DescribeIpRestriction", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift event notification subscription", + Privilege: "DeleteEventSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventsubscription*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe QuickSight key registration", - Privilege: "DescribeKeyRegistration", + AccessLevel: "Write", + Description: "Grants permission to delete an HSM client certificate", + Privilege: "DeleteHsmClientCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hsmclientcertificate*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight namespace", - Privilege: "DescribeNamespace", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift HSM configuration", + Privilege: "DeleteHsmConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "hsmconfiguration*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a refresh schedule for a dataset", - Privilege: "DescribeRefreshSchedule", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift zero-ETL integration", + Privilege: "DeleteIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "refreshschedule*", + ResourceType: "integration*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the custom permission associated with a role", - Privilege: "DescribeRoleCustomPermission", + AccessLevel: "Write", + Description: "Grants permission to delete a partner integration from a cluster", + Privilege: "DeletePartner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -212739,211 +256838,171 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a template", - Privilege: "DescribeTemplate", + AccessLevel: "Write", + Description: "Grants permission to delete a qev2 idc application", + Privilege: "DeleteQev2IdcApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "template*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteApplication", + }, + ResourceType: "qev2idcapplication*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a template alias", - Privilege: "DescribeTemplateAlias", + AccessLevel: "Write", + Description: "Grants permission to delete a redshift idc application", + Privilege: "DeleteRedshiftIdcApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteApplication", + }, + ResourceType: "redshiftidcapplication*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete the resource policy for a specified resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "namespace*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe permissions for a template", - Privilege: "DescribeTemplatePermissions", + AccessLevel: "Write", + Description: "Grants permission to delete saved SQL queries through the Amazon Redshift console", + Privilege: "DeleteSavedQueries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a theme", - Privilege: "DescribeTheme", + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift scheduled action", + Privilege: "DeleteScheduledAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a theme alias", - Privilege: "DescribeThemeAlias", + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot copy grant", + Privilege: "DeleteSnapshotCopyGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "snapshotcopygrant*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe permissions for a theme", - Privilege: "DescribeThemePermissions", + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot schedule", + Privilege: "DeleteSnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "snapshotschedule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a topic", - Privilege: "DescribeTopic", + AccessLevel: "Tagging", + Description: "Grants permission to delete a tag or tags from a resource", + Privilege: "DeleteTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventsubscription", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to describe the resource policy of a topic", - Privilege: "DescribeTopicPermissions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "hsmclientcertificate", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hsmconfiguration", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the refresh status of a topic", - Privilege: "DescribeTopicRefresh", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "integration", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parametergroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a refresh schedule for a topic", - Privilege: "DescribeTopicRefreshSchedule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "securitygroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a QuickSight user given the user name", - Privilege: "DescribeUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "securitygroupingress-cidr", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a vpc connection", - Privilege: "DescribeVPCConnection", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpcconnection*", + ResourceType: "securitygroupingress-ec2securitygroup", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to generate a URL used to embed a QuickSight Dashboard or Q Topic for a user not registered with QuickSight", - Privilege: "GenerateEmbedUrlForAnonymousUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "snapshotcopygrant", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard", + ResourceType: "snapshotschedule", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme", + ResourceType: "subnetgroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "usagelimit", }, { ConditionKeys: []string{ "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "quicksight:AllowedEmbeddingDomains", }, DependentActions: []string{}, ResourceType: "", @@ -212952,27 +257011,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to generate a URL used to embed a QuickSight Dashboard for a user registered with QuickSight", - Privilege: "GenerateEmbedUrlForRegisteredUser", + Description: "Grants permission to delete a usage limit", + Privilege: "DeleteUsageLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", - }, - { - ConditionKeys: []string{ - "quicksight:AllowedEmbeddingDomains", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "usagelimit*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a URL used to embed a QuickSight Dashboard for a user not registered with QuickSight", - Privilege: "GetAnonymousUserEmbedUrl", + AccessLevel: "Write", + Description: "Grants permission to deregister the specified namespace from a consumer", + Privilege: "DeregisterNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -212983,32 +257035,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an auth code representing a QuickSight user", - Privilege: "GetAuthCode", + Description: "Grants permission to describe attributes attached to the specified AWS account", + Privilege: "DescribeAccountAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a URL used to embed a QuickSight Dashboard", - Privilege: "GetDashboardEmbedUrl", + Description: "Grants permission to describe created Amazon Redshift authentication profiles", + Privilege: "DescribeAuthenticationProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to use Amazon QuickSight, in Enterprise edition, to identify and display the Microsoft Active Directory (Microsoft Active Directory) directory groups that are mapped to roles in Amazon QuickSight", - Privilege: "GetGroupMapping", + AccessLevel: "List", + Description: "Grants permission to describe database revisions for a cluster", + Privilege: "DescribeClusterDbRevisions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213019,8 +257071,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a URL to embed QuickSight console experience", - Privilege: "GetSessionEmbedUrl", + Description: "Grants permission to describe Amazon Redshift parameter groups, including parameter groups you created and the default parameter group", + Privilege: "DescribeClusterParameterGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213030,45 +257082,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all analyses in an account", - Privilege: "ListAnalyses", + AccessLevel: "Read", + Description: "Grants permission to describe parameters contained within an Amazon Redshift parameter group", + Privilege: "DescribeClusterParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "parametergroup*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all asset bundle export jobs", - Privilege: "ListAssetBundleExportJobs", + AccessLevel: "Read", + Description: "Grants permission to describe Amazon Redshift security groups", + Privilege: "DescribeClusterSecurityGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assetBundleExportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all asset bundle import jobs", - Privilege: "ListAssetBundleImportJobs", + AccessLevel: "Read", + Description: "Grants permission to describe one or more snapshot objects, which contain metadata about your cluster snapshots", + Privilege: "DescribeClusterSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assetBundleImportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to list custom permissions resources in QuickSight account", - Privilege: "ListCustomPermissions", + AccessLevel: "Read", + Description: "Grants permission to describe one or more cluster subnet group objects, which contain metadata about your cluster subnet groups", + Privilege: "DescribeClusterSubnetGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213079,8 +257131,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all registered customer managed keys", - Privilege: "ListCustomerManagedKeys", + Description: "Grants permission to describe available maintenance tracks", + Privilege: "DescribeClusterTracks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213090,54 +257142,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all versions of a QuickSight Dashboard", - Privilege: "ListDashboardVersions", + AccessLevel: "Read", + Description: "Grants permission to describe available Amazon Redshift cluster versions", + Privilege: "DescribeClusterVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all Dashboards in a QuickSight Account", - Privilege: "ListDashboards", + Description: "Grants permission to describe properties of provisioned clusters", + Privilege: "DescribeClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all datasets", - Privilege: "ListDataSets", + Description: "Grants permission to describe custom domain names for a cluster", + Privilege: "DescribeCustomDomainAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all data sources", - Privilege: "ListDataSources", + AccessLevel: "Read", + Description: "Grants permission to describe datashares created and consumed by your clusters", + Privilege: "DescribeDataShares", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -213145,80 +257191,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list all members in a folder", - Privilege: "ListFolderMembers", + Description: "Grants permission to describe only datashares consumed by your clusters", + Privilege: "DescribeDataSharesForConsumer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Folders in a QuickSight Account", - Privilege: "ListFolders", + AccessLevel: "Read", + Description: "Grants permission to describe only datashares created by your clusters", + Privilege: "DescribeDataSharesForProducer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list member users in a group", - Privilege: "ListGroupMemberships", + AccessLevel: "Read", + Description: "Grants permission to describe parameter settings for a parameter group family", + Privilege: "DescribeDefaultClusterParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all user groups in QuickSight", - Privilege: "ListGroups", + AccessLevel: "Read", + Description: "Grants permission to describe redshift-managed vpc endpoints", + Privilege: "DescribeEndpointAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all assignments in the current Amazon QuickSight account", - Privilege: "ListIAMPolicyAssignments", + Description: "Grants permission to authorize describe activity for redshift-managed vpc endpoint", + Privilege: "DescribeEndpointAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assignment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all assignments assigned to a user and the groups it belongs", - Privilege: "ListIAMPolicyAssignmentsForUser", + AccessLevel: "Read", + Description: "Grants permission to describe event categories for all event source types, or for a specified source type", + Privilege: "DescribeEventCategories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assignment*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list AWS services enabled for trusted identity propagation in QuickSight", - Privilege: "ListIdentityPropagationConfigs", + AccessLevel: "Read", + Description: "Grants permission to describe Amazon Redshift event notification subscriptions for the specified AWS account", + Privilege: "DescribeEventSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213229,23 +257275,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all SPICE ingestions on a dataset", - Privilege: "ListIngestions", + Description: "Grants permission to describe events related to clusters, security groups, snapshots, and parameter groups for the past 14 days", + Privilege: "DescribeEvents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list a user's KMS keys", - Privilege: "ListKMSKeysForUser", + AccessLevel: "Read", + Description: "Grants permission to describe HSM client certificates", + Privilege: "DescribeHsmClientCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213255,9 +257298,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to lists all namespaces in a QuickSight account", - Privilege: "ListNamespaces", + AccessLevel: "Read", + Description: "Grants permission to describe Amazon Redshift HSM configurations", + Privilege: "DescribeHsmConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213268,11 +257311,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all refresh schedules on a dataset", - Privilege: "ListRefreshSchedules", + Description: "Grants permission to list the inbound integrations", + Privilege: "DescribeInboundIntegrations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "redshift:InboundIntegrationArn", + }, DependentActions: []string{}, ResourceType: "", }, @@ -213280,129 +257325,114 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the members of a role", - Privilege: "ListRoleMemberships", + Description: "Grants permission to describe an Amazon Redshift zero-ETL integration", + Privilege: "DescribeIntegrations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "integration*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags of a QuickSight resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to describe whether information, such as queries and connection attempts, is being logged for a cluster", + Privilege: "DescribeLoggingStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dashboard", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "folder", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "theme", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "cluster*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all aliases for a template", - Privilege: "ListTemplateAliases", + Description: "Grants permission to describe properties of possible node configurations such as node type, number of nodes, and disk usage for the specified action type", + Privilege: "DescribeNodeConfigurationOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all versions of a template", - Privilege: "ListTemplateVersions", + AccessLevel: "Read", + Description: "Grants permission to describe orderable cluster options", + Privilege: "DescribeOrderableClusterOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all templates in a QuickSight account", - Privilege: "ListTemplates", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the partner integrations defined for a cluster", + Privilege: "DescribePartners", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all aliases of a theme", - Privilege: "ListThemeAliases", + Description: "Grants permission to describe qev2 idc applications", + Privilege: "DescribeQev2IdcApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all versions of a theme", - Privilege: "ListThemeVersions", + AccessLevel: "Read", + Description: "Grants permission to describe a query through the Amazon Redshift console", + Privilege: "DescribeQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all themes in an account", - Privilege: "ListThemes", + Description: "Grants permission to describe redshift idc applications", + Privilege: "DescribeRedshiftIdcApplications", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "theme*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetApplicationGrant", + "sso:ListApplicationAccessScopes", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all refresh schedules on a topic", - Privilege: "ListTopicRefreshSchedules", + AccessLevel: "Read", + Description: "Grants permission to describe exchange status details and associated metadata for a reserved-node exchange. Statuses include such values as in progress and requested", + Privilege: "DescribeReservedNodeExchangeStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213412,54 +257442,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all topics", - Privilege: "ListTopics", + AccessLevel: "Read", + Description: "Grants permission to describe available reserved node offerings by Amazon Redshift", + Privilege: "DescribeReservedNodeOfferings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list groups that a given user is a member of", - Privilege: "ListUserGroups", + AccessLevel: "Read", + Description: "Grants permission to describe the reserved nodes", + Privilege: "DescribeReservedNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the QuickSight users belonging to this account", - Privilege: "ListUsers", + AccessLevel: "Read", + Description: "Grants permission to describe the last resize operation for a cluster", + Privilege: "DescribeResize", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all vpc connections", - Privilege: "ListVPCConnections", + AccessLevel: "Read", + Description: "Grants permission to describe saved queries through the Amazon Redshift console", + Privilege: "DescribeSavedQueries", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -213467,60 +257491,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to use a dataset for a template", - Privilege: "PassDataSet", + Description: "Grants permission to describe created Amazon Redshift scheduled actions", + Privilege: "DescribeScheduledActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to use a data source for a data set", - Privilege: "PassDataSource", + Description: "Grants permission to describe snapshot copy grants owned by the specified AWS account in the destination AWS Region", + Privilege: "DescribeSnapshotCopyGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put dataset refresh properties for a dataset", - Privilege: "PutDataSetRefreshProperties", + AccessLevel: "Read", + Description: "Grants permission to describe snapshot schedules", + Privilege: "DescribeSnapshotSchedules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "snapshotschedule*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a customer managed key", - Privilege: "RegisterCustomerManagedKey", + AccessLevel: "Read", + Description: "Grants permission to describe account level backups storage size and provisional storage", + Privilege: "DescribeStorage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213530,24 +257538,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a QuickSight user, whose identity is associated with the IAM identity/role specified in the request", - Privilege: "RegisterUser", + AccessLevel: "Read", + Description: "Grants permission to describe a table through the Amazon Redshift console", + Privilege: "DescribeTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "quicksight:IamArn", - "quicksight:SessionName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a customer managed key", - Privilege: "RemoveCustomerManagedKey", + AccessLevel: "Read", + Description: "Grants permission to describe status of one or more table restore requests made using the RestoreTableFromClusterSnapshot API action", + Privilege: "DescribeTableRestoreStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213557,182 +257562,131 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore a deleted analysis", - Privilege: "RestoreAnalysis", + AccessLevel: "Read", + Description: "Grants permission to describe tags", + Privilege: "DescribeTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to manage scoping policies for permissions to AWS resources", - Privilege: "ScopeDownPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventsubscription", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for a sub-set of analyses", - Privilege: "SearchAnalyses", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "hsmclientcertificate", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for a sub-set of QuickSight Dashboards", - Privilege: "SearchDashboards", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "hsmconfiguration", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for a sub-set of QuickSight DatSets", - Privilege: "SearchDataSets", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "integration", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for a sub-set of QuickSight Data Sources", - Privilege: "SearchDataSources", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", + ResourceType: "parametergroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to use Amazon QuickSight, in Enterprise edition, to display your Microsoft Active Directory directory groups so that you can choose which ones to map to roles in Amazon QuickSight", - Privilege: "SearchDirectoryGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "securitygroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to search for a sub-set of QuickSight Folders", - Privilege: "SearchFolders", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "securitygroupingress-cidr", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for a sub-set of QuickSight groups", - Privilege: "SearchGroups", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "securitygroupingress-ec2securitygroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search the QuickSight users belonging to this account", - Privilege: "SearchUsers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "snapshot", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to use Amazon QuickSight, in Enterprise edition, to display your Microsoft Active Directory directory groups so that you can choose which ones to map to roles in Amazon QuickSight", - Privilege: "SetGroupMapping", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshotcopygrant", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshotschedule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subnetgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "usagelimit", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asset bundle export job", - Privilege: "StartAssetBundleExportJob", + AccessLevel: "Read", + Description: "Grants permission to describe usage limits", + Privilege: "DescribeUsageLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assetBundleExportJob*", + ResourceType: "usagelimit*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an asset bundle import job", - Privilege: "StartAssetBundleImportJob", + Description: "Grants permission to disable logging information, such as queries and connection attempts, for a cluster", + Privilege: "DisableLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assetBundleImportJob*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a dashboard snapshot job", - Privilege: "StartDashboardSnapshotJob", + Description: "Grants permission to disable the automatic copy of snapshots for a cluster", + Privilege: "DisableSnapshotCopy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboardSnapshotJob*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to subscribe to Amazon QuickSight, and also to allow the user to upgrade the subscription to Enterprise edition", - Privilege: "Subscribe", + Description: "Grants permission to disassociate a consumer from a datashare", + Privilege: "DisassociateDataShareConsumer", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "datashare*", + }, { ConditionKeys: []string{ - "quicksight:Edition", - "quicksight:DirectoryType", + "redshift:ConsumerArn", }, DependentActions: []string{}, ResourceType: "", @@ -213740,69 +257694,110 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a QuickSight resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to enable logging information, such as queries and connection attempts, for a cluster", + Privilege: "EnableLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "customization", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable the automatic copy of snapshots for a cluster", + Privilege: "EnableSnapshotCopy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to execute a query through the Amazon Redshift console", + Privilege: "ExecuteQuery", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to failover the primary compute of an Multi-AZ cluster to another AZ", + Privilege: "FailoverPrimaryCompute", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch query results through the Amazon Redshift console", + Privilege: "FetchResults", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get temporary credentials to access an Amazon Redshift database by the specified AWS account", + Privilege: "GetClusterCredentials", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ingestion", + ResourceType: "dbuser*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "dbgroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme", + ResourceType: "dbname", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "redshift:DbName", + "redshift:DbUser", + "redshift:DurationSeconds", + }, DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get enhanced temporary credentials to access an Amazon Redshift database by the specified AWS account", + Privilege: "GetClusterCredentialsWithIAM", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpcconnection", + ResourceType: "dbname", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "redshift:DbName", + "redshift:DurationSeconds", }, DependentActions: []string{}, ResourceType: "", @@ -213810,9 +257805,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to unsubscribe from Amazon QuickSight, which permanently deletes all users and their resources from Amazon QuickSight", - Privilege: "Unsubscribe", + AccessLevel: "Read", + Description: "Grants permission to get the configuration options for the reserved-node exchange", + Privilege: "GetReservedNodeExchangeConfigurationOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213822,90 +257817,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a QuickSight resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to get an array of DC2 ReservedNodeOfferings that matches the payment type, term, and usage price of the given DC1 reserved node", + Privilege: "GetReservedNodeExchangeOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "customization", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dashboard", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the resource policy for a specified resource", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource", + ResourceType: "namespace*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to join the specified Amazon Redshift group", + Privilege: "JoinGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder", + ResourceType: "dbgroup*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list databases through the Amazon Redshift console", + Privilege: "ListDatabases", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ingestion", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Advisor recommendations", + Privilege: "ListRecommendations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list saved queries through the Amazon Redshift console", + Privilege: "ListSavedQueries", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list schemas through the Amazon Redshift console", + Privilege: "ListSchemas", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list tables through the Amazon Redshift console", + Privilege: "ListTables", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "vpcconnection", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an account customization for QuickSight account or namespace", - Privilege: "UpdateAccountCustomization", + Description: "Grants permission to modify the AQUA configuration of a cluster", + Privilege: "ModifyAquaConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customization*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the administrative account settings for QuickSight account", - Privilege: "UpdateAccountSettings", + Description: "Grants permission to modify an existing Amazon Redshift authentication profile", + Privilege: "ModifyAuthenticationProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213916,32 +257938,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an analysis", - Privilege: "UpdateAnalysis", + Description: "Grants permission to modify the settings of a cluster", + Privilege: "ModifyCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "acm:DescribeCertificate", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:RetireGrant", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetRandomPassword", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + "secretsmanager:UpdateSecret", + }, + ResourceType: "cluster*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the database revision of a cluster", + Privilege: "ModifyClusterDbRevision", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to update permissions for an analysis", - Privilege: "UpdateAnalysisPermissions", + Description: "Grants permission to modify the list of AWS Identity and Access Management (IAM) roles that can be used by a cluster to access other AWS services", + Privilege: "ModifyClusterIamRoles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "analysis*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update a custom permissions resource", - Privilege: "UpdateCustomPermissions", + AccessLevel: "Write", + Description: "Grants permission to modify the maintenance settings of a cluster", + Privilege: "ModifyClusterMaintenance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -213952,93 +258000,103 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a QuickSight Dashboard", - Privilege: "UpdateDashboard", + Description: "Grants permission to modify the parameters of a parameter group", + Privilege: "ModifyClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "parametergroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a QuickSight Dashboard’s links", - Privilege: "UpdateDashboardLinks", + Description: "Grants permission to modify the settings of a snapshot", + Privilege: "ModifyClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "snapshot*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update permissions for a QuickSight Dashboard", - Privilege: "UpdateDashboardPermissions", + AccessLevel: "Write", + Description: "Grants permission to modify a snapshot schedule for a cluster", + Privilege: "ModifyClusterSnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a QuickSight Dashboard’s Published Version", - Privilege: "UpdateDashboardPublishedVersion", + Description: "Grants permission to modify a cluster subnet group to include the specified list of VPC subnets", + Privilege: "ModifyClusterSubnetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dashboard*", + ResourceType: "subnetgroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a dataset", - Privilege: "UpdateDataSet", + Description: "Grants permission to modify a custom domain name for a cluster", + Privilege: "ModifyCustomDomainAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "quicksight:PassDataSource", + "acm:DescribeCertificate", }, - ResourceType: "dataset*", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a redshift-managed vpc endpoint", + Privilege: "ModifyEndpointAccess", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an existing Amazon Redshift event notification subscription", + Privilege: "ModifyEventSubscription", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "eventsubscription*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the resource policy of a dataset", - Privilege: "UpdateDataSetPermissions", + AccessLevel: "Write", + Description: "Grants permission to modify an Amazon Redshift zero-ETL integration", + Privilege: "ModifyIntegration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "integration*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -214047,110 +258105,114 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a data source", - Privilege: "UpdateDataSource", + Description: "Grants permission to modify a qev2 idc application", + Privilege: "ModifyQev2IdcApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "sso:UpdateApplication", }, - ResourceType: "datasource*", + ResourceType: "qev2idcapplication*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify a redshift idc application", + Privilege: "ModifyRedshiftIdcApplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DeleteApplicationAccessScope", + "sso:DeleteApplicationGrant", + "sso:GetApplicationGrant", + "sso:ListApplicationAccessScopes", + "sso:PutApplicationAccessScope", + "sso:PutApplicationGrant", + "sso:UpdateApplication", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "redshiftidcapplication*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the resource policy of a data source", - Privilege: "UpdateDataSourcePermissions", + AccessLevel: "Write", + Description: "Grants permission to modify an existing saved query through the Amazon Redshift console", + Privilege: "ModifySavedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datasource*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a QuickSight email customization template", - Privilege: "UpdateEmailCustomizationTemplate", + Description: "Grants permission to modify an existing Amazon Redshift scheduled action", + Privilege: "ModifyScheduledAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "emailCustomizationTemplate*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a QuickSight Folder", - Privilege: "UpdateFolder", + Description: "Grants permission to modify the number of days to retain snapshots in the destination AWS Region after they are copied from the source AWS Region", + Privilege: "ModifySnapshotCopyRetentionPeriod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update permissions for a QuickSight Folder", - Privilege: "UpdateFolderPermissions", + AccessLevel: "Write", + Description: "Grants permission to modify a snapshot schedule", + Privilege: "ModifySnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "folder*", + ResourceType: "snapshotschedule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change group description", - Privilege: "UpdateGroup", + Description: "Grants permission to modify a usage limit", + Privilege: "ModifyUsageLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "usagelimit*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing assignment", - Privilege: "UpdateIAMPolicyAssignment", + Description: "Grants permission to pause a cluster", + Privilege: "PauseCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "assignment*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add and update AWS services for trusted identity propagation in QuickSight", - Privilege: "UpdateIdentityPropagationConfig", + Description: "Grants permission to purchase a reserved node", + Privilege: "PurchaseReservedNodeOffering", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -214160,33 +258222,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the IP restrictions for QuickSight account", - Privilege: "UpdateIpRestriction", + AccessLevel: "Permissions management", + Description: "Grants permission to update the resource policy for a specified resource", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update QuickSight key registration", - Privilege: "UpdateKeyRegistration", + Description: "Grants permission to reboot a cluster", + Privilege: "RebootCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable public sharing on an account", - Privilege: "UpdatePublicSharingSettings", + Description: "Grants permission to register the specified namespace to a consumer", + Privilege: "RegisterNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -214196,213 +258258,191 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a refresh schedule for a dataset", - Privilege: "UpdateRefreshSchedule", + AccessLevel: "Permissions management", + Description: "Grants permission to decline a datashare shared from another account", + Privilege: "RejectDataShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "refreshschedule*", + ResourceType: "datashare*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update resource-level permissions in QuickSight", - Privilege: "UpdateResourcePermissions", + Description: "Grants permission to set one or more parameters of a parameter group to their default values and set the source values of the parameters to \"engine-default\"", + Privilege: "ResetClusterParameterGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parametergroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the custom permission associated with a role", - Privilege: "UpdateRoleCustomPermission", + Description: "Grants permission to change the size of a cluster", + Privilege: "ResizeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update QuickSight SPICE capacity configuration", - Privilege: "UpdateSPICECapacityConfiguration", + Description: "Grants permission to create a cluster from a snapshot", + Privilege: "RestoreFromClusterSnapshot", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:RetireGrant", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetRandomPassword", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + "secretsmanager:UpdateSecret", + }, + ResourceType: "cluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a template", - Privilege: "UpdateTemplate", + Description: "Grants permission to create a table from a table in an Amazon Redshift cluster snapshot", + Privilege: "RestoreTableFromClusterSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "cluster*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a template alias", - Privilege: "UpdateTemplateAlias", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "snapshot*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update permissions for a template", - Privilege: "UpdateTemplatePermissions", + AccessLevel: "Write", + Description: "Grants permission to resume a cluster", + Privilege: "ResumeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a theme", - Privilege: "UpdateTheme", + Description: "Grants permission to revoke an ingress rule in an Amazon Redshift security group for a previously authorized IP range or Amazon EC2 security group", + Privilege: "RevokeClusterSecurityGroupIngress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "securitygroup*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the alias of a theme", - Privilege: "UpdateThemeAlias", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "securitygroupingress-ec2securitygroup*", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to update permissions for a theme", - Privilege: "UpdateThemePermissions", + Description: "Grants permission to revoke access for endpoint related activities for redshift-managed vpc endpoint", + Privilege: "RevokeEndpointAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "theme*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a topic", - Privilege: "UpdateTopic", + AccessLevel: "Permissions management", + Description: "Grants permission to revoke access from the specified AWS account to restore a snapshot", + Privilege: "RevokeSnapshotAccess", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "quicksight:PassDataSet", - }, - ResourceType: "topic*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the resource policy of a topic", - Privilege: "UpdateTopicPermissions", + AccessLevel: "Write", + Description: "Grants permission to rotate an encryption key for a cluster", + Privilege: "RotateEncryptionKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a refresh schedule for a topic", - Privilege: "UpdateTopicRefreshSchedule", + Description: "Grants permission to update the status of a partner integration", + Privilege: "UpdatePartnerStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an Amazon QuickSight user", - Privilege: "UpdateUser", + AccessLevel: "List", + Description: "Grants permission to view query results through the Amazon Redshift console", + Privilege: "ViewQueriesFromConsole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a vpc connection", - Privilege: "UpdateVPCConnection", + AccessLevel: "List", + Description: "Grants permission to terminate running queries and loads through the Amazon Redshift console", + Privilege: "ViewQueriesInConsole", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "vpcconnection*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214411,142 +258451,385 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:account/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:cluster:${ClusterName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:redshift:${Region}:${Account}:datashare:${ProducerClusterNamespace}/${DataShareName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "datashare", + }, + { + Arn: "arn:${Partition}:redshift:${Region}:${Account}:dbgroup:${ClusterName}/${DbGroup}", ConditionKeys: []string{}, - Resource: "account", + Resource: "dbgroup", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:user/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:dbname:${ClusterName}/${DbName}", ConditionKeys: []string{}, - Resource: "user", + Resource: "dbname", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:group/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:dbuser:${ClusterName}/${DbUser}", ConditionKeys: []string{}, - Resource: "group", + Resource: "dbuser", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:analysis/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:eventsubscription:${EventSubscriptionName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "analysis", + Resource: "eventsubscription", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dashboard/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:hsmclientcertificate:${HSMClientCertificateId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "dashboard", + Resource: "hsmclientcertificate", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:template/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:hsmconfiguration:${HSMConfigurationId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "template", + Resource: "hsmconfiguration", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:vpcConnection/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:integration:${IntegrationIdentifier}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "vpcconnection", - }, - { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:asset-bundle-export-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "assetBundleExportJob", + Resource: "integration", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:asset-bundle-import-job/${ResourceId}", - ConditionKeys: []string{}, - Resource: "assetBundleImportJob", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:namespace:${ClusterNamespace}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "namespace", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:datasource/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:parametergroup:${ParameterGroupName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "datasource", + Resource: "parametergroup", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dataset/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:securitygroup:${SecurityGroupName}/ec2securitygroup/${Owner}/${Ec2SecurityGroupId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "dataset", + Resource: "securitygroup", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dataset/${DatasetId}/ingestion/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:securitygroupingress:${SecurityGroupName}/cidrip/${IpRange}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "ingestion", + Resource: "securitygroupingress-cidr", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dataset/${DatasetId}/refresh-schedule/${ResourceId}", - ConditionKeys: []string{}, - Resource: "refreshschedule", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:securitygroupingress:${SecurityGroupName}/ec2securitygroup/${Owner}/${Ece2SecuritygroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "securitygroupingress-ec2securitygroup", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:theme/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:snapshot:${ClusterName}/${SnapshotName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "theme", + Resource: "snapshot", }, { - Arn: "arn:${Partition}:quicksight::${Account}:assignment/${ResourceId}", - ConditionKeys: []string{}, - Resource: "assignment", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:snapshotcopygrant:${SnapshotCopyGrantName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "snapshotcopygrant", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:customization/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:snapshotschedule:${ScheduleIdentifier}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "customization", + Resource: "snapshotschedule", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:namespace/${ResourceId}", - ConditionKeys: []string{}, - Resource: "namespace", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:subnetgroup:${SubnetGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "subnetgroup", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:folder/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:usagelimit:${UsageLimitId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "folder", + Resource: "usagelimit", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:email-customization-template/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:redshiftidcapplication:${RedshiftIdcApplicationId}", ConditionKeys: []string{}, - Resource: "emailCustomizationTemplate", + Resource: "redshiftidcapplication", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:topic/${ResourceId}", + Arn: "arn:${Partition}:redshift:${Region}:${Account}:qev2idcapplication:${Qev2IdcApplicationId}", + ConditionKeys: []string{}, + Resource: "qev2idcapplication", + }, + }, + ServiceName: "Amazon Redshift", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "redshift-data:glue-catalog-arn", + Description: "Filters access by glue catalog arn", + Type: "ARN", + }, + { + Condition: "redshift-data:session-owner-iam-userid", + Description: "Filters access by session owner iam userid", + Type: "String", + }, + { + Condition: "redshift-data:statement-owner-iam-userid", + Description: "Filters access by statement owner iam userid", + Type: "String", + }, + }, + Prefix: "redshift-data", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to execute multiple queries under a single connection", + Privilege: "BatchExecuteStatement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup", + }, + { + ConditionKeys: []string{ + "redshift-data:session-owner-iam-userid", + "redshift-data:glue-catalog-arn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to cancel a running query", + Privilege: "CancelStatement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "redshift-data:statement-owner-iam-userid", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve detailed information about a statement execution", + Privilege: "DescribeStatement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "redshift-data:statement-owner-iam-userid", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata about a particular table", + Privilege: "DescribeTable", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to execute a query", + Privilege: "ExecuteStatement", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup", + }, + { + ConditionKeys: []string{ + "redshift-data:session-owner-iam-userid", + "redshift-data:glue-catalog-arn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get staging bucket location for a given managed workgroup", + Privilege: "GetStagingBucketLocation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-workgroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to fetch the result of a query", + Privilege: "GetStatementResult", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "redshift-data:statement-owner-iam-userid", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list databases for a given cluster", + Privilege: "ListDatabases", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list schemas for a given cluster", + Privilege: "ListSchemas", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list queries for a given principal", + Privilege: "ListStatements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "redshift-data:statement-owner-iam-userid", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list tables for a given cluster", + Privilege: "ListTables", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:redshift:${Region}:${Account}:cluster:${ClusterName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "topic", + Resource: "cluster", }, { - Arn: "arn:${Partition}:quicksight:${Region}:${Account}:dashboard/${DashboardId}/snapshot-job/${ResourceId}", + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:workgroup/${WorkgroupId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "dashboardSnapshotJob", + Resource: "workgroup", + }, + { + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:managed-workgroup/${ManagedWorkgroupId}", + ConditionKeys: []string{}, + Resource: "managed-workgroup", }, }, - ServiceName: "Amazon QuickSight", + ServiceName: "Amazon Redshift Data API", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request when creating or tagging a resource share. If users don't pass these specific tags, or if they don't specify tags at all, the request fails", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { @@ -214556,76 +258839,169 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed when creating or tagging a resource share", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, { - Condition: "ram:AllowsExternalPrincipals", - Description: "Filters access by resource shares that allow or deny sharing with external principals. For example, specify true if the action can only be performed on resource shares that allow sharing with external principals. External principals are AWS accounts that are outside of its AWS organization", - Type: "Bool", + Condition: "redshift-serverless:endpointAccessId", + Description: "Filters access by the endpoint access identifier", + Type: "String", }, { - Condition: "ram:PermissionArn", - Description: "Filters access by the specified Permission ARN", - Type: "ARN", + Condition: "redshift-serverless:managedWorkgroupName", + Description: "Filters access by the managed workgroup identifier", + Type: "String", }, { - Condition: "ram:PermissionResourceType", - Description: "Filters access by permissions of specified resource type", + Condition: "redshift-serverless:namespaceId", + Description: "Filters access by the namespace identifier", Type: "String", }, { - Condition: "ram:Principal", - Description: "Filters access by format of the specified principal", + Condition: "redshift-serverless:recoveryPointId", + Description: "Filters access by the recovery point identifier", Type: "String", }, { - Condition: "ram:RequestedAllowsExternalPrincipals", - Description: "Filters access by the specified value for 'allowExternalPrincipals'. External principals are AWS accounts that are outside of its AWS Organization", - Type: "Bool", + Condition: "redshift-serverless:snapshotId", + Description: "Filters access by the snapshot identifier", + Type: "String", }, { - Condition: "ram:RequestedResourceType", - Description: "Filters access by the specified resource type", + Condition: "redshift-serverless:tableRestoreRequestId", + Description: "Filters access by the table restore request identifier", Type: "String", }, { - Condition: "ram:ResourceArn", - Description: "Filters access by the specified ARN", - Type: "ARN", + Condition: "redshift-serverless:workgroupId", + Description: "Filters access by the workgroup identifier", + Type: "String", }, + }, + Prefix: "redshift-serverless", + Privileges: []ParliamentPrivilege{ { - Condition: "ram:ResourceShareName", - Description: "Filters access by a resource share with the specified name", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to convert a recovery point to a snapshot", + Privilege: "ConvertRecoveryPointToSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recoveryPoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a custom domain association in Amazon Redshift Serverless", + Privilege: "CreateCustomDomainAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "acm:DescribeCertificate", + }, + ResourceType: "workgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Redshift Serverless managed VPC endpoint", + Privilege: "CreateEndpointAccess", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpointAccess*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Redshift Serverless namespace", + Privilege: "CreateNamespace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:RetireGrant", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetRandomPassword", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + "secretsmanager:UpdateSecret", + }, + ResourceType: "namespace*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ram:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to purchase a capacity reservation according to a specific reservation offering, for a specified number of RPUs", + Privilege: "CreateReservation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "ram:ShareOwnerAccountId", - Description: "Filters access by resource shares owned by a specific account. For example, you can use this condition key to specify which resource share invitations can be accepted or rejected based on the resource share owner’s account ID", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to create a scheduled action for a specified Amazon Redshift Serverless namespace", + Privilege: "CreateScheduledAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "namespace*", + }, + }, }, - }, - Prefix: "ram", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept the specified resource share invitation", - Privilege: "AcceptResourceShareInvitation", + Description: "Grants permission to create a snapshot of all databases in a namespace", + Privilege: "CreateSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share-invitation*", + ResourceType: "snapshot*", }, { ConditionKeys: []string{ - "ram:ShareOwnerAccountId", - "ram:ResourceShareName", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -214634,24 +259010,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate resource(s) and/or principal(s) to a resource share", - Privilege: "AssociateResourceShare", + Description: "Grants permission to create a snapshot copy configuration for a specified Amazon Redshift Serverless namespace", + Privilege: "CreateSnapshotCopyConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "namespace*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a usage limit for a specified Amazon Redshift Serverless usage type", + Privilege: "CreateUsageLimit", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ram:ResourceTag/${TagKey}", - "ram:ResourceShareName", - "ram:AllowsExternalPrincipals", - "ram:Principal", - "ram:RequestedResourceType", - "ram:ResourceArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214659,80 +259034,84 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate a Permission with a Resource Share", - Privilege: "AssociateResourceSharePermission", + Description: "Grants permission to create a workgroup in Amazon Redshift Serverless", + Privilege: "CreateWorkgroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "workgroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a custom domain association", + Privilege: "DeleteCustomDomainAssociation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "workgroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon Redshift Serverless managed VPC endpoint", + Privilege: "DeleteEndpointAccess", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "endpointAccess*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Permission that can be associated to a Resource Share", - Privilege: "CreatePermission", + Description: "Grants permission to delete a namespace from Amazon Redshift Serverless", + Privilege: "DeleteNamespace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{ - "ram:TagResource", + "kms:DescribeKey", + "kms:RetireGrant", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", }, - ResourceType: "", + ResourceType: "namespace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new version of a Permission that can be associated to a Resource Share", - Privilege: "CreatePermissionVersion", + Description: "Grants permission to delete the specified resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", - }, - { - ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a resource share with provided resource(s) and/or principal(s)", - Privilege: "CreateResourceShare", + Description: "Grants permission to delete a scheduled action from Amazon Redshift Serverless", + Privilege: "DeleteScheduledAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ram:RequestedResourceType", - "ram:ResourceArn", - "ram:RequestedAllowsExternalPrincipals", - "ram:Principal", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214740,20 +259119,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified Permission", - Privilege: "DeletePermission", + Description: "Grants permission to delete a snapshot from Amazon Redshift Serverless", + Privilege: "DeleteSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "snapshot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a snapshot copy configuration for a Amazon Redshift Serverless namespace", + Privilege: "DeleteSnapshotCopyConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ram:PermissionArn", - "ram:PermissionResourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214761,41 +259143,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified version of a permission", - Privilege: "DeletePermissionVersion", + Description: "Grants permission to delete a usage limit from Amazon Redshift Serverless", + Privilege: "DeleteUsageLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", - }, - { - ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete resource share", - Privilege: "DeleteResourceShare", + Description: "Grants permission to delete a workgroup", + Privilege: "DeleteWorkgroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "workgroup*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to see on the Amazon Redshift Serverless console the remaining number of free trial credits and their expiration date", + Privilege: "DescribeOneTimeCredit", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ram:ResourceTag/${TagKey}", - "ram:ResourceShareName", - "ram:AllowsExternalPrincipals", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214803,86 +259179,107 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate resource(s) and/or principal(s) from a resource share", - Privilege: "DisassociateResourceShare", + Description: "Grants permission to get a database user name and temporary password with temporary authorization to log on to Amazon Redshift Serverless", + Privilege: "GetCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "workgroup*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a specific custom domain association", + Privilege: "GetCustomDomainAssociation", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ram:ResourceTag/${TagKey}", - "ram:ResourceShareName", - "ram:AllowsExternalPrincipals", - "ram:Principal", - "ram:RequestedResourceType", - "ram:ResourceArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workgroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a Permission from a Resource Share", - Privilege: "DisassociateResourceSharePermission", + AccessLevel: "Read", + Description: "Grants permission to create an Amazon Redshift Serverless managed VPC endpoint", + Privilege: "GetEndpointAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "endpointAccess*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to create a Amazon Redshift Managed Serverless workgroup with the specified configuration settings", + Privilege: "GetManagedWorkgroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "managed-workgroup*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a namespace in Amazon Redshift Serverless", + Privilege: "GetNamespace", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "namespace*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to access customer's organization and create a SLR in the customer's account", - Privilege: "EnableSharingWithAwsOrganization", + AccessLevel: "Read", + Description: "Grants permission to get information about a recovery point", + Privilege: "GetRecoveryPoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:DescribeOrganization", - "organizations:EnableAWSServiceAccess", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recoveryPoint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the contents of an AWS RAM permission", - Privilege: "GetPermission", + Description: "Grants permission to get a particular reservation object", + Privilege: "GetReservation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a particular reservation offering", + Privilege: "GetReservationOffering", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a resource policy", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ram:PermissionArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214890,8 +259287,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the policies for the specified resources that you own and have shared", - Privilege: "GetResourcePolicies", + Description: "Grants permission to get information about a specific scheduled action", + Privilege: "GetScheduledAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -214902,20 +259299,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a set of resource share associations from a provided list or with a specified status of the specified type", - Privilege: "GetResourceShareAssociations", + Description: "Grants permission to get information about a specific snapshot", + Privilege: "GetSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get resource share invitations by the specified invitation arn or those for the resource share", - Privilege: "GetResourceShareInvitations", + Description: "Grants permission to get table restore status about a specific snapshot", + Privilege: "GetTableRestoreStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -214926,14 +259323,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a set of resource shares from a provided list or with a specified status", - Privilege: "GetResourceShares", + Description: "Grants permission to get information about a track in Amazon Redshift Serverless", + Privilege: "GetTrack", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214941,43 +259335,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the resources in a resource share that is shared with you but that the invitation is still pending for", - Privilege: "ListPendingInvitationResources", + Description: "Grants permission to get information about a usage limit in Amazon Redshift Serverless", + Privilege: "GetUsageLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share-invitation*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a specific workgroup", + Privilege: "GetWorkgroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ram:ResourceShareName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workgroup*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list information about the permission and any associations", - Privilege: "ListPermissionAssociations", + Description: "Grants permission to list custom domain associations in Amazon Redshift Serverless", + Privilege: "ListCustomDomainAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list EndpointAccess objects and relevant information", + Privilege: "ListEndpointAccess", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "endpointAccess*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list managed workgroups in Amazon Redshift Serverless", + Privilege: "ListManagedWorkgroups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -214985,8 +259395,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the versions of an AWS RAM permission", - Privilege: "ListPermissionVersions", + Description: "Grants permission to list namespaces in Amazon Redshift Serverless", + Privilege: "ListNamespaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -214997,20 +259407,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the AWS RAM permissions", - Privilege: "ListPermissions", + Description: "Grants permission to list an array of recovery points", + Privilege: "ListRecoveryPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the principals that you have shared resources with or that have shared resources with you", - Privilege: "ListPrincipals", + Description: "Grants permission to list all available capacity reservation offerings", + Privilege: "ListReservationOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -215021,8 +259431,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve the status of the asynchronous permission replacement", - Privilege: "ListReplacePermissionAssociationsWork", + Description: "Grants permission to list all reservations", + Privilege: "ListReservations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -215033,41 +259443,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the Permissions associated with a Resource Share", - Privilege: "ListResourceSharePermissions", + Description: "Grants permission to list scheduled actions", + Privilege: "ListScheduledActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list SnapshotCopyConfiguration objects and relevant information", + Privilege: "ListSnapshotCopyConfigurations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ram:ResourceShareName", - "ram:AllowsExternalPrincipals", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the shareable resource types supported by AWS RAM", - Privilege: "ListResourceTypes", + Description: "Grants permission to list snapshots", + Privilege: "ListSnapshots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the resources that you added to resource shares or the resources that are shared with you", - Privilege: "ListResources", + Description: "Grants permission to list table restore status", + Privilege: "ListTableRestoreStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -215077,19 +259490,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a separate, fully manageable customer managed permission", - Privilege: "PromotePermissionCreatedFromPolicy", + AccessLevel: "List", + Description: "Grants permission to list the tags assigned to a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "namespace", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup", }, { ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -215097,32 +259514,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to promote the specified resource share", - Privilege: "PromoteResourceShareCreatedFromPolicy", + AccessLevel: "List", + Description: "Grants permission to list tracks available in Amazon Redshift Serverless", + Privilege: "ListTracks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject the specified resource share invitation", - Privilege: "RejectResourceShareInvitation", + AccessLevel: "List", + Description: "Grants permission to list all usage limits within Amazon Redshift Serverless", + Privilege: "ListUsageLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share-invitation*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list workgroups in Amazon Redshift Serverless", + Privilege: "ListWorkgroups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ram:ShareOwnerAccountId", - "ram:ResourceShareName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -215130,68 +259551,117 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update all resource shares to a new permission", - Privilege: "ReplacePermissionAssociations", + Description: "Grants permission to create or update a resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore the data from a recovery point", + Privilege: "RestoreFromRecoveryPoint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "permission*", + ResourceType: "recoveryPoint*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore a namespace from a snapshot", + Privilege: "RestoreFromSnapshot", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:RetireGrant", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetRandomPassword", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + "secretsmanager:UpdateSecret", }, + ResourceType: "snapshot*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to restore a table from a recovery point", + Privilege: "RestoreTableFromRecoveryPoint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recoveryPoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify a version number as the default version for the respective customer managed permission", - Privilege: "SetDefaultPermissionVersion", + Description: "Grants permission to restore a table from a snapshot", + Privilege: "RestoreTableFromSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission*", + ResourceType: "namespace*", }, { - ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "snapshot*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag the specified resource share or permission", + Description: "Grants permission to assign one or more tags to a resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission", + ResourceType: "namespace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share", + ResourceType: "recoveryPoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -215200,18 +259670,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag the specified resource share or permission", + Description: "Grants permission to remove a tag or set of tags from a resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "customer-managed-permission", + ResourceType: "namespace", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share", + ResourceType: "recoveryPoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup", }, { ConditionKeys: []string{ @@ -215224,110 +259704,214 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update attributes of the resource share", - Privilege: "UpdateResourceShare", + Description: "Grants permission to update a certificate associated with a custom domain", + Privilege: "UpdateCustomDomainAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "acm:DescribeCertificate", + }, + ResourceType: "workgroup*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an Amazon Redshift Serverless managed VPC endpoint", + Privilege: "UpdateEndpointAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resource-share*", + ResourceType: "endpointAccess*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a namespace with the specified configuration settings", + Privilege: "UpdateNamespace", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ram:ResourceTag/${TagKey}", - "ram:ResourceShareName", - "ram:AllowsExternalPrincipals", - "ram:RequestedAllowsExternalPrincipals", + ConditionKeys: []string{}, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + "kms:RetireGrant", + "secretsmanager:CreateSecret", + "secretsmanager:DeleteSecret", + "secretsmanager:DescribeSecret", + "secretsmanager:GetRandomPassword", + "secretsmanager:RotateSecret", + "secretsmanager:TagResource", + "secretsmanager:UpdateSecret", }, + ResourceType: "namespace*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a scheduled action", + Privilege: "UpdateScheduledAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a snapshot", + Privilege: "UpdateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "snapshot*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a snapshot copy configuration for a Amazon Redshift Serverless namespace", + Privilege: "UpdateSnapshotCopyConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a usage limit in Amazon Redshift Serverless", + Privilege: "UpdateUsageLimit", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update an Amazon Redshift Serverless workgroup with the specified configuration settings", + Privilege: "UpdateWorkgroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workgroup*", + }, + }, + }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ram:${Region}:${Account}:resource-share/${ResourcePath}", + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:namespace/${NamespaceId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ram:AllowsExternalPrincipals", - "ram:ResourceShareName", }, - Resource: "resource-share", + Resource: "namespace", }, { - Arn: "arn:${Partition}:ram:${Region}:${Account}:resource-share-invitation/${ResourcePath}", + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:snapshot/${SnapshotId}", ConditionKeys: []string{ - "ram:ShareOwnerAccountId", + "aws:ResourceTag/${TagKey}", }, - Resource: "resource-share-invitation", + Resource: "snapshot", }, { - Arn: "arn:${Partition}:ram::${Account}:permission/${ResourcePath}", + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:workgroup/${WorkgroupId}", ConditionKeys: []string{ - "ram:PermissionArn", - "ram:PermissionResourceType", + "aws:ResourceTag/${TagKey}", }, - Resource: "permission", + Resource: "workgroup", }, { - Arn: "arn:${Partition}:ram:${Region}:${Account}:permission/${ResourcePath}", + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:managed-workgroup/${ManagedWorkgroupName}", + ConditionKeys: []string{}, + Resource: "managed-workgroup", + }, + { + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:recoverypoint/${RecoveryPointId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "ram:PermissionArn", - "ram:PermissionResourceType", }, - Resource: "customer-managed-permission", + Resource: "recoveryPoint", + }, + { + Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:managedvpcendpoint/${EndpointAccessId}", + ConditionKeys: []string{}, + Resource: "endpointAccess", }, }, - ServiceName: "AWS Resource Access Manager (RAM)", + ServiceName: "Amazon Redshift Serverless", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", + Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, { - Condition: "rbin:Attribute/ResourceType", - Description: "Filters access by the resource type of the existing rule", + Condition: "refactor-spaces:ApplicationCreatedByAccount", + Description: "Filters access by restricting the action to only those accounts that created the application within an environment", Type: "String", }, { - Condition: "rbin:Request/ResourceType", - Description: "Filters access by the resource type in a request", + Condition: "refactor-spaces:CreatedByAccountIds", + Description: "Filters access by the accounts that created the resource", + Type: "ArrayOfString", + }, + { + Condition: "refactor-spaces:RouteCreatedByAccount", + Description: "Filters access by restricting the action to only those accounts that created the route within an application", + Type: "String", + }, + { + Condition: "refactor-spaces:ServiceCreatedByAccount", + Description: "Filters access by restricting the action to only those accounts that created the service within an application", + Type: "String", + }, + { + Condition: "refactor-spaces:SourcePath", + Description: "Filters access by the path of the route", Type: "String", }, }, - Prefix: "rbin", + Prefix: "refactor-spaces", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a Recycle Bin retention rule", - Privilege: "CreateRule", + Description: "Grants permission to create an application within an environment", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule*", - }, { ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", "aws:RequestTag/${TagKey}", "aws:TagKeys", - "rbin:Request/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -215336,18 +259920,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Recycle Bin retention rule", - Privilege: "DeleteRule", + Description: "Grants permission to create an environment", + Privilege: "CreateEnvironment", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rbin:Attribute/ResourceType", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -215355,19 +259934,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get detailed information about a Recycle Bin retention rule", - Privilege: "GetRule", + AccessLevel: "Write", + Description: "Grants permission to create a route within an application", + Privilege: "CreateRoute", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rule*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rbin:Attribute/ResourceType", + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:SourcePath", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -215375,13 +259954,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the Recycle Bin retention rules in the Region", - Privilege: "ListRules", + AccessLevel: "Write", + Description: "Grants permission to create a service within an application", + Privilege: "CreateService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "rbin:Request/ResourceType", + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -215389,19 +259972,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags associated with a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an application from an environment", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "application*", }, { ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", "aws:ResourceTag/${TagKey}", - "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -215410,18 +259994,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to lock an existing Recycle Bin retention rule", - Privilege: "LockRule", + Description: "Grants permission to delete an environment", + Privilege: "DeleteEnvironment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "environment*", }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -215429,41 +260012,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or update tags of a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "rbin:Attribute/ResourceType", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unlock an existing Recycle Bin retention rule", - Privilege: "UnlockRule", + Description: "Grants permission to delete a route from an application", + Privilege: "DeleteRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "route*", }, { ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:SourcePath", "aws:ResourceTag/${TagKey}", - "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -215471,20 +260048,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a service from an application", + Privilege: "DeleteService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "service*", }, { ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", @@ -215492,337 +260070,263 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing Recycle Bin retention rule", - Privilege: "UpdateRule", + AccessLevel: "Read", + Description: "Grants permission to get more information about an application", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rule*", + ResourceType: "application*", }, { ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", "aws:ResourceTag/${TagKey}", - "rbin:Attribute/ResourceType", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:rbin:${Region}:${Account}:rule/${ResourceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "rule", - }, - }, - ServiceName: "AWS Recycle Bin", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the set of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the set of tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the set of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "rds:BackupTarget", - Description: "Filters access by the type of backup target. One of: REGION, OUTPOSTS", - Type: "String", - }, - { - Condition: "rds:CopyOptionGroup", - Description: "Filters access by the value that specifies whether the CopyDBSnapshot action requires copying the DB option group", - Type: "Bool", - }, - { - Condition: "rds:DatabaseClass", - Description: "Filters access by the type of DB instance class", - Type: "String", - }, - { - Condition: "rds:DatabaseEngine", - Description: "Filters access by the database engine. For possible values refer to the engine parameter in CreateDBInstance API", - Type: "String", - }, - { - Condition: "rds:DatabaseName", - Description: "Filters access by the user-defined name of the database on the DB instance", - Type: "String", - }, - { - Condition: "rds:EndpointType", - Description: "Filters access by the type of the endpoint. One of: READER, WRITER, CUSTOM", - Type: "String", - }, - { - Condition: "rds:ManageMasterUserPassword", - Description: "Filters access by the value that specifies whether RDS manages master user password in AWS Secrets Manager for the DB instance or cluster", - Type: "Bool", - }, - { - Condition: "rds:MultiAz", - Description: "Filters access by the value that specifies whether the DB instance runs in multiple Availability Zones. To indicate that the DB instance is using Multi-AZ, specify true", - Type: "Bool", - }, - { - Condition: "rds:MultiTenant", - Description: "Filters access by the value that specifies whether the DB instance is in the multi-tenant configuration", - Type: "String", - }, - { - Condition: "rds:Piops", - Description: "Filters access by the value that contains the number of Provisioned IOPS (PIOPS) that the instance supports. To indicate a DB instance that does not have PIOPS enabled, specify 0", - Type: "Numeric", - }, - { - Condition: "rds:StorageEncrypted", - Description: "Filters access by the value that specifies whether the DB instance storage should be encrypted. To enforce storage encryption, specify true", - Type: "Bool", - }, - { - Condition: "rds:StorageSize", - Description: "Filters access by the storage volume size (in GB)", - Type: "Numeric", - }, - { - Condition: "rds:TenantDatabaseName", - Description: "Filters access by the tenant database name in CreateTenantDatabase and by the new tenant database name in ModifyTenantDatabase", - Type: "String", - }, - { - Condition: "rds:Vpc", - Description: "Filters access by the value that specifies whether the DB instance runs in an Amazon Virtual Private Cloud (Amazon VPC). To indicate that the DB instance runs in an Amazon VPC, specify true", - Type: "Bool", - }, - { - Condition: "rds:cluster-pg-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB cluster parameter group", - Type: "String", - }, - { - Condition: "rds:cluster-snapshot-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB cluster snapshot", - Type: "String", - }, - { - Condition: "rds:cluster-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB cluster", - Type: "String", - }, - { - Condition: "rds:db-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB instance", - Type: "String", - }, - { - Condition: "rds:es-tag/${TagKey}", - Description: "Filters access by the tag attached to an event subscription", - Type: "String", - }, - { - Condition: "rds:og-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB option group", - Type: "String", - }, - { - Condition: "rds:pg-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB parameter group", - Type: "String", - }, { - Condition: "rds:req-tag/${TagKey}", - Description: "Filters access by the set of tag keys and values that can be used to tag a resource", - Type: "String", - }, - { - Condition: "rds:ri-tag/${TagKey}", - Description: "Filters access by the tag attached to a reserved DB instance", - Type: "String", - }, - { - Condition: "rds:secgrp-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB security group", - Type: "String", - }, - { - Condition: "rds:snapshot-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB snapshot", - Type: "String", - }, - { - Condition: "rds:subgrp-tag/${TagKey}", - Description: "Filters access by the tag attached to a DB subnet group", - Type: "String", - }, - }, - Prefix: "rds", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate an Identity and Access Management (IAM) role from an Aurora DB cluster", - Privilege: "AddRoleToDBCluster", + AccessLevel: "Read", + Description: "Grants permission to get more information for an environment", + Privilege: "GetEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to associate an AWS Identity and Access Management (IAM) role with a DB instance", - Privilege: "AddRoleToDBInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, - ResourceType: "db*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a source identifier to an existing RDS event notification subscription", - Privilege: "AddSourceIdentifierToSubscription", + AccessLevel: "Read", + Description: "Grants permission to get the details about a resource policy", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add metadata tags to an Amazon RDS resource", - Privilege: "AddTagsToResource", + AccessLevel: "Read", + Description: "Grants permission to get more information about a route", + Privilege: "GetRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cev", + ResourceType: "route*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:SourcePath", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get more information about a service", + Privilege: "GetService", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint", + ResourceType: "service*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "cluster-pg", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the applications in an environment", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the VPCs for the environment", + Privilege: "ListEnvironmentVpcs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "environment*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all environments", + Privilege: "ListEnvironments", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the routes in an application", + Privilege: "ListRoutes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es", + ResourceType: "route*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the services in an environment", + Privilege: "ListServices", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration", + ResourceType: "environment*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the tags for a given resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a resource policy", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint", + ResourceType: "environment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ri", + ResourceType: "route", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp", + ResourceType: "service", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:SourcePath", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot-tenant-database", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp", + ResourceType: "environment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "target-group", + ResourceType: "route", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tenant-database", + ResourceType: "service", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:SourcePath", "aws:TagKeys", - "rds:req-tag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -215831,69 +260335,145 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to apply a pending maintenance action to a resource", - Privilege: "ApplyPendingMaintenanceAction", + Description: "Grants permission to update a route from an application", + Privilege: "UpdateRoute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "route*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:SourcePath", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Permissions management", - Description: "Grants permission to enable ingress to a DBSecurityGroup using one of two forms of authorization", - Privilege: "AuthorizeDBSecurityGroupIngress", + Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "environment", + }, + { + Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}/application/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}/application/${ApplicationId}/service/${ServiceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:ServiceCreatedByAccount", + }, + Resource: "service", + }, + { + Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}/application/${ApplicationId}/route/${RouteId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "refactor-spaces:ApplicationCreatedByAccount", + "refactor-spaces:CreatedByAccountIds", + "refactor-spaces:RouteCreatedByAccount", + "refactor-spaces:ServiceCreatedByAccount", + "refactor-spaces:SourcePath", + }, + Resource: "route", + }, + }, + ServiceName: "AWS Migration Hub Refactor Spaces", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "rekognition", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate multiple individual faces with a single user", + Privilege: "AssociateFaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp*", + ResourceType: "collection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to backtrack a DB cluster to a specific time, without creating a new DB cluster", - Privilege: "BacktrackDBCluster", + AccessLevel: "Read", + Description: "Grants permission to compare faces in the source input image with each face detected in the target input image", + Privilege: "CompareFaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel an export task in progress", - Privilege: "CancelExportTask", + Description: "Grants permission to copy an existing model version to a new model version", + Privilege: "CopyProjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "project*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "projectversion*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy the specified DB cluster parameter group", - Privilege: "CopyDBClusterParameterGroup", + Description: "Grants permission to create a collection in an AWS Region", + Privilege: "CreateCollection", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "cluster-pg*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -215906,15 +260486,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a snapshot of a DB cluster", - Privilege: "CopyDBClusterSnapshot", + Description: "Grants permission to create a new Amazon Rekognition Custom Labels dataset", + Privilege: "CreateDataset", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "cluster-snapshot*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, { ConditionKeys: []string{ @@ -215928,16 +260506,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to copy the specified DB parameter group", - Privilege: "CopyDBParameterGroup", + Description: "Grants permission to create a face liveness session", + Privilege: "CreateFaceLivenessSession", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "pg*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon Rekognition Custom Labels project", + Privilege: "CreateProject", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -215950,21 +260533,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to copy the specified DB snapshot", - Privilege: "CopyDBSnapshot", + Description: "Grants permission to begin training a new version of a model", + Privilege: "CreateProjectVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "snapshot*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "rds:CopyOptionGroup", }, DependentActions: []string{}, ResourceType: "", @@ -215973,15 +260553,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to copy the specified option group", - Privilege: "CopyOptionGroup", + Description: "Grants permission to create an Amazon Rekognition stream processor", + Privilege: "CreateStreamProcessor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "og*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "collection*", }, { ConditionKeys: []string{ @@ -215995,225 +260573,239 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a blue-green deployment for a given source cluster or instance", - Privilege: "CreateBlueGreenDeployment", + Description: "Grants permission to create a new user in a collection using a unique user ID you provide", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - "rds:CreateDBCluster", - "rds:CreateDBClusterEndpoint", - "rds:CreateDBInstance", - "rds:CreateDBInstanceReadReplica", - }, - ResourceType: "deployment*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified collection", + Privilege: "DeleteCollection", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg", + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing Amazon Rekognition Custom Labels dataset", + Privilege: "DeleteDataset", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete faces from a collection", + Privilege: "DeleteFaces", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg", + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "rds:cluster-tag/${TagKey}", - "rds:cluster-pg-tag/${TagKey}", - "rds:db-tag/${TagKey}", - "rds:pg-tag/${TagKey}", - "rds:req-tag/${TagKey}", - "rds:DatabaseEngine", - "rds:DatabaseName", - "rds:StorageEncrypted", - "rds:DatabaseClass", - "rds:StorageSize", - "rds:MultiAz", - "rds:Piops", - "rds:Vpc", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a custom engine version", - Privilege: "CreateCustomDBEngineVersion", + Description: "Grants permission to delete a resource policy attached to a project", + Privilege: "DeleteProjectPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "mediaimport:CreateDatabaseBinarySnapshot", - "rds:AddTagsToResource", - }, - ResourceType: "cev*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new DB cluster", - Privilege: "CreateDBCluster", + Description: "Grants permission to delete a model", + Privilege: "DeleteProjectVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "projectversion*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified stream processor", + Privilege: "DeleteStreamProcessor", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg*", + ResourceType: "streamprocessor*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a user from a collection based on the provided user ID", + Privilege: "DeleteUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read details about a collection", + Privilege: "DescribeCollection", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an Amazon Rekognition Custom Labels dataset", + Privilege: "DescribeDataset", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the versions of a model in an Amazon Rekognition Custom Labels project", + Privilege: "DescribeProjectVersions", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list Amazon Rekognition Custom Labels projects", + Privilege: "DescribeProjects", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - "rds:DatabaseEngine", - "rds:DatabaseName", - "rds:StorageEncrypted", - "rds:DatabaseClass", - "rds:StorageSize", - "rds:Piops", - "rds:ManageMasterUserPassword", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new custom endpoint and associates it with an Amazon Aurora DB cluster or Amazon DocumentDB cluster", - Privilege: "CreateDBClusterEndpoint", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified stream processor", + Privilege: "DescribeStreamProcessor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streamprocessor*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect custom labels in a supplied image", + Privilege: "DetectCustomLabels", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint*", + ResourceType: "projectversion*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect human faces within an image provided as input", + Privilege: "DetectFaces", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "rds:EndpointType", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new DB cluster parameter group", - Privilege: "CreateDBClusterParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to detect instances of real-world labels within an image provided as input", + Privilege: "DetectLabels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "cluster-pg*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot of a DB cluster", - Privilege: "CreateDBClusterSnapshot", + AccessLevel: "Read", + Description: "Grants permission to detect moderation labels within the input image", + Privilege: "DetectModerationLabels", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "projectversion", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect Personal Protective Equipment in the input image", + Privilege: "DetectProtectiveEquipment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to detect text in the input image and convert it into machine-readable text", + Privilege: "DetectText", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -216221,125 +260813,155 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new DB instance", - Privilege: "CreateDBInstance", + Description: "Grants permission to remove the association between a user ID and a face ID", + Privilege: "DisassociateFaces", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "rds:AddTagsToResource", - "rds:CreateTenantDatabase", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", - }, - ResourceType: "db*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to distribute the entries in a training dataset across the training dataset and the test dataset for a project", + Privilege: "DistributeDatasetEntries", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the name, and additional information, of a celebrity", + Privilege: "GetCelebrityInfo", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the celebrity recognition results found in a stored video by an asynchronous celebrity recognition job", + Privilege: "GetCelebrityRecognition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the content moderation analysis results found in a stored video by an asynchronous content moderation job", + Privilege: "GetContentModeration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the faces detection results found in a stored video by an asynchronous face detection job", + Privilege: "GetFaceDetection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "rds:BackupTarget", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - "rds:ManageMasterUserPassword", - "rds:MultiTenant", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a DB instance that acts as a Read Replica of a source DB instance", - Privilege: "CreateDBInstanceReadReplica", + AccessLevel: "Read", + Description: "Grants permission to get results of a face liveness session", + Privilege: "GetFaceLivenessSessionResults", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "rds:AddTagsToResource", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the matching collection faces found in a stored video by an asynchronous face search job", + Privilege: "GetFaceSearch", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the label detected resuls found in a stored video by an asynchronous label detection job", + Privilege: "GetLabelDetection", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the reference to job results in S3 and additional information about a media analysis job", + Privilege: "GetMediaAnalysisJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the list of persons detected in a stored video by an asynchronous person tracking job", + Privilege: "GetPersonTracking", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new DB parameter group", - Privilege: "CreateDBParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to get the vdeo segments found in a stored video by an asynchronous segment detection job", + Privilege: "GetSegmentDetection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "pg*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the text found in a stored video by an asynchronous text detection job", + Privilege: "GetTextDetection", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -216347,268 +260969,220 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a database proxy", - Privilege: "CreateDBProxy", + Description: "Grants permission to update an existing collection with faces detected in the input image", + Privilege: "IndexFaces", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "collection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a database proxy endpoint", - Privilege: "CreateDBProxyEndpoint", + AccessLevel: "Read", + Description: "Grants permission to read the collection Id's in your account", + Privilege: "ListCollections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the dataset entries in an existing Amazon Rekognition Custom Labels dataset", + Privilege: "ListDatasetEntries", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint*", + ResourceType: "dataset*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the labels in a dataset", + Privilege: "ListDatasetLabels", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new DB security group. DB security groups control access to a DB instance", - Privilege: "CreateDBSecurityGroup", + AccessLevel: "Read", + Description: "Grants permission to read metadata for faces in the specificed collection", + Privilege: "ListFaces", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "secgrp*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "collection*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to read the list of media analysis jobs", + Privilege: "ListMediaAnalysisJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Aurora Limitless Database DB shard group", - Privilege: "CreateDBShardGroup", + AccessLevel: "Read", + Description: "Grants permission to list the resource policies attached to a project", + Privilege: "ListProjectPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to get a list of your stream processors", + Privilege: "ListStreamProcessors", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shardgrp*", + ResourceType: "streamprocessor*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a DBSnapshot", - Privilege: "CreateDBSnapshot", + AccessLevel: "Read", + Description: "Grants permission to return a list of tags associated with a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "db*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "collection", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "dataset", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot-tenant-database*", + ResourceType: "project", }, { - ConditionKeys: []string{ - "rds:BackupTarget", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "projectversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streamprocessor", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new DB subnet group", - Privilege: "CreateDBSubnetGroup", + AccessLevel: "Read", + Description: "Grants permission to list UserIds and the UserStatus", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "subgrp*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an RDS event notification subscription", - Privilege: "CreateEventSubscription", + Description: "Grants permission to attach a resource policy to a project", + Privilege: "PutProjectPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "es*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Aurora global database or DocumentDB global database spread across multiple regions", - Privilege: "CreateGlobalCluster", + AccessLevel: "Read", + Description: "Grants permission to detect celebrities in the input image", + Privilege: "RecognizeCelebrities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to search the specificed collection for the supplied face ID", + Privilege: "SearchFaces", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "collection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Aurora zero-ETL integration with Redshift", - Privilege: "CreateIntegration", + AccessLevel: "Read", + Description: "Grants permission to search the specificed collection for the largest face in the input image", + Privilege: "SearchFacesByImage", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "kms:CreateGrant", - "kms:DescribeKey", - "rds:AddTagsToResource", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "collection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new option group", - Privilege: "CreateOptionGroup", + AccessLevel: "Read", + Description: "Grants permission to search the specificed collection for user match result with given either face ID or user ID", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "og*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "collection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new tenant database", - Privilege: "CreateTenantDatabase", + AccessLevel: "Read", + Description: "Grants permission to search the specificed collection for user match result by using the largest face in the input image", + Privilege: "SearchUsersByImage", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:AddTagsToResource", - }, - ResourceType: "db*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tenant-database*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:TenantDatabaseName", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "collection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to access a resource in the remote Region when executing cross-Region operations, such as cross-Region snapshot copy or cross-Region read replica creation", - Privilege: "CrossRegionCommunication", + Description: "Grants permission to start the asynchronous recognition of celebrities in a stored video", + Privilege: "StartCelebrityRecognition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -216619,22 +261193,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete blue green deployments", - Privilege: "DeleteBlueGreenDeployment", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:DeleteDBCluster", - "rds:DeleteDBClusterEndpoint", - "rds:DeleteDBInstance", - }, - ResourceType: "deployment*", - }, + Description: "Grants permission to start asynchronous detection of explicit or suggestive adult content in a stored video", + Privilege: "StartContentModeration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -216642,689 +261205,923 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing custom engine version", - Privilege: "DeleteCustomDBEngineVersion", + Description: "Grants permission to start asynchronous detection of faces in a stored video", + Privilege: "StartFaceDetection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cev*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a previously provisioned DB cluster", - Privilege: "DeleteDBCluster", + Description: "Grants permission to start streaming video for a face liveness session", + Privilege: "StartFaceLivenessSession", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:DeleteDBInstance", - }, - ResourceType: "cluster*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete cluster automated backups based on the source cluster's DbClusterResourceId value or the restorable cluster's resource ID", - Privilege: "DeleteDBClusterAutomatedBackup", + Description: "Grants permission to start an asynchronous search for faces in a collection that match the faces of persons detected in a stored video", + Privilege: "StartFaceSearch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-auto-backup*", + ResourceType: "collection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom endpoint and removes it from an Amazon Aurora DB cluster or Amazon DocumentDB cluster", - Privilege: "DeleteDBClusterEndpoint", + Description: "Grants permission to start asynchronous detection of labels in a stored video", + Privilege: "StartLabelDetection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified DB cluster parameter group", - Privilege: "DeleteDBClusterParameterGroup", + Description: "Grants permission to start a media analysis job", + Privilege: "StartMediaAnalysisJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg*", + ResourceType: "projectversion", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a DB cluster snapshot", - Privilege: "DeleteDBClusterSnapshot", + Description: "Grants permission to start the asynchronous tracking of persons in a stored video", + Privilege: "StartPersonTracking", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a previously provisioned DB instance", - Privilege: "DeleteDBInstance", + Description: "Grants permission to start running a model version", + Privilege: "StartProjectVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:DeleteTenantDatabase", - }, - ResourceType: "db*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "projectversion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete automated backups based on the source instance's DbiResourceId value or the restorable instance's resource ID", - Privilege: "DeleteDBInstanceAutomatedBackup", + Description: "Grants permission to start the asynchronous detection of segments in a stored video", + Privilege: "StartSegmentDetection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "auto-backup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified DBParameterGroup", - Privilege: "DeleteDBParameterGroup", + Description: "Grants permission to start running a stream processor", + Privilege: "StartStreamProcessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "streamprocessor*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a database proxy", - Privilege: "DeleteDBProxy", + Description: "Grants permission to start the asynchronous detection of text in a stored video", + Privilege: "StartTextDetection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a database proxy endpoint", - Privilege: "DeleteDBProxyEndpoint", + Description: "Grants permission to stop a running model version", + Privilege: "StopProjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint*", + ResourceType: "projectversion*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a DB security group", - Privilege: "DeleteDBSecurityGroup", + Description: "Grants permission to stop a running stream processor", + Privilege: "StopStreamProcessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp*", + ResourceType: "streamprocessor*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Aurora Limitless Database DB shard group", - Privilege: "DeleteDBShardGroup", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shardgrp*", + ResourceType: "collection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "projectversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streamprocessor", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a DBSnapshot", - Privilege: "DeleteDBSnapshot", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "collection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataset", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "projectversion", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "streamprocessor", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a DB subnet group", - Privilege: "DeleteDBSubnetGroup", + Description: "Grants permission to add or update one or more JSON Lines (entries) in a dataset", + Privilege: "UpdateDatasetEntries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an RDS event notification subscription", - Privilege: "DeleteEventSubscription", + Description: "Grants permission to modify properties for a stream processor", + Privilege: "UpdateStreamProcessor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es*", + ResourceType: "streamprocessor*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:rekognition:${Region}:${Account}:collection/${CollectionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "collection", + }, + { + Arn: "arn:${Partition}:rekognition:${Region}:${Account}:streamprocessor/${StreamprocessorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "streamprocessor", + }, + { + Arn: "arn:${Partition}:rekognition:${Region}:${Account}:project/${ProjectName}/${CreationTimestamp}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "project", + }, + { + Arn: "arn:${Partition}:rekognition:${Region}:${Account}:project/${ProjectName}/version/${VersionName}/${CreationTimestamp}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "projectversion", + }, + { + Arn: "arn:${Partition}:rekognition:${Region}:${Account}:project/${ProjectName}/dataset/${DatasetType}/${CreationTimestamp}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dataset", + }, + }, + ServiceName: "Amazon Rekognition", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "repostspace", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a global database cluster", - Privilege: "DeleteGlobalCluster", + Description: "Grants permission to add a role to users and groups in a private re:Post in your account", + Privilege: "BatchAddRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "space*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Aurora zero-ETL integration with Redshift", - Privilege: "DeleteIntegration", + Description: "Grants permission to remove a role from users and groups in a private re:Post in your account", + Privilege: "BatchRemoveRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration*", + ResourceType: "space*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing option group", - Privilege: "DeleteOptionGroup", + Description: "Grants permission to create a new private re:Post in your account", + Privilege: "CreateSpace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a tenant database", - Privilege: "DeleteTenantDatabase", + Description: "Grants permission to delete a private re:Post from your account", + Privilege: "DeleteSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "space*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an administrator to a private re:Post in your account", + Privilege: "DeregisterAdmin", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tenant-database*", + ResourceType: "space*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove targets from a database proxy target group", - Privilege: "DeregisterDBProxyTargets", + AccessLevel: "Read", + Description: "Grants permission to get the description for a private re:Post in your account", + Privilege: "GetSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "space*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all private re:Posts in your account", + Privilege: "ListSpaces", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags associated with a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "space*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "target-group*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the attributes for a customer account", - Privilege: "DescribeAccountAttributes", + AccessLevel: "Write", + Description: "Grants permission to add an administrator to a private re:Post in your account", + Privilege: "RegisterAdmin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "space*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe blue green deployments", - Privilege: "DescribeBlueGreenDeployments", + AccessLevel: "Write", + Description: "Grants permission to send invites to users of a private re:Post in your account", + Privilege: "SendInvites", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "space*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the set of CA certificates provided by Amazon RDS for this AWS account", - Privilege: "DescribeCertificates", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "space*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of cluster automated backups for both current and deleted clusters", - Privilege: "DescribeDBClusterAutomatedBackups", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-auto-backup*", + ResourceType: "space*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about backtracks for a DB cluster", - Privilege: "DescribeDBClusterBacktracks", + AccessLevel: "Write", + Description: "Grants permission to update a private re:Post in your account", + Privilege: "UpdateSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "space*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to return information about endpoints for an Amazon Aurora DB cluster", - Privilege: "DescribeDBClusterEndpoints", + Arn: "arn:${Partition}:repostspace:${Region}:${Account}:space/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "space", + }, + }, + ServiceName: "AWS rePost Private", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "resiliencehub", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept resource grouping recommendations", + Privilege: "AcceptResourceGroupingRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add draft application version resource mappings", + Privilege: "AddDraftAppVersionResourceMappings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", + }, + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DBClusterParameterGroup descriptions", - Privilege: "DescribeDBClusterParameterGroups", + AccessLevel: "Write", + Description: "Grants permission to include or exclude one or more operational recommendations", + Privilege: "BatchUpdateRecommendationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the detailed parameter list for a particular DB cluster parameter group", - Privilege: "DescribeDBClusterParameters", + AccessLevel: "Write", + Description: "Grants permission to create application", + Privilege: "CreateApp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-pg*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DB cluster snapshot attribute names and values for a manual DB cluster snapshot", - Privilege: "DescribeDBClusterSnapshotAttributes", + AccessLevel: "Write", + Description: "Grants permission to create application app component", + Privilege: "CreateAppVersionAppComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about DB cluster snapshots", - Privilege: "DescribeDBClusterSnapshots", + AccessLevel: "Write", + Description: "Grants permission to create application resource", + Privilege: "CreateAppVersionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about provisioned Aurora DB clusters or DocumentDB clusters", - Privilege: "DescribeDBClusters", + AccessLevel: "Write", + Description: "Grants permission to create recommendation template", + Privilege: "CreateRecommendationTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:CreateBucket", + "s3:ListBucket", + "s3:PutObject", + }, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of the available DB engines", - Privilege: "DescribeDBEngineVersions", + AccessLevel: "Write", + Description: "Grants permission to create resiliency policy", + Privilege: "CreateResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of automated backups for both current and deleted instances", - Privilege: "DescribeDBInstanceAutomatedBackups", + AccessLevel: "Write", + Description: "Grants permission to batch delete application", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "auto-backup", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to batch delete application assessment", + Privilege: "DeleteAppAssessment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about provisioned RDS instances", - Privilege: "DescribeDBInstances", + AccessLevel: "Write", + Description: "Grants permission to remove application input source", + Privilege: "DeleteAppInputSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DB log files for the DB instance", - Privilege: "DescribeDBLogFiles", + AccessLevel: "Write", + Description: "Grants permission to delete application app component", + Privilege: "DeleteAppVersionAppComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DBParameterGroup descriptions", - Privilege: "DescribeDBParameterGroups", + AccessLevel: "Write", + Description: "Grants permission to delete application resource", + Privilege: "DeleteAppVersionResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return the detailed parameter list for a particular DB parameter group", - Privilege: "DescribeDBParameters", + AccessLevel: "Write", + Description: "Grants permission to batch delete recommendation template", + Privilege: "DeleteRecommendationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view proxies", - Privilege: "DescribeDBProxies", + AccessLevel: "Write", + Description: "Grants permission to batch delete resiliency policy", + Privilege: "DeleteResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "resiliency-policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view proxy endpoints", - Privilege: "DescribeDBProxyEndpoints", + AccessLevel: "Read", + Description: "Grants permission to describe application", + Privilege: "DescribeApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe application assessment", + Privilege: "DescribeAppAssessment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view database proxy target group details", - Privilege: "DescribeDBProxyTargetGroups", + AccessLevel: "Read", + Description: "Grants permission to describe application version", + Privilege: "DescribeAppVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view database proxy target details", - Privilege: "DescribeDBProxyTargets", + AccessLevel: "Read", + Description: "Grants permission to describe application version app component", + Privilege: "DescribeAppVersionAppComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe application version resource", + Privilege: "DescribeAppVersionResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "target-group*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list recommendation details", - Privilege: "DescribeDBRecommendations", + AccessLevel: "Read", + Description: "Grants permission to describe application resolution", + Privilege: "DescribeAppVersionResourcesResolutionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DBSecurityGroup descriptions", - Privilege: "DescribeDBSecurityGroups", + AccessLevel: "Read", + Description: "Grants permission to describe application version template", + Privilege: "DescribeAppVersionTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about all Aurora Limitless Database DB shard groups for this account. You can filter by shard group(s)", - Privilege: "DescribeDBShardGroups", + AccessLevel: "Read", + Description: "Grants permission to describe draft application version resources import status", + Privilege: "DescribeDraftAppVersionResourcesImportStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shardgrp*", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DB snapshot attribute names and values for a manual DB snapshot", - Privilege: "DescribeDBSnapshotAttributes", + AccessLevel: "Read", + Description: "Grants permission to describe metrics export", + Privilege: "DescribeMetricsExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return information about DB snapshots", - Privilege: "DescribeDBSnapshots", + AccessLevel: "Read", + Description: "Grants permission to describe resiliency policy", + Privilege: "DescribeResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "resiliency-policy*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the latest status of the grouping recommendation process", + Privilege: "DescribeResourceGroupingRecommendationTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of DBSubnetGroup descriptions", - Privilege: "DescribeDBSubnetGroups", + AccessLevel: "Write", + Description: "Grants permission to import resources to draft application version", + Privilege: "ImportResourcesToDraftAppVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subgrp*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", + }, + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return information about tenant databases in DB snapshots. You can filter by Region or snapshot", - Privilege: "DescribeDbSnapshotTenantDatabases", + Description: "Grants permission to list alarm recommendation", + Privilege: "ListAlarmRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot-tenant-database*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "db", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return the default engine and system parameter information for the cluster database engine", - Privilege: "DescribeEngineDefaultClusterParameters", + Description: "Grants permission to list compliance drifts that were detected while running an assessment", + Privilege: "ListAppAssessmentComplianceDrifts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return the default engine and system parameter information for the specified database engine", - Privilege: "DescribeEngineDefaultParameters", + Description: "Grants permission to list resource drifts that were detected while running an assessment", + Privilege: "ListAppAssessmentResourceDrifts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to display a list of categories for all event source types, or, if specified, for a specified source type", - Privilege: "DescribeEventCategories", + Description: "Grants permission to list application assessment", + Privilege: "ListAppAssessments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -217335,99 +262132,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all the subscription descriptions for a customer account", - Privilege: "DescribeEventSubscriptions", + Description: "Grants permission to list app component compliances", + Privilege: "ListAppComponentCompliances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es*", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return events related to DB instances, DB security groups, DB snapshots, and DB parameter groups for the past 14 days", - Privilege: "DescribeEvents", + Description: "Grants permission to list app component recommendations", + Privilege: "ListAppComponentRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return information about the export tasks", - Privilege: "DescribeExportTasks", + Description: "Grants permission to list application input sources", + Privilege: "ListAppInputSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return information about Aurora global database clusters or DocumentDB global database clusters", - Privilege: "DescribeGlobalClusters", + Description: "Grants permission to list application version app components", + Privilege: "ListAppVersionAppComponents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe an Aurora zero-ETL integration with Redshift", - Privilege: "DescribeIntegrations", + Description: "Grants permission to application version resource mappings", + Privilege: "ListAppVersionResourceMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe all available options", - Privilege: "DescribeOptionGroupOptions", + Description: "Grants permission to list application resources", + Privilege: "ListAppVersionResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to describe the available option groups", - Privilege: "DescribeOptionGroups", + Description: "Grants permission to list application version", + Privilege: "ListAppVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of orderable DB instance options for the specified engine", - Privilege: "DescribeOrderableDBInstanceOptions", + Description: "Grants permission to list applications", + Privilege: "ListApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -217438,25 +262228,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return a list of resources (for example, DB instances) that have at least one pending maintenance action", - Privilege: "DescribePendingMaintenanceActions", + Description: "Grants permission to list metrics", + Privilege: "ListMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list recommendation templates", + Privilege: "ListRecommendationTemplates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about recommendation groups", - Privilege: "DescribeRecommendationGroups", + AccessLevel: "List", + Description: "Grants permission to list resiliency policies", + Privilege: "ListResiliencyPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -217466,33 +262263,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about recommendations", - Privilege: "DescribeRecommendations", + AccessLevel: "List", + Description: "Grants permission to list resource grouping recommendations", + Privilege: "ListResourceGroupingRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return information about reserved DB instances for this account, or about a specified reserved DB instance", - Privilege: "DescribeReservedDBInstances", + Description: "Grants permission to list SOP recommendations", + Privilege: "ListSopRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ri*", + ResourceType: "application*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list available reserved DB instance offerings", - Privilege: "DescribeReservedDBInstancesOfferings", + Description: "Grants permission to list suggested resiliency policies", + Privilege: "ListSuggestedResiliencyPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -217502,9 +262299,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of the source AWS Regions where the current AWS Region can create a Read Replica or copy a DB snapshot from", - Privilege: "DescribeSourceRegions", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -217515,438 +262312,668 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return information about provisioned tenant databases. You can filter by Region or snapshot", - Privilege: "DescribeTenantDatabases", + Description: "Grants permission to list test recommendations", + Privilege: "ListTestRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tenant-database*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list unsupported application version resources", + Privilege: "ListUnsupportedAppVersionResources", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "application*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list available modifications you can make to your DB instance", - Privilege: "DescribeValidDBInstanceModifications", + AccessLevel: "Write", + Description: "Grants permission to publish application version", + Privilege: "PublishAppVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable http endpoint for a DB cluster", - Privilege: "DisableHttpEndpoint", + Description: "Grants permission to put draft application version template", + Privilege: "PutDraftAppVersionTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to download specified log file", - Privilege: "DownloadCompleteDBLogFile", + AccessLevel: "Write", + Description: "Grants permission to reject resource grouping recommendations", + Privilege: "RejectResourceGroupingRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to download all or a portion of the specified log file, up to 1 MB in size", - Privilege: "DownloadDBLogFilePortion", + AccessLevel: "Write", + Description: "Grants permission to remove draft application version mappings", + Privilege: "RemoveDraftAppVersionResourceMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable http endpoint for a DB cluster", - Privilege: "EnableHttpEndpoint", + Description: "Grants permission to resolve application version resources", + Privilege: "ResolveAppVersionResources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", + }, + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to force a failover for a DB cluster", - Privilege: "FailoverDBCluster", + Description: "Grants permission to create application assessment", + Privilege: "StartAppAssessment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "cloudwatch:DescribeAlarms", + "cloudwatch:GetMetricData", + "cloudwatch:GetMetricStatistics", + "cloudwatch:PutMetricData", + "ec2:DescribeRegions", + "fis:GetExperimentTemplate", + "fis:ListExperimentTemplates", + "fis:ListExperiments", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", + "ssm:GetParametersByPath", + }, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to failover a global cluster", - Privilege: "FailoverGlobalCluster", + Description: "Grants permission to start the metrics export", + Privilege: "StartMetricsExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start the grouping recommendation generation process", + Privilege: "StartResourceGroupingRecommendationTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags on an Amazon RDS resource", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to assign a resource tag", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cev", + ResourceType: "app-assessment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint", + ResourceType: "recommendation-template", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg", + ResourceType: "resiliency-policy", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster-snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "app-assessment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration", + ResourceType: "recommendation-template", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og", + ResourceType: "resiliency-policy", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "pg", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update application", + Privilege: "UpdateApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update application version", + Privilege: "UpdateAppVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update application app component", + Privilege: "UpdateAppVersionAppComponent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update application resource", + Privilege: "UpdateAppVersionResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ri", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update resiliency policy", + Privilege: "UpdateResiliencyPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp", + ResourceType: "resiliency-policy*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:resiliency-policy/${ResiliencyPolicyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "resiliency-policy", + }, + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:app/${AppId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:app-assessment/${AppAssessmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "app-assessment", + }, + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:recommendation-template/${RecommendationTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "recommendation-template", + }, + }, + ServiceName: "AWS Resilience Hub", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "resiliencehub", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add draft application version resource mappings", + Privilege: "AddDraftAppVersionResourceMappings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", + }, + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create application", + Privilege: "CreateApp", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot-tenant-database", + ResourceType: "resiliency-policy", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "subgrp", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create recommendation template", + Privilege: "CreateRecommendationTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "target-group", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:CreateBucket", + "s3:ListBucket", + "s3:PutObject", + }, + ResourceType: "application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "tenant-database", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify a database activity stream", - Privilege: "ModifyActivityStream", + Description: "Grants permission to create resiliency policy", + Privilege: "CreateResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the system-default Secure Sockets Layer/Transport Layer Security (SSL/TLS) certificate for Amazon RDS for new DB instances", - Privilege: "ModifyCertificates", + Description: "Grants permission to batch delete application", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify current cluster capacity for an Amazon Aurora Serverless DB cluster", - Privilege: "ModifyCurrentDBClusterCapacity", + Description: "Grants permission to batch delete application assessment", + Privilege: "DeleteAppAssessment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an existing custom engine version", - Privilege: "ModifyCustomDBEngineVersion", + Description: "Grants permission to batch delete recommendation template", + Privilege: "DeleteRecommendationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cev*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify a setting for an Amazon Aurora DB cluster or Amazon DocumentDB cluster", - Privilege: "ModifyDBCluster", + Description: "Grants permission to batch delete resiliency policy", + Privilege: "DeleteResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "rds:ModifyDBInstance", - "secretsmanager:CreateSecret", - "secretsmanager:RotateSecret", - "secretsmanager:TagResource", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resiliency-policy*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe application", + Privilege: "DescribeApp", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe application assessment", + Privilege: "DescribeAppAssessment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe application resolution", + Privilege: "DescribeAppVersionResourcesResolutionStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "rds:DatabaseClass", - "rds:StorageSize", - "rds:Piops", - "rds:ManageMasterUserPassword", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the properties of an endpoint in an Amazon Aurora DB cluster or Amazon DocumentDB cluster", - Privilege: "ModifyDBClusterEndpoint", + AccessLevel: "Read", + Description: "Grants permission to describe application version template", + Privilege: "DescribeAppVersionTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a DB cluster parameter group", - Privilege: "ModifyDBClusterParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to describe draft application version resources import status", + Privilege: "DescribeDraftAppVersionResourcesImportStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an attribute and values to, or removes an attribute and values from, a manual DB cluster snapshot", - Privilege: "ModifyDBClusterSnapshotAttribute", + AccessLevel: "Read", + Description: "Grants permission to describe resiliency policy", + Privilege: "DescribeResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot*", + ResourceType: "resiliency-policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify settings for a DB instance", - Privilege: "ModifyDBInstance", + Description: "Grants permission to import resources to draft application version", + Privilege: "ImportResourcesToDraftAppVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "rds:AddTagsToResource", - "rds:CreateTenantDatabase", - "secretsmanager:CreateSecret", - "secretsmanager:RotateSecret", - "secretsmanager:TagResource", + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", }, - ResourceType: "db*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list alarm recommendation", + Privilege: "ListAlarmRecommendations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list application assessment", + Privilege: "ListAppAssessments", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "application", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list app component compliances", + Privilege: "ListAppComponentCompliances", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp*", + ResourceType: "application*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list app component recommendations", + Privilege: "ListAppComponentRecommendations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "rds:ManageMasterUserPassword", - "rds:MultiTenant", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a DB parameter group", - Privilege: "ModifyDBParameterGroup", + AccessLevel: "List", + Description: "Grants permission to application version resource mappings", + Privilege: "ListAppVersionResourceMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify database proxy", - Privilege: "ModifyDBProxy", + AccessLevel: "List", + Description: "Grants permission to list application resources", + Privilege: "ListAppVersionResources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "proxy*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify database proxy endpoint", - Privilege: "ModifyDBProxyEndpoint", + AccessLevel: "List", + Description: "Grants permission to list application version", + Privilege: "ListAppVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify target group for a database proxy", - Privilege: "ModifyDBProxyTargetGroup", + AccessLevel: "List", + Description: "Grants permission to list applications", + Privilege: "ListApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "target-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify recommendation", - Privilege: "ModifyDBRecommendation", + AccessLevel: "List", + Description: "Grants permission to list recommendation templates", + Privilege: "ListRecommendationTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list resiliency policies", + Privilege: "ListResiliencyPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -217956,138 +262983,184 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify properties of an Aurora Limitless Database DB shard group", - Privilege: "ModifyDBShardGroup", + AccessLevel: "List", + Description: "Grants permission to list SOP recommendations", + Privilege: "ListSopRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shardgrp*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a manual DB snapshot, which can be encrypted or not encrypted, with a new engine version", - Privilege: "ModifyDBSnapshot", + AccessLevel: "List", + Description: "Grants permission to list suggested resiliency policies", + Privilege: "ListSuggestedResiliencyPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an attribute and values to, or removes an attribute and values from, a manual DB snapshot", - Privilege: "ModifyDBSnapshotAttribute", + AccessLevel: "List", + Description: "Grants permission to list test recommendations", + Privilege: "ListTestRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing DB subnet group", - Privilege: "ModifyDBSubnetGroup", + AccessLevel: "List", + Description: "Grants permission to list unsupported application version resources", + Privilege: "ListUnsupportedAppVersionResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an existing RDS event notification subscription", - Privilege: "ModifyEventSubscription", + Description: "Grants permission to publish application version", + Privilege: "PublishAppVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify a setting for an Amazon Aurora global cluster or Amazon DocumentDB global cluster", - Privilege: "ModifyGlobalCluster", + Description: "Grants permission to put draft application version template", + Privilege: "PutDraftAppVersionTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an Aurora zero-ETL integration with Redshift", - Privilege: "ModifyIntegration", + Description: "Grants permission to remove draft application version mappings", + Privilege: "RemoveDraftAppVersionResourceMappings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an existing option group", - Privilege: "ModifyOptionGroup", + Description: "Grants permission to resolve application version resources", + Privilege: "ResolveAppVersionResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", }, - ResourceType: "og*", + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify recommendation", - Privilege: "ModifyRecommendation", + Description: "Grants permission to create application assessment", + Privilege: "StartAppAssessment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "cloudwatch:DescribeAlarms", + "cloudwatch:GetMetricData", + "cloudwatch:GetMetricStatistics", + "cloudwatch:PutMetricData", + "fis:GetExperimentTemplate", + "fis:ListExperimentTemplates", + "fis:ListExperiments", + "resource-groups:GetGroup", + "resource-groups:ListGroupResources", + "servicecatalog:GetApplication", + "servicecatalog:ListAssociatedResources", + "ssm:GetParametersByPath", + }, + ResourceType: "application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a tenant database", - Privilege: "ModifyTenantDatabase", + AccessLevel: "Tagging", + Description: "Grants permission to assign a resource tag", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "app-assessment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tenant-database*", + ResourceType: "application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "recommendation-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resiliency-policy", }, { ConditionKeys: []string{ - "rds:TenantDatabaseName", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -218095,42 +263168,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to promote a Read Replica DB instance to a standalone DB instance", - Privilege: "PromoteReadReplica", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "app-assessment", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to promote a Read Replica DB cluster to a standalone DB cluster", - Privilege: "PromoteReadReplicaDBCluster", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to purchase a reserved DB instance offering", - Privilege: "PurchaseReservedDBInstancesOffering", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ri*", + ResourceType: "recommendation-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resiliency-policy", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -218140,294 +263203,468 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to reboot a previously provisioned DB cluster", - Privilege: "RebootDBCluster", + Description: "Grants permission to update application", + Privilege: "UpdateApp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:RebootDBInstance", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restart the database engine service", - Privilege: "RebootDBInstance", + Description: "Grants permission to update resiliency policy", + Privilege: "UpdateResiliencyPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "resiliency-policy*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to reboot an Aurora Limitless Database DB shard group", - Privilege: "RebootDBShardGroup", + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:resiliency-policy/${ResiliencyPolicyID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "resiliency-policy", + }, + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:app/${AppID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:app-assessment/${AppAssessmentID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "app-assessment", + }, + { + Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:recommendation-template/${RecommendationTemplateID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "recommendation-template", + }, + }, + ServiceName: "AWS Resilience Hub Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "resource-explorer", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "List", + Description: "Grants permission to retrieve the resource types currently supported by Tag Editor", + Privilege: "ListResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shardgrp*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add targets to a database proxy target group", - Privilege: "RegisterDBProxyTargets", + AccessLevel: "List", + Description: "Grants permission to retrieve the identifiers of the resources in the AWS account", + Privilege: "ListResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "target-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to detach an Aurora secondary cluster from an Aurora global database cluster or DocumentDB global cluster", - Privilege: "RemoveFromGlobalCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve the tags attached to the specified resource identifiers", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "tag:GetResources", + }, + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Tag Editor", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "resource-explorer", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "List", + Description: "Grants permission to retrieve the resource types currently supported by Tag Editor", + Privilege: "ListResourceTypes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an AWS Identity and Access Management (IAM) role from an Amazon Aurora DB cluster", - Privilege: "RemoveRoleFromDBCluster", + AccessLevel: "List", + Description: "Grants permission to retrieve the identifiers of the resources in the AWS account", + Privilege: "ListResources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an AWS Identity and Access Management (IAM) role from a DB instance", - Privilege: "RemoveRoleFromDBInstance", + AccessLevel: "Read", + Description: "Grants permission to retrieve the tags attached to the specified resource identifiers", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "tag:GetResources", }, - ResourceType: "db*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Tag Editor", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tag keys that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag keyss attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "resource-explorer-2:Operation", + Description: "Filters access by the actual operation that is being invoked, available values: Search, ListResources", + Type: "String", + }, + }, + Prefix: "resource-explorer-2", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to remove a source identifier from an existing RDS event notification subscription", - Privilege: "RemoveSourceIdentifierFromSubscription", + Description: "Grants permission to set the specified view as the default for this AWS Region in this AWS account", + Privilege: "AssociateDefaultView", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove metadata tags from an Amazon RDS resource", - Privilege: "RemoveTagsFromResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve details about views that you specify by a list of ARNs", + Privilege: "BatchGetView", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cev", + ConditionKeys: []string{}, + DependentActions: []string{ + "resource-explorer-2:GetView", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to turn on Resource Explorer in the AWS Region in which you called this operation by creating an index", + Privilege: "CreateIndex", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create managed view", + Privilege: "CreateManagedView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a view that users can query", + Privilege: "CreateView", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "cluster-pg", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to turn off Resource Explorer in the specified AWS Region by deleting the index", + Privilege: "DeleteIndex", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-snapshot", + ResourceType: "index*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified view's resource policy", + Privilege: "DeleteResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db", + ResourceType: "view*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a view", + Privilege: "DeleteView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deployment", + ResourceType: "view*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove the default view for the AWS Region in which you call this operation", + Privilege: "DisassociateDefaultView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "es", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to Resource Explorer to access account level data within your AWS Organization", + Privilege: "GetAccountLevelServiceConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "integration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the Amazon resource name (ARN) of the view that is the default for the AWS Region in which you call this operation", + Privilege: "GetDefaultView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the index in the AWS Region in which you call this operation", + Privilege: "GetIndex", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get managed view", + Privilege: "GetManagedView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy", + ResourceType: "managed-view*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified view's resource policy", + Privilege: "GetResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "proxy-endpoint", + ResourceType: "view*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the specified view", + Privilege: "GetView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ri", + ResourceType: "view*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the indexes in all AWS Regions", + Privilege: "ListIndexes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the organization member account's indexes in all AWS Regions", + Privilege: "ListIndexesForMembers", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list managed views", + Privilege: "ListManagedViews", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot-tenant-database", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all resource types currently supported by Resource Explorer", + Privilege: "ListSupportedResourceTypes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags that are attached to the specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "target-group", + ResourceType: "index", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "tenant-database", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "view", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a DB cluster parameter group to the default value", - Privilege: "ResetDBClusterParameterGroup", + AccessLevel: "List", + Description: "Grants permission to list the Amazon resource names (ARNs) of all of the views available in the AWS Region in which you call this operation", + Privilege: "ListViews", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-pg*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a DB parameter group to the engine/system default value", - Privilege: "ResetDBParameterGroup", + Description: "Grants permission to update the specified view's resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "view*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Aurora DB cluster from data stored in an Amazon S3 bucket", - Privilege: "RestoreDBClusterFromS3", + AccessLevel: "Read", + Description: "Grants permission to search for resources and display details about all resources that match the specified criteria", + Privilege: "Search", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "rds:AddTagsToResource", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", - }, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-pg*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "og*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "view*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - "rds:DatabaseEngine", - "rds:DatabaseName", - "rds:StorageEncrypted", - "rds:ManageMasterUserPassword", + "resource-explorer-2:Operation", }, DependentActions: []string{}, ResourceType: "", @@ -218435,47 +263672,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new DB cluster from a DB cluster snapshot", - Privilege: "RestoreDBClusterFromSnapshot", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tag key and value pairs to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - }, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-pg*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-snapshot*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "index", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "view", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "rds:req-tag/${TagKey}", - "rds:DatabaseClass", - "rds:StorageSize", - "rds:Piops", }, DependentActions: []string{}, ResourceType: "", @@ -218483,47 +263697,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore a DB cluster to an arbitrary point in time", - Privilege: "RestoreDBClusterToPointInTime", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tag key and value pairs from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "rds:AddTagsToResource", - "rds:CreateDBInstance", - }, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster-pg*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "og*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "index", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster-auto-backup", + ResourceType: "view", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "rds:req-tag/${TagKey}", - "rds:DatabaseClass", - "rds:StorageSize", - "rds:Piops", }, DependentActions: []string{}, ResourceType: "", @@ -218532,564 +263722,384 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new DB instance from a DB snapshot", - Privilege: "RestoreDBInstanceFromDBSnapshot", + Description: "Grants permission to change the type of the index from LOCAL to AGGREGATOR or back", + Privilege: "UpdateIndexType", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "rds:AddTagsToResource", - "rds:CreateTenantDatabase", - }, - ResourceType: "db*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "og*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "index*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify some of the details of a view", + Privilege: "UpdateView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "view*", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:resource-explorer-2:${Region}:${Account}:view/${ViewName}/${ViewUuid}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "view", + }, + { + Arn: "arn:${Partition}:resource-explorer-2:${Region}:${Account}:index/${IndexUuid}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "index", + }, + { + Arn: "arn:${Partition}:resource-explorer-2:${Region}:${Account}:managed-view/${ManagedViewName}/${ManagedViewUuid}", + ConditionKeys: []string{}, + Resource: "managed-view", + }, + }, + ServiceName: "AWS Resource Explorer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "resource-groups", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a resource to an Application", + Privilege: "AssociateResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", - }, - { - ConditionKeys: []string{ - "rds:BackupTarget", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new DB instance from an Amazon S3 bucket", - Privilege: "RestoreDBInstanceFromS3", + Description: "Grants permission to cancel a tag-sync task for an application group", + Privilege: "CancelTagSyncTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", - "kms:CreateGrant", - "kms:Decrypt", - "kms:DescribeKey", - "kms:GenerateDataKey", - "rds:AddTagsToResource", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource", + "resource-groups:DeleteGroup", }, - ResourceType: "db*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "og*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pg*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a resource group with a specified name, description, and resource query", + Privilege: "CreateGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "rds:req-tag/${TagKey}", - "rds:ManageMasterUserPassword", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "cloudformation:DescribeStacks", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore a DB instance to an arbitrary point in time", - Privilege: "RestoreDBInstanceToPointInTime", + Description: "Grants permission to delete a specified resource group", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", - "rds:AddTagsToResource", - "rds:CreateTenantDatabase", + "tag:GetResources", }, - ResourceType: "db*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "og*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a resource-based policy for the specified group", + Privilege: "DeleteGroupPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pg*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a resource from an Application", + Privilege: "DisassociateResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subgrp*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the current status of optional features in Resource Groups", + Privilege: "GetAccountSettings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "auto-backup", - }, - { - ConditionKeys: []string{ - "rds:BackupTarget", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "rds:req-tag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke ingress from a DBSecurityGroup for previously authorized IP ranges or EC2 or VPC Security Groups", - Privilege: "RevokeDBSecurityGroupIngress", + AccessLevel: "Read", + Description: "Grants permission to get information of a specified resource group", + Privilege: "GetGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "secgrp*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start Activity Stream", - Privilege: "StartActivityStream", + AccessLevel: "Read", + Description: "Grants permission to get the service configuration associated with the specified resource group", + Privilege: "GetGroupConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "db", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the DB cluster", - Privilege: "StartDBCluster", + AccessLevel: "Read", + Description: "Grants permission to get a resource-based policy for the specified group", + Privilege: "GetGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the DB instance", - Privilege: "StartDBInstance", + AccessLevel: "Read", + Description: "Grants permission to get the query associated with a specified resource group", + Privilege: "GetGroupQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start replication of automated backups to a different AWS Region", - Privilege: "StartDBInstanceAutomatedBackupsReplication", + AccessLevel: "Read", + Description: "Grants permission to get information of a specified tag-sync task", + Privilege: "GetTagSyncTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "auto-backup*", + ResourceType: "group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the tags associated with a specified resource group", + Privilege: "GetTags", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a new Export task for a DB snapshot", - Privilege: "StartExportTask", + Description: "Grants permission to add the specified resources to the specified group", + Privilege: "GroupResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "resource-groups:Tag", + "tag:TagResources", }, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop Activity Stream", - Privilege: "StopActivityStream", + AccessLevel: "List", + Description: "Grants permission to list the resources that are members of a specified resource group", + Privilege: "ListGroupResources", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "db", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "tag:GetResources", + }, + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the DB cluster", - Privilege: "StopDBCluster", + AccessLevel: "List", + Description: "Grants permission to list grouping statuses for a specified application group", + Privilege: "ListGroupingStatuses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the DB instance", - Privilege: "StopDBInstance", + AccessLevel: "List", + Description: "Grants permission to list all resource groups in your account", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop automated backup replication for a DB instance", - Privilege: "StopDBInstanceAutomatedBackupsReplication", + AccessLevel: "List", + Description: "Grants permission to list supported resource types", + Privilege: "ListResourceTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to switch a blue-green deployment from source instance or cluster to target", - Privilege: "SwitchoverBlueGreenDeployment", + AccessLevel: "List", + Description: "Grants permission to list all tag-sync tasks in your account", + Privilege: "ListTagSyncTasks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "rds:ModifyDBCluster", - "rds:ModifyDBInstance", - "rds:PromoteReadReplica", - "rds:PromoteReadReplicaDBCluster", - }, - ResourceType: "deployment*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to switchover a global cluster", - Privilege: "SwitchoverGlobalCluster", + Description: "Grants permission to put the service configuration associated with the specified resource group", + Privilege: "PutGroupConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "global-cluster*", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to switch over a read replica, making it the new primary database", - Privilege: "SwitchoverReadReplica", + Description: "Grants permission to add a resource-based policy for the specified group", + Privilege: "PutGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db*", + ResourceType: "group*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster:${DbClusterInstanceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:cluster-tag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:shard-group:${DbShardGroupResourceId}", - ConditionKeys: []string{}, - Resource: "shardgrp", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-auto-backup:${DbClusterAutomatedBackupId}", - ConditionKeys: []string{}, - Resource: "cluster-auto-backup", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:auto-backup:${DbInstanceAutomatedBackupId}", - ConditionKeys: []string{}, - Resource: "auto-backup", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-endpoint:${DbClusterEndpoint}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster-endpoint", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-pg:${ClusterParameterGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:cluster-pg-tag/${TagKey}", - }, - Resource: "cluster-pg", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster-snapshot:${ClusterSnapshotName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:cluster-snapshot-tag/${TagKey}", - }, - Resource: "cluster-snapshot", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:db:${DbInstanceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:DatabaseClass", - "rds:DatabaseEngine", - "rds:DatabaseName", - "rds:MultiAz", - "rds:Piops", - "rds:StorageEncrypted", - "rds:StorageSize", - "rds:Vpc", - "rds:db-tag/${TagKey}", - }, - Resource: "db", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:es:${SubscriptionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:es-tag/${TagKey}", - }, - Resource: "es", - }, - { - Arn: "arn:${Partition}:rds::${Account}:global-cluster:${GlobalCluster}", - ConditionKeys: []string{}, - Resource: "global-cluster", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:og:${OptionGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:og-tag/${TagKey}", - }, - Resource: "og", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:pg:${ParameterGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:pg-tag/${TagKey}", - }, - Resource: "pg", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:db-proxy:${DbProxyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "proxy", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:db-proxy-endpoint:${DbProxyEndpointId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "proxy-endpoint", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:ri:${ReservedDbInstanceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:ri-tag/${TagKey}", - }, - Resource: "ri", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:secgrp:${SecurityGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:secgrp-tag/${TagKey}", - }, - Resource: "secgrp", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:snapshot:${SnapshotName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:snapshot-tag/${TagKey}", - }, - Resource: "snapshot", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:subgrp:${SubnetGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "rds:subgrp-tag/${TagKey}", - }, - Resource: "subgrp", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:target-group:${TargetGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "target-group", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cev:${Engine}/${EngineVersion}/${CustomDbEngineVersionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cev", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:deployment:${BlueGreenDeploymentIdentifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "deployment", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:integration:${IntegrationIdentifier}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "integration", - }, - { - Arn: "arn:${Partition}:rds:${Region}:${Account}:snapshot-tenant-database:${SnapshotName}:${TenantResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "snapshot-tenant-database", - }, { - Arn: "arn:${Partition}:rds:${Region}:${Account}:tenant-database:${TenantResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to search for AWS resources matching the given query", + Privilege: "SearchResources", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "cloudformation:ListStackResources", + "tag:GetResources", + }, + ResourceType: "", + }, }, - Resource: "tenant-database", - }, - }, - ServiceName: "Amazon RDS", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys associated with the resource", - Type: "ArrayOfString", - }, - }, - Prefix: "rds-data", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to run a batch SQL statement over an array of data", - Privilege: "BatchExecuteStatement", + Description: "Grants permission to create a tag-sync task for an application group", + Privilege: "StartTagSyncTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "resource-groups:CreateGroup", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a SQL transaction", - Privilege: "BeginTransaction", + AccessLevel: "Tagging", + Description: "Grants permission to tag a specified resource group", + Privilege: "Tag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "group*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -219099,39 +264109,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to end a SQL transaction started with the BeginTransaction operation and commits the changes", - Privilege: "CommitTransaction", + Description: "Grants permission to remove the specified resources from the specified group", + Privilege: "UngroupResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "rds-data:BeginTransaction", + "resource-groups:Untag", + "tag:UntagResources", }, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to run one or more SQL statements. This operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation", - Privilege: "ExecuteSql", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags associated with a specified resource group", + Privilege: "Untag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "group*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -219141,144 +264143,105 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to run a SQL statement against a database", - Privilege: "ExecuteStatement", + Description: "Grants permission to update optional features in Resource Groups", + Privilege: "UpdateAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a specified resource group", + Privilege: "UpdateGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to perform a rollback of a transaction. Rolling back a transaction cancels its changes", - Privilege: "RollbackTransaction", + Description: "Grants permission to update the query associated with a specified resource group", + Privilege: "UpdateGroupQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "rds-data:BeginTransaction", - }, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + "cloudformation:DescribeStacks", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "group*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:rds:${Region}:${Account}:cluster:${DbClusterInstanceName}", + Arn: "arn:${Partition}:resource-groups:${Region}:${Account}:group/${GroupName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", - "aws:TagKeys", }, - Resource: "cluster", + Resource: "group", + }, + { + Arn: "arn:${Partition}:resource-groups:${Region}:${Account}:group/${GroupName}/tag-sync-task/${TaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "tagSyncTask", }, }, - ServiceName: "Amazon RDS Data API", + ServiceName: "AWS Resource Groups", }, ParliamentService{ Conditions: []ParliamentCondition{}, - Prefix: "rds-db", + Prefix: "rhelkb", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Allows IAM role or user to connect to RDS database", - Privilege: "connect", + AccessLevel: "Read", + Description: "Grants permission to access the Red Hat Knowledgebase portal", + Privilege: "GetRhelURL", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "db-user*", + ResourceType: "", }, }, }, }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:rds-db:${Region}:${Account}:dbuser:${DbiResourceId}/${DbUserName}", - ConditionKeys: []string{}, - Resource: "db-user", - }, - }, - ServiceName: "Amazon RDS IAM Authentication", + Resources: []ParliamentResource{}, + ServiceName: "Amazon RHEL Knowledgebase Portal", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by actions based on the allowed set of values for each of the tags", + Description: "Filters access based on the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag-value associated with the resource", + Description: "Filters access based on the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by actions based on the presence of mandatory tags in the request", + Description: "Filters access based on the tag keys that are passed in the request", Type: "ArrayOfString", }, - { - Condition: "redshift:AllowWrites", - Description: "Filters access by the allowWrites input parameter", - Type: "Bool", - }, - { - Condition: "redshift:ConsumerArn", - Description: "Filters access by the datashare consumer arn", - Type: "ARN", - }, - { - Condition: "redshift:ConsumerIdentifier", - Description: "Filters access by the datashare consumer", - Type: "String", - }, - { - Condition: "redshift:DbName", - Description: "Filters access by the database name", - Type: "String", - }, - { - Condition: "redshift:DbUser", - Description: "Filters access by the database user name", - Type: "String", - }, - { - Condition: "redshift:DurationSeconds", - Description: "Filters access by the number of seconds until a temporary credential set expires", - Type: "String", - }, - { - Condition: "redshift:InboundIntegrationArn", - Description: "Filters access by the ARN of an inbound zero-ETL Integration resource", - Type: "String", - }, }, - Prefix: "redshift", + Prefix: "robomaker", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to exchange a DC1 reserved node for a DC2 reserved node with no changes to the configuration", - Privilege: "AcceptReservedNodeExchange", + Description: "Delete one or more worlds in a batch operation", + Privilege: "BatchDeleteWorlds", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -219288,9 +264251,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a partner integration to a cluster", - Privilege: "AddPartner", + AccessLevel: "Read", + Description: "Describe multiple simulation jobs", + Privilege: "BatchDescribeSimulationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -219301,116 +264264,152 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate a consumer to a datashare", - Privilege: "AssociateDataShareConsumer", + Description: "Cancel a deployment job", + Privilege: "CancelDeploymentJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datashare*", + ResourceType: "deploymentJob*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Cancel a simulation job", + Privilege: "CancelSimulationJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "redshift:ConsumerArn", - "redshift:AllowWrites", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "simulationJob*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add an inbound (ingress) rule to an Amazon Redshift security group", - Privilege: "AuthorizeClusterSecurityGroupIngress", + Description: "Cancel a simulation job batch", + Privilege: "CancelSimulationJobBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", + ResourceType: "simulationJobBatch*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Cancel a world export job", + Privilege: "CancelWorldExportJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-ec2securitygroup*", + ResourceType: "worldExportJob*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to authorize the specified datashare consumer to consume a datashare", - Privilege: "AuthorizeDataShare", + AccessLevel: "Write", + Description: "Cancel a world generation job", + Privilege: "CancelWorldGenerationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datashare*", + ResourceType: "worldGenerationJob*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Create a deployment job", + Privilege: "CreateDeploymentJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "redshift:ConsumerIdentifier", - "redshift:AllowWrites", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to authorize endpoint related activities for redshift-managed vpc endpoint", - Privilege: "AuthorizeEndpointAccess", + AccessLevel: "Write", + Description: "Create a deployment fleet that represents a logical group of robots running the same robot application", + Privilege: "CreateFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to the specified AWS account to restore a snapshot", - Privilege: "AuthorizeSnapshotAccess", + AccessLevel: "Write", + Description: "Create a robot that can be registered to a fleet", + Privilege: "CreateRobot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot*", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete snapshots in a batch of size upto 100", - Privilege: "BatchDeleteClusterSnapshots", + Description: "Create a robot application", + Privilege: "CreateRobotApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify settings for a list of snapshots", - Privilege: "BatchModifyClusterSnapshots", + Description: "Create a snapshot of a robot application", + Privilege: "CreateRobotApplicationVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot*", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + }, + ResourceType: "robotApplication*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a query through the Amazon Redshift console", - Privilege: "CancelQuery", + Description: "Create a simulation application", + Privilege: "CreateSimulationApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -219418,42 +264417,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to see queries in the Amazon Redshift console", - Privilege: "CancelQuerySession", + Description: "Create a snapshot of a simulation application", + Privilege: "CreateSimulationApplicationVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetObject", + }, + ResourceType: "simulationApplication*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a resize operation", - Privilege: "CancelResize", + Description: "Create a simulation job", + Privilege: "CreateSimulationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy a cluster snapshot", - Privilege: "CopyClusterSnapshot", + Description: "Create a world export job", + Privilege: "CreateWorldExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "world*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -219462,30 +264468,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift authentication profile", - Privilege: "CreateAuthenticationProfile", + Description: "Create a world generation job", + Privilege: "CreateWorldGenerationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "worldTemplate*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a cluster", - Privilege: "CreateCluster", + Description: "Create a world template", + Privilege: "CreateWorldTemplate", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -219494,227 +264503,241 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift parameter group", - Privilege: "CreateClusterParameterGroup", + Description: "Delete a deployment fleet", + Privilege: "DeleteFleet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentFleet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift security group", - Privilege: "CreateClusterSecurityGroup", + Description: "Delete a robot", + Privilege: "DeleteRobot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", + ResourceType: "robot*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Delete a robot application", + Privilege: "DeleteRobotApplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "robotApplication*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a manual snapshot of the specified cluster", - Privilege: "CreateClusterSnapshot", + Description: "Delete a simulation application", + Privilege: "DeleteSimulationApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "simulationApplication*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Delete a world template", + Privilege: "DeleteWorldTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldTemplate*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift subnet group", - Privilege: "CreateClusterSubnetGroup", + Description: "Deregister a robot from a fleet", + Privilege: "DeregisterRobot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup*", + ResourceType: "deploymentFleet*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "robot*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to automatically create the specified Amazon Redshift user if it does not exist", - Privilege: "CreateClusterUser", + AccessLevel: "Read", + Description: "Describe a deployment job", + Privilege: "DescribeDeploymentJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dbuser*", + ResourceType: "deploymentJob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Describe a deployment fleet", + Privilege: "DescribeFleet", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "redshift:DbUser", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentFleet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a custom domain name for a cluster", - Privilege: "CreateCustomDomainAssociation", + AccessLevel: "Read", + Description: "Describe a robot", + Privilege: "DescribeRobot", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "acm:DescribeCertificate", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "robot*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a redshift-managed vpc endpoint", - Privilege: "CreateEndpointAccess", + AccessLevel: "Read", + Description: "Describe a robot application", + Privilege: "DescribeRobotApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "robotApplication*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift event notification subscription", - Privilege: "CreateEventSubscription", + AccessLevel: "Read", + Description: "Describe a simulation application", + Privilege: "DescribeSimulationApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventsubscription*", + ResourceType: "simulationApplication*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Describe a simulation job", + Privilege: "DescribeSimulationJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "simulationJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an HSM client certificate that a cluster uses to connect to an HSM", - Privilege: "CreateHsmClientCertificate", + AccessLevel: "Read", + Description: "Describe a simulation job batch", + Privilege: "DescribeSimulationJobBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmclientcertificate*", + ResourceType: "simulationJobBatch*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Describe a world", + Privilege: "DescribeWorld", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "world*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Describe a world export job", + Privilege: "DescribeWorldExportJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldExportJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an HSM configuration that contains information required by a cluster to store and use database encryption keys in a hardware security module (HSM)", - Privilege: "CreateHsmConfiguration", + AccessLevel: "Read", + Description: "Describe a world generation job", + Privilege: "DescribeWorldGenerationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmconfiguration*", + ResourceType: "worldGenerationJob*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Describe a world template", + Privilege: "DescribeWorldTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldTemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a qev2 idc application", - Privilege: "CreateQev2IdcApplication", + AccessLevel: "Read", + Description: "Get the body of a world template", + Privilege: "GetWorldTemplateBody", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:CreateApplication", - "sso:PutApplicationAccessScope", - "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "worldTemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a redshift idc application", - Privilege: "CreateRedshiftIdcApplication", + AccessLevel: "List", + Description: "List deployment jobs", + Privilege: "ListDeploymentJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:CreateApplication", - "sso:PutApplicationAccessScope", - "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create saved SQL queries through the Amazon Redshift console", - Privilege: "CreateSavedQuery", + AccessLevel: "List", + Description: "List fleets", + Privilege: "ListFleets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -219724,9 +264747,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift scheduled action", - Privilege: "CreateScheduledAction", + AccessLevel: "List", + Description: "List robot applications", + Privilege: "ListRobotApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -219736,168 +264759,155 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create a snapshot copy grant and encrypt copied snapshots in a destination AWS Region", - Privilege: "CreateSnapshotCopyGrant", + AccessLevel: "List", + Description: "List robots", + Privilege: "ListRobots", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotcopygrant*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List simulation applications", + Privilege: "ListSimulationApplications", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot schedule", - Privilege: "CreateSnapshotSchedule", + AccessLevel: "List", + Description: "List simulation job batches", + Privilege: "ListSimulationJobBatches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotschedule*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List simulation jobs", + Privilege: "ListSimulationJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a specified resource", - Privilege: "CreateTags", + AccessLevel: "List", + Description: "Lists supported availability zones", + Privilege: "ListSupportedAvailabilityZones", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventsubscription", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "List tags for a RoboMaker resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmclientcertificate", + ResourceType: "deploymentFleet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmconfiguration", + ResourceType: "deploymentJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "robot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "robotApplication", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-cidr", + ResourceType: "simulationApplication", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-ec2securitygroup", + ResourceType: "simulationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "simulationJobBatch", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotcopygrant", + ResourceType: "world", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotschedule", + ResourceType: "worldExportJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "worldGenerationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usagelimit", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldTemplate", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a usage limit", - Privilege: "CreateUsageLimit", + AccessLevel: "List", + Description: "List world export jobs", + Privilege: "ListWorldExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usagelimit*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove permission from the specified datashare consumer to consume a datashare", - Privilege: "DeauthorizeDataShare", + AccessLevel: "List", + Description: "List world generation jobs", + Privilege: "ListWorldGenerationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datashare*", - }, - { - ConditionKeys: []string{ - "redshift:ConsumerIdentifier", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift authentication profile", - Privilege: "DeleteAuthenticationProfile", + AccessLevel: "List", + Description: "List world templates", + Privilege: "ListWorldTemplates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -219907,294 +264917,206 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a previously provisioned cluster", - Privilege: "DeleteCluster", + AccessLevel: "List", + Description: "List worlds", + Privilege: "ListWorlds", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift parameter group", - Privilege: "DeleteClusterParameterGroup", + Description: "Register a robot to a fleet", + Privilege: "RegisterRobot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "deploymentFleet*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift security group", - Privilege: "DeleteClusterSecurityGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", + ResourceType: "robot*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a manual snapshot", - Privilege: "DeleteClusterSnapshot", + Description: "Restart a running simulation job", + Privilege: "RestartSimulationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "simulationJob*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a cluster subnet group", - Privilege: "DeleteClusterSubnetGroup", + Description: "Create a simulation job batch", + Privilege: "StartSimulationJobBatch", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subnetgroup*", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom domain name for a cluster", - Privilege: "DeleteCustomDomainAssociation", + Description: "Ensures the most recently deployed robot application is deployed to all robots in the fleet", + Privilege: "SyncDeploymentJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "deploymentFleet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a redshift-managed vpc endpoint", - Privilege: "DeleteEndpointAccess", + AccessLevel: "Tagging", + Description: "Add tags to a RoboMaker resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "deploymentFleet", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift event notification subscription", - Privilege: "DeleteEventSubscription", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventsubscription*", + ResourceType: "deploymentJob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an HSM client certificate", - Privilege: "DeleteHsmClientCertificate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmclientcertificate*", + ResourceType: "robot", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift HSM configuration", - Privilege: "DeleteHsmConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmconfiguration*", + ResourceType: "robotApplication", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a partner integration from a cluster", - Privilege: "DeletePartner", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "simulationApplication", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a qev2 idc application", - Privilege: "DeleteQev2IdcApplication", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteApplication", - }, - ResourceType: "qev2idcapplication*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "simulationJob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a redshift idc application", - Privilege: "DeleteRedshiftIdcApplication", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteApplication", - }, - ResourceType: "redshiftidcapplication*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "simulationJobBatch", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the resource policy for a specified resource", - Privilege: "DeleteResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "world", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete saved SQL queries through the Amazon Redshift console", - Privilege: "DeleteSavedQueries", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldExportJob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift scheduled action", - Privilege: "DeleteScheduledAction", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldGenerationJob", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a snapshot copy grant", - Privilege: "DeleteSnapshotCopyGrant", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotcopygrant*", + ResourceType: "worldTemplate", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a snapshot schedule", - Privilege: "DeleteSnapshotSchedule", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "snapshotschedule*", + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to delete a tag or tags from a resource", - Privilege: "DeleteTags", + Description: "Remove tags from a RoboMaker resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventsubscription", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hsmclientcertificate", + ResourceType: "deploymentFleet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hsmconfiguration", + ResourceType: "deploymentJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "robot", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "robotApplication", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-cidr", + ResourceType: "simulationApplication", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-ec2securitygroup", + ResourceType: "simulationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "simulationJobBatch", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotcopygrant", + ResourceType: "world", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotschedule", + ResourceType: "worldExportJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "worldGenerationJob", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usagelimit", + ResourceType: "worldTemplate", }, { ConditionKeys: []string{ @@ -220207,20 +265129,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a usage limit", - Privilege: "DeleteUsageLimit", + Description: "Update a robot application", + Privilege: "UpdateRobotApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usagelimit*", + ResourceType: "robotApplication*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe attributes attached to the specified AWS account", - Privilege: "DescribeAccountAttributes", + AccessLevel: "Write", + Description: "Report the deployment status for an individual robot", + Privilege: "UpdateRobotDeployment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220230,225 +265152,352 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe created Amazon Redshift authentication profiles", - Privilege: "DescribeAuthenticationProfiles", + AccessLevel: "Write", + Description: "Update a simulation application", + Privilege: "UpdateSimulationApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "simulationApplication*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe database revisions for a cluster", - Privilege: "DescribeClusterDbRevisions", + AccessLevel: "Write", + Description: "Update a world template", + Privilege: "UpdateWorldTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "worldTemplate*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe Amazon Redshift parameter groups, including parameter groups you created and the default parameter group", - Privilege: "DescribeClusterParameterGroups", + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:robot-application/${ApplicationName}/${CreatedOnEpoch}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "robotApplication", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:simulation-application/${ApplicationName}/${CreatedOnEpoch}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "simulationApplication", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:simulation-job/${SimulationJobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "simulationJob", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:simulation-job-batch/${SimulationJobBatchId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "simulationJobBatch", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:deployment-job/${DeploymentJobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deploymentJob", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:robot/${RobotName}/${CreatedOnEpoch}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "robot", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:deployment-fleet/${FleetName}/${CreatedOnEpoch}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deploymentFleet", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world-generation-job/${WorldGenerationJobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "worldGenerationJob", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world-export-job/${WorldExportJobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "worldExportJob", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world-template/${WorldTemplateJobId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "worldTemplate", + }, + { + Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world/${WorldId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "world", + }, + }, + ServiceName: "AWS RoboMaker", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "rolesanywhere", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a profile", + Privilege: "CreateProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a trust anchor", + Privilege: "CreateTrustAnchor", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe parameters contained within an Amazon Redshift parameter group", - Privilege: "DescribeClusterParameters", + AccessLevel: "Write", + Description: "Grants permission to delete a mapping rule from a profile", + Privilege: "DeleteAttributeMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "profile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe Amazon Redshift security groups", - Privilege: "DescribeClusterSecurityGroups", + AccessLevel: "Write", + Description: "Grants permission to delete a certificate revocation list (crl)", + Privilege: "DeleteCrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crl*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe one or more snapshot objects, which contain metadata about your cluster snapshots", - Privilege: "DescribeClusterSnapshots", + AccessLevel: "Write", + Description: "Grants permission to delete a profile", + Privilege: "DeleteProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "profile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe one or more cluster subnet group objects, which contain metadata about your cluster subnet groups", - Privilege: "DescribeClusterSubnetGroups", + AccessLevel: "Write", + Description: "Grants permission to delete a trust anchor", + Privilege: "DeleteTrustAnchor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe available maintenance tracks", - Privilege: "DescribeClusterTracks", + AccessLevel: "Write", + Description: "Grants permission to disable a certificate revocation list (crl)", + Privilege: "DisableCrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crl*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe available Amazon Redshift cluster versions", - Privilege: "DescribeClusterVersions", + AccessLevel: "Write", + Description: "Grants permission to disable a profile", + Privilege: "DisableProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "profile*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe properties of provisioned clusters", - Privilege: "DescribeClusters", + AccessLevel: "Write", + Description: "Grants permission to disable a trust anchor", + Privilege: "DisableTrustAnchor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe custom domain names for a cluster", - Privilege: "DescribeCustomDomainAssociations", + AccessLevel: "Write", + Description: "Grants permission to enable a certificate revocation list (crl)", + Privilege: "EnableCrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crl*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe datashares created and consumed by your clusters", - Privilege: "DescribeDataShares", + AccessLevel: "Write", + Description: "Grants permission to enable a profile", + Privilege: "EnableProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "profile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe only datashares consumed by your clusters", - Privilege: "DescribeDataSharesForConsumer", + AccessLevel: "Write", + Description: "Grants permission to enable a trust anchor", + Privilege: "EnableTrustAnchor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe only datashares created by your clusters", - Privilege: "DescribeDataSharesForProducer", + Description: "Grants permission to get a certificate revocation list (crl)", + Privilege: "GetCrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crl*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe parameter settings for a parameter group family", - Privilege: "DescribeDefaultClusterParameters", + Description: "Grants permission to get a profile", + Privilege: "GetProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "profile*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe redshift-managed vpc endpoints", - Privilege: "DescribeEndpointAccess", + Description: "Grants permission to get a subject", + Privilege: "GetSubject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "subject*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to authorize describe activity for redshift-managed vpc endpoint", - Privilege: "DescribeEndpointAuthorization", + AccessLevel: "Read", + Description: "Grants permission to get a trust anchor", + Privilege: "GetTrustAnchor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe event categories for all event source types, or for a specified source type", - Privilege: "DescribeEventCategories", + AccessLevel: "Write", + Description: "Grants permission to import a certificate revocation list (crl)", + Privilege: "ImportCrl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe Amazon Redshift event notification subscriptions for the specified AWS account", - Privilege: "DescribeEventSubscriptions", + AccessLevel: "List", + Description: "Grants permission to list certificate revocation lists (crls)", + Privilege: "ListCrls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220459,8 +265508,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to describe events related to clusters, security groups, snapshots, and parameter groups for the past 14 days", - Privilege: "DescribeEvents", + Description: "Grants permission to list profiles", + Privilege: "ListProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220470,9 +265519,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe HSM client certificates", - Privilege: "DescribeHsmClientCertificates", + AccessLevel: "List", + Description: "Grants permission to list subjects", + Privilege: "ListSubjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220482,9 +265531,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe Amazon Redshift HSM configurations", - Privilege: "DescribeHsmConfigurations", + AccessLevel: "List", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220495,205 +265544,304 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the inbound integrations", - Privilege: "DescribeInboundIntegrations", + Description: "Grants permission to list trust anchors", + Privilege: "ListTrustAnchors", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "redshift:InboundIntegrationArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe whether information, such as queries and connection attempts, is being logged for a cluster", - Privilege: "DescribeLoggingStatus", + AccessLevel: "Write", + Description: "Grants permission to put a mapping rule into a profile", + Privilege: "PutAttributeMapping", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "profile*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe properties of possible node configurations such as node type, number of nodes, and disk usage for the specified action type", - Privilege: "DescribeNodeConfigurationOptions", + AccessLevel: "Write", + Description: "Grants permission to attach notification settings to a trust anchor", + Privilege: "PutNotificationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe orderable cluster options", - Privilege: "DescribeOrderableClusterOptions", + AccessLevel: "Write", + Description: "Grants permission to reset custom notification settings to IAM Roles Anywhere defined default state", + Privilege: "ResetNotificationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the partner integrations defined for a cluster", - Privilege: "DescribePartners", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "crl", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subject", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trust-anchor", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe qev2 idc applications", - Privilege: "DescribeQev2IdcApplications", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "crl", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "subject", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trust-anchor", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a query through the Amazon Redshift console", - Privilege: "DescribeQuery", + AccessLevel: "Write", + Description: "Grants permission to update a certificate revocation list (crl)", + Privilege: "UpdateCrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "crl*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to describe redshift idc applications", - Privilege: "DescribeRedshiftIdcApplications", + AccessLevel: "Write", + Description: "Grants permission to update a profile", + Privilege: "UpdateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "sso:GetApplicationGrant", - "sso:ListApplicationAccessScopes", + "iam:PassRole", }, - ResourceType: "", + ResourceType: "profile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe exchange status details and associated metadata for a reserved-node exchange. Statuses include such values as in progress and requested", - Privilege: "DescribeReservedNodeExchangeStatus", + AccessLevel: "Write", + Description: "Grants permission to update a trust anchor", + Privilege: "UpdateTrustAnchor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trust-anchor*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:trust-anchor/${TrustAnchorId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "trust-anchor", + }, { - AccessLevel: "Read", - Description: "Grants permission to describe available reserved node offerings by Amazon Redshift", - Privilege: "DescribeReservedNodeOfferings", + Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:profile/${ProfileId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "profile", + }, + { + Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:subject/${SubjectId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "subject", + }, + { + Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:crl/${CrlId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "crl", + }, + }, + ServiceName: "AWS Identity and Access Management Roles Anywhere", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "route53:ChangeResourceRecordSetsActions", + Description: "Filters access by the change actions, CREATE, UPSERT, or DELETE, in a ChangeResourceRecordSets request", + Type: "ArrayOfString", + }, + { + Condition: "route53:ChangeResourceRecordSetsNormalizedRecordNames", + Description: "Filters access by the normalized DNS record names in a ChangeResourceRecordSets request", + Type: "ArrayOfString", + }, + { + Condition: "route53:ChangeResourceRecordSetsRecordTypes", + Description: "Filters access by the DNS record types in a ChangeResourceRecordSets request", + Type: "ArrayOfString", + }, + { + Condition: "route53:VPCs", + Description: "Filters access by VPCs in request", + Type: "ArrayOfString", + }, + }, + Prefix: "route53", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to activate a key-signing key so that it can be used for signing by DNSSEC", + Privilege: "ActivateKeySigningKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the reserved nodes", - Privilege: "DescribeReservedNodes", + AccessLevel: "Write", + Description: "Grants permission to associate an additional Amazon VPC with a private hosted zone", + Privilege: "AssociateVPCWithHostedZone", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "hostedzone", + }, + { + ConditionKeys: []string{ + "route53:VPCs", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the last resize operation for a cluster", - Privilege: "DescribeResize", + AccessLevel: "Write", + Description: "Grants permission to create or delete CIDR blocks within a CIDR collection", + Privilege: "ChangeCidrCollection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "cidrcollection*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe saved queries through the Amazon Redshift console", - Privilege: "DescribeSavedQueries", + AccessLevel: "Write", + Description: "Grants permission to create, update, or delete a record, which contains authoritative DNS information for a specified domain or subdomain name", + Privilege: "ChangeResourceRecordSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe created Amazon Redshift scheduled actions", - Privilege: "DescribeScheduledActions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "route53:ChangeResourceRecordSetsNormalizedRecordNames", + "route53:ChangeResourceRecordSetsRecordTypes", + "route53:ChangeResourceRecordSetsActions", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe snapshot copy grants owned by the specified AWS account in the destination AWS Region", - Privilege: "DescribeSnapshotCopyGrants", + AccessLevel: "Tagging", + Description: "Grants permission to add, edit, or delete tags for a health check or a hosted zone", + Privilege: "ChangeTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "healthcheck*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe snapshot schedules", - Privilege: "DescribeSnapshotSchedules", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotschedule*", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe account level backups storage size and provisional storage", - Privilege: "DescribeStorage", + AccessLevel: "Write", + Description: "Grants permission to create a new CIDR collection", + Privilege: "CreateCidrCollection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220703,9 +265851,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a table through the Amazon Redshift console", - Privilege: "DescribeTable", + AccessLevel: "Write", + Description: "Grants permission to create a new health check, which monitors the health and performance of your web applications, web servers, and other resources", + Privilege: "CreateHealthCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220715,229 +265863,238 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe status of one or more table restore requests made using the RestoreTableFromClusterSnapshot API action", - Privilege: "DescribeTableRestoreStatus", + AccessLevel: "Write", + Description: "Grants permission to create a public hosted zone, which you use to specify how the Domain Name System (DNS) routes traffic on the Internet for a domain, such as example.com, and its subdomains", + Privilege: "CreateHostedZone", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "route53:VPCs", + }, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe tags", - Privilege: "DescribeTags", + AccessLevel: "Write", + Description: "Grants permission to create a new key-signing key associated with a hosted zone", + Privilege: "CreateKeySigningKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "eventsubscription", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hsmclientcertificate", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hsmconfiguration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "parametergroup", + ResourceType: "hostedzone*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a configuration for DNS query logging", + Privilege: "CreateQueryLoggingConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup", + ResourceType: "hostedzone*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a delegation set (a group of four name servers) that can be reused by multiple hosted zones", + Privilege: "CreateReusableDelegationSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-cidr", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a traffic policy, which you use to create multiple DNS records for one domain name (such as example.com) or one subdomain name (such as www.example.com)", + Privilege: "CreateTrafficPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroupingress-ec2securitygroup", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create records in a specified hosted zone based on the settings in a specified traffic policy version", + Privilege: "CreateTrafficPolicyInstance", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "hostedzone*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotcopygrant", + ResourceType: "trafficpolicy*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new version of an existing traffic policy", + Privilege: "CreateTrafficPolicyVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshotschedule", + ResourceType: "trafficpolicy*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to authorize the AWS account that created a specified VPC to submit an AssociateVPCWithHostedZone request, which associates the VPC with a specified hosted zone that was created by a different account", + Privilege: "CreateVPCAssociationAuthorization", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup", + ResourceType: "hostedzone*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "route53:VPCs", + }, DependentActions: []string{}, - ResourceType: "usagelimit", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe usage limits", - Privilege: "DescribeUsageLimits", + AccessLevel: "Write", + Description: "Grants permission to deactivate a key-signing key so that it will not be used for signing by DNSSEC", + Privilege: "DeactivateKeySigningKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usagelimit*", + ResourceType: "hostedzone*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable logging information, such as queries and connection attempts, for a cluster", - Privilege: "DisableLogging", + Description: "Grants permission to delete a CIDR collection", + Privilege: "DeleteCidrCollection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "cidrcollection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable the automatic copy of snapshots for a cluster", - Privilege: "DisableSnapshotCopy", + Description: "Grants permission to delete a health check", + Privilege: "DeleteHealthCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "healthcheck*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a consumer from a datashare", - Privilege: "DisassociateDataShareConsumer", + Description: "Grants permission to delete a hosted zone", + Privilege: "DeleteHostedZone", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datashare*", - }, - { - ConditionKeys: []string{ - "redshift:ConsumerArn", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable logging information, such as queries and connection attempts, for a cluster", - Privilege: "EnableLogging", + Description: "Grants permission to delete a key-signing key", + Privilege: "DeleteKeySigningKey", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "hostedzone*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable the automatic copy of snapshots for a cluster", - Privilege: "EnableSnapshotCopy", + Description: "Grants permission to delete a configuration for DNS query logging", + Privilege: "DeleteQueryLoggingConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "queryloggingconfig*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to execute a query through the Amazon Redshift console", - Privilege: "ExecuteQuery", + Description: "Grants permission to delete a reusable delegation set", + Privilege: "DeleteReusableDelegationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "delegationset*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to failover the primary compute of an Multi-AZ cluster to another AZ", - Privilege: "FailoverPrimaryCompute", + Description: "Grants permission to delete a traffic policy", + Privilege: "DeleteTrafficPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "trafficpolicy*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch query results through the Amazon Redshift console", - Privilege: "FetchResults", + AccessLevel: "Write", + Description: "Grants permission to delete a traffic policy instance and all the records that Route 53 created when you created the instance", + Privilege: "DeleteTrafficPolicyInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trafficpolicyinstance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to get temporary credentials to access an Amazon Redshift database by the specified AWS account", - Privilege: "GetClusterCredentials", + Description: "Grants permission to remove authorization for associating an Amazon Virtual Private Cloud with a Route 53 private hosted zone", + Privilege: "DeleteVPCAssociationAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dbuser*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dbgroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dbname", + ResourceType: "hostedzone*", }, { ConditionKeys: []string{ - "redshift:DbName", - "redshift:DbUser", - "redshift:DurationSeconds", + "route53:VPCs", }, DependentActions: []string{}, ResourceType: "", @@ -220946,18 +266103,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to get enhanced temporary credentials to access an Amazon Redshift database by the specified AWS account", - Privilege: "GetClusterCredentialsWithIAM", + Description: "Grants permission to disable DNSSEC signing in a specific hosted zone", + Privilege: "DisableHostedZoneDNSSEC", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dbname", + ResourceType: "hostedzone*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an Amazon Virtual Private Cloud from a Route 53 private hosted zone", + Privilege: "DisassociateVPCFromHostedZone", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "hostedzone", }, { ConditionKeys: []string{ - "redshift:DbName", - "redshift:DurationSeconds", + "route53:VPCs", }, DependentActions: []string{}, ResourceType: "", @@ -220965,21 +266135,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the configuration options for the reserved-node exchange", - Privilege: "GetReservedNodeExchangeConfigurationOptions", + AccessLevel: "Write", + Description: "Grants permission to enable DNSSEC signing in a specific hosted zone", + Privilege: "EnableHostedZoneDNSSEC", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get an array of DC2 ReservedNodeOfferings that matches the payment type, term, and usage price of the given DC1 reserved node", - Privilege: "GetReservedNodeExchangeOfferings", + Description: "Grants permission to get the specified limit for the current account, for example, the maximum number of health checks that you can create using the account", + Privilege: "GetAccountLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -220989,45 +266159,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the resource policy for a specified resource", - Privilege: "GetResourcePolicy", + AccessLevel: "List", + Description: "Grants permission to get the current status of a request to create, update, or delete one or more records", + Privilege: "GetChange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "change*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to join the specified Amazon Redshift group", - Privilege: "JoinGroup", + AccessLevel: "List", + Description: "Grants permission to get a list of the IP ranges that are used by Route 53 health checkers to check the health of your resources", + Privilege: "GetCheckerIpRanges", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dbgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list databases through the Amazon Redshift console", - Privilege: "ListDatabases", + AccessLevel: "Read", + Description: "Grants permission to get information about DNSSEC for a specific hosted zone, including the key-signing keys in the hosted zone", + Privilege: "GetDNSSEC", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list Advisor recommendations", - Privilege: "ListRecommendations", + Description: "Grants permission to get information about whether a specified geographic location is supported for Route 53 geolocation records", + Privilege: "GetGeoLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221037,21 +266207,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list saved queries through the Amazon Redshift console", - Privilege: "ListSavedQueries", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified health check", + Privilege: "GetHealthCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "healthcheck*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list schemas through the Amazon Redshift console", - Privilege: "ListSchemas", + Description: "Grants permission to get the number of health checks that are associated with the current AWS account", + Privilege: "GetHealthCheckCount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221062,156 +266232,152 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list tables through the Amazon Redshift console", - Privilege: "ListTables", + Description: "Grants permission to get the reason that a specified health check failed most recently", + Privilege: "GetHealthCheckLastFailureReason", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "healthcheck*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the AQUA configuration of a cluster", - Privilege: "ModifyAquaConfiguration", + AccessLevel: "List", + Description: "Grants permission to get the status of a specified health check", + Privilege: "GetHealthCheckStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "healthcheck*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing Amazon Redshift authentication profile", - Privilege: "ModifyAuthenticationProfile", + AccessLevel: "List", + Description: "Grants permission to get information about a specified hosted zone including the four name servers that Route 53 assigned to the hosted zone", + Privilege: "GetHostedZone", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the settings of a cluster", - Privilege: "ModifyCluster", + AccessLevel: "List", + Description: "Grants permission to get the number of hosted zones that are associated with the current AWS account", + Privilege: "GetHostedZoneCount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "acm:DescribeCertificate", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the database revision of a cluster", - Privilege: "ModifyClusterDbRevision", + AccessLevel: "Read", + Description: "Grants permission to get the specified limit for a specified hosted zone", + Privilege: "GetHostedZoneLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to modify the list of AWS Identity and Access Management (IAM) roles that can be used by a cluster to access other AWS services", - Privilege: "ModifyClusterIamRoles", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified configuration for DNS query logging", + Privilege: "GetQueryLoggingConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "queryloggingconfig*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the maintenance settings of a cluster", - Privilege: "ModifyClusterMaintenance", + AccessLevel: "List", + Description: "Grants permission to get information about a specified reusable delegation set, including the four name servers that are assigned to the delegation set", + Privilege: "GetReusableDelegationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "delegationset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the parameters of a parameter group", - Privilege: "ModifyClusterParameterGroup", + AccessLevel: "Read", + Description: "Grants permission to get the maximum number of hosted zones that you can associate with the specified reusable delegation set", + Privilege: "GetReusableDelegationSetLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "delegationset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the settings of a snapshot", - Privilege: "ModifyClusterSnapshot", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified traffic policy version", + Privilege: "GetTrafficPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "trafficpolicy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a snapshot schedule for a cluster", - Privilege: "ModifyClusterSnapshotSchedule", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified traffic policy instance", + Privilege: "GetTrafficPolicyInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "trafficpolicyinstance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a cluster subnet group to include the specified list of VPC subnets", - Privilege: "ModifyClusterSubnetGroup", + AccessLevel: "Read", + Description: "Grants permission to get the number of traffic policy instances that are associated with the current AWS account", + Privilege: "GetTrafficPolicyInstanceCount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subnetgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a custom domain name for a cluster", - Privilege: "ModifyCustomDomainAssociation", + AccessLevel: "List", + Description: "Grants permission to get a list of the CIDR blocks within a specified CIDR collection", + Privilege: "ListCidrBlocks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "acm:DescribeCertificate", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cidrcollection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a redshift-managed vpc endpoint", - Privilege: "ModifyEndpointAccess", + AccessLevel: "List", + Description: "Grants permission to get a list of the CIDR collections that are associated with the current AWS account", + Privilege: "ListCidrCollections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221221,55 +266387,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing Amazon Redshift event notification subscription", - Privilege: "ModifyEventSubscription", + AccessLevel: "List", + Description: "Grants permission to get a list of the CIDR locations that belong to a specified CIDR collection", + Privilege: "ListCidrLocations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "eventsubscription*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify a qev2 idc application", - Privilege: "ModifyQev2IdcApplication", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:UpdateApplication", - }, - ResourceType: "qev2idcapplication*", + ResourceType: "cidrcollection*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a redshift idc application", - Privilege: "ModifyRedshiftIdcApplication", + AccessLevel: "Read", + Description: "Grants permission to get a list of geographic locations that Route 53 supports for geolocation", + Privilege: "ListGeoLocations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DeleteApplicationAccessScope", - "sso:DeleteApplicationGrant", - "sso:GetApplicationGrant", - "sso:ListApplicationAccessScopes", - "sso:PutApplicationAccessScope", - "sso:PutApplicationGrant", - "sso:UpdateApplication", - }, - ResourceType: "redshiftidcapplication*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing saved query through the Amazon Redshift console", - Privilege: "ModifySavedQuery", + AccessLevel: "Read", + Description: "Grants permission to get a list of the health checks that are associated with the current AWS account", + Privilege: "ListHealthChecks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221279,9 +266423,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an existing Amazon Redshift scheduled action", - Privilege: "ModifyScheduledAction", + AccessLevel: "List", + Description: "Grants permission to get a list of the public and private hosted zones that are associated with the current AWS account", + Privilege: "ListHostedZones", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221291,57 +266435,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify the number of days to retain snapshots in the destination AWS Region after they are copied from the source AWS Region", - Privilege: "ModifySnapshotCopyRetentionPeriod", + AccessLevel: "List", + Description: "Grants permission to get a list of your hosted zones in lexicographic order. Hosted zones are sorted by name with the labels reversed, for example, com.example.www", + Privilege: "ListHostedZonesByName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a snapshot schedule", - Privilege: "ModifySnapshotSchedule", + AccessLevel: "List", + Description: "Grants permission to get a list of all the private hosted zones that a specified VPC is associated with", + Privilege: "ListHostedZonesByVPC", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshotschedule*", + ConditionKeys: []string{ + "route53:VPCs", + }, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify a usage limit", - Privilege: "ModifyUsageLimit", + AccessLevel: "List", + Description: "Grants permission to list the configurations for DNS query logging that are associated with the current AWS account or the configuration that is associated with a specified hosted zone", + Privilege: "ListQueryLoggingConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "usagelimit*", + ResourceType: "hostedzone", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to pause a cluster", - Privilege: "PauseCluster", + AccessLevel: "List", + Description: "Grants permission to list the records in a specified hosted zone", + Privilege: "ListResourceRecordSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to purchase a reserved node", - Privilege: "PurchaseReservedNodeOffering", + AccessLevel: "Read", + Description: "Grants permission to list the reusable delegation sets that are associated with the current AWS account.", + Privilege: "ListReusableDelegationSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221351,361 +266499,327 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the resource policy for a specified resource", - Privilege: "PutResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to list tags for one health check or hosted zone", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "healthcheck", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to reboot a cluster", - Privilege: "RebootCluster", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "hostedzone", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to decline a datashare shared from another account", - Privilege: "RejectDataShare", + AccessLevel: "Read", + Description: "Grants permission to list tags for up to 10 health checks or hosted zones", + Privilege: "ListTagsForResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "datashare*", + ResourceType: "healthcheck", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set one or more parameters of a parameter group to their default values and set the source values of the parameters to \"engine-default\"", - Privilege: "ResetClusterParameterGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parametergroup*", + ResourceType: "hostedzone", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the size of a cluster", - Privilege: "ResizeCluster", + AccessLevel: "List", + Description: "Grants permission to get information about the latest version for every traffic policy that is associated with the current AWS account. Policies are listed in the order in which they were created", + Privilege: "ListTrafficPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a cluster from a snapshot", - Privilege: "RestoreFromClusterSnapshot", + AccessLevel: "Read", + Description: "Grants permission to get information about the traffic policy instances that you created by using the current AWS account", + Privilege: "ListTrafficPolicyInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a table from a table in an Amazon Redshift cluster snapshot", - Privilege: "RestoreTableFromClusterSnapshot", + AccessLevel: "List", + Description: "Grants permission to get information about the traffic policy instances that you created in a specified hosted zone", + Privilege: "ListTrafficPolicyInstancesByHostedZone", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to resume a cluster", - Privilege: "ResumeCluster", + AccessLevel: "List", + Description: "Grants permission to get information about the traffic policy instances that you created using a specified traffic policy version", + Privilege: "ListTrafficPolicyInstancesByPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "trafficpolicy*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to revoke an ingress rule in an Amazon Redshift security group for a previously authorized IP range or Amazon EC2 security group", - Privilege: "RevokeClusterSecurityGroupIngress", + AccessLevel: "List", + Description: "Grants permission to get information about all the versions for a specified traffic policy", + Privilege: "ListTrafficPolicyVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "securitygroup*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "securitygroupingress-ec2securitygroup*", + ResourceType: "trafficpolicy*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to revoke access for endpoint related activities for redshift-managed vpc endpoint", - Privilege: "RevokeEndpointAccess", + AccessLevel: "List", + Description: "Grants permission to get a list of the VPCs that were created by other accounts and that can be associated with a specified hosted zone", + Privilege: "ListVPCAssociationAuthorizations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to revoke access from the specified AWS account to restore a snapshot", - Privilege: "RevokeSnapshotAccess", + AccessLevel: "Read", + Description: "Grants permission to get the value that Route 53 returns in response to a DNS query for a specified record name and type", + Privilege: "TestDNSAnswer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to rotate an encryption key for a cluster", - Privilege: "RotateEncryptionKey", + Description: "Grants permission to update an existing health check", + Privilege: "UpdateHealthCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "healthcheck*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of a partner integration", - Privilege: "UpdatePartnerStatus", + Description: "Grants permission to update the comment for a specified hosted zone", + Privilege: "UpdateHostedZoneComment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hostedzone*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view query results through the Amazon Redshift console", - Privilege: "ViewQueriesFromConsole", + AccessLevel: "Write", + Description: "Grants permission to update the comment for a specified traffic policy version", + Privilege: "UpdateTrafficPolicyComment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trafficpolicy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to terminate running queries and loads through the Amazon Redshift console", - Privilege: "ViewQueriesInConsole", + AccessLevel: "Write", + Description: "Grants permission to update the records in a specified hosted zone that were created based on the settings in a specified traffic policy version", + Privilege: "UpdateTrafficPolicyInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "trafficpolicyinstance*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:cluster:${ClusterName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:datashare:${ProducerClusterNamespace}/${DataShareName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "datashare", - }, - { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:dbgroup:${ClusterName}/${DbGroup}", + Arn: "arn:${Partition}:route53:::cidrcollection/${Id}", ConditionKeys: []string{}, - Resource: "dbgroup", + Resource: "cidrcollection", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:dbname:${ClusterName}/${DbName}", + Arn: "arn:${Partition}:route53:::change/${Id}", ConditionKeys: []string{}, - Resource: "dbname", + Resource: "change", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:dbuser:${ClusterName}/${DbUser}", + Arn: "arn:${Partition}:route53:::delegationset/${Id}", ConditionKeys: []string{}, - Resource: "dbuser", - }, - { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:eventsubscription:${EventSubscriptionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "eventsubscription", - }, - { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:hsmclientcertificate:${HSMClientCertificateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "hsmclientcertificate", + Resource: "delegationset", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:hsmconfiguration:${HSMConfigurationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "hsmconfiguration", + Arn: "arn:${Partition}:route53:::healthcheck/${Id}", + ConditionKeys: []string{}, + Resource: "healthcheck", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:namespace:${ClusterNamespace}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "namespace", + Arn: "arn:${Partition}:route53:::hostedzone/${Id}", + ConditionKeys: []string{}, + Resource: "hostedzone", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:parametergroup:${ParameterGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "parametergroup", + Arn: "arn:${Partition}:route53:::trafficpolicy/${Id}", + ConditionKeys: []string{}, + Resource: "trafficpolicy", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:securitygroup:${SecurityGroupName}/ec2securitygroup/${Owner}/${Ec2SecurityGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "securitygroup", + Arn: "arn:${Partition}:route53:::trafficpolicyinstance/${Id}", + ConditionKeys: []string{}, + Resource: "trafficpolicyinstance", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:securitygroupingress:${SecurityGroupName}/cidrip/${IpRange}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "securitygroupingress-cidr", + Arn: "arn:${Partition}:route53:::queryloggingconfig/${Id}", + ConditionKeys: []string{}, + Resource: "queryloggingconfig", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:securitygroupingress:${SecurityGroupName}/ec2securitygroup/${Owner}/${Ece2SecuritygroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "securitygroupingress-ec2securitygroup", + Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc/${VpcId}", + ConditionKeys: []string{}, + Resource: "vpc", }, + }, + ServiceName: "Amazon Route 53", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:snapshot:${ClusterName}/${SnapshotName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "snapshot", + Condition: "route53-recovery-cluster:AllowSafetyRulesOverrides", + Description: "Override safety rules to allow routing control state updates", + Type: "Bool", }, + }, + Prefix: "route53-recovery-cluster", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:snapshotcopygrant:${SnapshotCopyGrantName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get a routing control state", + Privilege: "GetRoutingControlState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routingcontrol*", + }, }, - Resource: "snapshotcopygrant", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:snapshotschedule:${ParameterGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to list routing controls", + Privilege: "ListRoutingControls", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "snapshotschedule", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:subnetgroup:${SubnetGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a routing control state", + Privilege: "UpdateRoutingControlState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routingcontrol*", + }, + { + ConditionKeys: []string{ + "route53-recovery-cluster:AllowSafetyRulesOverrides", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "subnetgroup", }, { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:usagelimit:${UsageLimitId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to update a batch of routing control states", + Privilege: "UpdateRoutingControlStates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routingcontrol*", + }, + { + ConditionKeys: []string{ + "route53-recovery-cluster:AllowSafetyRulesOverrides", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "usagelimit", - }, - { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:redshiftidcapplication:${RedshiftIdcApplicationId}", - ConditionKeys: []string{}, - Resource: "redshiftidcapplication", }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:qev2idcapplication:${Qev2IdcApplicationId}", + Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}/routingcontrol/${RoutingControlId}", ConditionKeys: []string{}, - Resource: "qev2idcapplication", + Resource: "routingcontrol", }, }, - ServiceName: "Amazon Redshift", + ServiceName: "Amazon Route 53 Recovery Cluster", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", Type: "String", }, { - Condition: "redshift-data:statement-owner-iam-userid", - Description: "Filters access by statement owner iam userid", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, }, - Prefix: "redshift-data", + Prefix: "route53-recovery-control-config", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to execute multiple queries under a single connection", - Privilege: "BatchExecuteStatement", + Description: "Grants permission to create a cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -221713,20 +266827,29 @@ func getParliamentIamPermissions() ParliamentPermissions { ResourceType: "cluster*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to cancel a running query", - Privilege: "CancelStatement", + Description: "Grants permission to create a control panel", + Privilege: "CreateControlPanel", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "controlpanel*", + }, { ConditionKeys: []string{ - "redshift-data:statement-owner-iam-userid", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -221734,13 +266857,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve detailed information about a statement execution", - Privilege: "DescribeStatement", + AccessLevel: "Write", + Description: "Grants permission to create a routing control", + Privilege: "CreateRoutingControl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "routingcontrol*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a safety rule", + Privilege: "CreateSafetyRule", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "safetyrule*", + }, { ConditionKeys: []string{ - "redshift-data:statement-owner-iam-userid", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -221748,206 +266889,245 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata about a particular table", - Privilege: "DescribeTable", + AccessLevel: "Write", + Description: "Grants permission to delete a cluster", + Privilege: "DeleteCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a control panel", + Privilege: "DeleteControlPanel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "controlpanel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to execute a query", - Privilege: "ExecuteStatement", + Description: "Grants permission to delete the RAM access control policy for a cluster", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a routing control", + Privilege: "DeleteRoutingControl", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "routingcontrol*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to fetch the result of a query", - Privilege: "GetStatementResult", + AccessLevel: "Write", + Description: "Grants permission to delete a safety rule", + Privilege: "DeleteSafetyRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "redshift-data:statement-owner-iam-userid", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "safetyrule*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list databases for a given cluster", - Privilege: "ListDatabases", + Description: "Grants permission to describe a cluster", + Privilege: "DescribeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a control panel", + Privilege: "DescribeControlPanel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "controlpanel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list schemas for a given cluster", - Privilege: "ListSchemas", + Description: "Grants permission to describe a routing control", + Privilege: "DescribeRoutingControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "routingcontrol*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a routing control", + Privilege: "DescribeRoutingControlByName", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "routingcontrol*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list queries for a given principal", - Privilege: "ListStatements", + AccessLevel: "Read", + Description: "Grants permission to describe a safety rule", + Privilege: "DescribeSafetyRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "redshift-data:statement-owner-iam-userid", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "safetyrule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tables for a given cluster", - Privilege: "ListTables", + AccessLevel: "Read", + Description: "Grants permission to get the resource policy of a cluster", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list associated Route 53 health checks", + Privilege: "ListAssociatedRoute53HealthChecks", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:redshift:${Region}:${Account}:cluster:${ClusterName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to list clusters", + Privilege: "ListClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "cluster", }, { - Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:workgroup/${WorkgroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to list control panels", + Privilege: "ListControlPanels", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "workgroup", - }, - }, - ServiceName: "Amazon Redshift Data API", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "redshift-serverless:endpointAccessId", - Description: "Filters access by the endpoint access identifier", - Type: "String", - }, - { - Condition: "redshift-serverless:namespaceId", - Description: "Filters access by the namespace identifier", - Type: "String", }, { - Condition: "redshift-serverless:recoveryPointId", - Description: "Filters access by the recovery point identifier", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to list routing controls", + Privilege: "ListRoutingControls", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "redshift-serverless:snapshotId", - Description: "Filters access by the snapshot identifier", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to list safety rules", + Privilege: "ListSafetyRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "controlpanel*", + }, + }, }, { - Condition: "redshift-serverless:tableRestoreRequestId", - Description: "Filters access by the table restore request identifier", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "redshift-serverless:workgroupId", - Description: "Filters access by the workgroup identifier", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to define the RAM access control policy for a cluster", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster*", + }, + }, }, - }, - Prefix: "redshift-serverless", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to convert a recovery point to a snapshot", - Privilege: "ConvertRecoveryPointToSnapshot", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recoveryPoint*", + ResourceType: "cluster", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "controlpanel", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "safetyrule", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -221955,72 +267135,142 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a custom domain association in Amazon Redshift Serverless", - Privilege: "CreateCustomDomainAssociation", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "acm:DescribeCertificate", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "controlpanel", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "safetyrule", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", }, - ResourceType: "workgroup*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift Serverless managed VPC endpoint", - Privilege: "CreateEndpointAccess", + Description: "Grants permission to update a cluster", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointAccess*", + ResourceType: "cluster*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Redshift Serverless namespace", - Privilege: "CreateNamespace", + Description: "Grants permission to update a cluster", + Privilege: "UpdateControlPanel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "controlpanel*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a routing control", + Privilege: "UpdateRoutingControl", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "routingcontrol*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a scheduled action for a specified Amazon Redshift Serverless namespace", - Privilege: "CreateScheduledAction", + Description: "Grants permission to update a safety rule", + Privilege: "UpdateSafetyRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "safetyrule*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:route53-recovery-control::${Account}:cluster/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "controlpanel", + }, + { + Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}/routingcontrol/${RoutingControlId}", + ConditionKeys: []string{}, + Resource: "routingcontrol", + }, + { + Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}/safetyrule/${SafetyRuleId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "safetyrule", + }, + }, + ServiceName: "Amazon Route 53 Recovery Controls", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "route53-recovery-readiness", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a snapshot of all databases in a namespace", - Privilege: "CreateSnapshot", + Description: "Grants permission to create a new cell", + Privilege: "CreateCell", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "cell*", }, { ConditionKeys: []string{ @@ -222034,37 +267284,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a snapshot copy configuration for a specified Amazon Redshift Serverless namespace", - Privilege: "CreateSnapshotCopyConfiguration", + Description: "Grants permission to create a cross account authorization", + Privilege: "CreateCrossAccountAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a usage limit for a specified Amazon Redshift Serverless usage type", - Privilege: "CreateUsageLimit", + Description: "Grants permission to create a readiness check", + Privilege: "CreateReadinessCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "readinesscheck*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workgroup in Amazon Redshift Serverless", - Privilege: "CreateWorkgroup", + Description: "Grants permission to create a recovery group", + Privilege: "CreateRecoveryGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "recoverygroup*", }, { ConditionKeys: []string{ @@ -222078,44 +267336,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a custom domain association", - Privilege: "DeleteCustomDomainAssociation", + Description: "Grants permission to create a resource set", + Privilege: "CreateResourceSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "resourceset*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon Redshift Serverless managed VPC endpoint", - Privilege: "DeleteEndpointAccess", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "endpointAccess*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a namespace from Amazon Redshift Serverless", - Privilege: "DeleteNamespace", + Description: "Grants permission to delete a cell", + Privilege: "DeleteCell", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "cell*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified resource policy", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to delete a cross account authorization", + Privilege: "DeleteCrossAccountAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222126,152 +267380,152 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a scheduled action from Amazon Redshift Serverless", - Privilege: "DeleteScheduledAction", + Description: "Grants permission to delete a readiness check", + Privilege: "DeleteReadinessCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "readinesscheck*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a snapshot from Amazon Redshift Serverless", - Privilege: "DeleteSnapshot", + Description: "Grants permission to delete a recovery group", + Privilege: "DeleteRecoveryGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "recoverygroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a snapshot copy configuration for a Amazon Redshift Serverless namespace", - Privilege: "DeleteSnapshotCopyConfiguration", + Description: "Grants permission to delete a resource set", + Privilege: "DeleteResourceSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourceset*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a usage limit from Amazon Redshift Serverless", - Privilege: "DeleteUsageLimit", + AccessLevel: "Read", + Description: "Grants permission to get architecture recommendations for a recovery group", + Privilege: "GetArchitectureRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "recoverygroup*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a workgroup", - Privilege: "DeleteWorkgroup", + AccessLevel: "Read", + Description: "Grants permission to get information about a cell", + Privilege: "GetCell", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "cell*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to see on the Amazon Redshift Serverless console the remaining number of free trial credits and their expiration date", - Privilege: "DescribeOneTimeCredit", + Description: "Grants permission to get a readiness summary for a cell", + Privilege: "GetCellReadinessSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cell*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to get a database user name and temporary password with temporary authorization to log on to Amazon Redshift Serverless", - Privilege: "GetCredentials", + AccessLevel: "Read", + Description: "Grants permission to get information about a readiness check", + Privilege: "GetReadinessCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "readinesscheck*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specific custom domain association", - Privilege: "GetCustomDomainAssociation", + Description: "Grants permission to get the readiness status for an individual resource", + Privilege: "GetReadinessCheckResourceStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "readinesscheck*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to create an Amazon Redshift Serverless managed VPC endpoint", - Privilege: "GetEndpointAccess", + Description: "Grants permission to get the status of a readiness check (for a resource set)", + Privilege: "GetReadinessCheckStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointAccess*", + ResourceType: "readinesscheck*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a namespace in Amazon Redshift Serverless", - Privilege: "GetNamespace", + Description: "Grants permission to get information about a recovery group", + Privilege: "GetRecoveryGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "recoverygroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a recovery point", - Privilege: "GetRecoveryPoint", + Description: "Grants permission to get a readiness summary for a recovery group", + Privilege: "GetRecoveryGroupReadinessSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recoveryPoint*", + ResourceType: "recoverygroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a resource policy", - Privilege: "GetResourcePolicy", + Description: "Grants permission to get information about a resource set", + Privilege: "GetResourceSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourceset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specific scheduled action", - Privilege: "GetScheduledAction", + Description: "Grants permission to list cells", + Privilege: "ListCells", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222282,20 +267536,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specific snapshot", - Privilege: "GetSnapshot", + Description: "Grants permission to list cross account authorizations", + Privilege: "ListCrossAccountAuthorizations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get table restore status about a specific snapshot", - Privilege: "GetTableRestoreStatus", + Description: "Grants permission to list readiness checks", + Privilege: "ListReadinessChecks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222306,8 +267560,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about a usage limit in Amazon Redshift Serverless", - Privilege: "GetUsageLimit", + Description: "Grants permission to list recovery groups", + Privilege: "ListRecoveryGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222318,20 +267572,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specific workgroup", - Privilege: "GetWorkgroup", + Description: "Grants permission to list resource sets", + Privilege: "ListResourceSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list custom domain associations in Amazon Redshift Serverless", - Privilege: "ListCustomDomainAssociations", + AccessLevel: "Read", + Description: "Grants permission to list readiness rules", + Privilege: "ListRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222341,107 +267595,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list EndpointAccess objects and relevant information", - Privilege: "ListEndpointAccess", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointAccess*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list namespaces in Amazon Redshift Serverless", - Privilege: "ListNamespaces", + AccessLevel: "Tagging", + Description: "Grants permission to add a tag to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cell", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list an array of recovery points", - Privilege: "ListRecoveryPoints", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace", + ResourceType: "readinesscheck", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list scheduled actions", - Privilege: "ListScheduledActions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "recoverygroup", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list SnapshotCopyConfiguration objects and relevant information", - Privilege: "ListSnapshotCopyConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace", + ResourceType: "resourceset", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list snapshots", - Privilege: "ListSnapshots", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "cell", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list table restore status", - Privilege: "ListTableRestoreStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "readinesscheck", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the tags assigned to a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace", + ResourceType: "recoverygroup", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup", + ResourceType: "resourceset", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -222449,211 +267677,242 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all usage limits within Amazon Redshift Serverless", - Privilege: "ListUsageLimits", + AccessLevel: "Write", + Description: "Grants permission to update a cell", + Privilege: "UpdateCell", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "cell*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list workgroups in Amazon Redshift Serverless", - Privilege: "ListWorkgroups", + AccessLevel: "Write", + Description: "Grants permission to update a readiness check", + Privilege: "UpdateReadinessCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "readinesscheck*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a resource policy", - Privilege: "PutResourcePolicy", + Description: "Grants permission to update a recovery group", + Privilege: "UpdateRecoveryGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "recoverygroup*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore the data from a recovery point", - Privilege: "RestoreFromRecoveryPoint", + Description: "Grants permission to update a resource set", + Privilege: "UpdateResourceSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recoveryPoint*", + ResourceType: "resourceset*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:readiness-check/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "readinesscheck", + }, + { + Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:resource-set/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "resourceset", + }, + { + Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:cell/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "cell", + }, + { + Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:recovery-group/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "recoverygroup", + }, + }, + ServiceName: "Amazon Route 53 Recovery Readiness", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "route53domains", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to restore a namespace from a snapshot", - Privilege: "RestoreFromSnapshot", + Description: "Grants permission to accept the transfer of a domain from another AWS account to the current AWS account", + Privilege: "AcceptDomainTransferFromAnotherAwsAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore a table from a recovery point", - Privilege: "RestoreTableFromRecoveryPoint", + Description: "Grants permission to associate a new delegation signer to a domain", + Privilege: "AssociateDelegationSignerToDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "recoveryPoint*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore a table from a snapshot", - Privilege: "RestoreTableFromSnapshot", + Description: "Grants permission to cancel the transfer of a domain from the current AWS account to another AWS account", + Privilege: "CancelDomainTransferToAnotherAwsAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to assign one or more tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to check the availability of one domain name", + Privilege: "CheckDomainAvailability", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "recoveryPoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to check whether a domain name can be transferred to Amazon Route 53", + Privilege: "CheckDomainTransferability", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete domains", + Privilege: "DeleteDomain", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to remove a tag or set of tags from a resource", - Privilege: "UntagResource", + Description: "Grants permission to delete the specified tags for a domain", + Privilege: "DeleteTagsForDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "recoveryPoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "snapshot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workgroup", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a certificate associated with a custom domain", - Privilege: "UpdateCustomDomainAssociation", + Description: "Grants permission to configure Amazon Route 53 to automatically renew the specified domain before the domain registration expires", + Privilege: "DisableDomainAutoRenew", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "acm:DescribeCertificate", - }, - ResourceType: "workgroup*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an Amazon Redshift Serverless managed VPC endpoint", - Privilege: "UpdateEndpointAccess", + Description: "Grants permission to remove the transfer lock on the domain (specifically the clientTransferProhibited status) to allow domain transfers", + Privilege: "DisableDomainTransferLock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpointAccess*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a namespace with the specified configuration settings", - Privilege: "UpdateNamespace", + Description: "Grants permission to disassociate an existing delegation signer from a domain", + Privilege: "DisassociateDelegationSignerFromDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a scheduled action", - Privilege: "UpdateScheduledAction", + Description: "Grants permission to configure Amazon Route 53 to automatically renew the specified domain before the domain registration expires", + Privilege: "EnableDomainAutoRenew", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222664,20 +267923,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a snapshot", - Privilege: "UpdateSnapshot", + Description: "Grants permission to set the transfer lock on the domain (specifically the clientTransferProhibited status) to prevent domain transfers", + Privilege: "EnableDomainTransferLock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "snapshot*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a snapshot copy configuration for a Amazon Redshift Serverless namespace", - Privilege: "UpdateSnapshotCopyConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get information about whether the registrant contact has responded for operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain", + Privilege: "GetContactReachabilityStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222687,9 +267946,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a usage limit in Amazon Redshift Serverless", - Privilege: "UpdateUsageLimit", + AccessLevel: "Read", + Description: "Grants permission to get detailed information about a domain", + Privilege: "GetDomainDetail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222699,214 +267958,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an Amazon Redshift Serverless workgroup with the specified configuration settings", - Privilege: "UpdateWorkgroup", + AccessLevel: "Read", + Description: "Grants permission to get a list of suggested domain names given a string, which can either be a domain name or simply a word or phrase (without spaces)", + Privilege: "GetDomainSuggestions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workgroup*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:namespace/${NamespaceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "namespace", - }, - { - Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:snapshot/${SnapshotId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "snapshot", - }, - { - Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:workgroup/${WorkgroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "workgroup", - }, - { - Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:recoverypoint/${RecoveryPointId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "recoveryPoint", - }, - { - Arn: "arn:${Partition}:redshift-serverless:${Region}:${Account}:managedvpcendpoint/${EndpointAccessId}", - ConditionKeys: []string{}, - Resource: "endpointAccess", - }, - }, - ServiceName: "Amazon Redshift Serverless", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "refactor-spaces:ApplicationCreatedByAccount", - Description: "Filters access by restricting the action to only those accounts that created the application within an environment", - Type: "String", - }, - { - Condition: "refactor-spaces:CreatedByAccountIds", - Description: "Filters access by the accounts that created the resource", - Type: "ArrayOfString", - }, - { - Condition: "refactor-spaces:RouteCreatedByAccount", - Description: "Filters access by restricting the action to only those accounts that created the route within an application", - Type: "String", - }, - { - Condition: "refactor-spaces:ServiceCreatedByAccount", - Description: "Filters access by restricting the action to only those accounts that created the service within an application", - Type: "String", - }, - { - Condition: "refactor-spaces:SourcePath", - Description: "Filters access by the path of the route", - Type: "String", - }, - }, - Prefix: "refactor-spaces", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an application within an environment", - Privilege: "CreateApplication", + AccessLevel: "Read", + Description: "Grants permission to get the current status of an operation that is not completed", + Privilege: "GetOperationDetail", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an environment", - Privilege: "CreateEnvironment", + AccessLevel: "List", + Description: "Grants permission to list all the domain names registered with Amazon Route 53 for the current AWS account", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a route within an application", - Privilege: "CreateRoute", + AccessLevel: "List", + Description: "Grants permission to list the operation IDs of operations that are not yet complete", + Privilege: "ListOperations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:SourcePath", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a service within an application", - Privilege: "CreateService", + AccessLevel: "List", + Description: "Grants permission to list the prices of operations for TLDs", + Privilege: "ListPrices", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an application from an environment", - Privilege: "DeleteApplication", + AccessLevel: "Read", + Description: "Grants permission to list all the tags that are associated with the specified domain", + Privilege: "ListTagsForDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an environment", - Privilege: "DeleteEnvironment", + Description: "Grants permission to change the IPS tag of .uk domain to initiate a transfer process from Route 53 to another registrar", + Privilege: "PushDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to register domains", + Privilege: "RegisterDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -222917,94 +268055,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a route from an application", - Privilege: "DeleteRoute", + Description: "Grants permission to reject the transfer of a domain from another AWS account to the current AWS account", + Privilege: "RejectDomainTransferFromAnotherAwsAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:SourcePath", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a service from an application", - Privilege: "DeleteService", + Description: "Grants permission to renew domains for the specified number of years", + Privilege: "RenewDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get more information about an application", - Privilege: "GetApplication", + AccessLevel: "Write", + Description: "Grants permission to resend the confirmation email to the current email address for the registrant contact for operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain", + Privilege: "ResendContactReachabilityEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get more information for an environment", - Privilege: "GetEnvironment", + AccessLevel: "Write", + Description: "Grants permission to resend the operation authorization", + Privilege: "ResendOperationAuthorization", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the details about a resource policy", - Privilege: "GetResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to get the AuthCode for the domain", + Privilege: "RetrieveDomainAuthCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -223014,79 +268114,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get more information about a route", - Privilege: "GetRoute", + AccessLevel: "Write", + Description: "Grants permission to transfer a domain from another registrar to Amazon Route 53", + Privilege: "TransferDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:SourcePath", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get more information about a service", - Privilege: "GetService", + AccessLevel: "Write", + Description: "Grants permission to transfer a domain from the current AWS account to another AWS account", + Privilege: "TransferDomainToAnotherAwsAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the applications in an environment", - Privilege: "ListApplications", + AccessLevel: "Write", + Description: "Grants permission to update the contact information for domain", + Privilege: "UpdateDomainContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the VPCs for the environment", - Privilege: "ListEnvironmentVpcs", + AccessLevel: "Write", + Description: "Grants permission to update the domain contact privacy setting", + Privilege: "UpdateDomainContactPrivacy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all environments", - Privilege: "ListEnvironments", + AccessLevel: "Write", + Description: "Grants permission to replace the current set of name servers for a domain with the specified set of name servers", + Privilege: "UpdateDomainNameservers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -223096,45 +268174,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the routes in an application", - Privilege: "ListRoutes", + AccessLevel: "Tagging", + Description: "Grants permission to add or update tags for a specified domain", + Privilege: "UpdateTagsForDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the services in an environment", - Privilege: "ListServices", + Description: "Grants permission to get all the domain-related billing records for the current AWS account for a specified period", + Privilege: "ViewBilling", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Route 53 Domains", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Grants permission to list all the tags for a given resource", - Privilege: "ListTagsForResource", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "route53profiles", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associates a Profile to the customer VPC", + Privilege: "AssociateProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a resource policy", - Privilege: "PutResourcePolicy", + Description: "Grants permission to associates a resource, such as DNS Firewall rule group, private hosted zone, resolver rule, etc. to a specified Profile", + Privilege: "AssociateResourceToProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -223144,40 +268251,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a new Profile resource", + Privilege: "CreateProfile", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "route", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service", - }, { ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:SourcePath", - "aws:TagKeys", "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -223185,149 +268266,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete a Profile specified by the ProfileId", + Privilege: "DeleteProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "environment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "route", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an association between a customer VPC and the specified Profile", + Privilege: "DisassociateProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:SourcePath", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a route from an application", - Privilege: "UpdateRoute", + Description: "Grants permission to delete the asoociation between the resource. such as DNS Firewall rule group, private hosted zone, resolver rule, etc. and the specified Profile", + Privilege: "DisassociateResourceFromProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "route*", - }, - { - ConditionKeys: []string{ - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:SourcePath", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "environment", - }, - { - Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}/application/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - }, - Resource: "application", - }, - { - Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}/application/${ApplicationId}/service/${ServiceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:ServiceCreatedByAccount", - }, - Resource: "service", - }, - { - Arn: "arn:${Partition}:refactor-spaces:${Region}:${Account}:environment/${EnvironmentId}/application/${ApplicationId}/route/${RouteId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "refactor-spaces:ApplicationCreatedByAccount", - "refactor-spaces:CreatedByAccountIds", - "refactor-spaces:RouteCreatedByAccount", - "refactor-spaces:ServiceCreatedByAccount", - "refactor-spaces:SourcePath", - }, - Resource: "route", - }, - }, - ServiceName: "AWS Migration Hub Refactor Spaces", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "rekognition", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate multiple individual faces with a single user", - Privilege: "AssociateFaces", + AccessLevel: "Read", + Description: "Grants permission to get a Profile", + Privilege: "GetProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to compare faces in the source input image with each face detected in the target input image", - Privilege: "CompareFaces", + Description: "Grants permission to get a Profile to a VPC association specified by the Profile association ID", + Privilege: "GetProfileAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -223337,66 +268326,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to copy an existing model version to a new model version", - Privilege: "CopyProjectVersion", + AccessLevel: "Read", + Description: "Grants permission to read the RAM access control policy for a Profile", + Privilege: "GetProfilePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "profile*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a Profile resource association based on the ProfileResourceAssociationId", + Privilege: "GetProfileResourceAssociation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "projectversion*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all VPCs the specified Profile is associated to", + Privilege: "ListProfileAssociations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a collection in an AWS Region", - Privilege: "CreateCollection", + AccessLevel: "List", + Description: "Grants permission to list all the associations between the resources, such as DNS Firewall rule groups, private hosted zones, resolver rules, etc. for the given Profile ID", + Privilege: "ListProfileResourceAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new Amazon Rekognition Custom Labels dataset", - Privilege: "CreateDataset", + AccessLevel: "List", + Description: "Grants permission to list all the Profiles created by, and shared to the customer", + Privilege: "ListProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a face liveness session", - Privilege: "CreateFaceLivenessSession", + AccessLevel: "List", + Description: "Grants permission to list all tags associated with the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -223407,25 +268399,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon Rekognition Custom Labels project", - Privilege: "CreateProject", + Description: "Grants permission to define the RAM access control policy for a Profile", + Privilege: "PutProfilePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "profile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to begin training a new version of a model", - Privilege: "CreateProjectVersion", + AccessLevel: "Tagging", + Description: "Grants permission to add a tag to the given resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile-association", }, { ConditionKeys: []string{ @@ -223438,18 +268435,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon Rekognition stream processor", - Privilege: "CreateStreamProcessor", + AccessLevel: "Tagging", + Description: "Grants permission to delete a tag from the given resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile-association", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -223459,596 +268460,630 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new user in a collection using a unique user ID you provide", - Privilege: "CreateUser", + Description: "Grants permission to update the Profile resource association name or the resource properties or both, if both name and resource properties are null, the api returns the existing Profile resource association", + Privilege: "UpdateProfileResourceAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete the specified collection", - Privilege: "DeleteCollection", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "collection*", - }, + Arn: "arn:${Partition}:route53profiles:${Region}:${Account}:profile/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "profile", }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing Amazon Rekognition Custom Labels dataset", - Privilege: "DeleteDataset", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset*", - }, + Arn: "arn:${Partition}:route53profiles:${Region}:${Account}:profile-association/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "profile-association", + }, + }, + ServiceName: "Amazon Route 53 Profiles", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", }, + }, + Prefix: "route53resolver", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete faces from a collection", - Privilege: "DeleteFaces", + Description: "Grants permission to associate an Amazon VPC with a specified firewall rule group", + Privilege: "AssociateFirewallRuleGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "firewall-rule-group-association*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", + Description: "Grants permission to associate a specified IP address with a Resolver endpoint. This is an IP address that DNS queries pass through on the way to your network (outbound) or your VPCs (inbound)", + Privilege: "AssociateResolverEndpointIpAddress", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + }, + ResourceType: "resolver-endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a resource policy attached to a project", - Privilege: "DeleteProjectPolicy", + Description: "Grants permission to associate an Amazon VPC with a specified query logging configuration", + Privilege: "AssociateResolverQueryLogConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-query-log-config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a model", - Privilege: "DeleteProjectVersion", + Description: "Grants permission to associate a specified Resolver rule with a specified VPC", + Privilege: "AssociateResolverRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "projectversion*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-rule*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified stream processor", - Privilege: "DeleteStreamProcessor", + Description: "Grants permission to create a Firewall domain list", + Privilege: "CreateFirewallDomainList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streamprocessor*", + ResourceType: "firewall-domain-list*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a user from a collection based on the provided user ID", - Privilege: "DeleteUser", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read details about a collection", - Privilege: "DescribeCollection", + AccessLevel: "Write", + Description: "Grants permission to create a Firewall rule within a Firewall rule group", + Privilege: "CreateFirewallRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "firewall-domain-list*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an Amazon Rekognition Custom Labels dataset", - Privilege: "DescribeDataset", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "firewall-rule-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the versions of a model in an Amazon Rekognition Custom Labels project", - Privilege: "DescribeProjectVersions", + AccessLevel: "Write", + Description: "Grants permission to create a Firewall rule group", + Privilege: "CreateFirewallRuleGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "firewall-rule-group*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list Amazon Rekognition Custom Labels projects", - Privilege: "DescribeProjects", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified stream processor", - Privilege: "DescribeStreamProcessor", + AccessLevel: "Write", + Description: "Grants permission to create a Route 53 Resolver on Outposts", + Privilege: "CreateOutpostResolver", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "streamprocessor*", + ConditionKeys: []string{}, + DependentActions: []string{ + "outposts:GetOutpost", + }, + ResourceType: "outpost-resolver*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to detect custom labels in a supplied image", - Privilege: "DetectCustomLabels", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "projectversion*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect human faces within an image provided as input", - Privilege: "DetectFaces", + AccessLevel: "Write", + Description: "Grants permission to create a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound", + Privilege: "CreateResolverEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-endpoint*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect instances of real-world labels within an image provided as input", - Privilege: "DetectLabels", + AccessLevel: "Write", + Description: "Grants permission to create a Resolver query logging configuration, which defines where you want Resolver to save DNS query logs that originate in your VPCs", + Privilege: "CreateResolverQueryLogConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect moderation labels within the input image", - Privilege: "DetectModerationLabels", + AccessLevel: "Write", + Description: "Grants permission to define how to route queries originating from your VPC out of the VPC", + Privilege: "CreateResolverRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "projectversion", + ResourceType: "resolver-rule*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to detect Personal Protective Equipment in the input image", - Privilege: "DetectProtectiveEquipment", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to detect text in the input image and convert it into machine-readable text", - Privilege: "DetectText", + AccessLevel: "Write", + Description: "Grants permission to delete a Firewall domain list", + Privilege: "DeleteFirewallDomainList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-domain-list*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the association between a user ID and a face ID", - Privilege: "DisassociateFaces", + Description: "Grants permission to delete a Firewall rule within a Firewall rule group", + Privilege: "DeleteFirewallRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "firewall-domain-list*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "firewall-rule-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to distribute the entries in a training dataset across the training dataset and the test dataset for a project", - Privilege: "DistributeDatasetEntries", + Description: "Grants permission to delete a Firewall rule group", + Privilege: "DeleteFirewallRuleGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "firewall-rule-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the name, and additional information, of a celebrity", - Privilege: "GetCelebrityInfo", + AccessLevel: "Write", + Description: "Grants permission to delete a Route 53 Resolver on Outposts", + Privilege: "DeleteOutpostResolver", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "outpost-resolver*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the celebrity recognition results found in a stored video by an asynchronous celebrity recognition job", - Privilege: "GetCelebrityRecognition", + AccessLevel: "Write", + Description: "Grants permission to delete a Resolver endpoint. The effect of deleting a Resolver endpoint depends on whether it's an inbound or an outbound endpoint", + Privilege: "DeleteResolverEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + }, + ResourceType: "resolver-endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the content moderation analysis results found in a stored video by an asynchronous content moderation job", - Privilege: "GetContentModeration", + AccessLevel: "Write", + Description: "Grants permission to delete a Resolver query logging configuration", + Privilege: "DeleteResolverQueryLogConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-query-log-config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the faces detection results found in a stored video by an asynchronous face detection job", - Privilege: "GetFaceDetection", + AccessLevel: "Write", + Description: "Grants permission to delete a Resolver rule", + Privilege: "DeleteResolverRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-rule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get results of a face liveness session", - Privilege: "GetFaceLivenessSessionResults", + AccessLevel: "Write", + Description: "Grants permission to remove the association between a specified Firewall rule group and a specified VPC", + Privilege: "DisassociateFirewallRuleGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-rule-group-association*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the matching collection faces found in a stored video by an asynchronous face search job", - Privilege: "GetFaceSearch", + AccessLevel: "Write", + Description: "Grants permission to remove a specified IP address from a Resolver endpoint. This is an IP address that DNS queries pass through on the way to your network (outbound) or your VPCs (inbound)", + Privilege: "DisassociateResolverEndpointIpAddress", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DeleteNetworkInterface", + "ec2:DescribeNetworkInterfaces", + }, + ResourceType: "resolver-endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the label detected resuls found in a stored video by an asynchronous label detection job", - Privilege: "GetLabelDetection", + AccessLevel: "Write", + Description: "Grants permission to remove the association between a specified Resolver query logging configuration and a specified VPC", + Privilege: "DisassociateResolverQueryLogConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-query-log-config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to read the reference to job results in S3 and additional information about a media analysis job", - Privilege: "GetMediaAnalysisJob", + AccessLevel: "Write", + Description: "Grants permission to remove the association between a specified Resolver rule and a specified VPC", + Privilege: "DisassociateResolverRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-rule*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read the list of persons detected in a stored video by an asynchronous person tracking job", - Privilege: "GetPersonTracking", + Description: "Grants permission to get information about a specified Firewall config", + Privilege: "GetFirewallConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "firewall-config*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the vdeo segments found in a stored video by an asynchronous segment detection job", - Privilege: "GetSegmentDetection", + Description: "Grants permission to get information about a specified Firewall domain list", + Privilege: "GetFirewallDomainList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-domain-list*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the text found in a stored video by an asynchronous text detection job", - Privilege: "GetTextDetection", + Description: "Grants permission to get information about a specified Firewall rule group", + Privilege: "GetFirewallRuleGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-rule-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing collection with faces detected in the input image", - Privilege: "IndexFaces", + AccessLevel: "Read", + Description: "Grants permission to get information about an association between a specified Firewall rule group and a VPC", + Privilege: "GetFirewallRuleGroupAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "firewall-rule-group-association*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read the collection Id's in your account", - Privilege: "ListCollections", + Description: "Grants permission to get information about a specified Firewall rule group policy, which specifies the Firewall rule group operations and resources that you want to allow another AWS account to use", + Privilege: "GetFirewallRuleGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-rule-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the dataset entries in an existing Amazon Rekognition Custom Labels dataset", - Privilege: "ListDatasetEntries", + Description: "Grants permission to get information about a specified Route 53 Resolver on Outposts", + Privilege: "GetOutpostResolver", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "outpost-resolver*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the labels in a dataset", - Privilege: "ListDatasetLabels", + Description: "Grants permission to get the Resolver Config status within the specified resource", + Privilege: "GetResolverConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dataset*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-config*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read metadata for faces in the specificed collection", - Privilege: "ListFaces", + Description: "Grants permission to get the DNSSEC validation support status for DNS queries within the specified resource", + Privilege: "GetResolverDnssecConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "resolver-dnssec-config*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read the list of media analysis jobs", - Privilege: "ListMediaAnalysisJobs", + Description: "Grants permission to get information about a specified Resolver endpoint, such as whether it's an inbound or an outbound endpoint, and the IP addresses in your VPC that DNS queries are forwarded to on the way into or out of your VPC", + Privilege: "GetResolverEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-endpoint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the resource policies attached to a project", - Privilege: "ListProjectPolicies", + Description: "Grants permission to get information about a specified Resolver query logging configuration, such as the number of VPCs that the configuration is logging queries for and the location that logs are sent to", + Privilege: "GetResolverQueryLogConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-query-log-config*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of your stream processors", - Privilege: "ListStreamProcessors", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified association between a Resolver query logging configuration and an Amazon VPC. When you associate a VPC with a query logging configuration, Resolver logs DNS queries that originate in that VPC", + Privilege: "GetResolverQueryLogConfigAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streamprocessor*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a list of tags associated with a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get information about a specified Resolver query logging policy, which specifies the Resolver query logging operations and resources that you want to allow another AWS account to use", + Privilege: "GetResolverQueryLogConfigPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "projectversion*", + ResourceType: "resolver-query-log-config*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list UserIds and the UserStatus", - Privilege: "ListUsers", + Description: "Grants permission to get information about a specified Resolver rule, such as the domain name that the rule forwards DNS queries for and the IP address that queries are forwarded to", + Privilege: "GetResolverRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "autodefined-rule", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to attach a resource policy to a project", - Privilege: "PutProjectPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "resolver-rule", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to detect celebrities in the input image", - Privilege: "RecognizeCelebrities", + Description: "Grants permission to get information about an association between a specified Resolver rule and a VPC", + Privilege: "GetResolverRuleAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "autodefined-rule", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to search the specificed collection for the supplied face ID", - Privilege: "SearchFaces", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "resolver-rule", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to search the specificed collection for the largest face in the input image", - Privilege: "SearchFacesByImage", + Description: "Grants permission to get information about a Resolver rule policy, which specifies the Resolver operations and resources that you want to allow another AWS account to use", + Privilege: "GetResolverRulePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "resolver-rule*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search the specificed collection for user match result with given either face ID or user ID", - Privilege: "SearchUsers", + AccessLevel: "Write", + Description: "Grants permission to add, remove or replace Firewall domains in a Firewall domain list", + Privilege: "ImportFirewallDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "firewall-domain-list*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search the specificed collection for user match result by using the largest face in the input image", - Privilege: "SearchUsersByImage", + AccessLevel: "List", + Description: "Grants permission to list all the Firewall config that current AWS account is able to check", + Privilege: "ListFirewallConfigs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "collection*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the asynchronous recognition of celebrities in a stored video", - Privilege: "StartCelebrityRecognition", + AccessLevel: "List", + Description: "Grants permission to list all the Firewall domain list that current AWS account is able to use", + Privilege: "ListFirewallDomainLists", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -224058,21 +269093,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start asynchronous detection of explicit or suggestive adult content in a stored video", - Privilege: "StartContentModeration", + AccessLevel: "List", + Description: "Grants permission to list all the Firewall domain under a specified Firewall domain list", + Privilege: "ListFirewallDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-domain-list*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start asynchronous detection of faces in a stored video", - Privilege: "StartFaceDetection", + AccessLevel: "List", + Description: "Grants permission to list information about associations between Amazon VPCs and Firewall rule group", + Privilege: "ListFirewallRuleGroupAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -224082,9 +269117,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start streaming video for a face liveness session", - Privilege: "StartFaceLivenessSession", + AccessLevel: "List", + Description: "Grants permission to list all the Firewall rule group that current AWS account is able to use", + Privilege: "ListFirewallRuleGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -224094,21 +269129,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an asynchronous search for faces in a collection that match the faces of persons detected in a stored video", - Privilege: "StartFaceSearch", + AccessLevel: "List", + Description: "Grants permission to list all the Firewall rule under a specified Firewall rule group", + Privilege: "ListFirewallRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection*", + ResourceType: "firewall-rule-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start asynchronous detection of labels in a stored video", - Privilege: "StartLabelDetection", + AccessLevel: "List", + Description: "Grants permission to list all instances of Route 53 Resolver on Outposts that were created using the current AWS account", + Privilege: "ListOutpostResolvers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -224118,45 +269153,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a media analysis job", - Privilege: "StartMediaAnalysisJob", + AccessLevel: "List", + Description: "Grants permission to list Resolver Config statuses", + Privilege: "ListResolverConfigs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "projectversion", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-config*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the asynchronous tracking of persons in a stored video", - Privilege: "StartPersonTracking", + AccessLevel: "List", + Description: "Grants permission to list the DNSSEC validation support status for DNS queries", + Privilege: "ListResolverDnssecConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-dnssec-config*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start running a model version", - Privilege: "StartProjectVersion", + AccessLevel: "List", + Description: "Grants permission to list the IP addresses that DNS queries pass through on the way to your network (outbound) or your VPCs (inbound) for a specified Resolver endpoint", + Privilege: "ListResolverEndpointIpAddresses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "projectversion*", + ResourceType: "resolver-endpoint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the asynchronous detection of segments in a stored video", - Privilege: "StartSegmentDetection", + AccessLevel: "List", + Description: "Grants permission to list all the Resolver endpoints that were created using the current AWS account", + Privilege: "ListResolverEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -224166,313 +269203,191 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start running a stream processor", - Privilege: "StartStreamProcessor", + AccessLevel: "List", + Description: "Grants permission to list information about associations between Amazon VPCs and query logging configurations", + Privilege: "ListResolverQueryLogConfigAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "streamprocessor*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the asynchronous detection of text in a stored video", - Privilege: "StartTextDetection", + AccessLevel: "List", + Description: "Grants permission to list information about the specified query logging configurations, which define where you want Resolver to save DNS query logs and specify the VPCs that you want to log queries for", + Privilege: "ListResolverQueryLogConfigs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a running model version", - Privilege: "StopProjectVersion", + AccessLevel: "List", + Description: "Grants permission to list the associations that were created between Resolver rules and VPCs using the current AWS account", + Privilege: "ListResolverRuleAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "projectversion*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a running stream processor", - Privilege: "StopStreamProcessor", + AccessLevel: "List", + Description: "Grants permission to list the Resolver rules that were created using the current AWS account", + Privilege: "ListResolverRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streamprocessor*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to list the tags that you associated with the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection", + ResourceType: "firewall-domain-list", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "projectversion", + ResourceType: "firewall-rule-group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streamprocessor", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-rule-group-association", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from a resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "collection", + ResourceType: "outpost-resolver", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "projectversion", + ResourceType: "resolver-endpoint", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streamprocessor", + ResourceType: "resolver-query-log-config", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-rule", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or update one or more JSON Lines (entries) in a dataset", - Privilege: "UpdateDatasetEntries", + AccessLevel: "Permissions management", + Description: "Grants permission to specify an AWS account that you want to share a Firewall rule group with, the Firewall rule group that you want to share, and the operations that you want the account to be able to perform on the configuration", + Privilege: "PutFirewallRuleGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dataset*", + ResourceType: "firewall-rule-group*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify properties for a stream processor", - Privilege: "UpdateStreamProcessor", + AccessLevel: "Permissions management", + Description: "Grants permission to specify an AWS account that you want to share a query logging configuration with, the query logging configuration that you want to share, and the operations that you want the account to be able to perform on the configuration", + Privilege: "PutResolverQueryLogConfigPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "streamprocessor*", + ResourceType: "resolver-query-log-config*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:rekognition:${Region}:${Account}:collection/${CollectionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "collection", - }, - { - Arn: "arn:${Partition}:rekognition:${Region}:${Account}:streamprocessor/${StreamprocessorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "streamprocessor", - }, - { - Arn: "arn:${Partition}:rekognition:${Region}:${Account}:project/${ProjectName}/${CreationTimestamp}", - ConditionKeys: []string{}, - Resource: "project", - }, - { - Arn: "arn:${Partition}:rekognition:${Region}:${Account}:project/${ProjectName}/version/${VersionName}/${CreationTimestamp}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "projectversion", - }, - { - Arn: "arn:${Partition}:rekognition:${Region}:${Account}:project/${ProjectName}/dataset/${DatasetType}/${CreationTimestamp}", - ConditionKeys: []string{}, - Resource: "dataset", - }, - }, - ServiceName: "Amazon Rekognition", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "repostspace", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a new private re:Post in your account", - Privilege: "CreateSpace", + AccessLevel: "Permissions management", + Description: "Grants permission to specify an AWS account that you want to share rules with, the Resolver rules that you want to share, and the operations that you want the account to be able to perform on those rules", + Privilege: "PutResolverRulePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-rule*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a private re:Post from your account", - Privilege: "DeleteSpace", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "firewall-config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove an administrator to a private re:Post in your account", - Privilege: "DeregisterAdmin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "firewall-domain-list", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the description for a private re:Post in your account", - Privilege: "GetSpace", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "firewall-rule-group", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all private re:Posts in your account", - Privilege: "ListSpaces", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-rule-group-association", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list the tags associated with a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "outpost-resolver", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resolver-dnssec-config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add an administrator to a private re:post in your account", - Privilege: "RegisterAdmin", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "resolver-endpoint", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to send invites to users of a private re:Post in your account", - Privilege: "SendInvites", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "resolver-query-log-config", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "resolver-rule", }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -224481,156 +269396,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", + Description: "Grants permission to remove one or more tags from a specified resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "firewall-config", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-domain-list", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a private re:Post in your account", - Privilege: "UpdateSpace", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "firewall-rule-group", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:repostspace:${Region}:${Account}:space/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "space", - }, - }, - ServiceName: "AWS re:Post Private", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "resiliencehub", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to add draft application version resource mappings", - Privilege: "AddDraftAppVersionResourceMappings", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "resource-groups:GetGroup", - "resource-groups:ListGroupResources", - "servicecatalog:GetApplication", - "servicecatalog:ListAssociatedResources", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "firewall-rule-group-association", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to include or exclude one or more operational recommendations", - Privilege: "BatchUpdateRecommendationStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "outpost-resolver", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create application", - Privilege: "CreateApp", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resolver-dnssec-config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create application app component", - Privilege: "CreateAppVersionAppComponent", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "resolver-endpoint", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create application resource", - Privilege: "CreateAppVersionResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "resolver-query-log-config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create recommendation template", - Privilege: "CreateRecommendationTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:CreateBucket", - "s3:ListBucket", - "s3:PutObject", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "resolver-rule", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -224640,366 +269455,362 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create resiliency policy", - Privilege: "CreateResiliencyPolicy", + Description: "Grants permission to update selected settings for an Firewall config", + Privilege: "UpdateFirewallConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "firewall-config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch delete application", - Privilege: "DeleteApp", + Description: "Grants permission to add, remove or replace Firewall domains in a Firewall domain list", + Privilege: "UpdateFirewallDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "firewall-domain-list*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch delete application assessment", - Privilege: "DeleteAppAssessment", + Description: "Grants permission to update selected settings for an Firewall rule in a Firewall rule group", + Privilege: "UpdateFirewallRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "firewall-domain-list*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove application input source", - Privilege: "DeleteAppInputSource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "firewall-rule-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete application app component", - Privilege: "DeleteAppVersionAppComponent", + Description: "Grants permission to update selected settings for an Firewall rule group association", + Privilege: "UpdateFirewallRuleGroupAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "firewall-rule-group-association*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete application resource", - Privilege: "DeleteAppVersionResource", + Description: "Grants permission to update seletected settings for a specified Route 53 Resolver on Outposts", + Privilege: "UpdateOutpostResolver", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "outpost-resolver*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch delete recommendation template", - Privilege: "DeleteRecommendationTemplate", + Description: "Grants permission to update the Resolver Config status within the specified resource", + Privilege: "UpdateResolverConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeVpcs", + }, + ResourceType: "resolver-config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to batch delete resiliency policy", - Privilege: "DeleteResiliencyPolicy", + Description: "Grants permission to update the DNSSEC validation support status for DNS queries within the specified resource", + Privilege: "UpdateResolverDnssecConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resiliency-policy*", + ResourceType: "resolver-dnssec-config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe application", - Privilege: "DescribeApp", + AccessLevel: "Write", + Description: "Grants permission to update selected settings for an inbound or an outbound Resolver endpoint", + Privilege: "UpdateResolverEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:AssignIpv6Addresses", + "ec2:DescribeNetworkInterfaces", + "ec2:DescribeSubnets", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:UnassignIpv6Addresses", + }, + ResourceType: "resolver-endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe application assessment", - Privilege: "DescribeAppAssessment", + AccessLevel: "Write", + Description: "Grants permission to update settings for a specified Resolver rule", + Privilege: "UpdateResolverRule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "resolver-rule*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe application version", - Privilege: "DescribeAppVersion", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-dnssec-config/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "resolver-dnssec-config", }, { - AccessLevel: "Read", - Description: "Grants permission to describe application version app component", - Privilege: "DescribeAppVersionAppComponent", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-query-log-config/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "resolver-query-log-config", }, { - AccessLevel: "Read", - Description: "Grants permission to describe application version resource", - Privilege: "DescribeAppVersionResource", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-rule/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "resolver-rule", }, { - AccessLevel: "Read", - Description: "Grants permission to describe application resolution", - Privilege: "DescribeAppVersionResourcesResolutionStatus", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:autodefined-rule/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "autodefined-rule", }, { - AccessLevel: "Read", - Description: "Grants permission to describe application version template", - Privilege: "DescribeAppVersionTemplate", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-endpoint/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "resolver-endpoint", }, { - AccessLevel: "Read", - Description: "Grants permission to describe draft application version resources import status", - Privilege: "DescribeDraftAppVersionResourcesImportStatus", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-rule-group/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "firewall-rule-group", }, { - AccessLevel: "Read", - Description: "Grants permission to describe resiliency policy", - Privilege: "DescribeResiliencyPolicy", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resiliency-policy*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-rule-group-association/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "firewall-rule-group-association", }, { - AccessLevel: "Write", - Description: "Grants permission to import resources to draft application version", - Privilege: "ImportResourcesToDraftAppVersion", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "resource-groups:GetGroup", - "resource-groups:ListGroupResources", - "servicecatalog:GetApplication", - "servicecatalog:ListAssociatedResources", - }, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-domain-list/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "firewall-domain-list", + }, + { + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-config/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "firewall-config", }, { - AccessLevel: "List", - Description: "Grants permission to list alarm recommendation", - Privilege: "ListAlarmRecommendations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", - }, + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-config/${ResourceId}", + ConditionKeys: []string{}, + Resource: "resolver-config", + }, + { + Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:outpost-resolver/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "outpost-resolver", }, + }, + ServiceName: "Amazon Route 53 Resolver", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "List", - Description: "Grants permission to list compliance drifts that were detected while running an assessment", - Privilege: "ListAppAssessmentComplianceDrifts", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed the request on behalf of the IAM principal", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource that make the request on behalf of the IAM principal", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request on behalf of the IAM principal", + Type: "ArrayOfString", + }, + }, + Prefix: "rum", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create rum metric definitions", + Privilege: "BatchCreateRumMetricDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list resource drifts that were detected while running an assessment", - Privilege: "ListAppAssessmentResourceDrifts", + AccessLevel: "Write", + Description: "Grants permission to remove rum metric definitions", + Privilege: "BatchDeleteRumMetricDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list application assessment", - Privilege: "ListAppAssessments", + AccessLevel: "Read", + Description: "Grants permission to get rum metric definitions", + Privilege: "BatchGetRumMetricDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list app component compliances", - Privilege: "ListAppComponentCompliances", + AccessLevel: "Write", + Description: "Grants permission to create appMonitor metadata", + Privilege: "CreateAppMonitor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + }, + ResourceType: "AppMonitorResource*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list app component recommendations", - Privilege: "ListAppComponentRecommendations", + AccessLevel: "Write", + Description: "Grants permission to delete appMonitor metadata", + Privilege: "DeleteAppMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list application input sources", - Privilege: "ListAppInputSources", + AccessLevel: "Write", + Description: "Grants permission to delete a resource policy attached to an app monitor", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list application version app components", - Privilege: "ListAppVersionAppComponents", + AccessLevel: "Write", + Description: "Grants permission to delete rum metrics destinations", + Privilege: "DeleteRumMetricsDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to application version resource mappings", - Privilege: "ListAppVersionResourceMappings", + AccessLevel: "Read", + Description: "Grants permission to get appMonitor metadata", + Privilege: "GetAppMonitor", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list application resources", - Privilege: "ListAppVersionResources", + AccessLevel: "Read", + Description: "Grants permission to get appMonitor data", + Privilege: "GetAppMonitorData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list application version", - Privilege: "ListAppVersions", + AccessLevel: "Read", + Description: "Grants permission to retrieve a resource policy attached to an app monitor", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list applications", - Privilege: "ListApps", + Description: "Grants permission to list appMonitors metadata", + Privilege: "ListAppMonitors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -225009,21 +269820,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list recommendation templates", - Privilege: "ListRecommendationTemplates", + AccessLevel: "Read", + Description: "Grants permission to list rum metrics destinations", + Privilege: "ListRumMetricsDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list resiliency policies", - Privilege: "ListResiliencyPolicies", + AccessLevel: "Read", + Description: "Grants permission to list tags for resources", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -225033,150 +269844,421 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list SOP recommendations", - Privilege: "ListSopRecommendations", + AccessLevel: "Write", + Description: "Grants permission to attach a resource policy to an app monitor", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list suggested resiliency policies", - Privilege: "ListSuggestedResiliencyPolicies", + AccessLevel: "Write", + Description: "Grants permission to put RUM events for appmonitor", + Privilege: "PutRumEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to put rum metrics destinations", + Privilege: "PutRumMetricsDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AppMonitorResource*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list test recommendations", - Privilege: "ListTestRecommendations", + AccessLevel: "Tagging", + Description: "Grants permission to tag resources", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list unsupported application version resources", - Privilege: "ListUnsupportedAppVersionResources", + AccessLevel: "Tagging", + Description: "Grants permission to untag resources", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to publish application version", - Privilege: "PublishAppVersion", + Description: "Grants permission to update appmonitor metadata", + Privilege: "UpdateAppMonitor", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + }, + ResourceType: "AppMonitorResource*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put draft application version template", - Privilege: "PutDraftAppVersionTemplate", + Description: "Grants permission to update rum metric definition", + Privilege: "UpdateRumMetricDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "AppMonitorResource*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:rum:${Region}:${Account}:appmonitor/${Name}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AppMonitorResource", + }, + }, + ServiceName: "AWS CloudWatch RUM", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "s3:AccessGrantsInstanceArn", + Description: "Filters access by access grants instance ARN", + Type: "ARN", + }, + { + Condition: "s3:AccessPointNetworkOrigin", + Description: "Filters access by the network origin (Internet or VPC)", + Type: "String", + }, + { + Condition: "s3:DataAccessPointAccount", + Description: "Filters access by the AWS Account ID that owns the access point", + Type: "String", + }, + { + Condition: "s3:DataAccessPointArn", + Description: "Filters access by an access point Amazon Resource Name (ARN)", + Type: "ARN", + }, + { + Condition: "s3:ExistingJobOperation", + Description: "Filters access by operation to updating the job priority", + Type: "String", + }, + { + Condition: "s3:ExistingJobPriority", + Description: "Filters access by priority range to cancelling existing jobs", + Type: "Numeric", + }, + { + Condition: "s3:ExistingObjectTag/", + Description: "Filters access by existing object tag key and value", + Type: "String", + }, + { + Condition: "s3:InventoryAccessibleOptionalFields", + Description: "Filters access by restricting which optional metadata fields a user can add when configuring S3 Inventory reports", + Type: "ArrayOfString", + }, + { + Condition: "s3:JobSuspendedCause", + Description: "Filters access by a specific job suspended cause (for example, AWAITING_CONFIRMATION) to cancelling suspended jobs", + Type: "String", + }, + { + Condition: "s3:ObjectCreationOperation", + Description: "Filters access by whether or not the operation creates an object", + Type: "Bool", + }, + { + Condition: "s3:RequestJobOperation", + Description: "Filters access by operation to creating jobs", + Type: "String", + }, + { + Condition: "s3:RequestJobPriority", + Description: "Filters access by priority range to creating new jobs", + Type: "Numeric", + }, + { + Condition: "s3:RequestObjectTag/", + Description: "Filters access by the tag keys and values to be added to objects", + Type: "String", + }, + { + Condition: "s3:RequestObjectTagKeys", + Description: "Filters access by the tag keys to be added to objects", + Type: "ArrayOfString", + }, + { + Condition: "s3:ResourceAccount", + Description: "Filters access by the resource owner AWS account ID", + Type: "String", + }, + { + Condition: "s3:TlsVersion", + Description: "Filters access by the TLS version used by the client", + Type: "Numeric", + }, + { + Condition: "s3:authType", + Description: "Filters access by authentication method", + Type: "String", + }, + { + Condition: "s3:delimiter", + Description: "Filters access by delimiter parameter", + Type: "String", + }, + { + Condition: "s3:destinationRegion", + Description: "Filters access by a specific replication destination region for targeted buckets of the AWS FIS action aws:s3:bucket-pause-replication", + Type: "String", + }, + { + Condition: "s3:if-match", + Description: "Filters access by the request's 'If-Match' conditional header", + Type: "String", + }, + { + Condition: "s3:if-none-match", + Description: "Filters access by the request's 'If-None-Match' conditional header", + Type: "String", + }, + { + Condition: "s3:isReplicationPauseRequest", + Description: "Filters access by request made via AWS FIS action aws:s3:bucket-pause-replication", + Type: "Bool", + }, + { + Condition: "s3:locationconstraint", + Description: "Filters access by a specific Region", + Type: "String", + }, + { + Condition: "s3:max-keys", + Description: "Filters access by maximum number of keys returned in a ListBucket request", + Type: "Numeric", + }, + { + Condition: "s3:object-lock-legal-hold", + Description: "Filters access by object legal hold status", + Type: "String", + }, + { + Condition: "s3:object-lock-mode", + Description: "Filters access by object retention mode (COMPLIANCE or GOVERNANCE)", + Type: "String", + }, + { + Condition: "s3:object-lock-remaining-retention-days", + Description: "Filters access by remaining object retention days", + Type: "Numeric", + }, + { + Condition: "s3:object-lock-retain-until-date", + Description: "Filters access by object retain-until date", + Type: "Date", + }, + { + Condition: "s3:prefix", + Description: "Filters access by key name prefix", + Type: "String", + }, + { + Condition: "s3:signatureAge", + Description: "Filters access by the age in milliseconds of the request signature", + Type: "Numeric", + }, + { + Condition: "s3:signatureversion", + Description: "Filters access by the version of AWS Signature used on the request", + Type: "String", + }, + { + Condition: "s3:versionid", + Description: "Filters access by a specific object version", + Type: "String", + }, + { + Condition: "s3:x-amz-acl", + Description: "Filters access by canned ACL in the request's x-amz-acl header", + Type: "String", + }, + { + Condition: "s3:x-amz-content-sha256", + Description: "Filters access by unsigned content in your bucket", + Type: "String", + }, + { + Condition: "s3:x-amz-copy-source", + Description: "Filters access by copy source bucket, prefix, or object in the copy object requests", + Type: "String", + }, + { + Condition: "s3:x-amz-grant-full-control", + Description: "Filters access by x-amz-grant-full-control (full control) header", + Type: "String", + }, + { + Condition: "s3:x-amz-grant-read", + Description: "Filters access by x-amz-grant-read (read access) header", + Type: "String", + }, + { + Condition: "s3:x-amz-grant-read-acp", + Description: "Filters access by the x-amz-grant-read-acp (read permissions for the ACL) header", + Type: "String", + }, + { + Condition: "s3:x-amz-grant-write", + Description: "Filters access by the x-amz-grant-write (write access) header", + Type: "String", + }, + { + Condition: "s3:x-amz-grant-write-acp", + Description: "Filters access by the x-amz-grant-write-acp (write permissions for the ACL) header", + Type: "String", + }, + { + Condition: "s3:x-amz-metadata-directive", + Description: "Filters access by object metadata behavior (COPY or REPLACE) when objects are copied", + Type: "String", + }, + { + Condition: "s3:x-amz-object-ownership", + Description: "Filters access by Object Ownership", + Type: "String", + }, + { + Condition: "s3:x-amz-server-side-encryption", + Description: "Filters access by server-side encryption", + Type: "String", + }, + { + Condition: "s3:x-amz-server-side-encryption-aws-kms-key-id", + Description: "Filters access by AWS KMS customer managed CMK for server-side encryption", + Type: "ARN", + }, + { + Condition: "s3:x-amz-server-side-encryption-customer-algorithm", + Description: "Filters access by customer specified algorithm for server-side encryption", + Type: "String", + }, + { + Condition: "s3:x-amz-storage-class", + Description: "Filters access by storage class", + Type: "String", + }, + { + Condition: "s3:x-amz-website-redirect-location", + Description: "Filters access by a specific website redirect location for buckets that are configured as static websites", + Type: "String", + }, + }, + Prefix: "s3", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to remove draft application version mappings", - Privilege: "RemoveDraftAppVersionResourceMappings", + Description: "Grants permission to abort a multipart upload", + Privilege: "AbortMultipartUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to resolve application version resources", - Privilege: "ResolveAppVersionResources", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "resource-groups:GetGroup", - "resource-groups:ListGroupResources", - "servicecatalog:GetApplication", - "servicecatalog:ListAssociatedResources", + ConditionKeys: []string{ + "s3:DataAccessPointArn", + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "application*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create application assessment", - Privilege: "StartAppAssessment", + Description: "Grants permission to associate Access Grants identity center", + Privilege: "AssociateAccessGrantsIdentityCenter", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "cloudwatch:DescribeAlarms", - "cloudwatch:GetMetricData", - "cloudwatch:GetMetricStatistics", - "cloudwatch:PutMetricData", - "ec2:DescribeRegions", - "fis:GetExperimentTemplate", - "fis:ListExperimentTemplates", - "fis:ListExperiments", - "resource-groups:GetGroup", - "resource-groups:ListGroupResources", - "servicecatalog:GetApplication", - "servicecatalog:ListAssociatedResources", - "ssm:GetParametersByPath", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accessgrantsinstance*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -225184,32 +270266,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to assign a resource tag", - Privilege: "TagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to allow circumvention of governance-mode object retention settings", + Privilege: "BypassGovernanceRetention", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-assessment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application", + ResourceType: "object*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:RequestObjectTag/", + "s3:RequestObjectTagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + "s3:x-amz-copy-source", + "s3:x-amz-grant-full-control", + "s3:x-amz-grant-read", + "s3:x-amz-grant-read-acp", + "s3:x-amz-grant-write", + "s3:x-amz-grant-write-acp", + "s3:x-amz-metadata-directive", + "s3:x-amz-server-side-encryption", + "s3:x-amz-server-side-encryption-aws-kms-key-id", + "s3:x-amz-server-side-encryption-customer-algorithm", + "s3:x-amz-storage-class", + "s3:x-amz-website-redirect-location", + }, DependentActions: []string{}, - ResourceType: "recommendation-template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create Access Grant", + Privilege: "CreateAccessGrant", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resiliency-policy", + ResourceType: "accessgrantslocation*", }, { ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -225219,32 +270335,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to Create Access Grants Instance", + Privilege: "CreateAccessGrantsInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-assessment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "recommendation-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resiliency-policy", + ResourceType: "accessgrantsinstance*", }, { ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -225254,186 +270363,168 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update application", - Privilege: "UpdateApp", + Description: "Grants permission to create Access Grants location", + Privilege: "CreateAccessGrantsLocation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update application version", - Privilege: "UpdateAppVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update application app component", - Privilege: "UpdateAppVersionAppComponent", + Description: "Grants permission to create a new access point", + Privilege: "CreateAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update application resource", - Privilege: "UpdateAppVersionResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:locationconstraint", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "application*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update resiliency policy", - Privilege: "UpdateResiliencyPolicy", + Description: "Grants permission to create an object lambda enabled accesspoint", + Privilege: "CreateAccessPointForObjectLambda", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resiliency-policy*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:resiliency-policy/${ResiliencyPolicyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resiliency-policy", - }, - { - Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:app/${AppId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "application", - }, - { - Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:app-assessment/${AppAssessmentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "app-assessment", - }, - { - Arn: "arn:${Partition}:resiliencehub:${Region}:${Account}:recommendation-template/${RecommendationTemplateId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "recommendation-template", - }, - }, - ServiceName: "AWS Resilience Hub", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "resource-explorer", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "List", - Description: "Grants permission to retrieve the resource types currently supported by Tag Editor", - Privilege: "ListResourceTypes", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the identifiers of the resources in the AWS account", - Privilege: "ListResources", + AccessLevel: "Write", + Description: "Grants permission to create a new bucket", + Privilege: "CreateBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the tags attached to the specified resource identifiers", - Privilege: "ListTags", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "tag:GetResources", + ConditionKeys: []string{ + "s3:authType", + "s3:locationconstraint", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + "s3:x-amz-grant-full-control", + "s3:x-amz-grant-read", + "s3:x-amz-grant-read-acp", + "s3:x-amz-grant-write", + "s3:x-amz-grant-write-acp", + "s3:x-amz-object-ownership", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, - }, - }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Tag Editor", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tag keys that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag keyss attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + }, }, - }, - Prefix: "resource-explorer-2", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to set the specified view as the default for this AWS Region in this AWS account", - Privilege: "AssociateDefaultView", + Description: "Grants permission to create a new S3 Metadata configuration for a specified bucket", + Privilege: "CreateBucketMetadataTableConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "s3tables:CreateNamespace", + "s3tables:CreateTable", + "s3tables:GetTable", + "s3tables:PutTablePolicy", + }, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "view*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about views that you specify by a list of ARNs", - Privilege: "BatchGetView", + AccessLevel: "Write", + Description: "Grants permission to create a new Amazon S3 Batch Operations job", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:RequestJobPriority", + "s3:RequestJobOperation", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{ - "resource-explorer-2:GetView", + "iam:PassRole", }, ResourceType: "", }, @@ -225441,13 +270532,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to turn on Resource Explorer in the AWS Region in which you called this operation by creating an index", - Privilege: "CreateIndex", + Description: "Grants permission to create a new Multi-Region Access Point", + Privilege: "CreateMultiRegionAccessPoint", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "multiregionaccesspoint*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", }, DependentActions: []string{}, ResourceType: "", @@ -225456,11 +270558,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a view that users can query", - Privilege: "CreateView", + Description: "Grants permission to create an Amazon S3 Storage Lens group", + Privilege: "CreateStorageLensGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -225471,184 +270579,206 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to turn off Resource Explorer in the specified AWS Region by deleting the index", - Privilege: "DeleteIndex", + Description: "Grants permission to delete Access Grant", + Privilege: "DeleteAccessGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "accessgrant*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a view", - Privilege: "DeleteView", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "view*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the default view for the AWS Region in which you call this operation", - Privilege: "DisassociateDefaultView", + Description: "Grants permission to Delete Access Grants Instance", + Privilege: "DeleteAccessGrantsInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to Resource Explorer to access account level data within your AWS Organization", - Privilege: "GetAccountLevelServiceConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the Amazon resource name (ARN) of the view that is the default for the AWS Region in which you call this operation", - Privilege: "GetDefaultView", + AccessLevel: "Write", + Description: "Grants permission to read Access grants instance resource policy", + Privilege: "DeleteAccessGrantsInstanceResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the index in the AWS Region in which you call this operation", - Privilege: "GetIndex", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the specified view", - Privilege: "GetView", + AccessLevel: "Write", + Description: "Grants permission to delete Access Grants location", + Privilege: "DeleteAccessGrantsLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "view*", + ResourceType: "accessgrantslocation*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the indexes in all AWS Regions", - Privilege: "ListIndexes", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the organization member account's indexes in all AWS Regions", - Privilege: "ListIndexesForMembers", + AccessLevel: "Write", + Description: "Grants permission to delete the access point named in the URI", + Privilege: "DeleteAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all resource types currently supported by Resource Explorer", - Privilege: "ListSupportedResourceTypes", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags that are attached to the specified resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete the object lambda enabled access point named in the URI", + Privilege: "DeleteAccessPointForObjectLambda", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", + ResourceType: "objectlambdaaccesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "view", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon resource names (ARNs) of all of the views available in the AWS Region in which you call this operation", - Privilege: "ListViews", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified access point", + Privilege: "DeleteAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to search for resources and display details about all resources that match the specified criteria", - Privilege: "Search", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "view*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tag key and value pairs to the specified resource", - Privilege: "TagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified object lambda enabled access point", + Privilege: "DeleteAccessPointPolicyForObjectLambda", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "view", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:DataAccessPointArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -225656,23 +270786,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tag key and value pairs from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to delete the bucket named in the URI", + Privilege: "DeleteBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "view", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -225681,310 +270811,284 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to change the type of the index from LOCAL to AGGREGATOR or back", - Privilege: "UpdateIndexType", + Description: "Grants permission to delete the S3 Metadata configuration for a specified bucket", + Privilege: "DeleteBucketMetadataTableConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "index*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to modify some of the details of a view", - Privilege: "UpdateView", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "view*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:resource-explorer-2:${Region}:${Account}:view/${ViewName}/${ViewUuid}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "view", - }, - { - Arn: "arn:${Partition}:resource-explorer-2:${Region}:${Account}:index/${IndexUuid}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "index", - }, - }, - ServiceName: "AWS Resource Explorer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "resource-groups", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate a resource to an Application", - Privilege: "AssociateResource", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified bucket", + Privilege: "DeleteBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a resource group with a specified name, description, and resource query", - Privilege: "CreateGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "cloudformation:DescribeStacks", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified resource group", - Privilege: "DeleteGroup", + Description: "Grants permission to remove the website configuration for a bucket", + Privilege: "DeleteBucketWebsite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a resource-based policy for the specified group", - Privilege: "DeleteGroupPolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a resource from an Application", - Privilege: "DisassociateResource", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from an existing Amazon S3 Batch Operations job", + Privilege: "DeleteJobTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "job*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the current status of optional features in Resource Groups", - Privilege: "GetAccountSettings", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:ExistingJobPriority", + "s3:ExistingJobOperation", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information of a specified resource group", - Privilege: "GetGroup", + AccessLevel: "Write", + Description: "Grants permission to delete the Multi-Region Access Point named in the URI", + Privilege: "DeleteMultiRegionAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "multiregionaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the service configuration associated with the specified resource group", - Privilege: "GetGroupConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a resource-based policy for the specified group", - Privilege: "GetGroupPolicy", + AccessLevel: "Write", + Description: "Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object", + Privilege: "DeleteObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the query associated with a specified resource group", - Privilege: "GetGroupQuery", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the tags associated with a specified resource group", - Privilege: "GetTags", + AccessLevel: "Tagging", + Description: "Grants permission to use the tagging subresource to remove the entire tag set from the specified object", + Privilege: "DeleteObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add the specified resources to the specified group", - Privilege: "GroupResources", + Description: "Grants permission to remove a specific version of an object", + Privilege: "DeleteObjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the resources that are members of a specified resource group", - Privilege: "ListGroupResources", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "tag:GetResources", + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", }, - ResourceType: "group*", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all resource groups in your account", - Privilege: "ListGroups", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list supported resource types", - Privilege: "ListResourceTypes", + AccessLevel: "Tagging", + Description: "Grants permission to remove the entire tag set for a specific version of the object", + Privilege: "DeleteObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put the service configuration associated with the specified resource group", - Privilege: "PutGroupConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a resource-based policy for the specified group", - Privilege: "PutGroupPolicy", + Description: "Grants permission to delete an existing Amazon S3 Storage Lens configuration", + Privilege: "DeleteStorageLensConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "storagelensconfiguration*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to search for AWS resources matching the given query", - Privilege: "SearchResources", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "cloudformation:ListStackResources", - "tag:GetResources", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a specified resource group", - Privilege: "Tag", + Description: "Grants permission to remove tags from an existing Amazon S3 Storage Lens configuration", + Privilege: "DeleteStorageLensConfigurationTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "storagelensconfiguration*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -225993,29 +271097,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the specified resources from the specified group", - Privilege: "UngroupResources", + Description: "Grants permission to delete an existing S3 Storage Lens group", + Privilege: "DeleteStorageLensGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "storagelensgroup*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags associated with a specified resource group", - Privilege: "Untag", + AccessLevel: "Read", + Description: "Grants permission to retrieve the configuration parameters and status for a batch operations job", + Privilege: "DescribeJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "job*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226023,205 +271144,218 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update optional features in Resource Groups", - Privilege: "UpdateAccountSettings", + AccessLevel: "Read", + Description: "Grants permission to retrieve the configurations for a Multi-Region Access Point", + Privilege: "DescribeMultiRegionAccessPointOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "multiregionaccesspointrequestarn*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a specified resource group", - Privilege: "UpdateGroup", + Description: "Grants permission to disassociate Access Grants identity center", + Privilege: "DissociateAccessGrantsIdentityCenter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "group*", + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the query associated with a specified resource group", - Privilege: "UpdateGroupQuery", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", }, - ResourceType: "group*", + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:resource-groups:${Region}:${Account}:group/${GroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "group", - }, - }, - ServiceName: "AWS Resource Groups", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "rhelkb", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to access the Red Hat Knowledgebase portal", - Privilege: "GetRhelURL", + Description: "Grants permission to uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended", + Privilege: "GetAccelerateConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon RHEL Knowledgebase Portal", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "robomaker", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Delete one or more worlds in a batch operation", - Privilege: "BatchDeleteWorlds", + AccessLevel: "Read", + Description: "Grants permission to read Access Grant", + Privilege: "GetAccessGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "accessgrant*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe multiple simulation jobs", - Privilege: "BatchDescribeSimulationJob", + Description: "Grants permission to Read Access Grants Instance", + Privilege: "GetAccessGrantsInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "accessgrantsinstance*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Cancel a deployment job", - Privilege: "CancelDeploymentJob", + AccessLevel: "Read", + Description: "Grants permission to Read Access Grants Instance by prefix", + Privilege: "GetAccessGrantsInstanceForPrefix", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentJob*", + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Cancel a simulation job", - Privilege: "CancelSimulationJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "simulationJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Cancel a simulation job batch", - Privilege: "CancelSimulationJobBatch", + AccessLevel: "Read", + Description: "Grants permission to read Access grants instance resource policy", + Privilege: "GetAccessGrantsInstanceResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationJobBatch*", + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Cancel a world export job", - Privilege: "CancelWorldExportJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "worldExportJob*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Cancel a world generation job", - Privilege: "CancelWorldGenerationJob", + AccessLevel: "Read", + Description: "Grants permission to read Access Grants location", + Privilege: "GetAccessGrantsLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldGenerationJob*", + ResourceType: "accessgrantslocation*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Create a deployment job", - Privilege: "CreateDeploymentJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Create a deployment fleet that represents a logical group of robots running the same robot application", - Privilege: "CreateFleet", + AccessLevel: "Read", + Description: "Grants permission to return configuration information about the specified access point", + Privilege: "GetAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226229,31 +271363,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Create a robot that can be registered to a fleet", - Privilege: "CreateRobot", + AccessLevel: "Read", + Description: "Grants permission to retrieve the configuration of the object lambda enabled access point", + Privilege: "GetAccessPointConfigurationForObjectLambda", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + "s3:DataAccessPointArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Create a robot application", - Privilege: "CreateRobotApplication", + AccessLevel: "Read", + Description: "Grants permission to create an object lambda enabled accesspoint", + Privilege: "GetAccessPointForObjectLambda", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226261,28 +271417,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Create a snapshot of a robot application", - Privilege: "CreateRobotApplicationVersion", + AccessLevel: "Read", + Description: "Grants permission to return the access point policy associated with the specified access point", + Privilege: "GetAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - }, - ResourceType: "robotApplication*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Create a simulation application", - Privilege: "CreateSimulationApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226290,50 +271444,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Create a snapshot of a simulation application", - Privilege: "CreateSimulationApplicationVersion", + AccessLevel: "Read", + Description: "Grants permission to return the access point policy associated with the specified object lambda enabled access point", + Privilege: "GetAccessPointPolicyForObjectLambda", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetObject", - }, - ResourceType: "simulationApplication*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Create a simulation job", - Privilege: "CreateSimulationJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Create a world export job", - Privilege: "CreateWorldExportJob", + AccessLevel: "Read", + Description: "Grants permission to return the policy status for a specific access point policy", + Privilege: "GetAccessPointPolicyStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "world*", + ResourceType: "accesspoint*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226341,19 +271498,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Create a world generation job", - Privilege: "CreateWorldGenerationJob", + AccessLevel: "Read", + Description: "Grants permission to return the policy status for a specific object lambda access point policy", + Privilege: "GetAccessPointPolicyStatusForObjectLambda", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldTemplate*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226361,14 +271525,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Create a world template", - Privilege: "CreateWorldTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve the PublicAccessBlock configuration for an AWS account", + Privilege: "GetAccountPublicAccessBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -226376,556 +271544,656 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Delete a deployment fleet", - Privilege: "DeleteFleet", + AccessLevel: "Read", + Description: "Grants permission to get an analytics configuration from an Amazon S3 bucket, identified by the analytics configuration ID", + Privilege: "GetAnalyticsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentFleet*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Delete a robot", - Privilege: "DeleteRobot", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "robot*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Delete a robot application", - Privilege: "DeleteRobotApplication", + AccessLevel: "Read", + Description: "Grants permission to use the acl subresource to return the access control list (ACL) of an Amazon S3 bucket", + Privilege: "GetBucketAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "robotApplication*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Delete a simulation application", - Privilege: "DeleteSimulationApplication", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "simulationApplication*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Delete a world template", - Privilege: "DeleteWorldTemplate", + AccessLevel: "Read", + Description: "Grants permission to return the CORS configuration information set for an Amazon S3 bucket", + Privilege: "GetBucketCORS", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldTemplate*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deregister a robot from a fleet", - Privilege: "DeregisterRobot", + AccessLevel: "Read", + Description: "Grants permission to return the Region that an Amazon S3 bucket resides in", + Privilege: "GetBucketLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentFleet*", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "robot*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe a deployment job", - Privilege: "DescribeDeploymentJob", + Description: "Grants permission to return the logging status of an Amazon S3 bucket and the permissions users have to view or modify that status", + Privilege: "GetBucketLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentJob*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Describe a deployment fleet", - Privilege: "DescribeFleet", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "deploymentFleet*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe a robot", - Privilege: "DescribeRobot", + Description: "Grants permission to return the S3 Metadata configuration for a specified bucket", + Privilege: "GetBucketMetadataTableConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "robot*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Describe a robot application", - Privilege: "DescribeRobotApplication", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "robotApplication*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe a simulation application", - Privilege: "DescribeSimulationApplication", + Description: "Grants permission to get the notification configuration of an Amazon S3 bucket", + Privilege: "GetBucketNotification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationApplication*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Describe a simulation job", - Privilege: "DescribeSimulationJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "simulationJob*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe a simulation job batch", - Privilege: "DescribeSimulationJobBatch", + Description: "Grants permission to get the Object Lock configuration of an Amazon S3 bucket", + Privilege: "GetBucketObjectLockConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationJobBatch*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Describe a world", - Privilege: "DescribeWorld", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:signatureversion", + }, DependentActions: []string{}, - ResourceType: "world*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe a world export job", - Privilege: "DescribeWorldExportJob", + Description: "Grants permission to retrieve ownership controls on a bucket", + Privilege: "GetBucketOwnershipControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldExportJob*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Describe a world generation job", - Privilege: "DescribeWorldGenerationJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "worldGenerationJob*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Describe a world template", - Privilege: "DescribeWorldTemplate", + Description: "Grants permission to return the policy of the specified bucket", + Privilege: "GetBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldTemplate*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Get the body of a world template", - Privilege: "GetWorldTemplateBody", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "worldTemplate*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List deployment jobs", - Privilege: "ListDeploymentJobs", + AccessLevel: "Read", + Description: "Grants permission to retrieve the policy status for a specific Amazon S3 bucket, which indicates whether the bucket is public", + Privilege: "GetBucketPolicyStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "List", - Description: "List fleets", - Privilege: "ListFleets", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List robot applications", - Privilege: "ListRobotApplications", + AccessLevel: "Read", + Description: "Grants permission to retrieve the PublicAccessBlock configuration for an Amazon S3 bucket", + Privilege: "GetBucketPublicAccessBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "List", - Description: "List robots", - Privilege: "ListRobots", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List simulation applications", - Privilege: "ListSimulationApplications", + AccessLevel: "Read", + Description: "Grants permission to return the request payment configuration for an Amazon S3 bucket", + Privilege: "GetBucketRequestPayment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "List", - Description: "List simulation job batches", - Privilege: "ListSimulationJobBatches", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List simulation jobs", - Privilege: "ListSimulationJobs", + AccessLevel: "Read", + Description: "Grants permission to return the tag set associated with an Amazon S3 bucket", + Privilege: "GetBucketTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "List", - Description: "Lists supported availability zones", - Privilege: "ListSupportedAvailabilityZones", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List tags for a RoboMaker resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to return the versioning state of an Amazon S3 bucket", + Privilege: "GetBucketVersioning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentFleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deploymentJob", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "robot", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "robotApplication", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "simulationApplication", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "simulationJob", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "simulationJobBatch", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "world", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "worldExportJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the website configuration for an Amazon S3 bucket", + Privilege: "GetBucketWebsite", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldGenerationJob", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "worldTemplate", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List world export jobs", - Privilege: "ListWorldExportJobs", + AccessLevel: "Read", + Description: "Grants permission to get Access", + Privilege: "GetDataAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accessgrantsinstance*", }, - }, - }, - { - AccessLevel: "List", - Description: "List world generation jobs", - Privilege: "ListWorldGenerationJobs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "List world templates", - Privilege: "ListWorldTemplates", + AccessLevel: "Read", + Description: "Grants permission to return the default encryption configuration an Amazon S3 bucket", + Privilege: "GetEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "List", - Description: "List worlds", - Privilege: "ListWorlds", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Register a robot to a fleet", - Privilege: "RegisterRobot", + AccessLevel: "Read", + Description: "Grants permission to get an or list all Amazon S3 Intelligent Tiering configuration in a S3 Bucket", + Privilege: "GetIntelligentTieringConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentFleet*", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "robot*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Restart a running simulation job", - Privilege: "RestartSimulationJob", + AccessLevel: "Read", + Description: "Grants permission to return an inventory configuration from an Amazon S3 bucket, identified by the inventory configuration ID", + Privilege: "GetInventoryConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationJob*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Create a simulation job batch", - Privilege: "StartSimulationJobBatch", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Ensures the most recently deployed robot application is deployed to all robots in the fleet", - Privilege: "SyncDeploymentJob", + AccessLevel: "Read", + Description: "Grants permission to return the tag set of an existing Amazon S3 Batch Operations job", + Privilege: "GetJobTagging", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "job*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "deploymentFleet*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Add tags to a RoboMaker resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to return the lifecycle configuration information set on an Amazon S3 bucket", + Privilege: "GetLifecycleConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentFleet", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "deploymentJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a metrics configuration from an Amazon S3 bucket", + Privilege: "GetMetricsConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "robot", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "robotApplication", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return configuration information about the specified Multi-Region Access Point", + Privilege: "GetMultiRegionAccessPoint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationApplication", + ResourceType: "multiregionaccesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "simulationJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the access point policy associated with the specified Multi-Region Access Point", + Privilege: "GetMultiRegionAccessPointPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationJobBatch", + ResourceType: "multiregionaccesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "world", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the policy status for a specific Multi-Region Access Point policy", + Privilege: "GetMultiRegionAccessPointPolicyStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldExportJob", + ResourceType: "multiregionaccesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "worldGenerationJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the route configuration for a Multi-Region Access Point", + Privilege: "GetMultiRegionAccessPointRoutes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldTemplate", + ResourceType: "multiregionaccesspoint*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", }, DependentActions: []string{}, ResourceType: "", @@ -226933,68 +272201,146 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Remove tags from a RoboMaker resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve objects from Amazon S3", + Privilege: "GetObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deploymentFleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deploymentJob", + ResourceType: "object*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:if-match", + "s3:if-none-match", + }, DependentActions: []string{}, - ResourceType: "robot", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the access control list (ACL) of an object", + Privilege: "GetObjectAcl", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "robotApplication", + ResourceType: "object*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "simulationApplication", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve attributes related to a specific object", + Privilege: "GetObjectAttributes", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationJob", + ResourceType: "accesspoint*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationJobBatch", + ResourceType: "object*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "world", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get an object's current Legal Hold status", + Privilege: "GetObjectLegalHold", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldExportJob", + ResourceType: "object*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "worldGenerationJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the retention settings for an object", + Privilege: "GetObjectRetention", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldTemplate", + ResourceType: "object*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -227002,181 +272348,111 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Update a robot application", - Privilege: "UpdateRobotApplication", + AccessLevel: "Read", + Description: "Grants permission to return the tag set of an object", + Privilege: "GetObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "robotApplication*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Report the deployment status for an individual robot", - Privilege: "UpdateRobotDeployment", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Update a simulation application", - Privilege: "UpdateSimulationApplication", + AccessLevel: "Read", + Description: "Grants permission to return torrent files from an Amazon S3 bucket", + Privilege: "GetObjectTorrent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "simulationApplication*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Update a world template", - Privilege: "UpdateWorldTemplate", + AccessLevel: "Read", + Description: "Grants permission to retrieve a specific version of an object", + Privilege: "GetObjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "worldTemplate*", + ResourceType: "object*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:robot-application/${ApplicationName}/${CreatedOnEpoch}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "robotApplication", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:simulation-application/${ApplicationName}/${CreatedOnEpoch}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "simulationApplication", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:simulation-job/${SimulationJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "simulationJob", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:simulation-job-batch/${SimulationJobBatchId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "simulationJobBatch", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:deployment-job/${DeploymentJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "deploymentJob", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:robot/${RobotName}/${CreatedOnEpoch}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "robot", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:deployment-fleet/${FleetName}/${CreatedOnEpoch}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "deploymentFleet", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world-generation-job/${WorldGenerationJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "worldGenerationJob", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world-export-job/${WorldExportJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "worldExportJob", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world-template/${WorldTemplateJobId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "worldTemplate", - }, - { - Arn: "arn:${Partition}:robomaker:${Region}:${Account}:world/${WorldId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "world", - }, - }, - ServiceName: "AWS RoboMaker", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "rolesanywhere", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create a profile", - Privilege: "CreateProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:PassRole", + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a trust anchor", - Privilege: "CreateTrustAnchor", + AccessLevel: "Read", + Description: "Grants permission to return the access control list (ACL) of a specific object version", + Privilege: "GetObjectVersionAcl", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "object*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -227184,184 +272460,333 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a mapping rule from a profile", - Privilege: "DeleteAttributeMapping", + AccessLevel: "Read", + Description: "Grants permission to retrieve attributes related to a specific version of an object", + Privilege: "GetObjectVersionAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a certificate revocation list (crl)", - Privilege: "DeleteCrl", + AccessLevel: "Read", + Description: "Grants permission to replicate both unencrypted objects and objects encrypted with SSE-S3 or SSE-KMS", + Privilege: "GetObjectVersionForReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a profile", - Privilege: "DeleteProfile", + AccessLevel: "Read", + Description: "Grants permission to return the tag set for a specific version of the object", + Privilege: "GetObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a trust anchor", - Privilege: "DeleteTrustAnchor", + AccessLevel: "Read", + Description: "Grants permission to get Torrent files about a different version using the versionId subresource", + Privilege: "GetObjectVersionTorrent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable a certificate revocation list (crl)", - Privilege: "DisableCrl", + AccessLevel: "Read", + Description: "Grants permission to get the replication configuration information set on an Amazon S3 bucket", + Privilege: "GetReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable a profile", - Privilege: "DisableProfile", + AccessLevel: "Read", + Description: "Grants permission to get an Amazon S3 Storage Lens configuration", + Privilege: "GetStorageLensConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "storagelensconfiguration*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable a trust anchor", - Privilege: "DisableTrustAnchor", + AccessLevel: "Read", + Description: "Grants permission to get the tag set of an existing Amazon S3 Storage Lens configuration", + Privilege: "GetStorageLensConfigurationTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "storagelensconfiguration*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable a certificate revocation list (crl)", - Privilege: "EnableCrl", + AccessLevel: "Read", + Description: "Grants permission to get an Amazon S3 Storage Lens dashboard", + Privilege: "GetStorageLensDashboard", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl*", + ResourceType: "storagelensconfiguration*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable a profile", - Privilege: "EnableProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "profile*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable a trust anchor", - Privilege: "EnableTrustAnchor", + AccessLevel: "Read", + Description: "Grants permission to get an Amazon S3 Storage Lens group", + Privilege: "GetStorageLensGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "storagelensgroup*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a certificate revocation list (crl)", - Privilege: "GetCrl", + AccessLevel: "Write", + Description: "Grants permission to initiate the replication process by setting replication status of an object to pending", + Privilege: "InitiateReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:ResourceAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a profile", - Privilege: "GetProfile", + AccessLevel: "List", + Description: "Grants permission to list Access Grant", + Privilege: "ListAccessGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "accessgrantsinstance*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a subject", - Privilege: "GetSubject", + AccessLevel: "List", + Description: "Grants permission to List Access Grants Instances", + Privilege: "ListAccessGrantsInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "subject*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a trust anchor", - Privilege: "GetTrustAnchor", + AccessLevel: "List", + Description: "Grants permission to list Access Grants locations", + Privilege: "ListAccessGrantsLocations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "accessgrantsinstance*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a certificate revocation list (crl)", - Privilege: "ImportCrl", + AccessLevel: "List", + Description: "Grants permission to list access points", + Privilege: "ListAccessPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -227370,11 +272795,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list certificate revocation lists (crls)", - Privilege: "ListCrls", + Description: "Grants permission to list object lambda enabled accesspoints", + Privilege: "ListAccessPointsForObjectLambda", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -227382,11 +272814,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list profiles", - Privilege: "ListProfiles", + Description: "Grants permission to list all buckets owned by the authenticated sender of the request", + Privilege: "ListAllMyBuckets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -227394,105 +272833,216 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list subjects", - Privilege: "ListSubjects", + Description: "Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)", + Privilege: "ListBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:delimiter", + "s3:max-keys", + "s3:prefix", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to list in-progress multipart uploads", + Privilege: "ListBucketMultipartUploads", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list trust anchors", - Privilege: "ListTrustAnchors", + Description: "Grants permission to list metadata about all the versions of objects in an Amazon S3 bucket", + Privilege: "ListBucketVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:delimiter", + "s3:max-keys", + "s3:prefix", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a mapping rule into a profile", - Privilege: "PutAttributeMapping", + AccessLevel: "List", + Description: "Grants permission to list caller's Access Grant", + Privilege: "ListCallerAccessGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "accessgrantsinstance*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach notification settings to a trust anchor", - Privilege: "PutNotificationSettings", + AccessLevel: "List", + Description: "Grants permission to list current jobs and jobs that have ended recently", + Privilege: "ListJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reset custom notification settings to IAM Roles Anywhere defined default state", - Privilege: "ResetNotificationSettings", + AccessLevel: "List", + Description: "Grants permission to list Multi-Region Access Points", + Privilege: "ListMultiRegionAccessPoints", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list the parts that have been uploaded for a specific multipart upload", + Privilege: "ListMultipartUploadParts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "profile", + ResourceType: "object*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "subject", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Amazon S3 Storage Lens configurations", + Privilege: "ListStorageLensConfigurations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "trust-anchor", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list S3 Storage Lens groups", + Privilege: "ListStorageLensGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -227500,33 +273050,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list the tags attached to the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl", + ResourceType: "accessgrant", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", + ResourceType: "accessgrantsinstance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "subject", + ResourceType: "accessgrantslocation", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trust-anchor", + ResourceType: "storagelensgroup", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -227534,149 +273089,127 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a certificate revocation list (crl)", - Privilege: "UpdateCrl", + AccessLevel: "Permissions management", + Description: "Grants permission to change replica ownership", + Privilege: "ObjectOwnerOverrideToBucketOwner", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "crl*", + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a profile", - Privilege: "UpdateProfile", + Description: "Grants permission to pause S3 Replication from target source buckets to destination buckets", + Privilege: "PauseReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "s3:GetReplicationConfiguration", + "s3:PutReplicationConfiguration", }, - ResourceType: "profile*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a trust anchor", - Privilege: "UpdateTrustAnchor", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:destinationRegion", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "trust-anchor*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:trust-anchor/${TrustAnchorId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "trust-anchor", - }, - { - Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:profile/${ProfileId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "profile", - }, - { - Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:subject/${SubjectId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "subject", - }, - { - Arn: "arn:${Partition}:rolesanywhere:${Region}:${Account}:crl/${CrlId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "crl", - }, - }, - ServiceName: "AWS Identity and Access Management Roles Anywhere", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "route53:ChangeResourceRecordSetsActions", - Description: "Filters access by the change actions, CREATE, UPSERT, or DELETE, in a ChangeResourceRecordSets request", - Type: "ArrayOfString", - }, - { - Condition: "route53:ChangeResourceRecordSetsNormalizedRecordNames", - Description: "Filters access by the normalized DNS record names in a ChangeResourceRecordSets request", - Type: "ArrayOfString", - }, - { - Condition: "route53:ChangeResourceRecordSetsRecordTypes", - Description: "Filters access by the DNS record types in a ChangeResourceRecordSets request", - Type: "ArrayOfString", - }, - }, - Prefix: "route53", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to activate a key-signing key so that it can be used for signing by DNSSEC", - Privilege: "ActivateKeySigningKey", + Description: "Grants permission to use the accelerate subresource to set the Transfer Acceleration state of an existing S3 bucket", + Privilege: "PutAccelerateConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to associate an additional Amazon VPC with a private hosted zone", - Privilege: "AssociateVPCWithHostedZone", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "hostedzone", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or delete CIDR blocks within a CIDR collection", - Privilege: "ChangeCidrCollection", + Description: "Grants permission to put Access grants instance resource policy", + Privilege: "PutAccessGrantsInstanceResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cidrcollection*", + ResourceType: "accessgrantsinstance*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create, update, or delete a record, which contains authoritative DNS information for a specified domain or subdomain name", - Privilege: "ChangeResourceRecordSets", + Description: "Grants permission to set the configuration of the object lambda enabled access point", + Privilege: "PutAccessPointConfigurationForObjectLambda", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "route53:ChangeResourceRecordSetsNormalizedRecordNames", - "route53:ChangeResourceRecordSetsRecordTypes", - "route53:ChangeResourceRecordSetsActions", + "s3:DataAccessPointArn", + "s3:DataAccessPointAccount", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -227684,38 +273217,63 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add, edit, or delete tags for a health check or a hosted zone", - Privilege: "ChangeTagsForResource", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access policy with a specified access point", + Privilege: "PutAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck*", + ResourceType: "accesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new CIDR collection", - Privilege: "CreateCidrCollection", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access policy with a specified object lambda enabled access point", + Privilege: "PutAccessPointPolicyForObjectLambda", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new health check, which monitors the health and performance of your web applications, web servers, and other resources", - Privilege: "CreateHealthCheck", + AccessLevel: "Permissions management", + Description: "Grants permission to associate public access block configurations with a specified access point, while creating a access point", + Privilege: "PutAccessPointPublicAccessBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -227725,729 +273283,1036 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a public hosted zone, which you use to specify how the Domain Name System (DNS) routes traffic on the Internet for a domain, such as example.com, and its subdomains", - Privilege: "CreateHostedZone", + AccessLevel: "Permissions management", + Description: "Grants permission to create or modify the PublicAccessBlock configuration for an AWS account", + Privilege: "PutAccountPublicAccessBlock", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new key-signing key associated with a hosted zone", - Privilege: "CreateKeySigningKey", + Description: "Grants permission to set an analytics configuration for the bucket, specified by the analytics configuration ID", + Privilege: "PutAnalyticsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a configuration for DNS query logging", - Privilege: "CreateQueryLoggingConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a delegation set (a group of four name servers) that can be reused by multiple hosted zones", - Privilege: "CreateReusableDelegationSet", + AccessLevel: "Permissions management", + Description: "Grants permission to set the permissions on an existing bucket using access control lists (ACLs)", + Privilege: "PutBucketAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + "s3:x-amz-grant-full-control", + "s3:x-amz-grant-read", + "s3:x-amz-grant-read-acp", + "s3:x-amz-grant-write", + "s3:x-amz-grant-write-acp", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic policy, which you use to create multiple DNS records for one domain name (such as example.com) or one subdomain name (such as www.example.com)", - Privilege: "CreateTrafficPolicy", + Description: "Grants permission to set the CORS configuration for an Amazon S3 bucket", + Privilege: "PutBucketCORS", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create records in a specified hosted zone based on the settings in a specified traffic policy version", - Privilege: "CreateTrafficPolicyInstance", + Description: "Grants permission to set the logging parameters for an Amazon S3 bucket", + Privilege: "PutBucketLogging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new version of an existing traffic policy", - Privilege: "CreateTrafficPolicyVersion", + Description: "Grants permission to receive notifications when certain events happen in an Amazon S3 bucket", + Privilege: "PutBucketNotification", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to authorize the AWS account that created a specified VPC to submit an AssociateVPCWithHostedZone request, which associates the VPC with a specified hosted zone that was created by a different account", - Privilege: "CreateVPCAssociationAuthorization", + Description: "Grants permission to put Object Lock configuration on a specific bucket", + Privilege: "PutBucketObjectLockConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:TlsVersion", + "s3:signatureversion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate a key-signing key so that it will not be used for signing by DNSSEC", - Privilege: "DeactivateKeySigningKey", + AccessLevel: "Permissions management", + Description: "Grants permission to add, replace or delete ownership controls on a bucket", + Privilege: "PutBucketOwnershipControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a CIDR collection", - Privilege: "DeleteCidrCollection", + AccessLevel: "Permissions management", + Description: "Grants permission to add or replace a bucket policy on a bucket", + Privilege: "PutBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cidrcollection*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a health check", - Privilege: "DeleteHealthCheck", + AccessLevel: "Permissions management", + Description: "Grants permission to create or modify the PublicAccessBlock configuration for a specific Amazon S3 bucket", + Privilege: "PutBucketPublicAccessBlock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a hosted zone", - Privilege: "DeleteHostedZone", + Description: "Grants permission to set the request payment configuration of a bucket", + Privilege: "PutBucketRequestPayment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a key-signing key", - Privilege: "DeleteKeySigningKey", + AccessLevel: "Tagging", + Description: "Grants permission to add a set of tags to an existing Amazon S3 bucket", + Privilege: "PutBucketTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a configuration for DNS query logging", - Privilege: "DeleteQueryLoggingConfig", + Description: "Grants permission to set the versioning state of an existing Amazon S3 bucket", + Privilege: "PutBucketVersioning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queryloggingconfig*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a reusable delegation set", - Privilege: "DeleteReusableDelegationSet", + Description: "Grants permission to set the configuration of the website that is specified in the website subresource", + Privilege: "PutBucketWebsite", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delegationset*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic policy", - Privilege: "DeleteTrafficPolicy", + Description: "Grants permission to set the encryption configuration for an Amazon S3 bucket", + Privilege: "PutEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic policy instance and all the records that Route 53 created when you created the instance", - Privilege: "DeleteTrafficPolicyInstance", + Description: "Grants permission to create new or update or delete an existing Amazon S3 Intelligent Tiering configuration", + Privilege: "PutIntelligentTieringConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicyinstance*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove authorization for associating an Amazon Virtual Private Cloud with a Route 53 private hosted zone", - Privilege: "DeleteVPCAssociationAuthorization", + Description: "Grants permission to add an inventory configuration to the bucket, identified by the inventory ID", + Privilege: "PutInventoryConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:InventoryAccessibleOptionalFields", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable DNSSEC signing in a specific hosted zone", - Privilege: "DisableHostedZoneDNSSEC", + AccessLevel: "Tagging", + Description: "Grants permission to replace tags on an existing Amazon S3 Batch Operations job", + Privilege: "PutJobTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "job*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate an Amazon Virtual Private Cloud from a Route 53 private hosted zone", - Privilege: "DisassociateVPCFromHostedZone", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:ExistingJobPriority", + "s3:ExistingJobOperation", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - ResourceType: "hostedzone", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable DNSSEC signing in a specific hosted zone", - Privilege: "EnableHostedZoneDNSSEC", + Description: "Grants permission to create a new lifecycle configuration for the bucket or replace an existing lifecycle configuration", + Privilege: "PutLifecycleConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the specified limit for the current account, for example, the maximum number of health checks that you can create using the account", - Privilege: "GetAccountLimit", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the current status of a request to create, update, or delete one or more records", - Privilege: "GetChange", + AccessLevel: "Write", + Description: "Grants permission to set or update a metrics configuration for the CloudWatch request metrics from an Amazon S3 bucket", + Privilege: "PutMetricsConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "change*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of the IP ranges that are used by Route 53 health checkers to check the health of your resources", - Privilege: "GetCheckerIpRanges", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about DNSSEC for a specific hosted zone, including the key-signing keys in the hosted zone", - Privilege: "GetDNSSEC", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access policy with a specified Multi-Region Access Point", + Privilege: "PutMultiRegionAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "multiregionaccesspoint*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about whether a specified geographic location is supported for Route 53 geolocation records", - Privilege: "GetGeoLocation", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified health check", - Privilege: "GetHealthCheck", + AccessLevel: "Write", + Description: "Grants permission to add an object to a bucket", + Privilege: "PutObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get the number of health checks that are associated with the current AWS account", - Privilege: "GetHealthCheckCount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:RequestObjectTag/", + "s3:RequestObjectTagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + "s3:x-amz-copy-source", + "s3:x-amz-grant-full-control", + "s3:x-amz-grant-read", + "s3:x-amz-grant-read-acp", + "s3:x-amz-grant-write", + "s3:x-amz-grant-write-acp", + "s3:x-amz-metadata-directive", + "s3:x-amz-server-side-encryption", + "s3:x-amz-server-side-encryption-aws-kms-key-id", + "s3:x-amz-server-side-encryption-customer-algorithm", + "s3:x-amz-storage-class", + "s3:x-amz-website-redirect-location", + "s3:object-lock-mode", + "s3:object-lock-retain-until-date", + "s3:object-lock-remaining-retention-days", + "s3:object-lock-legal-hold", + "s3:if-match", + "s3:if-none-match", + "s3:ObjectCreationOperation", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the reason that a specified health check failed most recently", - Privilege: "GetHealthCheckLastFailureReason", + AccessLevel: "Permissions management", + Description: "Grants permission to set the access control list (ACL) permissions for new or existing objects in an S3 bucket", + Privilege: "PutObjectAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get the status of a specified health check", - Privilege: "GetHealthCheckStatus", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + "s3:x-amz-grant-full-control", + "s3:x-amz-grant-read", + "s3:x-amz-grant-read-acp", + "s3:x-amz-grant-write", + "s3:x-amz-grant-write-acp", + "s3:x-amz-storage-class", + }, DependentActions: []string{}, - ResourceType: "healthcheck*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a specified hosted zone including the four name servers that Route 53 assigned to the hosted zone", - Privilege: "GetHostedZone", + AccessLevel: "Write", + Description: "Grants permission to apply a Legal Hold configuration to the specified object", + Privilege: "PutObjectLegalHold", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get the number of hosted zones that are associated with the current AWS account", - Privilege: "GetHostedZoneCount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:object-lock-legal-hold", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the specified limit for a specified hosted zone", - Privilege: "GetHostedZoneLimit", + AccessLevel: "Write", + Description: "Grants permission to place an Object Retention configuration on an object", + Privilege: "PutObjectRetention", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified configuration for DNS query logging", - Privilege: "GetQueryLoggingConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:object-lock-mode", + "s3:object-lock-retain-until-date", + "s3:object-lock-remaining-retention-days", + }, DependentActions: []string{}, - ResourceType: "queryloggingconfig*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about a specified reusable delegation set, including the four name servers that are assigned to the delegation set", - Privilege: "GetReusableDelegationSet", + AccessLevel: "Tagging", + Description: "Grants permission to set the supplied tag-set to an object that already exists in a bucket", + Privilege: "PutObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "delegationset*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the maximum number of hosted zones that you can associate with the specified reusable delegation set", - Privilege: "GetReusableDelegationSetLimit", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:RequestObjectTag/", + "s3:RequestObjectTagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "delegationset*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified traffic policy version", - Privilege: "GetTrafficPolicy", + AccessLevel: "Permissions management", + Description: "Grants permission to use the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket", + Privilege: "PutObjectVersionAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified traffic policy instance", - Privilege: "GetTrafficPolicyInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:AccessGrantsInstanceArn", + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-acl", + "s3:x-amz-content-sha256", + "s3:x-amz-grant-full-control", + "s3:x-amz-grant-read", + "s3:x-amz-grant-read-acp", + "s3:x-amz-grant-write", + "s3:x-amz-grant-write-acp", + "s3:x-amz-storage-class", + }, DependentActions: []string{}, - ResourceType: "trafficpolicyinstance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the number of traffic policy instances that are associated with the current AWS account", - Privilege: "GetTrafficPolicyInstanceCount", + AccessLevel: "Tagging", + Description: "Grants permission to set the supplied tag-set for a specific version of an object", + Privilege: "PutObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:ExistingObjectTag/", + "s3:RequestObjectTag/", + "s3:RequestObjectTagKeys", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:versionid", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of the CIDR blocks within a specified CIDR collection", - Privilege: "ListCidrBlocks", + AccessLevel: "Write", + Description: "Grants permission to create a new replication configuration or replace an existing one", + Privilege: "PutReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:isReplicationPauseRequest", + }, DependentActions: []string{}, - ResourceType: "cidrcollection*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of the CIDR collections that are associated with the current AWS account", - Privilege: "ListCidrCollections", + AccessLevel: "Write", + Description: "Grants permission to create or update an Amazon S3 Storage Lens configuration", + Privilege: "PutStorageLensConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of the CIDR locations that belong to a specified CIDR collection", - Privilege: "ListCidrLocations", + AccessLevel: "Tagging", + Description: "Grants permission to put or replace tags on an existing Amazon S3 Storage Lens configuration", + Privilege: "PutStorageLensConfigurationTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cidrcollection*", + ResourceType: "storagelensconfiguration*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a list of geographic locations that Route 53 supports for geolocation", - Privilege: "ListGeoLocations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of the health checks that are associated with the current AWS account", - Privilege: "ListHealthChecks", + AccessLevel: "Write", + Description: "Grants permission to replicate delete markers to the destination bucket", + Privilege: "ReplicateDelete", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of the public and private hosted zones that are associated with the current AWS account", - Privilege: "ListHostedZones", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of your hosted zones in lexicographic order. Hosted zones are sorted by name with the labels reversed, for example, com.example.www", - Privilege: "ListHostedZonesByName", + AccessLevel: "Write", + Description: "Grants permission to replicate objects and object tags to the destination bucket", + Privilege: "ReplicateObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of all the private hosted zones that a specified VPC is associated with", - Privilege: "ListHostedZonesByVPC", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:x-amz-server-side-encryption", + "s3:x-amz-server-side-encryption-aws-kms-key-id", + "s3:x-amz-server-side-encryption-customer-algorithm", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the configurations for DNS query logging that are associated with the current AWS account or the configuration that is associated with a specified hosted zone", - Privilege: "ListQueryLoggingConfigs", + AccessLevel: "Tagging", + Description: "Grants permission to replicate object tags to the destination bucket", + Privilege: "ReplicateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the records in a specified hosted zone", - Privilege: "ListResourceRecordSets", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the reusable delegation sets that are associated with the current AWS account.", - Privilege: "ListReusableDelegationSets", + AccessLevel: "Write", + Description: "Grants permission to restore an archived copy of an object back into Amazon S3", + Privilege: "RestoreObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for one health check or hosted zone", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to submit a route configuration update for a Multi-Region Access Point", + Privilege: "SubmitMultiRegionAccessPointRoutes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck", + ResourceType: "multiregionaccesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:DataAccessPointAccount", + "s3:DataAccessPointArn", + "s3:AccessPointNetworkOrigin", + "s3:authType", + "s3:ResourceAccount", + "s3:signatureversion", + "s3:signatureAge", + "s3:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "hostedzone", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags for up to 10 health checks or hosted zones", - Privilege: "ListTagsForResources", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck", + ResourceType: "accessgrant", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone", + ResourceType: "accessgrantsinstance", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about the latest version for every traffic policy that is associated with the current AWS account. Policies are listed in the order in which they were created", - Privilege: "ListTrafficPolicies", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accessgrantslocation", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about the traffic policy instances that you created by using the current AWS account", - Privilege: "ListTrafficPolicyInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "storagelensgroup", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get information about the traffic policy instances that you created in a specified hosted zone", - Privilege: "ListTrafficPolicyInstancesByHostedZone", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "accessgrant", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about the traffic policy instances that you created using a specified traffic policy version", - Privilege: "ListTrafficPolicyInstancesByPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "accessgrantsinstance", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get information about all the versions for a specified traffic policy", - Privilege: "ListTrafficPolicyVersions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "accessgrantslocation", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to get a list of the VPCs that were created by other accounts and that can be associated with a specified hosted zone", - Privilege: "ListVPCAssociationAuthorizations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "storagelensgroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the value that Route 53 returns in response to a DNS query for a specified record name and type", - Privilege: "TestDNSAnswer", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -228455,149 +274320,278 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an existing health check", - Privilege: "UpdateHealthCheck", + Description: "Grants permission to update Access Grants location", + Privilege: "UpdateAccessGrantsLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "healthcheck*", + ResourceType: "accessgrantslocation*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the comment for a specified hosted zone", - Privilege: "UpdateHostedZoneComment", + Description: "Grants permission to update the priority of an existing job", + Privilege: "UpdateJobPriority", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hostedzone*", + ResourceType: "job*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:RequestJobPriority", + "s3:ExistingJobPriority", + "s3:ExistingJobOperation", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the comment for a specified traffic policy version", - Privilege: "UpdateTrafficPolicyComment", + Description: "Grants permission to update the status for the specified job", + Privilege: "UpdateJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicy*", + ResourceType: "job*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + "s3:ExistingJobPriority", + "s3:ExistingJobOperation", + "s3:JobSuspendedCause", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the records in a specified hosted zone that were created based on the settings in a specified traffic policy version", - Privilege: "UpdateTrafficPolicyInstance", + Description: "Grants permission to update an existing S3 Storage Lens group", + Privilege: "UpdateStorageLensGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "trafficpolicyinstance*", + ResourceType: "storagelensgroup*", + }, + { + ConditionKeys: []string{ + "s3:authType", + "s3:ResourceAccount", + "s3:signatureAge", + "s3:signatureversion", + "s3:TlsVersion", + "s3:x-amz-content-sha256", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:route53:::cidrcollection/${Id}", + Arn: "arn:${Partition}:s3:${Region}:${Account}:accesspoint/${AccessPointName}", ConditionKeys: []string{}, - Resource: "cidrcollection", + Resource: "accesspoint", }, { - Arn: "arn:${Partition}:route53:::change/${Id}", + Arn: "arn:${Partition}:s3:::${BucketName}", ConditionKeys: []string{}, - Resource: "change", + Resource: "bucket", }, { - Arn: "arn:${Partition}:route53:::delegationset/${Id}", + Arn: "arn:${Partition}:s3:::${BucketName}/${ObjectName}", ConditionKeys: []string{}, - Resource: "delegationset", + Resource: "object", }, { - Arn: "arn:${Partition}:route53:::healthcheck/${Id}", - ConditionKeys: []string{}, - Resource: "healthcheck", + Arn: "arn:${Partition}:s3:${Region}:${Account}:job/${JobId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "job", }, { - Arn: "arn:${Partition}:route53:::hostedzone/${Id}", - ConditionKeys: []string{}, - Resource: "hostedzone", + Arn: "arn:${Partition}:s3:${Region}:${Account}:storage-lens/${ConfigId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "storagelensconfiguration", }, { - Arn: "arn:${Partition}:route53:::trafficpolicy/${Id}", - ConditionKeys: []string{}, - Resource: "trafficpolicy", + Arn: "arn:${Partition}:s3:${Region}:${Account}:storage-lens-group/${Name}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "storagelensgroup", }, { - Arn: "arn:${Partition}:route53:::trafficpolicyinstance/${Id}", + Arn: "arn:${Partition}:s3-object-lambda:${Region}:${Account}:accesspoint/${AccessPointName}", ConditionKeys: []string{}, - Resource: "trafficpolicyinstance", + Resource: "objectlambdaaccesspoint", }, { - Arn: "arn:${Partition}:route53:::queryloggingconfig/${Id}", + Arn: "arn:${Partition}:s3::${Account}:accesspoint/${AccessPointAlias}", ConditionKeys: []string{}, - Resource: "queryloggingconfig", + Resource: "multiregionaccesspoint", }, { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:vpc/${VpcId}", + Arn: "arn:${Partition}:s3:us-west-2:${Account}:async-request/mrap/${Operation}/${Token}", ConditionKeys: []string{}, - Resource: "vpc", + Resource: "multiregionaccesspointrequestarn", + }, + { + Arn: "arn:${Partition}:s3:${Region}:${Account}:access-grants/default", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "accessgrantsinstance", + }, + { + Arn: "arn:${Partition}:s3:${Region}:${Account}:access-grants/default/location/${Token}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "accessgrantslocation", + }, + { + Arn: "arn:${Partition}:s3:${Region}:${Account}:access-grants/default/grant/${Token}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + Resource: "accessgrant", }, }, - ServiceName: "Amazon Route 53", + ServiceName: "Amazon S3", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "route53-recovery-cluster:AllowSafetyRulesOverrides", - Description: "Override safety rules to allow routing control state updates", - Type: "Bool", + Condition: "s3-object-lambda:TlsVersion", + Description: "Filters access by the TLS version used by the client", + Type: "Numeric", + }, + { + Condition: "s3-object-lambda:authType", + Description: "Filters access by authentication method", + Type: "String", + }, + { + Condition: "s3-object-lambda:signatureAge", + Description: "Filters access by the age in milliseconds of the request signature", + Type: "Numeric", + }, + { + Condition: "s3-object-lambda:versionid", + Description: "Filters access by a specific object version", + Type: "String", }, }, - Prefix: "route53-recovery-cluster", + Prefix: "s3-object-lambda", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to get a routing control state", - Privilege: "GetRoutingControlState", + AccessLevel: "Write", + Description: "Grants permission to abort a multipart upload", + Privilege: "AbortMultipartUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list routing controls", - Privilege: "ListRoutingControls", + AccessLevel: "Write", + Description: "Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object", + Privilege: "DeleteObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a routing control state", - Privilege: "UpdateRoutingControlState", + AccessLevel: "Tagging", + Description: "Grants permission to use the tagging subresource to remove the entire tag set from the specified object", + Privilege: "DeleteObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "route53-recovery-cluster:AllowSafetyRulesOverrides", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", }, DependentActions: []string{}, ResourceType: "", @@ -228606,67 +274600,147 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a batch of routing control states", - Privilege: "UpdateRoutingControlStates", + Description: "Grants permission to remove a specific version of an object", + Privilege: "DeleteObjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "route53-recovery-cluster:AllowSafetyRulesOverrides", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}/routingcontrol/${RoutingControlId}", - ConditionKeys: []string{}, - Resource: "routingcontrol", + AccessLevel: "Tagging", + Description: "Grants permission to remove the entire tag set for a specific version of the object", + Privilege: "DeleteObjectVersionTagging", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - ServiceName: "Amazon Route 53 Recovery Cluster", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to retrieve objects from Amazon S3", + Privilege: "GetObject", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to return the access control list (ACL) of an object", + Privilege: "GetObjectAcl", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", + AccessLevel: "Read", + Description: "Grants permission to get an object's current Legal Hold status", + Privilege: "GetObjectLegalHold", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - Prefix: "route53-recovery-control-config", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a cluster", - Privilege: "CreateCluster", + AccessLevel: "Read", + Description: "Grants permission to retrieve the retention settings for an object", + Privilege: "GetObjectRetention", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the tag set of an object", + Privilege: "GetObjectTagging", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", }, DependentActions: []string{}, ResourceType: "", @@ -228674,19 +274748,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a control panel", - Privilege: "CreateControlPanel", + AccessLevel: "Read", + Description: "Grants permission to retrieve a specific version of an object", + Privilege: "GetObjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "controlpanel*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", }, DependentActions: []string{}, ResourceType: "", @@ -228694,31 +274770,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a routing control", - Privilege: "CreateRoutingControl", + AccessLevel: "Read", + Description: "Grants permission to return the access control list (ACL) of a specific object version", + Privilege: "GetObjectVersionAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a safety rule", - Privilege: "CreateSafetyRule", + AccessLevel: "Read", + Description: "Grants permission to return the tag set for a specific version of the object", + Privilege: "GetObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "safetyrule*", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", }, DependentActions: []string{}, ResourceType: "", @@ -228726,192 +274814,168 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a cluster", - Privilege: "DeleteCluster", + AccessLevel: "List", + Description: "Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)", + Privilege: "ListBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a control panel", - Privilege: "DeleteControlPanel", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "controlpanel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a routing control", - Privilege: "DeleteRoutingControl", + AccessLevel: "List", + Description: "Grants permission to list in-progress multipart uploads", + Privilege: "ListBucketMultipartUploads", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a safety rule", - Privilege: "DeleteSafetyRule", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "safetyrule*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a cluster", - Privilege: "DescribeCluster", + AccessLevel: "List", + Description: "Grants permission to list metadata about all the versions of objects in an Amazon S3 bucket", + Privilege: "ListBucketVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a control panel", - Privilege: "DescribeControlPanel", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "controlpanel*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a routing control", - Privilege: "DescribeRoutingControl", + AccessLevel: "List", + Description: "Grants permission to list the parts that have been uploaded for a specific multipart upload", + Privilege: "ListMultipartUploadParts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a routing control", - Privilege: "DescribeRoutingControlByName", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a safety rule", - Privilege: "DescribeSafetyRule", + AccessLevel: "Write", + Description: "Grants permission to add an object to a bucket", + Privilege: "PutObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "safetyrule*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the resource policy of a cluster", - Privilege: "GetResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list associated Route 53 health checks", - Privilege: "ListAssociatedRoute53HealthChecks", + AccessLevel: "Permissions management", + Description: "Grants permission to set the access control list (ACL) permissions for new or existing objects in an S3 bucket", + Privilege: "PutObjectAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list clusters", - Privilege: "ListClusters", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list control panels", - Privilege: "ListControlPanels", + AccessLevel: "Write", + Description: "Grants permission to apply a Legal Hold configuration to the specified object", + Privilege: "PutObjectLegalHold", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list routing controls", - Privilege: "ListRoutingControls", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list safety rules", - Privilege: "ListSafetyRules", + AccessLevel: "Write", + Description: "Grants permission to place an Object Retention configuration on an object", + Privilege: "PutObjectRetention", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "controlpanel*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -228919,28 +274983,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + Description: "Grants permission to set the supplied tag-set to an object that already exists in a bucket", + Privilege: "PutObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "objectlambdaaccesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "controlpanel", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to use the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket", + Privilege: "PutObjectVersionAcl", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "safetyrule", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", }, DependentActions: []string{}, ResourceType: "", @@ -228949,28 +275026,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + Description: "Grants permission to set the supplied tag-set for a specific version of an object", + Privilege: "PutObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "controlpanel", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "safetyrule", + ResourceType: "objectlambdaaccesspoint*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + "s3-object-lambda:versionid", }, DependentActions: []string{}, ResourceType: "", @@ -228979,105 +275048,175 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a cluster", - Privilege: "UpdateControlPanel", + Description: "Grants permission to restore an archived copy of an object back into Amazon S3", + Privilege: "RestoreObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "controlpanel*", + ResourceType: "objectlambdaaccesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a routing control", - Privilege: "UpdateRoutingControl", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, DependentActions: []string{}, - ResourceType: "routingcontrol*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a safety rule", - Privilege: "UpdateSafetyRule", + Description: "Grants permission to provide data for GetObject requests send to S3 Object Lambda", + Privilege: "WriteGetObjectResponse", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "safetyrule*", + ResourceType: "objectlambdaaccesspoint*", + }, + { + ConditionKeys: []string{ + "s3-object-lambda:authType", + "s3-object-lambda:signatureAge", + "s3-object-lambda:TlsVersion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:route53-recovery-control::${Account}:cluster/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cluster", + Arn: "arn:${Partition}:s3-object-lambda:${Region}:${Account}:accesspoint/${AccessPointName}", + ConditionKeys: []string{}, + Resource: "objectlambdaaccesspoint", }, + }, + ServiceName: "Amazon S3 Object Lambda", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "controlpanel", + Condition: "s3-outposts:AccessPointNetworkOrigin", + Description: "Filters access by the network origin (Internet or VPC)", + Type: "String", }, { - Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}/routingcontrol/${RoutingControlId}", - ConditionKeys: []string{}, - Resource: "routingcontrol", + Condition: "s3-outposts:DataAccessPointAccount", + Description: "Filters access by the AWS Account ID that owns the access point", + Type: "String", }, { - Arn: "arn:${Partition}:route53-recovery-control::${Account}:controlpanel/${ControlPanelId}/safetyrule/${SafetyRuleId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "safetyrule", + Condition: "s3-outposts:DataAccessPointArn", + Description: "Filters access by an access point Amazon Resource Name (ARN)", + Type: "ARN", }, - }, - ServiceName: "Amazon Route 53 Recovery Controls", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", + Condition: "s3-outposts:ExistingObjectTag/", + Description: "Filters access by requiring that an existing object tag has a specific tag key and value", Type: "String", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Condition: "s3-outposts:RequestObjectTag/", + Description: "Filters access by restricting the tag keys and values allowed on objects", Type: "String", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + Condition: "s3-outposts:RequestObjectTagKeys", + Description: "Filters access by restricting the tag keys allowed on objects", + Type: "String", + }, + { + Condition: "s3-outposts:authType", + Description: "Filters access by restricting incoming requests to a specific authentication method", + Type: "String", + }, + { + Condition: "s3-outposts:delimiter", + Description: "Filters access by requiring the delimiter parameter", + Type: "String", + }, + { + Condition: "s3-outposts:max-keys", + Description: "Filters access by limiting the maximum number of keys returned in a ListBucket request", + Type: "Numeric", + }, + { + Condition: "s3-outposts:prefix", + Description: "Filters access by key name prefix", + Type: "String", + }, + { + Condition: "s3-outposts:signatureAge", + Description: "Filters access by identifying the length of time, in milliseconds, that a signature is valid in an authenticated request", + Type: "Numeric", + }, + { + Condition: "s3-outposts:signatureversion", + Description: "Filters access by identifying the version of AWS Signature that is supported for authenticated requests", + Type: "String", + }, + { + Condition: "s3-outposts:versionid", + Description: "Filters access by a specific object version", + Type: "String", + }, + { + Condition: "s3-outposts:x-amz-acl", + Description: "Filters access by requiring the x-amz-acl header with a specific canned ACL in a request", + Type: "String", + }, + { + Condition: "s3-outposts:x-amz-content-sha256", + Description: "Filters access by disallowing unsigned content in your bucket", + Type: "String", + }, + { + Condition: "s3-outposts:x-amz-copy-source", + Description: "Filters access by restricting the copy source to a specific bucket, prefix, or object", + Type: "String", + }, + { + Condition: "s3-outposts:x-amz-metadata-directive", + Description: "Filters access by enabling enforcement of object metadata behavior (COPY or REPLACE) when objects are copied", + Type: "String", + }, + { + Condition: "s3-outposts:x-amz-server-side-encryption", + Description: "Filters access by requiring server-side encryption", + Type: "String", + }, + { + Condition: "s3-outposts:x-amz-storage-class", + Description: "Filters access by storage class", + Type: "String", }, }, - Prefix: "route53-recovery-readiness", + Prefix: "s3-outposts", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a new cell", - Privilege: "CreateCell", + Description: "Grants permission to abort a multipart upload", + Privilege: "AbortMultipartUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell*", + ResourceType: "object*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3-outposts:DataAccessPointArn", + "s3-outposts:DataAccessPointAccount", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229086,30 +275225,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a cross account authorization", - Privilege: "CreateCrossAccountAuthorization", + Description: "Grants permission to create a new access point", + Privilege: "CreateAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "accesspoint*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a readiness check", - Privilege: "CreateReadinessCheck", + Description: "Grants permission to create a new bucket", + Privilege: "CreateBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readinesscheck*", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229118,38 +275272,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a recovery group", - Privilege: "CreateRecoveryGroup", + Description: "Grants permission to create a new endpoint", + Privilege: "CreateEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recoverygroup*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a resource set", - Privilege: "CreateResourceSet", + Description: "Grants permission to delete the access point named in the URI", + Privilege: "DeleteAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceset*", + ResourceType: "accesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3-outposts:DataAccessPointArn", + "s3-outposts:DataAccessPointAccount", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229157,24 +275308,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a cell", - Privilege: "DeleteCell", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified access point", + Privilege: "DeleteAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell*", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a cross account authorization", - Privilege: "DeleteCrossAccountAuthorization", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointArn", + "s3-outposts:DataAccessPointAccount", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229182,155 +275334,159 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a readiness check", - Privilege: "DeleteReadinessCheck", + Description: "Grants permission to delete the bucket named in the URI", + Privilege: "DeleteBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readinesscheck*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a recovery group", - Privilege: "DeleteRecoveryGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "recoverygroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a resource set", - Privilege: "DeleteResourceSet", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified bucket", + Privilege: "DeleteBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceset*", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get architecture recommendations for a recovery group", - Privilege: "GetArchitectureRecommendations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "recoverygroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a cell", - Privilege: "GetCell", + AccessLevel: "Write", + Description: "Grants permission to delete the endpoint named in the URI", + Privilege: "DeleteEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell*", + ResourceType: "endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a readiness summary for a cell", - Privilege: "GetCellReadinessSummary", + AccessLevel: "Write", + Description: "Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object", + Privilege: "DeleteObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a readiness check", - Privilege: "GetReadinessCheck", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "readinesscheck*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the readiness status for an individual resource", - Privilege: "GetReadinessCheckResourceStatus", + AccessLevel: "Tagging", + Description: "Grants permission to use the tagging subresource to remove the entire tag set from the specified object", + Privilege: "DeleteObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readinesscheck*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the status of a readiness check (for a resource set)", - Privilege: "GetReadinessCheckStatus", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "readinesscheck*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a recovery group", - Privilege: "GetRecoveryGroup", + AccessLevel: "Write", + Description: "Grants permission to remove a specific version of an object", + Privilege: "DeleteObjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recoverygroup*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a readiness summary for a recovery group", - Privilege: "GetRecoveryGroupReadinessSummary", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:versionid", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "recoverygroup*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a resource set", - Privilege: "GetResourceSet", + AccessLevel: "Tagging", + Description: "Grants permission to remove the entire tag set for a specific version of the object", + Privilege: "DeleteObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceset*", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list cells", - Privilege: "ListCells", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:versionid", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229338,11 +275494,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list cross account authorizations", - Privilege: "ListCrossAccountAuthorizations", + Description: "Grants permission to return configuration information about the specified access point", + Privilege: "GetAccessPoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229350,23 +275514,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list readiness checks", - Privilege: "ListReadinessChecks", + Description: "Grants permission to returns the access point policy associated with the specified access point", + Privilege: "GetAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list recovery groups", - Privilege: "ListRecoveryGroups", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229374,23 +275539,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list resource sets", - Privilege: "ListResourceSets", + Description: "Grants permission to return the bucket configuration associated with an Amazon S3 bucket", + Privilege: "GetBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list readiness rules", - Privilege: "ListRules", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229398,45 +275561,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a resource", - Privilege: "ListTagsForResources", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add a tag to a resource", - Privilege: "TagResource", + Description: "Grants permission to return the policy of the specified bucket", + Privilege: "GetBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "readinesscheck", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "recoverygroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resourceset", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229444,34 +275582,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to return the tag set associated with an Amazon S3 bucket", + Privilege: "GetBucketTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "readinesscheck", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "recoverygroup", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "resourceset", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229479,18 +275604,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a cell", - Privilege: "UpdateCell", + AccessLevel: "Read", + Description: "Grants permission to return the versioning state of an Amazon S3 bucket", + Privilege: "GetBucketVersioning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cell*", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229498,18 +275626,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a readiness check", - Privilege: "UpdateReadinessCheck", + AccessLevel: "Read", + Description: "Grants permission to return the lifecycle configuration information set on an Amazon S3 bucket", + Privilege: "GetLifecycleConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "readinesscheck*", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229517,18 +275648,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a recovery group", - Privilege: "UpdateRecoveryGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve objects from Amazon S3", + Privilege: "GetObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "recoverygroup*", + ResourceType: "object*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -229536,92 +275674,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a resource set", - Privilege: "UpdateResourceSet", + AccessLevel: "Read", + Description: "Grants permission to return the tag set of an object", + Privilege: "GetObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourceset*", + ResourceType: "object*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:readiness-check/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "readinesscheck", - }, - { - Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:resource-set/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resourceset", - }, - { - Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:cell/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "cell", - }, - { - Arn: "arn:${Partition}:route53-recovery-readiness::${Account}:recovery-group/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "recoverygroup", - }, - }, - ServiceName: "Amazon Route 53 Recovery Readiness", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "route53domains", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to accept the transfer of a domain from another AWS account to the current AWS account", - Privilege: "AcceptDomainTransferFromAnotherAwsAccount", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, { - AccessLevel: "Write", - Description: "Grants permission to associate a new delegation signer to a domain", - Privilege: "AssociateDelegationSignerToDomain", + AccessLevel: "Read", + Description: "Grants permission to retrieve a specific version of an object", + Privilege: "GetObjectVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel the transfer of a domain from the current AWS account to another AWS account", - Privilege: "CancelDomainTransferToAnotherAwsAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:versionid", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229629,152 +275728,187 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to check the availability of one domain name", - Privilege: "CheckDomainAvailability", + Description: "Grants permission to replicate both unencrypted objects and objects encrypted with SSE-KMS", + Privilege: "GetObjectVersionForReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to check whether a domain name can be transferred to Amazon Route 53", - Privilege: "CheckDomainTransferability", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete domains", - Privilege: "DeleteDomain", + AccessLevel: "Read", + Description: "Grants permission to return the tag set for a specific version of the object", + Privilege: "GetObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to delete the specified tags for a domain", - Privilege: "DeleteTagsForDomain", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:versionid", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to configure Amazon Route 53 to automatically renew the specified domain before the domain registration expires", - Privilege: "DisableDomainAutoRenew", + AccessLevel: "Read", + Description: "Grants permission to get the replication configuration information set on an Amazon S3 bucket", + Privilege: "GetReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove the transfer lock on the domain (specifically the clientTransferProhibited status) to allow domain transfers", - Privilege: "DisableDomainTransferLock", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an existing delegation signer from a domain", - Privilege: "DisassociateDelegationSignerFromDomain", + AccessLevel: "List", + Description: "Grants permission to list access points", + Privilege: "ListAccessPoints", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to configure Amazon Route 53 to automatically renew the specified domain before the domain registration expires", - Privilege: "EnableDomainAutoRenew", + AccessLevel: "List", + Description: "Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)", + Privilege: "ListBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the transfer lock on the domain (specifically the clientTransferProhibited status) to prevent domain transfers", - Privilege: "EnableDomainTransferLock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:delimiter", + "s3-outposts:max-keys", + "s3-outposts:prefix", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about whether the registrant contact has responded for operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain", - Privilege: "GetContactReachabilityStatus", + AccessLevel: "List", + Description: "Grants permission to list in-progress multipart uploads", + Privilege: "ListBucketMultipartUploads", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get detailed information about a domain", - Privilege: "GetDomainDetail", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of suggested domain names given a string, which can either be a domain name or simply a word or phrase (without spaces)", - Privilege: "GetDomainSuggestions", + AccessLevel: "List", + Description: "Grants permission to list metadata about all the versions of objects in an Amazon S3 bucket", + Privilege: "ListBucketVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:delimiter", + "s3-outposts:max-keys", + "s3-outposts:prefix", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the current status of an operation that is not completed", - Privilege: "GetOperationDetail", + AccessLevel: "List", + Description: "Grants permission to list endpoints", + Privilege: "ListEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -229785,20 +275919,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all the domain names registered with Amazon Route 53 for the current AWS account", - Privilege: "ListDomains", + Description: "Grants permission to list the parts that have been uploaded for a specific multipart upload", + Privilege: "ListMultipartUploadParts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the operation IDs of operations that are not yet complete", - Privilege: "ListOperations", + Description: "Grants permission to list outposts with S3 capacity", + Privilege: "ListOutpostsWithS3", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -229809,20 +275956,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the prices of operations for TLDs", - Privilege: "ListPrices", + Description: "Grants permission to list all buckets owned by the authenticated sender of the request", + Privilege: "ListRegionalBuckets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all the tags that are associated with the specified domain", - Privilege: "ListTagsForDomain", + AccessLevel: "List", + Description: "Grants permission to list shared endpoints", + Privilege: "ListSharedEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -229832,120 +275984,254 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to change the IPS tag of .uk domain to initiate a transfer process from Route 53 to another registrar", - Privilege: "PushDomain", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access policy with a specified access point", + Privilege: "PutAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "accesspoint*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register domains", - Privilege: "RegisterDomain", + AccessLevel: "Permissions management", + Description: "Grants permission to add or replace a bucket policy on a bucket", + Privilege: "PutBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject the transfer of a domain from another AWS account to the current AWS account", - Privilege: "RejectDomainTransferFromAnotherAwsAccount", + AccessLevel: "Tagging", + Description: "Grants permission to add a set of tags to an existing Amazon S3 bucket", + Privilege: "PutBucketTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to renew domains for the specified number of years", - Privilege: "RenewDomain", + Description: "Grants permission to set the versioning state of an existing Amazon S3 bucket", + Privilege: "PutBucketVersioning", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to resend the confirmation email to the current email address for the registrant contact for operations that require confirmation that the email address for the registrant contact is valid, such as registering a new domain", - Privilege: "ResendContactReachabilityEmail", + Description: "Grants permission to create a new lifecycle configuration for the bucket or replace an existing lifecycle configuration", + Privilege: "PutLifecycleConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to resend the operation authorization", - Privilege: "ResendOperationAuthorization", + Description: "Grants permission to add an object to a bucket", + Privilege: "PutObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:RequestObjectTag/", + "s3-outposts:RequestObjectTagKeys", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-acl", + "s3-outposts:x-amz-content-sha256", + "s3-outposts:x-amz-copy-source", + "s3-outposts:x-amz-metadata-directive", + "s3-outposts:x-amz-server-side-encryption", + "s3-outposts:x-amz-storage-class", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to get the AuthCode for the domain", - Privilege: "RetrieveDomainAuthCode", + AccessLevel: "Permissions management", + Description: "Grants permission to set the access control list (ACL) permissions for an object that already exists in a bucket", + Privilege: "PutObjectAcl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-acl", + "s3-outposts:x-amz-content-sha256", + "s3-outposts:x-amz-storage-class", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to transfer a domain from another registrar to Amazon Route 53", - Privilege: "TransferDomain", + AccessLevel: "Tagging", + Description: "Grants permission to set the supplied tag-set to an object that already exists in a bucket", + Privilege: "PutObjectTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:RequestObjectTag/", + "s3-outposts:RequestObjectTagKeys", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to transfer a domain from the current AWS account to another AWS account", - Privilege: "TransferDomainToAnotherAwsAccount", + AccessLevel: "Tagging", + Description: "Grants permission to set the supplied tag-set for a specific version of an object", + Privilege: "PutObjectVersionTagging", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:DataAccessPointAccount", + "s3-outposts:DataAccessPointArn", + "s3-outposts:AccessPointNetworkOrigin", + "s3-outposts:ExistingObjectTag/", + "s3-outposts:RequestObjectTag/", + "s3-outposts:RequestObjectTagKeys", + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:versionid", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the contact information for domain", - Privilege: "UpdateDomainContact", + Description: "Grants permission to create a new replication configuration or replace an existing one", + Privilege: "PutReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, @@ -229953,114 +276239,221 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the domain contact privacy setting", - Privilege: "UpdateDomainContactPrivacy", + Description: "Grants permission to replicate delete markers to the destination bucket", + Privilege: "ReplicateDelete", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to replace the current set of name servers for a domain with the specified set of name servers", - Privilege: "UpdateDomainNameservers", + Description: "Grants permission to replicate objects and object tags to the destination bucket", + Privilege: "ReplicateObject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "object*", + }, + { + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + "s3-outposts:x-amz-server-side-encryption", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to add or update tags for a specified domain", - Privilege: "UpdateTagsForDomain", + Description: "Grants permission to replicate object tags to the destination bucket", + Privilege: "ReplicateTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "object*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get all the domain-related billing records for the current AWS account for a specified period", - Privilege: "ViewBilling", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3-outposts:authType", + "s3-outposts:signatureAge", + "s3-outposts:signatureversion", + "s3-outposts:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Route 53 Domains", + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/accesspoint/${AccessPointName}", + ConditionKeys: []string{}, + Resource: "accesspoint", + }, + { + Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/bucket/${BucketName}", + ConditionKeys: []string{}, + Resource: "bucket", + }, + { + Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/endpoint/${EndpointId}", + ConditionKeys: []string{}, + Resource: "endpoint", + }, + { + Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/bucket/${BucketName}/object/${ObjectName}", + ConditionKeys: []string{}, + Resource: "object", + }, + }, + ServiceName: "Amazon S3 on Outposts", }, ParliamentService{ Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Condition: "s3express:AccessPointNetworkOrigin", + Description: "Filters access by the network origin (Internet or VPC)", Type: "String", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Condition: "s3express:AllAccessRestrictedToLocalZoneGroup", + Description: "Filters access by AWS Local Zone network border group(s) provided in this condition key", Type: "String", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Condition: "s3express:DataAccessPointAccount", + Description: "Filters access by the AWS Account ID that owns the access point", + Type: "String", + }, + { + Condition: "s3express:DataAccessPointArn", + Description: "Filters access by an access point Amazon Resource Name (ARN)", + Type: "ARN", + }, + { + Condition: "s3express:LocationName", + Description: "Filters access by a specific Availability Zone ID", + Type: "String", + }, + { + Condition: "s3express:Permissions", + Description: "Filters access by the permission requested by Access Point Scope configuration, such as GetObject, PutObject", Type: "ArrayOfString", }, + { + Condition: "s3express:ResourceAccount", + Description: "Filters access by the resource owner AWS account ID", + Type: "String", + }, + { + Condition: "s3express:SessionMode", + Description: "Filters access by the permission requested by CreateSession API, such as ReadOnly and ReadWrite", + Type: "String", + }, + { + Condition: "s3express:TlsVersion", + Description: "Filters access by the TLS version used by the client", + Type: "Numeric", + }, + { + Condition: "s3express:authType", + Description: "Filters access by authentication method", + Type: "String", + }, + { + Condition: "s3express:signatureAge", + Description: "Filters access by the age in milliseconds of the request signature", + Type: "Numeric", + }, + { + Condition: "s3express:signatureversion", + Description: "Filters access by the AWS Signature Version used on the request", + Type: "String", + }, + { + Condition: "s3express:x-amz-content-sha256", + Description: "Filters access by unsigned content in your bucket", + Type: "String", + }, + { + Condition: "s3express:x-amz-server-side-encryption", + Description: "Filters access by server-side encryption", + Type: "String", + }, + { + Condition: "s3express:x-amz-server-side-encryption-aws-kms-key-id", + Description: "Filters access by AWS KMS customer managed key for server-side encryption", + Type: "ARN", + }, }, - Prefix: "route53profiles", + Prefix: "s3express", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associates a Profile to the customer VPC", - Privilege: "AssociateProfile", + Description: "Grants permission to create a new access point", + Privilege: "CreateAccessPoint", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "accesspoint*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "ec2:DescribeVpcs", + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:LocationName", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associates a resource, such as DNS Firewall rule group, private hosted zone, resolver rule, etc. to a specified Profile", - Privilege: "AssociateResourceToProfile", + Description: "Grants permission to create a new bucket", + Privilege: "CreateBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Profile resource", - Privilege: "CreateProfile", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:authType", + "s3express:LocationName", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230069,23 +276462,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Profile specified byt the ProfileId", - Privilege: "DeleteProfile", + Description: "Grants permission to Create Session token which is used for object APIs such as PutObject, GetObject, ect", + Privilege: "CreateSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an association between a customer VPC and the specified Profile", - Privilege: "DisassociateProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3express:authType", + "s3express:ResourceAccount", + "s3express:SessionMode", + "s3express:signatureAge", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + "s3express:x-amz-server-side-encryption", + "s3express:x-amz-server-side-encryption-aws-kms-key-id", + "s3express:AllAccessRestrictedToLocalZoneGroup", + }, DependentActions: []string{}, ResourceType: "", }, @@ -230093,119 +276490,169 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the asoociation between the resource. such as DNS Firewall rule group, private hosted zone, resolver rule, etc. and the specified Profile", - Privilege: "DisassociateResourceFromProfile", + Description: "Grants permission to delete the access point named in the URI", + Privilege: "DeleteAccessPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a Profile", - Privilege: "GetProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a Profile to a VPC association specified by the Profile association ID", - Privilege: "GetProfileAssociation", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified access point", + Privilege: "DeleteAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "accesspoint*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get a Profile resource association based on the ProfileResourceAssociationId", - Privilege: "GetProfileResourceAssociation", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all VPCs the specified Profile is associated to", - Privilege: "ListProfileAssociations", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the scope configuration on a specified access point", + Privilege: "DeleteAccessPointScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "accesspoint*", + }, + { + ConditionKeys: []string{ + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the associations between the resources, such as DNS Firewall rule groups, private hosted zones, resolver rules, etc. for the given Profile ID", - Privilege: "ListProfileResourceAssociations", + AccessLevel: "Write", + Description: "Grants permission to delete the bucket named in the URI", + Privilege: "DeleteBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Profiles created by, and shared to the customer", - Privilege: "ListProfiles", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the policy on a specified bucket", + Privilege: "DeleteBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all tags associated with the resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to return configuration information about the specified access point", + Privilege: "GetAccessPoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add a tag to the given resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to return the access point policy associated with the specified access point", + Privilege: "GetAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "profile-association", + ResourceType: "accesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230213,23 +276660,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete a tag from the given resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to return the scope configuration associated with the specified access point", + Privilege: "GetAccessPointScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "profile-association", + ResourceType: "accesspoint*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230237,72 +276686,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the Profile resource association name or the resource properties or both, if both name and resource properties are null, the api returns the existing Profile resource association", - Privilege: "UpdateProfileResourceAssociation", + AccessLevel: "Read", + Description: "Grants permission to return the policy of the specified bucket", + Privilege: "GetBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "bucket*", + }, + { + ConditionKeys: []string{ + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:route53profiles:${Region}:${Account}:profile/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "profile", - }, - { - Arn: "arn:${Partition}:route53profiles:${Region}:${Account}:profile-association/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "profile-association", - }, - }, - ServiceName: "Amazon Route 53 Profiles enables sharing DNS settings with VPCs", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "route53resolver", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate an Amazon VPC with a specified firewall rule group", - Privilege: "AssociateFirewallRuleGroup", + AccessLevel: "Read", + Description: "Grants permission to return the default encryption configuration for a directory bucket", + Privilege: "GetEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", - }, - ResourceType: "firewall-rule-group-association*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230310,63 +276732,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a specified IP address with a Resolver endpoint. This is an IP address that DNS queries pass through on the way to your network (outbound) or your VPCs (inbound)", - Privilege: "AssociateResolverEndpointIpAddress", + AccessLevel: "Read", + Description: "Grants permission to return the lifecycle configuration information set on a directory bucket", + Privilege: "GetLifecycleConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - }, - ResourceType: "resolver-endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to associate an Amazon VPC with a specified query logging configuration", - Privilege: "AssociateResolverQueryLogConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, - ResourceType: "resolver-query-log-config*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a specified Resolver rule with a specified VPC", - Privilege: "AssociateResolverRule", + AccessLevel: "List", + Description: "Grants permission to list access points", + Privilege: "ListAccessPointsForDirectoryBuckets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, - ResourceType: "resolver-rule*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Firewall domain list", - Privilege: "CreateFirewallDomainList", + AccessLevel: "List", + Description: "Grants permission to list all directory buckets owned by the authenticated sender of the request", + Privilege: "ListAllMyDirectoryBuckets", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "firewall-domain-list*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230374,36 +276791,51 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Firewall rule within a Firewall rule group", - Privilege: "CreateFirewallRule", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access policy with a specified access point", + Privilege: "PutAccessPointPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "accesspoint*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", + }, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Firewall rule group", - Privilege: "CreateFirewallRuleGroup", + AccessLevel: "Permissions management", + Description: "Grants permission to associate an access point with a specified access point scope configuration", + Privilege: "PutAccessPointScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "accesspoint*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:DataAccessPointAccount", + "s3express:DataAccessPointArn", + "s3express:AccessPointNetworkOrigin", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230411,21 +276843,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Route 53 Resolver on Outposts", - Privilege: "CreateOutpostResolver", + AccessLevel: "Permissions management", + Description: "Grants permission to add or replace a bucket policy on a bucket", + Privilege: "PutBucketPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "outposts:GetOutpost", - }, - ResourceType: "outpost-resolver*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230434,39 +276867,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound", - Privilege: "CreateResolverEndpoint", + Description: "Grants permission to set the encryption configuration for a directory bucket", + Privilege: "PutEncryptionConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:CreateNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - }, - ResourceType: "resolver-endpoint*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "bucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a Resolver query logging configuration, which defines where you want Resolver to save DNS query logs that originate in your VPCs", - Privilege: "CreateResolverQueryLogConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", @@ -230475,1149 +276890,1235 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to define how to route queries originating from your VPC out of the VPC", - Privilege: "CreateResolverRule", + Description: "Grants permission to create a new lifecycle configuration for the directory bucket or replace an existing lifecycle configuration", + Privilege: "PutLifecycleConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "bucket*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "s3express:authType", + "s3express:ResourceAccount", + "s3express:signatureversion", + "s3express:TlsVersion", + "s3express:x-amz-content-sha256", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:s3express:${Region}:${Account}:bucket/${BucketName}", + ConditionKeys: []string{}, + Resource: "bucket", + }, + { + Arn: "arn:${Partition}:s3express:${Region}:${Account}:accesspoint/${AccessPointName}", + ConditionKeys: []string{}, + Resource: "accesspoint", + }, + }, + ServiceName: "Amazon S3 Express", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "s3tables:KMSKeyArn", + Description: "Filters access by the AWS KMS key ARN for the key used to encrypt a table", + Type: "ARN", + }, + { + Condition: "s3tables:SSEAlgorithm", + Description: "Filters access by the server-side encryption algorithm used to encrypt a table", + Type: "String", + }, + { + Condition: "s3tables:namespace", + Description: "Filters access by the namespaces created in the table bucket", + Type: "String", + }, + { + Condition: "s3tables:tableName", + Description: "Filters access by the name of the tables in the table bucket", + Type: "String", + }, + }, + Prefix: "s3tables", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a Firewall domain list", - Privilege: "DeleteFirewallDomainList", + Description: "Grants permission to create a namespace", + Privilege: "CreateNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Firewall rule within a Firewall rule group", - Privilege: "DeleteFirewallRule", + Description: "Grants permission to create a table", + Privilege: "CreateTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "TableBucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a Firewall rule group", - Privilege: "DeleteFirewallRuleGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:SSEAlgorithm", + "s3tables:KMSKeyArn", + }, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Route 53 Resolver on Outposts", - Privilege: "DeleteOutpostResolver", + Description: "Grants permission to create a table bucket", + Privilege: "CreateTableBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost-resolver*", + ResourceType: "TableBucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a Resolver endpoint. The effect of deleting a Resolver endpoint depends on whether it's an inbound or an outbound endpoint", - Privilege: "DeleteResolverEndpoint", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", + ConditionKeys: []string{ + "s3tables:SSEAlgorithm", + "s3tables:KMSKeyArn", }, - ResourceType: "resolver-endpoint*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Resolver query logging configuration", - Privilege: "DeleteResolverQueryLogConfig", + Description: "Grants permission to delete a namespace", + Privilege: "DeleteNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config*", + ResourceType: "TableBucket*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a Resolver rule", - Privilege: "DeleteResolverRule", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3tables:namespace", + }, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the association between a specified Firewall rule group and a specified VPC", - Privilege: "DisassociateFirewallRuleGroup", + Description: "Grants permission to delete a table", + Privilege: "DeleteTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group-association*", + ResourceType: "Table*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove a specified IP address from a Resolver endpoint. This is an IP address that DNS queries pass through on the way to your network (outbound) or your VPCs (inbound)", - Privilege: "DisassociateResolverEndpointIpAddress", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DeleteNetworkInterface", - "ec2:DescribeNetworkInterfaces", + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, - ResourceType: "resolver-endpoint*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the association between a specified Resolver query logging configuration and a specified VPC", - Privilege: "DisassociateResolverQueryLogConfig", + Description: "Grants permission to delete a table bucket", + Privilege: "DeleteTableBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config*", + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove the association between a specified Resolver rule and a specified VPC", - Privilege: "DisassociateResolverRule", + Description: "Grants permission to delete encryption configuration on a table bucket", + Privilege: "DeleteTableBucketEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "TableBucket*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified Firewall config", - Privilege: "GetFirewallConfig", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a policy on a table bucket", + Privilege: "DeleteTableBucketPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", - }, - ResourceType: "firewall-config*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TableBucket*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified Firewall domain list", - Privilege: "GetFirewallDomainList", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a policy on a table", + Privilege: "DeleteTablePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified Firewall rule group", - Privilege: "GetFirewallRuleGroup", + Description: "Grants permission to get a namespace", + Privilege: "GetNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "TableBucket*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about an association between a specified Firewall rule group and a VPC", - Privilege: "GetFirewallRuleGroupAssociation", + Description: "Grants permission to retrieve a table", + Privilege: "GetTable", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group-association*", + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified Firewall rule group policy, which specifies the Firewall rule group operations and resources that you want to allow another AWS account to use", - Privilege: "GetFirewallRuleGroupPolicy", + Description: "Grants permission to retrieve a table bucket", + Privilege: "GetTableBucket", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified Route 53 Resolver on Outposts", - Privilege: "GetOutpostResolver", + Description: "Grants permission to retrieve encryption configuration on a table bucket", + Privilege: "GetTableBucketEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost-resolver*", + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the Resolver Config status within the specified resource", - Privilege: "GetResolverConfig", + Description: "Grants permission to retrieve a maintenance configuration on a table bucket", + Privilege: "GetTableBucketMaintenanceConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", - }, - ResourceType: "resolver-config*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the DNSSEC validation support status for DNS queries within the specified resource", - Privilege: "GetResolverDnssecConfig", + Description: "Grants permission to retrieve a policy on a table bucket", + Privilege: "GetTableBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-dnssec-config*", + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified Resolver endpoint, such as whether it's an inbound or an outbound endpoint, and the IP addresses in your VPC that DNS queries are forwarded to on the way into or out of your VPC", - Privilege: "GetResolverEndpoint", + Description: "Grants permission to read metadata and data objects from a table storage endpoint using S3 APIs", + Privilege: "GetTableData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-endpoint*", + ResourceType: "Table*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified Resolver query logging configuration, such as the number of VPCs that the configuration is logging queries for and the location that logs are sent to", - Privilege: "GetResolverQueryLogConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, - ResourceType: "resolver-query-log-config*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified association between a Resolver query logging configuration and an Amazon VPC. When you associate a VPC with a query logging configuration, Resolver logs DNS queries that originate in that VPC", - Privilege: "GetResolverQueryLogConfigAssociation", + Description: "Grants permission to retrieve encryption configuration on a table", + Privilege: "GetTableEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a specified Resolver query logging policy, which specifies the Resolver query logging operations and resources that you want to allow another AWS account to use", - Privilege: "GetResolverQueryLogConfigPolicy", + Description: "Grants permission to retrieve a maintenance configuration on a table", + Privilege: "GetTableMaintenanceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config*", + ResourceType: "Table*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified Resolver rule, such as the domain name that the rule forwards DNS queries for and the IP address that queries are forwarded to", - Privilege: "GetResolverRule", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about an association between a specified Resolver rule and a VPC", - Privilege: "GetResolverRuleAssociation", + Description: "Grants permission to retrieve the status of maintenance jobs on a table", + Privilege: "GetTableMaintenanceJobStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a Resolver rule policy, which specifies the Resolver operations and resources that you want to allow another AWS account to use", - Privilege: "GetResolverRulePolicy", + Description: "Grants permission to retrieve the metadata location of a table", + Privilege: "GetTableMetadataLocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add, remove or replace Firewall domains in a Firewall domain list", - Privilege: "ImportFirewallDomains", + AccessLevel: "Read", + Description: "Grants permission to retrieve a policy on a table", + Privilege: "GetTablePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "Table*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all the Firewall config that current AWS account is able to check", - Privilege: "ListFirewallConfigs", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the Firewall domain list that current AWS account is able to use", - Privilege: "ListFirewallDomainLists", + Description: "Grants permission to list namespaces", + Privilege: "ListNamespaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "TableBucket*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the Firewall domain under a speicfied Firewall domain list", - Privilege: "ListFirewallDomains", + Description: "Grants permission to list table buckets", + Privilege: "ListTableBuckets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list information about associations between Amazon VPCs and Firewall rule group", - Privilege: "ListFirewallRuleGroupAssociations", + Description: "Grants permission to list tables", + Privilege: "ListTables", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "TableBucket*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Firewall rule group that current AWS account is able to use", - Privilege: "ListFirewallRuleGroups", + AccessLevel: "Write", + Description: "Grants permission to put or overwrite encryption configuration on a table bucket", + Privilege: "PutTableBucketEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "TableBucket*", + }, + { + ConditionKeys: []string{ + "s3tables:KMSKeyArn", + "s3tables:SSEAlgorithm", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Firewall rule under a speicfied Firewall rule group", - Privilege: "ListFirewallRules", + AccessLevel: "Write", + Description: "Grants permission to put a maintenance configuration on a table bucket", + Privilege: "PutTableBucketMaintenanceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "TableBucket*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all instances of Route 53 Resolver on Outposts that were created using the current AWS account", - Privilege: "ListOutpostResolvers", + AccessLevel: "Permissions management", + Description: "Grants permission to create or overwrite a policy on a table bucket", + Privilege: "PutTableBucketPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "TableBucket*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Resolver Config statuses", - Privilege: "ListResolverConfigs", + AccessLevel: "Write", + Description: "Grants permission to write metadata and data objects to a table storage endpoint using S3 APIs", + Privilege: "PutTableData", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, - ResourceType: "resolver-config*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the DNSSEC validation support status for DNS queries", - Privilege: "ListResolverDnssecConfigs", + AccessLevel: "Write", + Description: "Grants permission to put encryption configuration on a table", + Privilege: "PutTableEncryption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-dnssec-config*", + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:SSEAlgorithm", + "s3tables:KMSKeyArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the IP addresses that DNS queries pass through on the way to your network (outbound) or your VPCs (inbound) for a specified Resolver endpoint", - Privilege: "ListResolverEndpointIpAddresses", + AccessLevel: "Write", + Description: "Grants permission to put a maintenance configuration on a table", + Privilege: "PutTableMaintenanceConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-endpoint*", + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the Resolver endpoints that were created using the current AWS account", - Privilege: "ListResolverEndpoints", + AccessLevel: "Permissions management", + Description: "Grants permission to create or overwrite a policy on a table", + Privilege: "PutTablePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about associations between Amazon VPCs and query logging configurations", - Privilege: "ListResolverQueryLogConfigAssociations", + AccessLevel: "Write", + Description: "Grants permission to rename a table or move a table across namespaces", + Privilege: "RenameTable", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the specified query logging configurations, which define where you want Resolver to save DNS query logs and specify the VPCs that you want to log queries for", - Privilege: "ListResolverQueryLogConfigs", + AccessLevel: "Write", + Description: "Grants permission to update the metadata location of a table", + Privilege: "UpdateTableMetadataLocation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Table*", + }, + { + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list the associations that were created between Resolver rules and VPCs using the current AWS account", - Privilege: "ListResolverRuleAssociations", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", - }, - ResourceType: "", - }, + Arn: "arn:${Partition}:s3tables:${Region}:${Account}:bucket/${TableBucketName}", + ConditionKeys: []string{}, + Resource: "TableBucket", + }, + { + Arn: "arn:${Partition}:s3tables:${Region}:${Account}:bucket/${TableBucketName}/table/${TableID}", + ConditionKeys: []string{ + "s3tables:namespace", + "s3tables:tableName", }, + Resource: "Table", }, + }, + ServiceName: "Amazon S3 Tables", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "List", - Description: "Grants permission to list the Resolver rules that were created using the current AWS account", - Privilege: "ListResolverRules", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a key that is present in the request the user makes to the SageMaker service", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "sagemaker:AcceleratorTypes", + Description: "Filters access by the list of all accelerator types associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "sagemaker:AppNetworkAccessType", + Description: "Filters access by the app network access type associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:CustomerMetadataProperties/${MetadataKey}", + Description: "Filters access by a metadata key and value pair", + Type: "String", + }, + { + Condition: "sagemaker:CustomerMetadataPropertiesToRemove", + Description: "Filters access by the list of metadata properties associated with the model-package resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "sagemaker:DirectGatedModelAccess", + Description: "Used to deny direct access to SageMaker gated ModelReferences", + Type: "String", + }, + { + Condition: "sagemaker:DirectInternetAccess", + Description: "Filters access by the direct internet access associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:DomainId", + Description: "You can use the domainId as a policy variable to filter requests from specific SageMaker Domains", + Type: "String", + }, + { + Condition: "sagemaker:DomainSharingOutputKmsKey", + Description: "Filters access by the Domain sharing output KMS key associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:EnableRemoteDebug", + Description: "Filters access by the remote debug config in the request", + Type: "Bool", + }, + { + Condition: "sagemaker:FeatureGroupDisableGlueTableCreation", + Description: "Filters access by the DisableGlueTableCreation flag associated with the feature group resource in the request", + Type: "Bool", + }, + { + Condition: "sagemaker:FeatureGroupEnableOnlineStore", + Description: "Filters access by the EnableOnlineStore flag associated with feature group in the request", + Type: "Bool", + }, + { + Condition: "sagemaker:FeatureGroupOfflineStoreConfig", + Description: "Filters access by the presence of an OfflineStoreConfig in the feature group resource in the request. This access filter only supports the null-conditional operator", + Type: "Bool", + }, + { + Condition: "sagemaker:FeatureGroupOfflineStoreKmsKey", + Description: "Filters access by the offline store kms key associated with the feature group resource in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:FeatureGroupOfflineStoreS3Uri", + Description: "Filters access by the offline store s3 uri associated with the feature group resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:FeatureGroupOnlineStoreKmsKey", + Description: "Filters access by the online store kms key associated with the feature group resource in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:FileSystemAccessMode", + Description: "Filters access by a file system access mode associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:FileSystemDirectoryPath", + Description: "Filters access by a file system directory path associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:FileSystemId", + Description: "Filters access by a file system ID associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:FileSystemType", + Description: "Filters access by a file system type associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:HomeEfsFileSystemKmsKey", + Description: "Filters access by a key that is present in the request the user makes to the SageMaker service. This key is deprecated. It has been replaced by sagemaker:VolumeKmsKey", + Type: "ARN", + }, + { + Condition: "sagemaker:ImageArns", + Description: "Filters access by the list of all image arns associated with the resource in the request", + Type: "ArrayOfARN", + }, + { + Condition: "sagemaker:ImageVersionArns", + Description: "Filters access by the list of all image version arns associated with the resource in the request", + Type: "ArrayOfARN", + }, + { + Condition: "sagemaker:InstanceTypes", + Description: "Filters access by the list of all instance types associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "sagemaker:InterContainerTrafficEncryption", + Description: "Filters access by the inter container traffic encryption associated with the resource in the request", + Type: "Bool", + }, + { + Condition: "sagemaker:KeepAlivePeriod", + Description: "Filters access by the keep-alive period associated with the resource in the request", + Type: "Numeric", + }, + { + Condition: "sagemaker:MaxRuntimeInSeconds", + Description: "Filters access by the max runtime in seconds associated with the resource in the request", + Type: "Numeric", + }, + { + Condition: "sagemaker:MinimumInstanceMetadataServiceVersion", + Description: "Filters access by the minimum instance metadata service version used by the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:ModelApprovalStatus", + Description: "Filters access by the model approval status with the model-package in the request", + Type: "String", + }, + { + Condition: "sagemaker:ModelArn", + Description: "Filters access by the model arn associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:ModelLifeCycle:Stage", + Description: "Filters access by stage field in the model life cycle object associated with the model-package resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:ModelLifeCycle:StageStatus", + Description: "Filters access by stageStatus field in the model life cycle object associated with the model-package resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:NetworkIsolation", + Description: "Filters access by the network isolation associated with the resource in the request", + Type: "Bool", + }, + { + Condition: "sagemaker:OutputKmsKey", + Description: "Filters access by the output kms key associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:OwnerUserProfileArn", + Description: "Filters access by the OwnerUserProfile arn associated with the space in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:ResourceTag/", + Description: "Filters access by the preface string for a tag key and value pair attached to a resource", + Type: "String", + }, + { + Condition: "sagemaker:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "sagemaker:RootAccess", + Description: "Filters access by the root access associated with the resource in the request", + Type: "String", + }, + { + Condition: "sagemaker:SearchVisibilityCondition/${FilterKey}", + Description: "Limits the results of your search request to the resources that you can access. $ { FilterKey} is a key that the VisibilityConditions configuration presents in the Search request", + Type: "String", + }, + { + Condition: "sagemaker:ServerlessMaxConcurrency", + Description: "Filters access by limiting maximum concurrency used for Serverless inference in the request", + Type: "Numeric", + }, + { + Condition: "sagemaker:ServerlessMemorySize", + Description: "Filters access by limiting memory size used for Serverless inference in the request", + Type: "Numeric", + }, + { + Condition: "sagemaker:SpaceSharingType", + Description: "Filters access by the sharing type associated with the space in the request", + Type: "String", + }, + { + Condition: "sagemaker:TaggingAction", + Description: "Filters access by the API actions to which a user can apply tags. Uses the name of the API operation that creates a taggable resource to filter access", + Type: "String", + }, + { + Condition: "sagemaker:TargetModel", + Description: "Filters access by the target model associated with the Multi-Model Endpoint in the request", + Type: "String", + }, + { + Condition: "sagemaker:UserProfileName", + Description: "You can use the UserProfileName as a policy variable to filter requests from specific user profiles within a SageMaker Domain. This context key is not applicable to user profiles within shared spaces", + Type: "String", + }, + { + Condition: "sagemaker:VolumeKmsKey", + Description: "Filters access by the volume kms key associated with the resource in the request", + Type: "ARN", + }, + { + Condition: "sagemaker:VpcSecurityGroupIds", + Description: "Filters access by the list of all VPC security group ids associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "sagemaker:VpcSubnets", + Description: "Filters access by the list of all VPC subnets associated with the resource in the request", + Type: "ArrayOfString", + }, + { + Condition: "sagemaker:WorkteamArn", + Description: "Filters access by the workteam arn associated to the request", + Type: "ARN", + }, + { + Condition: "sagemaker:WorkteamType", + Description: "Filters access by the workteam type associated to the request. This can be public-crowd, private-crowd or vendor-crowd", + Type: "String", + }, + }, + Prefix: "sagemaker", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a lineage entity (artifact, context, action, experiment, experiment-trial-component) to each other", + Privilege: "AddAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "action*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "artifact*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "context*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial-component*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags that you associated with the specified resource", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for the specified Amazon SageMaker resource", + Privilege: "AddTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list", + ResourceType: "action", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group", + ResourceType: "algorithm", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group-association", + ResourceType: "app", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost-resolver", + ResourceType: "app-image-config", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-endpoint", + ResourceType: "artifact", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config", + ResourceType: "automl-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule", + ResourceType: "cluster", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to specify an AWS account that you want to share a Firewall rule group with, the Firewall rule group that you want to share, and the operations that you want the account to be able to perform on the configuration", - Privilege: "PutFirewallRuleGroupPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "cluster-scheduler-config", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to specify an AWS account that you want to share a query logging configuration with, the query logging configuration that you want to share, and the operations that you want the account to be able to perform on the configuration", - Privilege: "PutResolverQueryLogConfigPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config*", + ResourceType: "code-repository", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to specify an AWS account that you want to share rules with, the Resolver rules that you want to share, and the operations that you want the account to be able to perform on those rules", - Privilege: "PutResolverRulePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "compilation-job", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a specified resource", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-config", + ResourceType: "compute-quota", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list", + ResourceType: "context", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group", + ResourceType: "data-quality-job-definition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group-association", + ResourceType: "device", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost-resolver", + ResourceType: "device-fleet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-dnssec-config", + ResourceType: "domain", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-endpoint", + ResourceType: "edge-deployment-plan", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config", + ResourceType: "edge-packaging-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule", + ResourceType: "endpoint", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint-config", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from a specified resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-config", + ResourceType: "experiment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list", + ResourceType: "experiment-trial", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group", + ResourceType: "experiment-trial-component", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group-association", + ResourceType: "feature-group", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost-resolver", + ResourceType: "flow-definition", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-dnssec-config", + ResourceType: "hub", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-endpoint", + ResourceType: "hub-content", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-query-log-config", + ResourceType: "human-task-ui", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule", + ResourceType: "hyper-parameter-tuning-job", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update selected settings for an Firewall config", - Privilege: "UpdateFirewallConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", - }, - ResourceType: "firewall-config*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-component", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add, remove or replace Firewall domains in a Firewall domain list", - Privilege: "UpdateFirewallDomains", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "inference-recommendations-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update selected settings for an Firewall rule in a Firewall rule group", - Privilege: "UpdateFirewallRule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-domain-list*", + ResourceType: "labeling-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group*", + ResourceType: "mlflow-tracking-server", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update selected settings for an Firewall rule group association", - Privilege: "UpdateFirewallRuleGroupAssociation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "firewall-rule-group-association*", + ResourceType: "model", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update seletected settings for a specified Route 53 Resolver on Outposts", - Privilege: "UpdateOutpostResolver", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "outpost-resolver*", + ResourceType: "model-bias-job-definition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the Resolver Config status within the specified resource", - Privilege: "UpdateResolverConfig", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:DescribeVpcs", - }, - ResourceType: "resolver-config*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-card", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the DNSSEC validation support status for DNS queries within the specified resource", - Privilege: "UpdateResolverDnssecConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-dnssec-config*", + ResourceType: "model-explainability-job-definition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update selected settings for an inbound or an outbound Resolver endpoint", - Privilege: "UpdateResolverEndpoint", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ec2:AssignIpv6Addresses", - "ec2:DescribeNetworkInterfaces", - "ec2:DescribeSubnets", - "ec2:ModifyNetworkInterfaceAttribute", - "ec2:UnassignIpv6Addresses", - }, - ResourceType: "resolver-endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-package", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update settings for a specified Resolver rule", - Privilege: "UpdateResolverRule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resolver-rule*", + ResourceType: "model-package-group", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-dnssec-config/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resolver-dnssec-config", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-query-log-config/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resolver-query-log-config", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-rule/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resolver-rule", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-endpoint/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "resolver-endpoint", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-rule-group/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "firewall-rule-group", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-rule-group-association/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "firewall-rule-group-association", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-domain-list/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "firewall-domain-list", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:firewall-config/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "firewall-config", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:resolver-config/${ResourceId}", - ConditionKeys: []string{}, - Resource: "resolver-config", - }, - { - Arn: "arn:${Partition}:route53resolver:${Region}:${Account}:outpost-resolver/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "outpost-resolver", - }, - }, - ServiceName: "Amazon Route 53 Resolver", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed the request on behalf of the IAM principal", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource that make the request on behalf of the IAM principal", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request on behalf of the IAM principal", - Type: "ArrayOfString", - }, - }, - Prefix: "rum", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create rum metric definitions", - Privilege: "BatchCreateRumMetricDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "model-quality-job-definition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to remove rum metric definitions", - Privilege: "BatchDeleteRumMetricDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "monitoring-schedule", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get rum metric definitions", - Privilege: "BatchGetRumMetricDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "notebook-instance", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create appMonitor metadata", - Privilege: "CreateAppMonitor", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", - }, - ResourceType: "AppMonitorResource*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "optimization-job", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete appMonitor metadata", - Privilege: "DeleteAppMonitor", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "pipeline", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete rum metrics destinations", - Privilege: "DeleteRumMetricsDestination", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "processing-job", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get appMonitor metadata", - Privilege: "GetAppMonitor", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "project", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get appMonitor data", - Privilege: "GetAppMonitorData", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "reserved-capacity", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list appMonitors metadata", - Privilege: "ListAppMonitors", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "space", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list rum metrics destinations", - Privilege: "ListRumMetricsDestinations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "studio-lifecycle-config", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list tags for resources", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "training-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put RUM events for appmonitor", - Privilege: "PutRumEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "training-plan", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put rum metrics destinations", - Privilege: "PutRumMetricsDestination", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "transform-job", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to tag resources", - Privilege: "TagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "user-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workteam", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "sagemaker:TaggingAction", }, DependentActions: []string{}, ResourceType: "", @@ -231625,449 +278126,121 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag resources", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to associate a trial component with a trial", + Privilege: "AssociateTrialComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "experiment-trial*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment-trial-component*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update appmonitor metadata", - Privilege: "UpdateAppMonitor", + Description: "Grants permission to batch delete SageMaker HyperPod cluster nodes", + Privilege: "BatchDeleteClusterNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:GetRole", + "eks:DescribeCluster", }, - ResourceType: "AppMonitorResource*", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update rum metric definition", - Privilege: "UpdateRumMetricDefinition", + AccessLevel: "Read", + Description: "Grants permission to describe one or more ModelPackages", + Privilege: "BatchDescribeModelPackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AppMonitorResource*", + ResourceType: "model-package*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:rum:${Region}:${Account}:appmonitor/${Name}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "AppMonitorResource", - }, - }, - ServiceName: "AWS CloudWatch RUM", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "s3:AccessGrantsInstanceArn", - Description: "Filters access by access grants instance ARN", - Type: "ARN", - }, - { - Condition: "s3:AccessPointNetworkOrigin", - Description: "Filters access by the network origin (Internet or VPC)", - Type: "String", - }, - { - Condition: "s3:DataAccessPointAccount", - Description: "Filters access by the AWS Account ID that owns the access point", - Type: "String", - }, - { - Condition: "s3:DataAccessPointArn", - Description: "Filters access by an access point Amazon Resource Name (ARN)", - Type: "ARN", - }, - { - Condition: "s3:ExistingJobOperation", - Description: "Filters access by operation to updating the job priority", - Type: "String", - }, - { - Condition: "s3:ExistingJobPriority", - Description: "Filters access by priority range to cancelling existing jobs", - Type: "Numeric", - }, - { - Condition: "s3:ExistingObjectTag/", - Description: "Filters access by existing object tag key and value", - Type: "String", - }, - { - Condition: "s3:InventoryAccessibleOptionalFields", - Description: "Filters access by restricting which optional metadata fields a user can add when configuring S3 Inventory reports", - Type: "ArrayOfString", - }, - { - Condition: "s3:JobSuspendedCause", - Description: "Filters access by a specific job suspended cause (for example, AWAITING_CONFIRMATION) to cancelling suspended jobs", - Type: "String", - }, - { - Condition: "s3:RequestJobOperation", - Description: "Filters access by operation to creating jobs", - Type: "String", - }, - { - Condition: "s3:RequestJobPriority", - Description: "Filters access by priority range to creating new jobs", - Type: "Numeric", - }, - { - Condition: "s3:RequestObjectTag/", - Description: "Filters access by the tag keys and values to be added to objects", - Type: "String", - }, - { - Condition: "s3:RequestObjectTagKeys", - Description: "Filters access by the tag keys to be added to objects", - Type: "ArrayOfString", - }, - { - Condition: "s3:ResourceAccount", - Description: "Filters access by the resource owner AWS account ID", - Type: "String", - }, - { - Condition: "s3:TlsVersion", - Description: "Filters access by the TLS version used by the client", - Type: "Numeric", - }, - { - Condition: "s3:authType", - Description: "Filters access by authentication method", - Type: "String", - }, - { - Condition: "s3:delimiter", - Description: "Filters access by delimiter parameter", - Type: "String", - }, - { - Condition: "s3:destinationRegion", - Description: "Filters access by a specific replication destination region for targeted buckets of the AWS FIS action aws:s3:bucket-pause-replication", - Type: "String", - }, - { - Condition: "s3:isReplicationPauseRequest", - Description: "Filters access by request made via AWS FIS action aws:s3:bucket-pause-replication", - Type: "Bool", - }, - { - Condition: "s3:locationconstraint", - Description: "Filters access by a specific Region", - Type: "String", - }, - { - Condition: "s3:max-keys", - Description: "Filters access by maximum number of keys returned in a ListBucket request", - Type: "Numeric", - }, - { - Condition: "s3:object-lock-legal-hold", - Description: "Filters access by object legal hold status", - Type: "String", - }, - { - Condition: "s3:object-lock-mode", - Description: "Filters access by object retention mode (COMPLIANCE or GOVERNANCE)", - Type: "String", - }, - { - Condition: "s3:object-lock-remaining-retention-days", - Description: "Filters access by remaining object retention days", - Type: "Numeric", - }, - { - Condition: "s3:object-lock-retain-until-date", - Description: "Filters access by object retain-until date", - Type: "Date", - }, - { - Condition: "s3:prefix", - Description: "Filters access by key name prefix", - Type: "String", - }, - { - Condition: "s3:signatureAge", - Description: "Filters access by the age in milliseconds of the request signature", - Type: "Numeric", - }, - { - Condition: "s3:signatureversion", - Description: "Filters access by the version of AWS Signature used on the request", - Type: "String", - }, - { - Condition: "s3:versionid", - Description: "Filters access by a specific object version", - Type: "String", - }, - { - Condition: "s3:x-amz-acl", - Description: "Filters access by canned ACL in the request's x-amz-acl header", - Type: "String", - }, - { - Condition: "s3:x-amz-content-sha256", - Description: "Filters access by unsigned content in your bucket", - Type: "String", - }, - { - Condition: "s3:x-amz-copy-source", - Description: "Filters access by copy source bucket, prefix, or object in the copy object requests", - Type: "String", - }, - { - Condition: "s3:x-amz-grant-full-control", - Description: "Filters access by x-amz-grant-full-control (full control) header", - Type: "String", - }, - { - Condition: "s3:x-amz-grant-read", - Description: "Filters access by x-amz-grant-read (read access) header", - Type: "String", - }, - { - Condition: "s3:x-amz-grant-read-acp", - Description: "Filters access by the x-amz-grant-read-acp (read permissions for the ACL) header", - Type: "String", - }, - { - Condition: "s3:x-amz-grant-write", - Description: "Filters access by the x-amz-grant-write (write access) header", - Type: "String", - }, - { - Condition: "s3:x-amz-grant-write-acp", - Description: "Filters access by the x-amz-grant-write-acp (write permissions for the ACL) header", - Type: "String", - }, - { - Condition: "s3:x-amz-metadata-directive", - Description: "Filters access by object metadata behavior (COPY or REPLACE) when objects are copied", - Type: "String", - }, - { - Condition: "s3:x-amz-object-ownership", - Description: "Filters access by Object Ownership", - Type: "String", - }, - { - Condition: "s3:x-amz-server-side-encryption", - Description: "Filters access by server-side encryption", - Type: "String", - }, - { - Condition: "s3:x-amz-server-side-encryption-aws-kms-key-id", - Description: "Filters access by AWS KMS customer managed CMK for server-side encryption", - Type: "ARN", - }, - { - Condition: "s3:x-amz-server-side-encryption-customer-algorithm", - Description: "Filters access by customer specified algorithm for server-side encryption", - Type: "String", - }, - { - Condition: "s3:x-amz-storage-class", - Description: "Filters access by storage class", - Type: "String", - }, - { - Condition: "s3:x-amz-website-redirect-location", - Description: "Filters access by a specific website redirect location for buckets that are configured as static websites", - Type: "String", - }, - }, - Prefix: "s3", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to abort a multipart upload", - Privilege: "AbortMultipartUpload", + AccessLevel: "Read", + Description: "Grants permission to retrieve metrics associated with SageMaker Resources such as Training Jobs or Trial Components", + Privilege: "BatchGetMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "experiment-trial-component*", }, { - ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "training-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate Access Grants identity center", - Privilege: "AssociateAccessGrantsIdentityCenter", + AccessLevel: "Read", + Description: "Grants permission to get a batch of records from one or more feature groups", + Privilege: "BatchGetRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "feature-group*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to allow circumvention of governance-mode object retention settings", - Privilege: "BypassGovernanceRetention", + AccessLevel: "Write", + Description: "Grants permission to publish metrics associated with a SageMaker Resource such as a Training Job or Trial Component", + Privilege: "BatchPutMetrics", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "experiment-trial-component*", }, { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:RequestObjectTag/", - "s3:RequestObjectTagKeys", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", - "s3:x-amz-copy-source", - "s3:x-amz-grant-full-control", - "s3:x-amz-grant-read", - "s3:x-amz-grant-read-acp", - "s3:x-amz-grant-write", - "s3:x-amz-grant-write-acp", - "s3:x-amz-metadata-directive", - "s3:x-amz-server-side-encryption", - "s3:x-amz-server-side-encryption-aws-kms-key-id", - "s3:x-amz-server-side-encryption-customer-algorithm", - "s3:x-amz-storage-class", - "s3:x-amz-website-redirect-location", - "s3:object-lock-mode", - "s3:object-lock-retain-until-date", - "s3:object-lock-remaining-retention-days", - "s3:object-lock-legal-hold", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "training-job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create Access Grant", - Privilege: "CreateAccessGrant", + Description: "Grants permission for Partner App SDK to access the Partner App for reading or writing data use cases", + Privilege: "CallPartnerAppApi", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantslocation*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to Create Access Grants Instance", - Privilege: "CreateAccessGrantsInstance", + Description: "Grants permission to create an action", + Privilege: "CreateAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "action*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -232077,23 +278250,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create Access Grants location", - Privilege: "CreateAccessGrantsLocation", + Description: "Grants permission to create an algorithm", + Privilege: "CreateAlgorithm", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "algorithm*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -232104,27 +278272,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new access point", - Privilege: "CreateAccessPoint", + Description: "Grants permission to create an App for a SageMaker UserProfile or Space", + Privilege: "CreateApp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "app*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:locationconstraint", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:ImageArns", + "sagemaker:ImageVersionArns", + "sagemaker:OwnerUserProfileArn", + "sagemaker:SpaceSharingType", }, DependentActions: []string{}, ResourceType: "", @@ -232133,25 +278299,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an object lambda enabled accesspoint", - Privilege: "CreateAccessPointForObjectLambda", + Description: "Grants permission to create an AppImageConfig", + Privilege: "CreateAppImageConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "app-image-config*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232160,30 +278321,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new bucket", - Privilege: "CreateBucket", + Description: "Grants permission to create an artifact", + Privilege: "CreateArtifact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "artifact*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:locationconstraint", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", - "s3:x-amz-grant-full-control", - "s3:x-amz-grant-read", - "s3:x-amz-grant-read-acp", - "s3:x-amz-grant-write", - "s3:x-amz-grant-write-acp", - "s3:x-amz-object-ownership", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232192,49 +278343,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new Amazon S3 Batch Operations job", - Privilege: "CreateJob", + Description: "Grants permission to create an AutoML job", + Privilege: "CreateAutoMLJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:RequestJobPriority", - "s3:RequestJobOperation", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", + "sagemaker:AddTags", }, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new Multi-Region Access Point", - Privilege: "CreateMultiRegionAccessPoint", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ResourceType: "automl-job*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -232243,19 +278371,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an Amazon S3 Storage Lens group", - Privilege: "CreateStorageLensGroup", + Description: "Grants permission to create a V2 AutoML job", + Privilege: "CreateAutoMLJobV2", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "automl-job*", + }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", "aws:RequestTag/${TagKey}", "aws:TagKeys", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -232264,48 +278399,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete Access Grant", - Privilege: "DeleteAccessGrant", + Description: "Grants permission to create a SageMaker HyperPod cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrant*", + ConditionKeys: []string{}, + DependentActions: []string{ + "eks:AssociateAccessPolicy", + "eks:CreateAccessEntry", + "eks:DeleteAccessEntry", + "eks:DescribeAccessEntry", + "eks:DescribeCluster", + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "cluster*", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reserved-capacity", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to Delete Access Grants Instance", - Privilege: "DeleteAccessGrantsInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "training-plan", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -232314,23 +278441,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to read Access grants instance resource policy", - Privilege: "DeleteAccessGrantsInstanceResourcePolicy", + Description: "Grants permission to create a cluster scheduler config", + Privilege: "CreateClusterSchedulerConfig", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "eks:AssociateAccessPolicy", + "eks:DescribeCluster", + "eks:ListAssociatedAccessPolicies", + "sagemaker:AddTags", + "sagemaker:DescribeCluster", + }, + ResourceType: "cluster*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "cluster-scheduler-config*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232339,23 +278472,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete Access Grants location", - Privilege: "DeleteAccessGrantsLocation", + Description: "Grants permission to create a CodeRepository", + Privilege: "CreateCodeRepository", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantslocation*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "code-repository*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232364,25 +278494,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the access point named in the URI", - Privilege: "DeleteAccessPoint", + Description: "Grants permission to create a compilation job", + Privilege: "CreateCompilationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "compilation-job*", }, { ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232391,52 +278517,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the object lambda enabled access point named in the URI", - Privilege: "DeleteAccessPointForObjectLambda", + Description: "Grants permission to create a compute quota", + Privilege: "CreateComputeQuota", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + ConditionKeys: []string{}, + DependentActions: []string{ + "eks:AssociateAccessPolicy", + "eks:DescribeCluster", + "eks:ListAssociatedAccessPolicies", + "sagemaker:AddTags", + "sagemaker:DescribeCluster", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the policy on a specified access point", - Privilege: "DeleteAccessPointPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "compute-quota*", }, { ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232444,26 +278547,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the policy on a specified object lambda enabled access point", - Privilege: "DeleteAccessPointPolicyForObjectLambda", + AccessLevel: "Write", + Description: "Grants permission to create a context", + Privilege: "CreateContext", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "context*", }, { ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232472,22 +278570,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the bucket named in the URI", - Privilege: "DeleteBucket", + Description: "Grants permission to create a data quality job definition", + Privilege: "CreateDataQualityJobDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "data-quality-job-definition*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -232495,23 +278600,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the policy on a specified bucket", - Privilege: "DeleteBucketPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a device fleet", + Privilege: "CreateDeviceFleet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "device-fleet*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232520,22 +278624,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the website configuration for a bucket", - Privilege: "DeleteBucketWebsite", + Description: "Grants permission to create a Domain for SageMaker Studio", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "domain*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:AppNetworkAccessType", + "sagemaker:InstanceTypes", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", + "sagemaker:DomainSharingOutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:ImageArns", + "sagemaker:ImageVersionArns", }, DependentActions: []string{}, ResourceType: "", @@ -232543,25 +278655,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an existing Amazon S3 Batch Operations job", - Privilege: "DeleteJobTagging", + AccessLevel: "Write", + Description: "Grants permission to create an edge deployment plan", + Privilege: "CreateEdgeDeploymentPlan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "edge-deployment-plan*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:ExistingJobPriority", - "s3:ExistingJobOperation", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232570,24 +278679,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the Multi-Region Access Point named in the URI", - Privilege: "DeleteMultiRegionAccessPoint", + Description: "Grants permission to create an edge deployment stage", + Privilege: "CreateEdgeDeploymentStage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "edge-deployment-plan*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232596,26 +278702,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object", - Privilege: "DeleteObject", + Description: "Grants permission to create an edge packaging job", + Privilege: "CreateEdgePackagingJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "object*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "edge-packaging-job*", }, { ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232623,27 +278724,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to use the tagging subresource to remove the entire tag set from the specified object", - Privilege: "DeleteObjectTagging", + AccessLevel: "Write", + Description: "Grants permission to create an endpoint using the endpoint configuration specified in the request", + Privilege: "CreateEndpoint", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "endpoint*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "endpoint-config*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232652,27 +278752,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove a specific version of an object", - Privilege: "DeleteObjectVersion", + Description: "Grants permission to create an endpoint configuration that can be deployed using Amazon SageMaker hosting services", + Privilege: "CreateEndpointConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "object*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "endpoint-config*", }, { ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:AcceleratorTypes", + "sagemaker:InstanceTypes", + "sagemaker:ModelArn", + "sagemaker:VolumeKmsKey", + "sagemaker:ServerlessMaxConcurrency", + "sagemaker:ServerlessMemorySize", + "sagemaker:NetworkIsolation", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -232680,28 +278783,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the entire tag set for a specific version of the object", - Privilege: "DeleteObjectVersionTagging", + AccessLevel: "Write", + Description: "Grants permission to create an experiment", + Privilege: "CreateExperiment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "object*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "experiment*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232710,22 +278806,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing Amazon S3 Storage Lens configuration", - Privilege: "DeleteStorageLensConfiguration", + Description: "Grants permission to create a feature group", + Privilege: "CreateFeatureGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "storagelensconfiguration*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "feature-group*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:FeatureGroupOnlineStoreKmsKey", + "sagemaker:FeatureGroupOfflineStoreKmsKey", + "sagemaker:FeatureGroupOfflineStoreS3Uri", + "sagemaker:FeatureGroupEnableOnlineStore", + "sagemaker:FeatureGroupOfflineStoreConfig", + "sagemaker:FeatureGroupDisableGlueTableCreation", }, DependentActions: []string{}, ResourceType: "", @@ -232733,23 +278834,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from an existing Amazon S3 Storage Lens configuration", - Privilege: "DeleteStorageLensConfigurationTagging", + AccessLevel: "Write", + Description: "Grants permission to create a flow definition, which defines settings for a human workflow", + Privilege: "CreateFlowDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "storagelensconfiguration*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "flow-definition*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "sagemaker:WorkteamArn", + "sagemaker:WorkteamType", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232758,22 +278860,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing S3 Storage Lens group", - Privilege: "DeleteStorageLensGroup", + Description: "Grants permission to create a hub", + Privilege: "CreateHub", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "storagelensgroup*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "hub*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232781,23 +278881,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the configuration parameters and status for a batch operations job", - Privilege: "DescribeJob", + AccessLevel: "Write", + Description: "Grants permission to create hub content reference", + Privilege: "CreateHubContentReference", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "hub*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "hub-content*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232805,22 +278908,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the configurations for a Multi-Region Access Point", - Privilege: "DescribeMultiRegionAccessPointOperation", + AccessLevel: "Write", + Description: "Grants permission to define the settings you will use for the human review workflow user interface", + Privilege: "CreateHumanTaskUi", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiregionaccesspointrequestarn*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "human-task-ui*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232829,23 +278931,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate Access Grants identity center", - Privilege: "DissociateAccessGrantsIdentityCenter", + Description: "Grants permission to create a hyper parameter tuning job that can be deployed using Amazon SageMaker", + Privilege: "CreateHyperParameterTuningJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "hyper-parameter-tuning-job*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:FileSystemAccessMode", + "sagemaker:FileSystemDirectoryPath", + "sagemaker:FileSystemId", + "sagemaker:FileSystemType", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -232853,23 +278965,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to uses the accelerate subresource to return the Transfer Acceleration state of a bucket, which is either Enabled or Suspended", - Privilege: "GetAccelerateConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a SageMaker Image", + Privilege: "CreateImage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "image*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232877,49 +278988,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to read Access Grant", - Privilege: "GetAccessGrant", + AccessLevel: "Write", + Description: "Grants permission to create a SageMaker ImageVersion", + Privilege: "CreateImageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrant*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "image*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to Read Access Grants Instance", - Privilege: "GetAccessGrantsInstance", + AccessLevel: "Write", + Description: "Grants permission to create an inference component on an endpoint", + Privilege: "CreateInferenceComponent", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "endpoint*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "inference-component*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:ModelArn", }, DependentActions: []string{}, ResourceType: "", @@ -232927,24 +279028,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to Read Access Grants Instance by prefix", - Privilege: "GetAccessGrantsInstanceForPrefix", + AccessLevel: "Write", + Description: "Grants permission to create an inference experiment", + Privilege: "CreateInferenceExperiment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "inference-experiment*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232952,24 +279051,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to read Access grants instance resource policy", - Privilege: "GetAccessGrantsInstanceResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to create an inference recommendations job", + Privilege: "CreateInferenceRecommendationsJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "inference-recommendations-job*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -232977,24 +279074,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to read Access Grants location", - Privilege: "GetAccessGrantsLocation", + AccessLevel: "Write", + Description: "Grants permission to start a labeling job. A labeling job takes unlabeled data in and produces labeled data as output, which can be used for training SageMaker models", + Privilege: "CreateLabelingJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accessgrantslocation*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "labeling-job*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "sagemaker:WorkteamArn", + "sagemaker:WorkteamType", + "sagemaker:VolumeKmsKey", + "sagemaker:OutputKmsKey", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233002,48 +279101,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return configuration information about the specified access point", - Privilege: "GetAccessPoint", + AccessLevel: "Write", + Description: "Grants permission to create a lineage group policy", + Privilege: "CreateLineageGroupPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the configuration of the object lambda enabled access point", - Privilege: "GetAccessPointConfigurationForObjectLambda", + AccessLevel: "Write", + Description: "Grants permission to create an MLflow tracking server", + Privilege: "CreateMlflowTrackingServer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "mlflow-tracking-server*", }, { ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233051,26 +279136,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to create an object lambda enabled accesspoint", - Privilege: "GetAccessPointForObjectLambda", + AccessLevel: "Write", + Description: "Grants permission to create a model in Amazon SageMaker. In the request, you specify a name for the model and describe one or more containers", + Privilege: "CreateModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "model*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:NetworkIsolation", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", + "sagemaker:DirectGatedModelAccess", }, DependentActions: []string{}, ResourceType: "", @@ -233078,26 +279163,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to returns the access point policy associated with the specified access point", - Privilege: "GetAccessPointPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a model bias job definition", + Privilege: "CreateModelBiasJobDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "accesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "model-bias-job-definition*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -233105,26 +279194,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to returns the access point policy associated with the specified object lambda enabled access point", - Privilege: "GetAccessPointPolicyForObjectLambda", + AccessLevel: "Write", + Description: "Grants permission to create a model card", + Privilege: "CreateModelCard", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "model-card*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233132,26 +279216,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the policy status for a specific access point policy", - Privilege: "GetAccessPointPolicyStatus", + AccessLevel: "Write", + Description: "Grants permission to create an export job for a model card", + Privilege: "CreateModelCardExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "model-card*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a model explainability job definition", + Privilege: "CreateModelExplainabilityJobDefinition", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "model-explainability-job-definition*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -233159,26 +279259,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the policy status for a specific object lambda access point policy", - Privilege: "GetAccessPointPolicyStatusForObjectLambda", + AccessLevel: "Write", + Description: "Grants permission to create a ModelPackage", + Privilege: "CreateModelPackage", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "model-package", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "model-package-group", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:ModelApprovalStatus", + "sagemaker:CustomerMetadataProperties/${MetadataKey}", + "sagemaker:ModelLifeCycle:Stage", + "sagemaker:ModelLifeCycle:StageStatus", }, DependentActions: []string{}, ResourceType: "", @@ -233186,18 +279290,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the PublicAccessBlock configuration for an AWS account", - Privilege: "GetAccountPublicAccessBlock", + AccessLevel: "Write", + Description: "Grants permission to create a ModelPackageGroup", + Privilege: "CreateModelPackageGroup", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "model-package-group*", + }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233205,23 +279312,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an analytics configuration from an Amazon S3 bucket, identified by the analytics configuration ID", - Privilege: "GetAnalyticsConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a model quality job definition", + Privilege: "CreateModelQualityJobDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "model-quality-job-definition*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -233229,23 +279343,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to use the acl subresource to return the access control list (ACL) of an Amazon S3 bucket", - Privilege: "GetBucketAcl", + AccessLevel: "Write", + Description: "Grants permission to create a monitoring schedule", + Privilege: "CreateMonitoringSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "monitoring-schedule*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -233253,23 +279374,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the CORS configuration information set for an Amazon S3 bucket", - Privilege: "GetBucketCORS", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon SageMaker notebook instance. A notebook instance is an Amazon EC2 instance running on a Jupyter Notebook", + Privilege: "CreateNotebookInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "notebook-instance*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:AcceleratorTypes", + "sagemaker:DirectInternetAccess", + "sagemaker:InstanceTypes", + "sagemaker:MinimumInstanceMetadataServiceVersion", + "sagemaker:RootAccess", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -233277,47 +279405,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the Region that an Amazon S3 bucket resides in", - Privilege: "GetBucketLocation", + AccessLevel: "Write", + Description: "Grants permission to create a notebook instance lifecycle configuration that can be deployed using Amazon SageMaker", + Privilege: "CreateNotebookInstanceLifecycleConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook-instance-lifecycle-config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the logging status of an Amazon S3 bucket and the permissions users have to view or modify that status", - Privilege: "GetBucketLogging", + AccessLevel: "Write", + Description: "Grants permission to create an optimization job", + Privilege: "CreateOptimizationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "optimization-job*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233325,23 +279440,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the notification configuration of an Amazon S3 bucket", - Privilege: "GetBucketNotification", + AccessLevel: "Write", + Description: "Grants permission to create an Amazon SageMaker Partner AI App", + Privilege: "CreatePartnerApp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "partner-app*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233349,47 +279462,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the Object Lock configuration of an Amazon S3 bucket", - Privilege: "GetBucketObjectLockConfiguration", + AccessLevel: "Write", + Description: "Grants permission to return a URL that you can use from your browser to connect to the Amazon SageMaker Partner AI App", + Privilege: "CreatePartnerAppPresignedUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:signatureversion", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve ownership controls on a bucket", - Privilege: "GetBucketOwnershipControls", + AccessLevel: "Write", + Description: "Grants permission to create a pipeline", + Privilege: "CreatePipeline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "pipeline*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233397,71 +279497,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the policy of the specified bucket", - Privilege: "GetBucketPolicy", + AccessLevel: "Write", + Description: "Grants permission to return a URL that you can use from your browser to connect to the Domain as a specified UserProfile when AuthMode is 'IAM'", + Privilege: "CreatePresignedDomainUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user-profile*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the policy status for a specific Amazon S3 bucket, which indicates whether the bucket is public", - Privilege: "GetBucketPolicyStatus", + AccessLevel: "Write", + Description: "Grants permission to return a URL that you can use from your browser to connect to the MLflow tracking server", + Privilege: "CreatePresignedMlflowTrackingServerUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "mlflow-tracking-server*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a URL that you can use from your browser to connect to the Notebook Instance", + Privilege: "CreatePresignedNotebookInstanceUrl", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook-instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the PublicAccessBlock configuration for an Amazon S3 bucket", - Privilege: "GetBucketPublicAccessBlock", + AccessLevel: "Write", + Description: "Grants permission to start a processing job. After processing completes, Amazon SageMaker saves the resulting artifacts and other optional output to an Amazon S3 location that you specify", + Privilege: "CreateProcessingJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "processing-job*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", + "sagemaker:InterContainerTrafficEncryption", }, DependentActions: []string{}, ResourceType: "", @@ -233469,23 +279564,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the request payment configuration for an Amazon S3 bucket", - Privilege: "GetBucketRequestPayment", + AccessLevel: "Write", + Description: "Grants permission to create a Project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "project*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233493,23 +279586,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set associated with an Amazon S3 bucket", - Privilege: "GetBucketTagging", + AccessLevel: "Write", + Description: "Grants permission to create a reserved capacity", + Privilege: "CreateReservedCapacity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "reserved-capacity*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233517,23 +279608,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the versioning state of an Amazon S3 bucket", - Privilege: "GetBucketVersioning", + AccessLevel: "Write", + Description: "Grants permission to create a shared model in a SageMaker Studio application", + Privilege: "CreateSharedModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "shared-model*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a Space for a SageMaker Domain", + Privilege: "CreateSpace", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "space*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:ImageArns", + "sagemaker:ImageVersionArns", + "sagemaker:OwnerUserProfileArn", + "sagemaker:SpaceSharingType", }, DependentActions: []string{}, ResourceType: "", @@ -233541,23 +279647,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the website configuration for an Amazon S3 bucket", - Privilege: "GetBucketWebsite", + AccessLevel: "Write", + Description: "Grants permission to create a Studio Lifecycle Configuration that can be deployed using Amazon SageMaker", + Privilege: "CreateStudioLifecycleConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "studio-lifecycle-config*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233565,24 +279669,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Access", - Privilege: "GetDataAccess", + AccessLevel: "Write", + Description: "Grants permission to start a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts and other optional output to an Amazon S3 location that you specify", + Privilege: "CreateTrainingJob", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "training-job*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "reserved-capacity", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training-plan", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:FileSystemAccessMode", + "sagemaker:FileSystemDirectoryPath", + "sagemaker:FileSystemId", + "sagemaker:FileSystemType", + "sagemaker:InstanceTypes", + "sagemaker:InterContainerTrafficEncryption", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", + "sagemaker:KeepAlivePeriod", + "sagemaker:EnableRemoteDebug", + "sagemaker:DirectGatedModelAccess", }, DependentActions: []string{}, ResourceType: "", @@ -233590,23 +279717,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the default encryption configuration an Amazon S3 bucket", - Privilege: "GetEncryptionConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a training plan that allocates resources for scheduling workloads within a specified time range", + Privilege: "CreateTrainingPlan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + "sagemaker:CreateReservedCapacity", + }, + ResourceType: "training-plan*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233614,23 +279740,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an or list all Amazon S3 Intelligent Tiering configuration in a S3 Bucket", - Privilege: "GetIntelligentTieringConfiguration", + AccessLevel: "Write", + Description: "Grants permission to start a transform job. After the results are obtained, Amazon SageMaker saves them to an Amazon S3 location that you specify", + Privilege: "CreateTransformJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "transform-job*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:ModelArn", + "sagemaker:OutputKmsKey", + "sagemaker:VolumeKmsKey", }, DependentActions: []string{}, ResourceType: "", @@ -233638,23 +279766,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return an inventory configuration from an Amazon S3 bucket, identified by the inventory configuration ID", - Privilege: "GetInventoryConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a trial", + Privilege: "CreateTrial", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "experiment*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "experiment-trial*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233662,23 +279793,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set of an existing Amazon S3 Batch Operations job", - Privilege: "GetJobTagging", + AccessLevel: "Write", + Description: "Grants permission to create a trial component", + Privilege: "CreateTrialComponent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "job*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "experiment-trial-component*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233686,23 +279815,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the lifecycle configuration information set on an Amazon S3 bucket", - Privilege: "GetLifecycleConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a UserProfile for a SageMaker Domain", + Privilege: "CreateUserProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "sagemaker:AddTags", + }, + ResourceType: "user-profile*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:InstanceTypes", + "sagemaker:DomainSharingOutputKmsKey", + "sagemaker:ImageArns", + "sagemaker:ImageVersionArns", }, DependentActions: []string{}, ResourceType: "", @@ -233710,23 +279843,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a metrics configuration from an Amazon S3 bucket", - Privilege: "GetMetricsConfiguration", + AccessLevel: "Write", + Description: "Grants permission to create a workforce", + Privilege: "CreateWorkforce", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "workforce*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233734,25 +279865,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return configuration information about the specified Multi-Region Access Point", - Privilege: "GetMultiRegionAccessPoint", + AccessLevel: "Write", + Description: "Grants permission to create a workteam", + Privilege: "CreateWorkteam", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "workteam*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -233760,51 +279887,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to returns the access point policy associated with the specified Multi-Region Access Point", - Privilege: "GetMultiRegionAccessPointPolicy", + AccessLevel: "Write", + Description: "Grants permission to delete an action", + Privilege: "DeleteAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ResourceType: "action*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an algorithm", + Privilege: "DeleteAlgorithm", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "algorithm*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the policy status for a specific Multi-Region Access Point policy", - Privilege: "GetMultiRegionAccessPointPolicyStatus", + AccessLevel: "Write", + Description: "Grants permission to delete an App", + Privilege: "DeleteApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ResourceType: "app*", }, { ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", + "sagemaker:OwnerUserProfileArn", + "sagemaker:SpaceSharingType", }, DependentActions: []string{}, ResourceType: "", @@ -233812,330 +279931,244 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the route configuration for a Multi-Region Access Point", - Privilege: "GetMultiRegionAccessPointRoutes", + AccessLevel: "Write", + Description: "Grants permission to delete an AppImageConfig", + Privilege: "DeleteAppImageConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ResourceType: "app-image-config*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an artifact", + Privilege: "DeleteArtifact", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "artifact*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve objects from Amazon S3", - Privilege: "GetObject", + AccessLevel: "Write", + Description: "Grants permission to delete the association from a lineage entity (artifact, context, action, experiment, experiment-trial-component) to another", + Privilege: "DeleteAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "action*", }, { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "artifact*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return the access control list (ACL) of an object", - Privilege: "GetObjectAcl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "context*", }, { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve attributes related to a specific object", - Privilege: "GetObjectAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "experiment-trial-component*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a SageMaker HyperPod cluster", + Privilege: "DeleteCluster", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + ConditionKeys: []string{}, + DependentActions: []string{ + "eks:DeleteAccessEntry", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an object's current Legal Hold status", - Privilege: "GetObjectLegalHold", + AccessLevel: "Write", + Description: "Grants permission to delete a cluster scheduler config", + Privilege: "DeleteClusterSchedulerConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-scheduler-config*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the retention settings for an object", - Privilege: "GetObjectRetention", + AccessLevel: "Write", + Description: "Grants permission to delete a CodeRepository", + Privilege: "DeleteCodeRepository", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "code-repository*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a compilation job", + Privilege: "DeleteCompilationJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "compilation-job*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set of an object", - Privilege: "GetObjectTagging", + AccessLevel: "Write", + Description: "Grants permission to delete a compute quota", + Privilege: "DeleteComputeQuota", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "compute-quota*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a context", + Privilege: "DeleteContext", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "context*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return torrent files from an Amazon S3 bucket", - Privilege: "GetObjectTorrent", + AccessLevel: "Write", + Description: "Grants permission to delete the data quality job definition created using the CreateDataQualityJobDefinition API", + Privilege: "DeleteDataQualityJobDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "data-quality-job-definition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a device fleet", + Privilege: "DeleteDeviceFleet", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device-fleet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a specific version of an object", - Privilege: "GetObjectVersion", + AccessLevel: "Write", + Description: "Grants permission to delete a Domain", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "domain*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an edge deployment plan", + Privilege: "DeleteEdgeDeploymentPlan", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "edge-deployment-plan*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the access control list (ACL) of a specific object version", - Privilege: "GetObjectVersionAcl", + AccessLevel: "Write", + Description: "Grants permission to delete an edge deployment stage", + Privilege: "DeleteEdgeDeploymentStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "edge-deployment-plan*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an endpoint. Amazon SageMaker frees up all the resources that were deployed when the endpoint was created", + Privilege: "DeleteEndpoint", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve attributes related to a specific version of an object", - Privilege: "GetObjectVersionAttributes", + AccessLevel: "Write", + Description: "Grants permission to delete the endpoint configuration created using the CreateEndpointConfig API. The DeleteEndpointConfig API deletes only the specified configuration. It does not delete any endpoints created using the configuration", + Privilege: "DeleteEndpointConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "endpoint-config*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an experiment", + Privilege: "DeleteExperiment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to replicate both unencrypted objects and objects encrypted with SSE-S3 or SSE-KMS", - Privilege: "GetObjectVersionForReplication", + AccessLevel: "Write", + Description: "Grants permission to delete a feature group", + Privilege: "DeleteFeatureGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "feature-group*", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -234143,174 +280176,154 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set for a specific version of the object", - Privilege: "GetObjectVersionTagging", + AccessLevel: "Write", + Description: "Grants permission to delete the specified flow definition", + Privilege: "DeleteFlowDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "flow-definition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete hubs", + Privilege: "DeleteHub", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get Torrent files about a different version using the versionId subresource", - Privilege: "GetObjectVersionTorrent", + AccessLevel: "Write", + Description: "Grants permission to delete hub content", + Privilege: "DeleteHubContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "hub*", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub-content*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the replication configuration information set on an Amazon S3 bucket", - Privilege: "GetReplicationConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete hub content reference", + Privilege: "DeleteHubContentReference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "hub*", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub-content*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an Amazon S3 Storage Lens configuration", - Privilege: "GetStorageLensConfiguration", + AccessLevel: "Write", + Description: "Grants permission to delete a specified human loop", + Privilege: "DeleteHumanLoop", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensconfiguration*", + ResourceType: "human-loop*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified human task user interface (worker task template)", + Privilege: "DeleteHumanTaskUi", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "human-task-ui*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the tag set of an existing Amazon S3 Storage Lens configuration", - Privilege: "GetStorageLensConfigurationTagging", + AccessLevel: "Write", + Description: "Grants permission to delete a hyper parameter tuning job", + Privilege: "DeleteHyperParameterTuningJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensconfiguration*", + ResourceType: "hyper-parameter-tuning-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a SageMaker Image", + Privilege: "DeleteImage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an Amazon S3 Storage Lens dashboard", - Privilege: "GetStorageLensDashboard", + AccessLevel: "Write", + Description: "Grants permission to delete a SageMaker ImageVersion", + Privilege: "DeleteImageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensconfiguration*", + ResourceType: "image-version*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an inference component. Amazon SageMaker frees up the resources that were reserved when the inference component was created", + Privilege: "DeleteInferenceComponent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-component*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get an Amazon S3 Storage Lens group", - Privilege: "GetStorageLensGroup", + AccessLevel: "Write", + Description: "Grants permission to delete an inference experiment", + Privilege: "DeleteInferenceExperiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensgroup*", + ResourceType: "inference-experiment*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a lineage group policy", + Privilege: "DeleteLineageGroupPolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -234318,298 +280331,234 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to initiate the replication process by setting replication status of an object to pending", - Privilege: "InitiateReplication", + Description: "Grants permission to delete an MLflow tracking server", + Privilege: "DeleteMlflowTrackingServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "mlflow-tracking-server*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a model created using the CreateModel API. The DeleteModel API deletes only the model entry in Amazon SageMaker that you created by calling the CreateModel API. It does not delete model artifacts, inference code, or the IAM role that you specified when creating the model", + Privilege: "DeleteModel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:ResourceAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Access Grant", - Privilege: "ListAccessGrants", + AccessLevel: "Write", + Description: "Grants permission to delete the model bias job definition created using the CreateModelBiasJobDefinition API", + Privilege: "DeleteModelBiasJobDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "model-bias-job-definition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a model card", + Privilege: "DeleteModelCard", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-card*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to List Access Grants Instances", - Privilege: "ListAccessGrantsInstances", + AccessLevel: "Write", + Description: "Grants permission to delete the model explainability job definition created using the CreateModelExplainabilityJobDefinition API", + Privilege: "DeleteModelExplainabilityJobDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-explainability-job-definition*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Access Grants locations", - Privilege: "ListAccessGrantsLocations", + AccessLevel: "Write", + Description: "Grants permission to delete a ModelPackage", + Privilege: "DeleteModelPackage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "model-package*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a ModelPackageGroup", + Privilege: "DeleteModelPackageGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-package-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list access points", - Privilege: "ListAccessPoints", + AccessLevel: "Write", + Description: "Grants permission to delete a ModelPackageGroup policy", + Privilege: "DeleteModelPackageGroupPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-package-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list object lambda enabled accesspoints", - Privilege: "ListAccessPointsForObjectLambda", + AccessLevel: "Write", + Description: "Grants permission to delete the model quality job definition created using the CreateModelQualityJobDefinition API", + Privilege: "DeleteModelQualityJobDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-quality-job-definition*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all buckets owned by the authenticated sender of the request", - Privilege: "ListAllMyBuckets", + AccessLevel: "Write", + Description: "Grants permission to delete a monitoring schedule", + Privilege: "DeleteMonitoringSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitoring-schedule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)", - Privilege: "ListBucket", + AccessLevel: "Write", + Description: "Grants permission to delete a Amazon SageMaker notebook instance. Before you can delete a notebook instance, you must call the StopNotebookInstance API", + Privilege: "DeleteNotebookInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "notebook-instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a notebook instance lifecycle configuration", + Privilege: "DeleteNotebookInstanceLifecycleConfig", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:delimiter", - "s3:max-keys", - "s3:prefix", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook-instance-lifecycle-config*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list in-progress multipart uploads", - Privilege: "ListBucketMultipartUploads", + AccessLevel: "Write", + Description: "Grants permission to delete an optimization job", + Privilege: "DeleteOptimizationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "optimization-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon SageMaker Partner AI App", + Privilege: "DeletePartnerApp", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list metadata about all the versions of objects in an Amazon S3 bucket", - Privilege: "ListBucketVersions", + AccessLevel: "Write", + Description: "Grants permission to delete a pipeline", + Privilege: "DeletePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:delimiter", - "s3:max-keys", - "s3:prefix", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list current jobs and jobs that have ended recently", - Privilege: "ListJobs", + AccessLevel: "Write", + Description: "Grants permission to delete a record from a feature group", + Privilege: "DeleteRecord", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "feature-group*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Multi-Region Access Points", - Privilege: "ListMultiRegionAccessPoints", + AccessLevel: "Write", + Description: "Grants AWS Resource Access Manager permission to delete a resource policy on a SageMaker resource that supports cross-account sharing", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the parts that have been uploaded for a specific multipart upload", - Privilege: "ListMultipartUploadParts", + AccessLevel: "Write", + Description: "Grants permission to delete a Space", + Privilege: "DeleteSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "space*", }, { ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "sagemaker:OwnerUserProfileArn", + "sagemaker:SpaceSharingType", }, DependentActions: []string{}, ResourceType: "", @@ -234617,391 +280566,305 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list Amazon S3 Storage Lens configurations", - Privilege: "ListStorageLensConfigurations", + AccessLevel: "Write", + Description: "Grants permission to delete a Studio Lifecycle Configuration", + Privilege: "DeleteStudioLifecycleConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "studio-lifecycle-config*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list S3 Storage Lens groups", - Privilege: "ListStorageLensGroups", + AccessLevel: "Tagging", + Description: "Grants permission to delete the specified set of tags from an Amazon SageMaker resource", + Privilege: "DeleteTags", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "action", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "algorithm", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "app-image-config", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "artifact", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "automl-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "cluster-scheduler-config", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "code-repository", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "compilation-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "compute-quota", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "context", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-quality-job-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device-fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "edge-deployment-plan", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "edge-packaging-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint-config", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial-component", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "feature-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "flow-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub-content", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "human-task-ui", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the tags attached to the specified resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrant", + ResourceType: "hyper-parameter-tuning-job", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance", + ResourceType: "image", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantslocation", + ResourceType: "inference-component", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensgroup", + ResourceType: "inference-recommendations-job", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "labeling-job", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to change replica ownership", - Privilege: "ObjectOwnerOverrideToBucketOwner", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "mlflow-tracking-server", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to pause S3 Replication from target source buckets to destination buckets", - Privilege: "PauseReplication", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "S3:GetReplicationConfiguration", - "S3:PutReplicationConfiguration", - }, - ResourceType: "bucket*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-bias-job-definition", }, { - ConditionKeys: []string{ - "s3:destinationRegion", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-card", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to use the accelerate subresource to set the Transfer Acceleration state of an existing S3 bucket", - Privilege: "PutAccelerateConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "model-explainability-job-definition", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-package", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put Access grants instance resource policy", - Privilege: "PutAccessGrantsInstanceResourcePolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance*", + ResourceType: "model-package-group", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-quality-job-definition", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the configuration of the object lambda enabled access point", - Privilege: "PutAccessPointConfigurationForObjectLambda", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "monitoring-schedule", }, { - ConditionKeys: []string{ - "s3:DataAccessPointArn", - "s3:DataAccessPointAccount", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook-instance", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to associate an access policy with a specified access point", - Privilege: "PutAccessPointPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "optimization-job", }, { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to associate an access policy with a specified object lambda enabled access point", - Privilege: "PutAccessPointPolicyForObjectLambda", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "pipeline", }, { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "processing-job", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to associate public access block configurations with a specified access point, while creating a access point", - Privilege: "PutAccessPointPublicAccessBlock", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "project", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to create or modify the PublicAccessBlock configuration for an AWS account", - Privilege: "PutAccountPublicAccessBlock", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "reserved-capacity", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set an analytics configuration for the bucket, specified by the analytics configuration ID", - Privilege: "PutAnalyticsConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "space", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "studio-lifecycle-config", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to set the permissions on an existing bucket using access control lists (ACLs)", - Privilege: "PutBucketAcl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "training-job", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", - "s3:x-amz-grant-full-control", - "s3:x-amz-grant-read", - "s3:x-amz-grant-read-acp", - "s3:x-amz-grant-write", - "s3:x-amz-grant-write-acp", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "training-plan", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the CORS configuration for an Amazon S3 bucket", - Privilege: "PutBucketCORS", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "transform-job", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "user-profile", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the logging parameters for an Amazon S3 bucket", - Privilege: "PutBucketLogging", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "workteam", }, { ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -235010,1256 +280873,1015 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to receive notifications when certain events happen in an Amazon S3 bucket", - Privilege: "PutBucketNotification", + Description: "Grants permission to delete a trial", + Privilege: "DeleteTrial", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment-trial*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put Object Lock configuration on a specific bucket", - Privilege: "PutBucketObjectLockConfiguration", + Description: "Grants permission to delete a trial component", + Privilege: "DeleteTrialComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:TlsVersion", - "s3:signatureversion", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment-trial-component*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add, replace or delete ownership controls on a bucket", - Privilege: "PutBucketOwnershipControls", + Description: "Grants permission to delete a UserProfile", + Privilege: "DeleteUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "user-profile*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add or replace a bucket policy on a bucket", - Privilege: "PutBucketPolicy", + AccessLevel: "Write", + Description: "Grants permission to delete a workforce", + Privilege: "DeleteWorkforce", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workforce*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or modify the PublicAccessBlock configuration for a specific Amazon S3 bucket", - Privilege: "PutBucketPublicAccessBlock", + AccessLevel: "Write", + Description: "Grants permission to delete a workteam", + Privilege: "DeleteWorkteam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "workteam*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the request payment configuration of a bucket", - Privilege: "PutBucketRequestPayment", + Description: "Grants permission to deploy a model in hub to an endpoint", + Privilege: "DeployHubModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "hub*", }, { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub-content*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add a set of tags to an existing Amazon S3 bucket", - Privilege: "PutBucketTagging", + AccessLevel: "Write", + Description: "Grants permission to deregister a set of devices", + Privilege: "DeregisterDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the versioning state of an existing Amazon S3 bucket", - Privilege: "PutBucketVersioning", + AccessLevel: "Read", + Description: "Grants permission to get information about an action", + Privilege: "DescribeAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "action*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the configuration of the website that is specified in the website subresource", - Privilege: "PutBucketWebsite", + AccessLevel: "Read", + Description: "Grants permission to describe an algorithm", + Privilege: "DescribeAlgorithm", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "algorithm*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the encryption configuration for an Amazon S3 bucket", - Privilege: "PutEncryptionConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe an App", + Privilege: "DescribeApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "app*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create new or update or delete an existing Amazon S3 Intelligent Tiering configuration", - Privilege: "PutIntelligentTieringConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe an AppImageConfig", + Privilege: "DescribeAppImageConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "app-image-config*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about an artifact", + Privilege: "DescribeArtifact", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "artifact*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an inventory configuration to the bucket, identified by the inventory ID", - Privilege: "PutInventoryConfiguration", + AccessLevel: "Read", + Description: "Grants permission to describe an AutoML job that was created via the CreateAutoMLJob API", + Privilege: "DescribeAutoMLJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "automl-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an AutoML job that was created via the CreateAutoMLJobV2 API", + Privilege: "DescribeAutoMLJobV2", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:InventoryAccessibleOptionalFields", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "automl-job*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to replace tags on an existing Amazon S3 Batch Operations job", - Privilege: "PutJobTagging", + AccessLevel: "Read", + Description: "Grants permission to return information about a SageMaker HyperPod cluster", + Privilege: "DescribeCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a SageMaker HyperPod cluster node", + Privilege: "DescribeClusterNode", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:ExistingJobPriority", - "s3:ExistingJobOperation", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new lifecycle configuration for the bucket or replace an existing lifecycle configuration", - Privilege: "PutLifecycleConfiguration", + AccessLevel: "Read", + Description: "Grants permission to get information about a cluster scheduler config", + Privilege: "DescribeClusterSchedulerConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "cluster-scheduler-config*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a CodeRepository", + Privilege: "DescribeCodeRepository", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "code-repository*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set or update a metrics configuration for the CloudWatch request metrics from an Amazon S3 bucket", - Privilege: "PutMetricsConfiguration", + AccessLevel: "Read", + Description: "Grants permission to return information about a compilation job", + Privilege: "DescribeCompilationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "compilation-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a compute quota", + Privilege: "DescribeComputeQuota", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "compute-quota*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate an access policy with a specified Multi-Region Access Point", - Privilege: "PutMultiRegionAccessPointPolicy", + AccessLevel: "Read", + Description: "Grants permission to get information about a context", + Privilege: "DescribeContext", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ResourceType: "context*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a data quality job definition", + Privilege: "DescribeDataQualityJobDefinition", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "data-quality-job-definition*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an object to a bucket", - Privilege: "PutObject", + AccessLevel: "Read", + Description: "Grants permission to access information about a device", + Privilege: "DescribeDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "device*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to access information about a device fleet", + Privilege: "DescribeDeviceFleet", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:RequestObjectTag/", - "s3:RequestObjectTagKeys", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", - "s3:x-amz-copy-source", - "s3:x-amz-grant-full-control", - "s3:x-amz-grant-read", - "s3:x-amz-grant-read-acp", - "s3:x-amz-grant-write", - "s3:x-amz-grant-write-acp", - "s3:x-amz-metadata-directive", - "s3:x-amz-server-side-encryption", - "s3:x-amz-server-side-encryption-aws-kms-key-id", - "s3:x-amz-server-side-encryption-customer-algorithm", - "s3:x-amz-storage-class", - "s3:x-amz-website-redirect-location", - "s3:object-lock-mode", - "s3:object-lock-retain-until-date", - "s3:object-lock-remaining-retention-days", - "s3:object-lock-legal-hold", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device-fleet*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the access control list (ACL) permissions for new or existing objects in an S3 bucket", - Privilege: "PutObjectAcl", + AccessLevel: "Read", + Description: "Grants permission to describe a Domain", + Privilege: "DescribeDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "domain*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to access information about an edge deployment plan", + Privilege: "DescribeEdgeDeploymentPlan", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", - "s3:x-amz-grant-full-control", - "s3:x-amz-grant-read", - "s3:x-amz-grant-read-acp", - "s3:x-amz-grant-write", - "s3:x-amz-grant-write-acp", - "s3:x-amz-storage-class", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "edge-deployment-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to apply a Legal Hold configuration to the specified object", - Privilege: "PutObjectLegalHold", + AccessLevel: "Read", + Description: "Grants permission to access information about an edge packaging job", + Privilege: "DescribeEdgePackagingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "edge-packaging-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the description of an endpoint", + Privilege: "DescribeEndpoint", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:object-lock-legal-hold", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to place an Object Retention configuration on an object", - Privilege: "PutObjectRetention", + AccessLevel: "Read", + Description: "Grants permission to return the description of an endpoint configuration, which was created using the CreateEndpointConfig API", + Privilege: "DescribeEndpointConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "endpoint-config*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about an experiment", + Privilege: "DescribeExperiment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:object-lock-mode", - "s3:object-lock-retain-until-date", - "s3:object-lock-remaining-retention-days", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to set the supplied tag-set to an object that already exists in a bucket", - Privilege: "PutObjectTagging", + AccessLevel: "Read", + Description: "Grants permission to return information about a feature group", + Privilege: "DescribeFeatureGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "feature-group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a feature metadata", + Privilege: "DescribeFeatureMetadata", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:RequestObjectTag/", - "s3:RequestObjectTagKeys", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "feature-group*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to use the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket", - Privilege: "PutObjectVersionAcl", + AccessLevel: "Read", + Description: "Grants permission to return information about the specified flow definition", + Privilege: "DescribeFlowDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "flow-definition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe hubs", + Privilege: "DescribeHub", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:AccessGrantsInstanceArn", - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-acl", - "s3:x-amz-content-sha256", - "s3:x-amz-grant-full-control", - "s3:x-amz-grant-read", - "s3:x-amz-grant-read-acp", - "s3:x-amz-grant-write", - "s3:x-amz-grant-write-acp", - "s3:x-amz-storage-class", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to set the supplied tag-set for a specific version of an object", - Privilege: "PutObjectVersionTagging", + AccessLevel: "Read", + Description: "Grants permission to describe hub content", + Privilege: "DescribeHubContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "hub*", }, { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:ExistingObjectTag/", - "s3:RequestObjectTag/", - "s3:RequestObjectTagKeys", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:versionid", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub-content*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new replication configuration or replace an existing one", - Privilege: "PutReplicationConfiguration", + AccessLevel: "Read", + Description: "Grants permission to return information about the specified human loop", + Privilege: "DescribeHumanLoop", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:isReplicationPauseRequest", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "human-loop*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update an Amazon S3 Storage Lens configuration", - Privilege: "PutStorageLensConfiguration", + AccessLevel: "Read", + Description: "Grants permission to return detailed information about the specified human review workflow user interface", + Privilege: "DescribeHumanTaskUi", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "human-task-ui*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to put or replace tags on an existing Amazon S3 Storage Lens configuration", - Privilege: "PutStorageLensConfigurationTagging", + AccessLevel: "Read", + Description: "Grants permission to describe a hyper parameter tuning job that was created via the CreateHyperParameterTuningJob API", + Privilege: "DescribeHyperParameterTuningJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensconfiguration*", + ResourceType: "hyper-parameter-tuning-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a SageMaker Image", + Privilege: "DescribeImage", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to replicate delete markers to the destination bucket", - Privilege: "ReplicateDelete", + AccessLevel: "Read", + Description: "Grants permission to return information about a SageMaker ImageVersion", + Privilege: "DescribeImageVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "image-version*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return the description of an inference component", + Privilege: "DescribeInferenceComponent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-component*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to replicate objects and object tags to the destination bucket", - Privilege: "ReplicateObject", + AccessLevel: "Read", + Description: "Grants permission to get information about an inference experiment", + Privilege: "DescribeInferenceExperiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "inference-experiment*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about an inference recommendations job", + Privilege: "DescribeInferenceRecommendationsJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:x-amz-server-side-encryption", - "s3:x-amz-server-side-encryption-aws-kms-key-id", - "s3:x-amz-server-side-encryption-customer-algorithm", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-recommendations-job*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to replicate object tags to the destination bucket", - Privilege: "ReplicateTags", + AccessLevel: "Read", + Description: "Grants permission to return information about a labeling job", + Privilege: "DescribeLabelingJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "labeling-job*", }, - { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a lineage group", + Privilege: "DescribeLineageGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore an archived copy of an object back into Amazon S3", - Privilege: "RestoreObject", + AccessLevel: "Read", + Description: "Grants permission to get information about an MLflow tracking server", + Privilege: "DescribeMlflowTrackingServer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "mlflow-tracking-server*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a model that you created using the CreateModel API", + Privilege: "DescribeModel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to submit a route configuration update for a Multi-Region Access Point", - Privilege: "SubmitMultiRegionAccessPointRoutes", + AccessLevel: "Read", + Description: "Grants permission to return information about a model bias job definition", + Privilege: "DescribeModelBiasJobDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "multiregionaccesspoint*", + ResourceType: "model-bias-job-definition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a model card", + Privilege: "DescribeModelCard", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:DataAccessPointAccount", - "s3:DataAccessPointArn", - "s3:AccessPointNetworkOrigin", - "s3:authType", - "s3:ResourceAccount", - "s3:signatureversion", - "s3:signatureAge", - "s3:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-card*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the specified resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get information about a model card export job", + Privilege: "DescribeModelCardExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrant", + ResourceType: "model-card-export-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a model explainability job definition", + Privilege: "DescribeModelExplainabilityJobDefinition", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance", + ResourceType: "model-explainability-job-definition*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a ModelPackage", + Privilege: "DescribeModelPackage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantslocation", + ResourceType: "model-package*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a ModelPackageGroup", + Privilege: "DescribeModelPackageGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensgroup", + ResourceType: "model-package-group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a model quality job definition", + Privilege: "DescribeModelQualityJobDefinition", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-quality-job-definition*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to return information about a monitoring schedule", + Privilege: "DescribeMonitoringSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrant", + ResourceType: "monitoring-schedule*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a notebook instance", + Privilege: "DescribeNotebookInstance", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantsinstance", + ResourceType: "notebook-instance*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a notebook instance lifecycle configuration that was created via the CreateNotebookInstanceLifecycleConfig API", + Privilege: "DescribeNotebookInstanceLifecycleConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantslocation", + ResourceType: "notebook-instance-lifecycle-config*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about an optimization job", + Privilege: "DescribeOptimizationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensgroup", + ResourceType: "optimization-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an Amazon SageMaker Partner AI App", + Privilege: "DescribePartnerApp", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update Access Grants location", - Privilege: "UpdateAccessGrantsLocation", + AccessLevel: "Read", + Description: "Grants permission to get information about a pipeline", + Privilege: "DescribePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accessgrantslocation*", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the pipeline definition for a pipeline execution", + Privilege: "DescribePipelineDefinitionForExecution", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline-execution*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the priority of an existing job", - Privilege: "UpdateJobPriority", + AccessLevel: "Read", + Description: "Grants permission to get information about a pipeline execution", + Privilege: "DescribePipelineExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a processing job", + Privilege: "DescribeProcessingJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:RequestJobPriority", - "s3:ExistingJobPriority", - "s3:ExistingJobOperation", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "processing-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the status for the specified job", - Privilege: "UpdateJobStatus", + AccessLevel: "Read", + Description: "Grants permission to describe a project", + Privilege: "DescribeProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "job*", + ResourceType: "project*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a shared model in a SageMaker Studio application", + Privilege: "DescribeSharedModel", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - "s3:ExistingJobPriority", - "s3:ExistingJobOperation", - "s3:JobSuspendedCause", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "shared-model*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing S3 Storage Lens group", - Privilege: "UpdateStorageLensGroup", + AccessLevel: "Read", + Description: "Grants permission to describe a Space", + Privilege: "DescribeSpace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "storagelensgroup*", + ResourceType: "space*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a Studio Lifecycle Configuration", + Privilege: "DescribeStudioLifecycleConfig", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3:authType", - "s3:ResourceAccount", - "s3:signatureAge", - "s3:signatureversion", - "s3:TlsVersion", - "s3:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "studio-lifecycle-config*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:s3:${Region}:${Account}:accesspoint/${AccessPointName}", - ConditionKeys: []string{}, - Resource: "accesspoint", - }, - { - Arn: "arn:${Partition}:s3:::${BucketName}", - ConditionKeys: []string{}, - Resource: "bucket", - }, - { - Arn: "arn:${Partition}:s3:::${BucketName}/${ObjectName}", - ConditionKeys: []string{}, - Resource: "object", - }, { - Arn: "arn:${Partition}:s3:${Region}:${Account}:job/${JobId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + AccessLevel: "Read", + Description: "Grants permission to return information about a subscribed workteam", + Privilege: "DescribeSubscribedWorkteam", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workteam*", + }, }, - Resource: "job", }, { - Arn: "arn:${Partition}:s3:${Region}:${Account}:storage-lens/${ConfigId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + AccessLevel: "Read", + Description: "Grants permission to return information about a training job", + Privilege: "DescribeTrainingJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training-job*", + }, }, - Resource: "storagelensconfiguration", }, { - Arn: "arn:${Partition}:s3:${Region}:${Account}:storage-lens-group/${Name}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + AccessLevel: "Read", + Description: "Grants permission to return information about a specified training plan", + Privilege: "DescribeTrainingPlan", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training-plan*", + }, }, - Resource: "storagelensgroup", - }, - { - Arn: "arn:${Partition}:s3-object-lambda:${Region}:${Account}:accesspoint/${AccessPointName}", - ConditionKeys: []string{}, - Resource: "objectlambdaaccesspoint", - }, - { - Arn: "arn:${Partition}:s3::${Account}:accesspoint/${AccessPointAlias}", - ConditionKeys: []string{}, - Resource: "multiregionaccesspoint", - }, - { - Arn: "arn:${Partition}:s3:us-west-2:${Account}:async-request/mrap/${Operation}/${Token}", - ConditionKeys: []string{}, - Resource: "multiregionaccesspointrequestarn", }, { - Arn: "arn:${Partition}:s3:${Region}:${Account}:access-grants/default", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + AccessLevel: "Read", + Description: "Grants permission to return information about a transform job", + Privilege: "DescribeTransformJob", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "transform-job*", + }, }, - Resource: "accessgrantsinstance", }, { - Arn: "arn:${Partition}:s3:${Region}:${Account}:access-grants/default/location/${Token}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + AccessLevel: "Read", + Description: "Grants permission to return information about a trial", + Privilege: "DescribeTrial", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial*", + }, }, - Resource: "accessgrantslocation", }, { - Arn: "arn:${Partition}:s3:${Region}:${Account}:access-grants/default/grant/${Token}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", + AccessLevel: "Read", + Description: "Grants permission to return information about a trial component", + Privilege: "DescribeTrialComponent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial-component*", + }, }, - Resource: "accessgrant", - }, - }, - ServiceName: "Amazon S3", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "s3-object-lambda:TlsVersion", - Description: "Filters access by the TLS version used by the client", - Type: "Numeric", - }, - { - Condition: "s3-object-lambda:authType", - Description: "Filters access by authentication method", - Type: "String", - }, - { - Condition: "s3-object-lambda:signatureAge", - Description: "Filters access by the age in milliseconds of the request signature", - Type: "Numeric", - }, - { - Condition: "s3-object-lambda:versionid", - Description: "Filters access by a specific object version", - Type: "String", }, - }, - Prefix: "s3-object-lambda", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to abort a multipart upload", - Privilege: "AbortMultipartUpload", + AccessLevel: "Read", + Description: "Grants permission to describe a UserProfile", + Privilege: "DescribeUserProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "user-profile*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return information about a workforce", + Privilege: "DescribeWorkforce", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workforce*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object", - Privilege: "DeleteObject", + AccessLevel: "Read", + Description: "Grants permission to return information about a workteam", + Privilege: "DescribeWorkteam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "workteam*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable a SageMaker Service Catalog Portfolio", + Privilege: "DisableSagemakerServicecatalogPortfolio", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to use the tagging subresource to remove the entire tag set from the specified object", - Privilege: "DeleteObjectTagging", + AccessLevel: "Write", + Description: "Grants permission to disassociate a trial component from a trial", + Privilege: "DisassociateTrialComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "experiment-trial*", }, { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment-trial-component*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "processing-job*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a specific version of an object", - Privilege: "DeleteObjectVersion", + Description: "Grants permission to enable a SageMaker Service Catalog Portfolio", + Privilege: "EnableSagemakerServicecatalogPortfolio", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the entire tag set for a specific version of the object", - Privilege: "DeleteObjectVersionTagging", + AccessLevel: "Read", + Description: "Grants permission to get deployment plan for device", + Privilege: "GetDeployments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "device*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to access a summary of the devices in a device fleet", + Privilege: "GetDeviceFleetReport", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device-fleet*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve objects from Amazon S3", - Privilege: "GetObject", + Description: "Grants permission to get device registration. After you deploy a model onto edge devices this api is used to get current device registration", + Privilege: "GetDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "device*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retreive a lineage group policy", + Privilege: "GetLineageGroupPolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -236267,41 +281889,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the access control list (ACL) of an object", - Privilege: "GetObjectAcl", + Description: "Grants permission to get a ModelPackageGroup policy", + Privilege: "GetModelPackageGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "model-package-group*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a record from a feature group", + Privilege: "GetRecord", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "feature-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get an object's current Legal Hold status", - Privilege: "GetObjectLegalHold", + Description: "Grants AWS Resource Access Manager permission to retrieve a resource policy on a SageMaker resource that supports cross-account sharing", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a SageMaker Service Catalog Portfolio", + Privilege: "GetSagemakerServicecatalogPortfolioStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -236309,40 +281937,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the retention settings for an object", - Privilege: "GetObjectRetention", + Description: "Grants permission to get a scaling policy configuration recommendation", + Privilege: "GetScalingConfigurationRecommendation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "inference-recommendations-job*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get search suggestions when provided with a keyword", + Privilege: "GetSearchSuggestions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set of an object", - Privilege: "GetObjectTagging", + AccessLevel: "Write", + Description: "Grants permission to import hub content", + Privilege: "ImportHubContent", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sagemaker:AddTags", + }, + ResourceType: "hub*", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "hub-content*", }, { ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -236351,20 +281988,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a specific version of an object", - Privilege: "GetObjectVersion", + Description: "Grants permission to invoke an endpoint. After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint", + Privilege: "InvokeEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "endpoint*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-component", }, { ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", + "sagemaker:TargetModel", }, DependentActions: []string{}, ResourceType: "", @@ -236373,1027 +282012,746 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the access control list (ACL) of a specific object version", - Privilege: "GetObjectVersionAcl", + Description: "Grants permission to get inferences from the hosted model at the specified endpoint in an asynchronous manner", + Privilege: "InvokeEndpointAsync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the tag set for a specific version of the object", - Privilege: "GetObjectVersionTagging", + Description: "Grants permission to get the inference response as a stream from the specified endpoint", + Privilege: "InvokeEndpointWithResponseStream", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "endpoint*", }, { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-component", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)", - Privilege: "ListBucket", + Description: "Grants permission to list actions", + Privilege: "ListActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list in-progress multipart uploads", - Privilege: "ListBucketMultipartUploads", + Description: "Grants permission to list Algorithms", + Privilege: "ListAlgorithms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list metadata about all the versions of objects in an Amazon S3 bucket", - Privilege: "ListBucketVersions", + Description: "Grants permission to list Aliases that belong to a SageMaker Image or Sagemaker ImageVersion", + Privilege: "ListAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "image*", }, { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image-version*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the parts that have been uploaded for a specific multipart upload", - Privilege: "ListMultipartUploadParts", + Description: "Grants permission to list the AppImageConfigs in your account", + Privilege: "ListAppImageConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an object to a bucket", - Privilege: "PutObject", + AccessLevel: "List", + Description: "Grants permission to list the Apps in your account", + Privilege: "ListApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to set the access control list (ACL) permissions for new or existing objects in an S3 bucket", - Privilege: "PutObjectAcl", + AccessLevel: "List", + Description: "Grants permission to list artifacts", + Privilege: "ListArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to apply a Legal Hold configuration to the specified object", - Privilege: "PutObjectLegalHold", + AccessLevel: "List", + Description: "Grants permission to list associations", + Privilege: "ListAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to place an Object Retention configuration on an object", - Privilege: "PutObjectRetention", + AccessLevel: "List", + Description: "Grants permission to list AutoML jobs", + Privilege: "ListAutoMLJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to set the supplied tag-set to an object that already exists in a bucket", - Privilege: "PutObjectTagging", + AccessLevel: "List", + Description: "Grants permission to lists candidates for an AutoML job", + Privilege: "ListCandidatesForAutoMLJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to use the acl subresource to set the access control list (ACL) permissions for an object that already exists in a bucket", - Privilege: "PutObjectVersionAcl", + AccessLevel: "List", + Description: "Grants permission to list nodes within a SageMaker HyperPod cluster", + Privilege: "ListClusterNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list cluster scheduler configs", + Privilege: "ListClusterSchedulerConfigs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to set the supplied tag-set for a specific version of an object", - Privilege: "PutObjectVersionTagging", + AccessLevel: "List", + Description: "Grants permission to list SageMaker HyperPod clusters", + Privilege: "ListClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - "s3-object-lambda:versionid", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore an archived copy of an object back into Amazon S3", - Privilege: "RestoreObject", + AccessLevel: "List", + Description: "Grants permission to list code repositories", + Privilege: "ListCodeRepositories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", - }, - { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provide data for GetObject requests send to S3 Object Lambda", - Privilege: "WriteGetObjectResponse", + AccessLevel: "List", + Description: "Grants permission to list compilation jobs", + Privilege: "ListCompilationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "objectlambdaaccesspoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list compute quotas", + Privilege: "ListComputeQuotas", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-object-lambda:authType", - "s3-object-lambda:signatureAge", - "s3-object-lambda:TlsVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:s3-object-lambda:${Region}:${Account}:accesspoint/${AccessPointName}", - ConditionKeys: []string{}, - Resource: "objectlambdaaccesspoint", - }, - }, - ServiceName: "Amazon S3 Object Lambda", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "s3-outposts:AccessPointNetworkOrigin", - Description: "Filters access by the network origin (Internet or VPC)", - Type: "String", - }, - { - Condition: "s3-outposts:DataAccessPointAccount", - Description: "Filters access by the AWS Account ID that owns the access point", - Type: "String", - }, - { - Condition: "s3-outposts:DataAccessPointArn", - Description: "Filters access by an access point Amazon Resource Name (ARN)", - Type: "ARN", - }, - { - Condition: "s3-outposts:ExistingObjectTag/", - Description: "Filters access by requiring that an existing object tag has a specific tag key and value", - Type: "String", - }, - { - Condition: "s3-outposts:RequestObjectTag/", - Description: "Filters access by restricting the tag keys and values allowed on objects", - Type: "String", - }, - { - Condition: "s3-outposts:RequestObjectTagKeys", - Description: "Filters access by restricting the tag keys allowed on objects", - Type: "String", - }, - { - Condition: "s3-outposts:authType", - Description: "Filters access by restricting incoming requests to a specific authentication method", - Type: "String", - }, - { - Condition: "s3-outposts:delimiter", - Description: "Filters access by requiring the delimiter parameter", - Type: "String", - }, - { - Condition: "s3-outposts:max-keys", - Description: "Filters access by limiting the maximum number of keys returned in a ListBucket request", - Type: "Numeric", - }, - { - Condition: "s3-outposts:prefix", - Description: "Filters access by key name prefix", - Type: "String", - }, - { - Condition: "s3-outposts:signatureAge", - Description: "Filters access by identifying the length of time, in milliseconds, that a signature is valid in an authenticated request", - Type: "Numeric", - }, - { - Condition: "s3-outposts:signatureversion", - Description: "Filters access by identifying the version of AWS Signature that is supported for authenticated requests", - Type: "String", - }, - { - Condition: "s3-outposts:versionid", - Description: "Filters access by a specific object version", - Type: "String", - }, - { - Condition: "s3-outposts:x-amz-acl", - Description: "Filters access by requiring the x-amz-acl header with a specific canned ACL in a request", - Type: "String", - }, - { - Condition: "s3-outposts:x-amz-content-sha256", - Description: "Filters access by disallowing unsigned content in your bucket", - Type: "String", - }, - { - Condition: "s3-outposts:x-amz-copy-source", - Description: "Filters access by restricting the copy source to a specific bucket, prefix, or object", - Type: "String", - }, - { - Condition: "s3-outposts:x-amz-metadata-directive", - Description: "Filters access by enabling enforcement of object metadata behavior (COPY or REPLACE) when objects are copied", - Type: "String", - }, - { - Condition: "s3-outposts:x-amz-server-side-encryption", - Description: "Filters access by requiring server-side encryption", - Type: "String", - }, - { - Condition: "s3-outposts:x-amz-storage-class", - Description: "Filters access by storage class", - Type: "String", - }, - }, - Prefix: "s3-outposts", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to abort a multipart upload", - Privilege: "AbortMultipartUpload", + AccessLevel: "List", + Description: "Grants permission to list contexts", + Privilege: "ListContexts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list data quality job definitions", + Privilege: "ListDataQualityJobDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointArn", - "s3-outposts:DataAccessPointAccount", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new access point", - Privilege: "CreateAccessPoint", + AccessLevel: "List", + Description: "Grants permission to list device fleets", + Privilege: "ListDeviceFleets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "", }, - { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list devices", + Privilege: "ListDevices", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new bucket", - Privilege: "CreateBucket", + AccessLevel: "List", + Description: "Grants permission to list the Domains in your account", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new endpoint", - Privilege: "CreateEndpoint", + AccessLevel: "List", + Description: "Grants permission to list edge deployment plans", + Privilege: "ListEdgeDeploymentPlans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the access point named in the URI", - Privilege: "DeleteAccessPoint", + AccessLevel: "List", + Description: "Grants permission to list edge packaging jobs", + Privilege: "ListEdgePackagingJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list endpoint configurations", + Privilege: "ListEndpointConfigs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointArn", - "s3-outposts:DataAccessPointAccount", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the policy on a specified access point", - Privilege: "DeleteAccessPointPolicy", + AccessLevel: "List", + Description: "Grants permission to list endpoints", + Privilege: "ListEndpoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list experiments", + Privilege: "ListExperiments", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointArn", - "s3-outposts:DataAccessPointAccount", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the bucket named in the URI", - Privilege: "DeleteBucket", + AccessLevel: "List", + Description: "Grants permission to list feature groups", + Privilege: "ListFeatureGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return summary information about flow definitions, given the specified parameters", + Privilege: "ListFlowDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the policy on a specified bucket", - Privilege: "DeleteBucketPolicy", + AccessLevel: "List", + Description: "Grants permission to list all versions of hub content", + Privilege: "ListHubContentVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "hub*", }, { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub-content*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the endpoint named in the URI", - Privilege: "DeleteEndpoint", + AccessLevel: "List", + Description: "Grants permission to list newest versions of hub content", + Privilege: "ListHubContents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "hub*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the null version of an object and insert a delete marker, which becomes the current version of the object", - Privilege: "DeleteObject", + AccessLevel: "List", + Description: "Grants permission to list hubs", + Privilege: "ListHubs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to use the tagging subresource to remove the entire tag set from the specified object", - Privilege: "DeleteObjectTagging", + AccessLevel: "List", + Description: "Grants permission to return summary information about human loops, given the specified parameters", + Privilege: "ListHumanLoops", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a specific version of an object", - Privilege: "DeleteObjectVersion", + AccessLevel: "List", + Description: "Grants permission to return summary information about human review workflow user interfaces, given the specified parameters", + Privilege: "ListHumanTaskUis", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list hyper parameter tuning jobs", + Privilege: "ListHyperParameterTuningJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:versionid", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove the entire tag set for a specific version of the object", - Privilege: "DeleteObjectVersionTagging", + AccessLevel: "List", + Description: "Grants permission to list ImageVersions that belong to a SageMaker Image", + Privilege: "ListImageVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "image*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list SageMaker Images in your account", + Privilege: "ListImages", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:versionid", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return configuration information about the specified access point", - Privilege: "GetAccessPoint", + AccessLevel: "List", + Description: "Grants permission to list inference components", + Privilege: "ListInferenceComponents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to returns the access point policy associated with the specified access point", - Privilege: "GetAccessPointPolicy", + AccessLevel: "List", + Description: "Grants permission to list inference experiments", + Privilege: "ListInferenceExperiments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list inference recommendations job steps", + Privilege: "ListInferenceRecommendationsJobSteps", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the bucket configuration associated with an Amazon S3 bucket", - Privilege: "GetBucket", + AccessLevel: "List", + Description: "Grants permission to list inference recommendations jobs", + Privilege: "ListInferenceRecommendationsJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list labeling jobs", + Privilege: "ListLabelingJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the policy of the specified bucket", - Privilege: "GetBucketPolicy", + AccessLevel: "List", + Description: "Grants permission to list labeling jobs for workteam", + Privilege: "ListLabelingJobsForWorkteam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "workteam*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list lineage groups", + Privilege: "ListLineageGroups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set associated with an Amazon S3 bucket", - Privilege: "GetBucketTagging", + AccessLevel: "List", + Description: "Grants permission to list MLflow tracking servers", + Privilege: "ListMlflowTrackingServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list model bias job definitions", + Privilege: "ListModelBiasJobDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the versioning state of an Amazon S3 bucket", - Privilege: "GetBucketVersioning", + AccessLevel: "List", + Description: "Grants permission to list export jobs for a model card", + Privilege: "ListModelCardExportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "model-card*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list versions of a model card", + Privilege: "ListModelCardVersions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-card*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the lifecycle configuration information set on an Amazon S3 bucket", - Privilege: "GetLifecycleConfiguration", + AccessLevel: "List", + Description: "Grants permission to list model cards", + Privilege: "ListModelCards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list model explainability job definitions", + Privilege: "ListModelExplainabilityJobDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve objects from Amazon S3", - Privilege: "GetObject", + AccessLevel: "List", + Description: "Grants permission to list model metadata for inference recommendations jobs", + Privilege: "ListModelMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list ModelPackageGroups", + Privilege: "ListModelPackageGroups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set of an object", - Privilege: "GetObjectTagging", + AccessLevel: "List", + Description: "Grants permission to list ModelPackages", + Privilege: "ListModelPackages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "model-package", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list model quality job definitions", + Privilege: "ListModelQualityJobDefinitions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a specific version of an object", - Privilege: "GetObjectVersion", + AccessLevel: "List", + Description: "Grants permission to list the models created with the CreateModel API", + Privilege: "ListModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:versionid", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to replicate both unencrypted objects and objects encrypted with SSE-KMS", - Privilege: "GetObjectVersionForReplication", + AccessLevel: "List", + Description: "Grants permission to list the history of a monitoring alert", + Privilege: "ListMonitoringAlertHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list monitoring alerts", + Privilege: "ListMonitoringAlerts", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the tag set for a specific version of the object", - Privilege: "GetObjectVersionTagging", + AccessLevel: "List", + Description: "Grants permission to list monitoring executions", + Privilege: "ListMonitoringExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list monitoring schedules", + Privilege: "ListMonitoringSchedules", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:versionid", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the replication configuration information set on an Amazon S3 bucket", - Privilege: "GetReplicationConfiguration", + AccessLevel: "List", + Description: "Grants permission to list the notebook instance lifecycle configurations that can be deployed using Amazon SageMaker", + Privilege: "ListNotebookInstanceLifecycleConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon SageMaker notebook instances in the requester's account in an AWS Region", + Privilege: "ListNotebookInstances", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -237401,16 +282759,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list access points", - Privilege: "ListAccessPoints", + Description: "Grants permission to list optimization jobs", + Privilege: "ListOptimizationJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -237418,62 +282771,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list some or all of the objects in an Amazon S3 bucket (up to 1000)", - Privilege: "ListBucket", + Description: "Grants permission to list the Amazon SageMaker Partner AI Apps in your account", + Privilege: "ListPartnerApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list steps for a pipeline execution", + Privilege: "ListPipelineExecutionSteps", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list executions for a pipeline", + Privilege: "ListPipelineExecutions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:delimiter", - "s3-outposts:max-keys", - "s3-outposts:prefix", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list in-progress multipart uploads", - Privilege: "ListBucketMultipartUploads", + Description: "Grants permission to list parameters for a pipeline execution", + Privilege: "ListPipelineParametersForExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list pipelines", + Privilege: "ListPipelines", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list processing jobs", + Privilege: "ListProcessingJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -237481,27 +282843,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list metadata about all the versions of objects in an Amazon S3 bucket", - Privilege: "ListBucketVersions", + Description: "Grants permission to list Projects", + Privilege: "ListProjects", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list resource catalogs", + Privilege: "ListResourceCatalogs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:delimiter", - "s3-outposts:max-keys", - "s3-outposts:prefix", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -237509,8 +282867,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list endpoints", - Privilege: "ListEndpoints", + Description: "Grants permission to list shared model events", + Privilege: "ListSharedModelEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -237521,24 +282879,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the parts that have been uploaded for a specific multipart upload", - Privilege: "ListMultipartUploadParts", + Description: "Grants permission to list shared model versions", + Privilege: "ListSharedModelVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "shared-model*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list shared models", + Privilege: "ListSharedModels", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -237546,8 +282903,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list outposts with S3 capacity", - Privilege: "ListOutpostsWithS3", + Description: "Grants permission to list the Spaces in your account", + Privilege: "ListSpaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -237558,16 +282915,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all buckets owned by the authenticated sender of the request", - Privilege: "ListRegionalBuckets", + Description: "Grants permission to list stage devices", + Privilege: "ListStageDevices", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -237575,8 +282927,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list shared endpoints", - Privilege: "ListSharedEndpoints", + Description: "Grants permission to list the Studio Lifecycle Configurations that can be deployed using Amazon SageMaker", + Privilege: "ListStudioLifecycleConfigs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -237586,508 +282938,486 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to associate an access policy with a specified access point", - Privilege: "PutAccessPointPolicy", + AccessLevel: "List", + Description: "Grants permission to list subscribed workteams", + Privilege: "ListSubscribedWorkteams", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "accesspoint*", - }, - { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add or replace a bucket policy on a bucket", - Privilege: "PutBucketPolicy", + AccessLevel: "List", + Description: "Grants permission to list the tag set associated with the specified resource", + Privilege: "ListTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "action", }, { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "algorithm", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to add a set of tags to an existing Amazon S3 bucket", - Privilege: "PutBucketTagging", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "app", }, { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "app-image-config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the versioning state of an existing Amazon S3 bucket", - Privilege: "PutBucketVersioning", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "artifact", }, { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "automl-job", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new lifecycle configuration for the bucket or replace an existing lifecycle configuration", - Privilege: "PutLifecycleConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "cluster", }, { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cluster-scheduler-config", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to add an object to a bucket", - Privilege: "PutObject", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "code-repository", }, { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:RequestObjectTag/", - "s3-outposts:RequestObjectTagKeys", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-acl", - "s3-outposts:x-amz-content-sha256", - "s3-outposts:x-amz-copy-source", - "s3-outposts:x-amz-metadata-directive", - "s3-outposts:x-amz-server-side-encryption", - "s3-outposts:x-amz-storage-class", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "compilation-job", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to set the access control list (ACL) permissions for an object that already exists in a bucket", - Privilege: "PutObjectAcl", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "compute-quota", }, { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-acl", - "s3-outposts:x-amz-content-sha256", - "s3-outposts:x-amz-storage-class", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "context", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "data-quality-job-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device-fleet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "domain", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "edge-deployment-plan", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "edge-packaging-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "endpoint-config", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial-component", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "feature-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "flow-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub-content", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "human-task-ui", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hyper-parameter-tuning-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "image", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-component", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-recommendations-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "labeling-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlflow-tracking-server", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-bias-job-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-card", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-explainability-job-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-package", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-package-group", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-quality-job-definition", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitoring-schedule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "optimization-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "partner-app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "pipeline", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "processing-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "reserved-capacity", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "space", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "studio-lifecycle-config", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training-plan", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "transform-job", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user-profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workteam", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list training jobs", + Privilege: "ListTrainingJobs", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to set the supplied tag-set to an object that already exists in a bucket", - Privilege: "PutObjectTagging", + AccessLevel: "List", + Description: "Grants permission to list training jobs for a hyper parameter tuning job", + Privilege: "ListTrainingJobsForHyperParameterTuningJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "hyper-parameter-tuning-job*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the training plans that have been created in a specified account", + Privilege: "ListTrainingPlans", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:RequestObjectTag/", - "s3-outposts:RequestObjectTagKeys", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to set the supplied tag-set for a specific version of an object", - Privilege: "PutObjectVersionTagging", + AccessLevel: "List", + Description: "Grants permission to list transform jobs", + Privilege: "ListTransformJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3-outposts:DataAccessPointAccount", - "s3-outposts:DataAccessPointArn", - "s3-outposts:AccessPointNetworkOrigin", - "s3-outposts:ExistingObjectTag/", - "s3-outposts:RequestObjectTag/", - "s3-outposts:RequestObjectTagKeys", - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:versionid", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new replication configuration or replace an existing one", - Privilege: "PutReplicationConfiguration", + AccessLevel: "List", + Description: "Grants permission to list trial components", + Privilege: "ListTrialComponents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to replicate delete markers to the destination bucket", - Privilege: "ReplicateDelete", + AccessLevel: "List", + Description: "Grants permission to list trials", + Privilege: "ListTrials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to replicate objects and object tags to the destination bucket", - Privilege: "ReplicateObject", + AccessLevel: "List", + Description: "Grants permission to list the UserProfiles in your account", + Privilege: "ListUserProfiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", - }, - { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - "s3-outposts:x-amz-server-side-encryption", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to replicate object tags to the destination bucket", - Privilege: "ReplicateTags", + AccessLevel: "List", + Description: "Grants permission to list workforces", + Privilege: "ListWorkforces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "object*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list workteams", + Privilege: "ListWorkteams", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3-outposts:authType", - "s3-outposts:signatureAge", - "s3-outposts:signatureversion", - "s3-outposts:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/accesspoint/${AccessPointName}", - ConditionKeys: []string{}, - Resource: "accesspoint", - }, - { - Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/bucket/${BucketName}", - ConditionKeys: []string{}, - Resource: "bucket", - }, - { - Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/endpoint/${EndpointId}", - ConditionKeys: []string{}, - Resource: "endpoint", - }, - { - Arn: "arn:${Partition}:s3-outposts:${Region}:${Account}:outpost/${OutpostId}/bucket/${BucketName}/object/${ObjectName}", - ConditionKeys: []string{}, - Resource: "object", - }, - }, - ServiceName: "Amazon S3 on Outposts", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "s3express:LocationName", - Description: "Filters access by a specific Availability Zone ID", - Type: "String", - }, - { - Condition: "s3express:ResourceAccount", - Description: "Filters access by the resource owner AWS account ID", - Type: "String", - }, - { - Condition: "s3express:SessionMode", - Description: "Filters access by the permission requested by CreateSession API, such as ReadOnly and ReadWrite", - Type: "String", - }, - { - Condition: "s3express:TlsVersion", - Description: "Filters access by the TLS version used by the client", - Type: "Numeric", - }, - { - Condition: "s3express:authType", - Description: "Filters access by authentication method", - Type: "String", - }, - { - Condition: "s3express:signatureAge", - Description: "Filters access by the age in milliseconds of the request signature", - Type: "Numeric", - }, - { - Condition: "s3express:signatureversion", - Description: "Filters access by the AWS Signature Version used on the request", - Type: "String", - }, - { - Condition: "s3express:x-amz-content-sha256", - Description: "Filters access by unsigned content in your bucket", - Type: "String", - }, - }, - Prefix: "s3express", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a new bucket", - Privilege: "CreateBucket", + Description: "Grants permission to put a lineage group policy", + Privilege: "PutLineageGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3express:authType", - "s3express:LocationName", - "s3express:ResourceAccount", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to Create Session token which is used for object APIs such as PutObject, GetObject, ect", - Privilege: "CreateSession", + AccessLevel: "Write", + Description: "Grants permission to put a ModelPackageGroup policy", + Privilege: "PutModelPackageGroupPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3express:authType", - "s3express:ResourceAccount", - "s3express:SessionMode", - "s3express:signatureAge", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-package-group*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the bucket named in the URI", - Privilege: "DeleteBucket", + Description: "Grants permission to put a record to a feature group", + Privilege: "PutRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "feature-group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants AWS Resource Access Manager permission to create a resource policy on a SageMaker resource that supports cross-account sharing", + Privilege: "PutResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3express:authType", - "s3express:ResourceAccount", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the policy on a specified bucket", - Privilege: "DeleteBucketPolicy", + AccessLevel: "List", + Description: "Grants permission to explore the lineage graph", + Privilege: "QueryLineage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", - }, - { - ConditionKeys: []string{ - "s3express:authType", - "s3express:ResourceAccount", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the policy of the specified bucket", - Privilege: "GetBucketPolicy", + AccessLevel: "Write", + Description: "Grants permission to register a set of devices", + Privilege: "RegisterDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "device*", }, { ConditionKeys: []string{ - "s3express:authType", - "s3express:ResourceAccount", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -238095,788 +283425,810 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all directory buckets owned by the authenticated sender of the request", - Privilege: "ListAllMyDirectoryBuckets", + AccessLevel: "Read", + Description: "Grants permission to render a UI template used for a human annotation task", + Privilege: "RenderUiTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "s3express:authType", - "s3express:ResourceAccount", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add or replace a bucket policy on a bucket", - Privilege: "PutBucketPolicy", + AccessLevel: "Write", + Description: "Grants permission to retry a pipeline execution", + Privilege: "RetryPipelineExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket*", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to search for SageMaker objects", + Privilege: "Search", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "s3express:authType", - "s3express:ResourceAccount", - "s3express:signatureversion", - "s3express:TlsVersion", - "s3express:x-amz-content-sha256", + "sagemaker:SearchVisibilityCondition/${FilterKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:s3express:${Region}:${Account}:bucket/${BucketName}", - ConditionKeys: []string{}, - Resource: "bucket", - }, - }, - ServiceName: "Amazon S3 Express", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a key that is present in the request the user makes to the SageMaker service", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names associated with the resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "sagemaker:AcceleratorTypes", - Description: "Filters access by the list of all accelerator types associated with the resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "sagemaker:AppNetworkAccessType", - Description: "Filters access by the app network access type associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:CustomerMetadataProperties/${MetadataKey}", - Description: "Filters access by a metadata key and value pair", - Type: "String", - }, - { - Condition: "sagemaker:CustomerMetadataPropertiesToRemove", - Description: "Filters access by the list of metadata properties associated with the model-package resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "sagemaker:DirectInternetAccess", - Description: "Filters access by the direct internet access associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:DomainId", - Description: "You can use the domainId as a policy variable to filter requests from specific SageMaker Domains", - Type: "String", - }, - { - Condition: "sagemaker:DomainSharingOutputKmsKey", - Description: "Filters access by the Domain sharing output KMS key associated with the resource in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:EnableRemoteDebug", - Description: "Filters access by the remote debug config in the request", - Type: "Bool", - }, - { - Condition: "sagemaker:FeatureGroupDisableGlueTableCreation", - Description: "Filters access by the DisableGlueTableCreation flag associated with the feature group resource in the request", - Type: "Bool", - }, - { - Condition: "sagemaker:FeatureGroupEnableOnlineStore", - Description: "Filters access by the EnableOnlineStore flag associated with feature group in the request", - Type: "Bool", - }, - { - Condition: "sagemaker:FeatureGroupOfflineStoreConfig", - Description: "Filters access by the presence of an OfflineStoreConfig in the feature group resource in the request. This access filter only supports the null-conditional operator", - Type: "Bool", - }, - { - Condition: "sagemaker:FeatureGroupOfflineStoreKmsKey", - Description: "Filters access by the offline store kms key associated with the feature group resource in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:FeatureGroupOfflineStoreS3Uri", - Description: "Filters access by the offline store s3 uri associated with the feature group resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:FeatureGroupOnlineStoreKmsKey", - Description: "Filters access by the online store kms key associated with the feature group resource in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:FileSystemAccessMode", - Description: "Filters access by a file system access mode associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:FileSystemDirectoryPath", - Description: "Filters access by a file system directory path associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:FileSystemId", - Description: "Filters access by a file system ID associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:FileSystemType", - Description: "Filters access by a file system type associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:HomeEfsFileSystemKmsKey", - Description: "Filters access by a key that is present in the request the user makes to the SageMaker service. This key is deprecated. It has been replaced by sagemaker:VolumeKmsKey", - Type: "ARN", - }, - { - Condition: "sagemaker:ImageArns", - Description: "Filters access by the list of all image arns associated with the resource in the request", - Type: "ArrayOfARN", - }, - { - Condition: "sagemaker:ImageVersionArns", - Description: "Filters access by the list of all image version arns associated with the resource in the request", - Type: "ArrayOfARN", - }, - { - Condition: "sagemaker:InstanceTypes", - Description: "Filters access by the list of all instance types associated with the resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "sagemaker:InterContainerTrafficEncryption", - Description: "Filters access by the inter container traffic encryption associated with the resource in the request", - Type: "Bool", - }, - { - Condition: "sagemaker:KeepAlivePeriod", - Description: "Filters access by the keep-alive period associated with the resource in the request", - Type: "Numeric", - }, - { - Condition: "sagemaker:MaxRuntimeInSeconds", - Description: "Filters access by the max runtime in seconds associated with the resource in the request", - Type: "Numeric", - }, - { - Condition: "sagemaker:MinimumInstanceMetadataServiceVersion", - Description: "Filters access by the minimum instance metadata service version used by the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:ModelApprovalStatus", - Description: "Filters access by the model approval status with the model-package in the request", - Type: "String", - }, - { - Condition: "sagemaker:ModelArn", - Description: "Filters access by the model arn associated with the resource in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:NetworkIsolation", - Description: "Filters access by the network isolation associated with the resource in the request", - Type: "Bool", - }, - { - Condition: "sagemaker:OutputKmsKey", - Description: "Filters access by the output kms key associated with the resource in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:OwnerUserProfileArn", - Description: "Filters access by the OwnerUserProfile arn associated with the space in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:ResourceTag/", - Description: "Filters access by the preface string for a tag key and value pair attached to a resource", - Type: "String", - }, - { - Condition: "sagemaker:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair", - Type: "String", - }, - { - Condition: "sagemaker:RootAccess", - Description: "Filters access by the root access associated with the resource in the request", - Type: "String", - }, - { - Condition: "sagemaker:SearchVisibilityCondition/${FilterKey}", - Description: "Limits the results of your search request to the resources that you can access. $ { FilterKey} is a key that the VisibilityConditions configuration presents in the Search request", - Type: "String", - }, - { - Condition: "sagemaker:ServerlessMaxConcurrency", - Description: "Filters access by limiting maximum concurrency used for Serverless inference in the request", - Type: "Numeric", - }, - { - Condition: "sagemaker:ServerlessMemorySize", - Description: "Filters access by limiting memory size used for Serverless inference in the request", - Type: "Numeric", - }, - { - Condition: "sagemaker:SpaceSharingType", - Description: "Filters access by the sharing type associated with the space in the request", - Type: "String", - }, - { - Condition: "sagemaker:TaggingAction", - Description: "Filters access by the API actions to which a user can apply tags. Uses the name of the API operation that creates a taggable resource to filter access", - Type: "String", - }, - { - Condition: "sagemaker:TargetModel", - Description: "Filters access by the target model associated with the Multi-Model Endpoint in the request", - Type: "String", - }, - { - Condition: "sagemaker:UserProfileName", - Description: "You can use the UserProfileName as a policy variable to filter requests from specific user profiles within a SageMaker Domain. This context key is not applicable to user profiles within shared spaces", - Type: "String", - }, - { - Condition: "sagemaker:VolumeKmsKey", - Description: "Filters access by the volume kms key associated with the resource in the request", - Type: "ARN", - }, - { - Condition: "sagemaker:VpcSecurityGroupIds", - Description: "Filters access by the list of all VPC security group ids associated with the resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "sagemaker:VpcSubnets", - Description: "Filters access by the list of all VPC subnets associated with the resource in the request", - Type: "ArrayOfString", - }, - { - Condition: "sagemaker:WorkteamArn", - Description: "Filters access by the workteam arn associated to the request", - Type: "ARN", - }, - { - Condition: "sagemaker:WorkteamType", - Description: "Filters access by the workteam type associated to the request. This can be public-crowd, private-crowd or vendor-crowd", - Type: "String", - }, - }, - Prefix: "sagemaker", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate a lineage entity (artifact, context, action, experiment, experiment-trial-component) to each other", - Privilege: "AddAssociation", + AccessLevel: "Read", + Description: "Grants permissions to search for the available training plan offerings that best match specified capacity requirements", + Privilege: "SearchTrainingPlanOfferings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "artifact*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "context*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for the specified Amazon SageMaker resource", - Privilege: "AddTags", + AccessLevel: "Write", + Description: "Grants permission to publish heartbeat data from devices. After you deploy a model onto edge devices this api is used to report device status", + Privilege: "SendHeartbeat", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "algorithm", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app", + ResourceType: "device*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to fail a pending callback step", + Privilege: "SendPipelineExecutionStepFailure", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-image-config", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to succeed a pending callback step", + Privilege: "SendPipelineExecutionStepSuccess", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "artifact", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a shared model event", + Privilege: "SendSharedModelEvent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automl-job", + ResourceType: "shared-model-event*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an edge deployment stage", + Privilege: "StartEdgeDeploymentStage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "edge-deployment-plan*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a human loop", + Privilege: "StartHumanLoop", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code-repository", + ResourceType: "flow-definition*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an inference experiment", + Privilege: "StartInferenceExperiment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "compilation-job", + ResourceType: "inference-experiment*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start an MLfLow tracking server", + Privilege: "StartMlflowTrackingServer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "context", + ResourceType: "mlflow-tracking-server*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a monitoring schedule", + Privilege: "StartMonitoringSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-quality-job-definition", + ResourceType: "monitoring-schedule*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a notebook instance. This launches an EC2 instance with the latest version of the libraries and attaches your EBS volume", + Privilege: "StartNotebookInstance", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device", + ResourceType: "notebook-instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to start a pipeline execution", + Privilege: "StartPipelineExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-fleet", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a running AutoML job", + Privilege: "StopAutoMLJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "automl-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a compilation job", + Privilege: "StopCompilationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-deployment-plan", + ResourceType: "compilation-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an edge deployment stage", + Privilege: "StopEdgeDeploymentStage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-packaging-job", + ResourceType: "edge-deployment-plan*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an edge packaging job", + Privilege: "StopEdgePackagingJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint", + ResourceType: "edge-packaging-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a specified human loop", + Privilege: "StopHumanLoop", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint-config", + ResourceType: "human-loop*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a running hyper parameter tuning job create via the CreateHyperParameterTuningJob", + Privilege: "StopHyperParameterTuningJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment", + ResourceType: "hyper-parameter-tuning-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an inference experiment", + Privilege: "StopInferenceExperiment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial", + ResourceType: "inference-experiment*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an inference recommendations job", + Privilege: "StopInferenceRecommendationsJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component", + ResourceType: "inference-recommendations-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a labeling job. Any labels already generated will be exported before stopping", + Privilege: "StopLabelingJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group", + ResourceType: "labeling-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an MLflow tracking server", + Privilege: "StopMlflowTrackingServer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flow-definition", + ResourceType: "mlflow-tracking-server*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a monitoring schedule", + Privilege: "StopMonitoringSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "monitoring-schedule*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a notebook instance. This terminates the EC2 instance. Before terminating the instance, Amazon SageMaker disconnects the EBS volume from it. Amazon SageMaker preserves the EBS volume", + Privilege: "StopNotebookInstance", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub-content", + ResourceType: "notebook-instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop an optimization job", + Privilege: "StopOptimizationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "human-task-ui", + ResourceType: "optimization-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a pipeline execution", + Privilege: "StopPipelineExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job", + ResourceType: "pipeline-execution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a processing job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds", + Privilege: "StopProcessingJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "processing-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a training job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds", + Privilege: "StopTrainingJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-component", + ResourceType: "training-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a transform job. When Amazon SageMaker receives a StopTransformJob request, the status of the job changes to Stopping. After Amazon SageMaker stops the job, the status is set to Stopped", + Privilege: "StopTransformJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-recommendations-job", + ResourceType: "transform-job*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to train a model in hub", + Privilege: "TrainHubModel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "labeling-job", + ResourceType: "hub*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server", + ResourceType: "hub-content*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an action", + Privilege: "UpdateAction", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "action*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an AppImageConfig", + Privilege: "UpdateAppImageConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-bias-job-definition", + ResourceType: "app-image-config*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an artifact", + Privilege: "UpdateArtifact", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card", + ResourceType: "artifact*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a SageMaker HyperPod cluster", + Privilege: "UpdateCluster", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-explainability-job-definition", + ConditionKeys: []string{}, + DependentActions: []string{ + "eks:AssociateAccessPolicy", + "eks:CreateAccessEntry", + "eks:DeleteAccessEntry", + "eks:DescribeAccessEntry", + "eks:DescribeCluster", + "iam:PassRole", + "sagemaker:BatchDeleteClusterNodes", + }, + ResourceType: "cluster*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package", + ResourceType: "reserved-capacity", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group", + ResourceType: "training-plan", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sagemaker:InstanceTypes", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:VpcSubnets", + }, DependentActions: []string{}, - ResourceType: "model-quality-job-definition", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a cluster scheduler config", + Privilege: "UpdateClusterSchedulerConfig", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule", + ResourceType: "cluster-scheduler-config*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update platform software for a SageMaker HyperPod cluster", + Privilege: "UpdateClusterSoftware", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook-instance", + ConditionKeys: []string{}, + DependentActions: []string{ + "eks:DescribeCluster", + }, + ResourceType: "cluster*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a CodeRepository", + Privilege: "UpdateCodeRepository", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline", + ResourceType: "code-repository*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a compute quota", + Privilege: "UpdateComputeQuota", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "processing-job", + ResourceType: "compute-quota*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a context", + Privilege: "UpdateContext", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "context*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a device fleet", + Privilege: "UpdateDeviceFleet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space", + ResourceType: "device-fleet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a set of devices", + Privilege: "UpdateDevices", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-lifecycle-config", + ResourceType: "device*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a Domain", + Privilege: "UpdateDomain", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job", + ResourceType: "domain*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sagemaker:VpcSecurityGroupIds", + "sagemaker:InstanceTypes", + "sagemaker:DomainSharingOutputKmsKey", + "sagemaker:ImageArns", + "sagemaker:ImageVersionArns", + "sagemaker:AppNetworkAccessType", + "sagemaker:VpcSubnets", + }, DependentActions: []string{}, - ResourceType: "transform-job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an endpoint to use the endpoint configuration specified in the request", + Privilege: "UpdateEndpoint", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user-profile", + ResourceType: "endpoint*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:TaggingAction", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "endpoint-config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a trial component with a trial", - Privilege: "AssociateTrialComponent", + Description: "Grants permission to update variant weight, capacity, or both of one or more variants associated with an endpoint", + Privilege: "UpdateEndpointWeightsAndCapacities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial*", + ResourceType: "endpoint*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an experiment", + Privilege: "UpdateExperiment", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "experiment*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe one or more ModelPackages", - Privilege: "BatchDescribeModelPackage", + AccessLevel: "Write", + Description: "Grants permission to update a feature group", + Privilege: "UpdateFeatureGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package*", + ResourceType: "feature-group*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metrics associated with SageMaker Resources such as Training Jobs or Trial Components. This API is not publicly exposed at this point, however admins can control this action", - Privilege: "BatchGetMetrics", + AccessLevel: "Write", + Description: "Grants permission to update a feature metadata", + Privilege: "UpdateFeatureMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "feature-group*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update hubs", + Privilege: "UpdateHub", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job*", + ResourceType: "hub*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a batch of records from one or more feature groups", - Privilege: "BatchGetRecord", + AccessLevel: "Write", + Description: "Grants permission to update hub content", + Privilege: "UpdateHubContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "hub*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub-content*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to publish metrics associated with a SageMaker Resource such as a Training Job or Trial Component", - Privilege: "BatchPutMetrics", + Description: "Grants permission to update hub content reference", + Privilege: "UpdateHubContentReference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "hub*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job*", + ResourceType: "hub-content*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an action", - Privilege: "CreateAction", + Description: "Grants permission to update the properties of a SageMaker Image", + Privilege: "UpdateImage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "sagemaker:AddTags", + "iam:PassRole", }, - ResourceType: "action*", + ResourceType: "image*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the properties of a SageMaker ImageVersion", + Privilege: "UpdateImageVersion", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "image-version*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an algorithm", - Privilege: "CreateAlgorithm", + Description: "Grants permission to update an inference component to use the specification and configurations specified in the request", + Privilege: "UpdateInferenceComponent", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "algorithm*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-component*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an App for a SageMaker UserProfile or Space", - Privilege: "CreateApp", + Description: "Grants permission to update the runtime config of a given inference component", + Privilege: "UpdateInferenceComponentRuntimeConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "app*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "inference-component*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an inference experiment", + Privilege: "UpdateInferenceExperiment", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:ImageArns", - "sagemaker:ImageVersionArns", - "sagemaker:OwnerUserProfileArn", - "sagemaker:SpaceSharingType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "inference-experiment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an AppImageConfig", - Privilege: "CreateAppImageConfig", + Description: "Grants permission to update an MLflow tracking server", + Privilege: "UpdateMlflowTrackingServer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "app-image-config*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mlflow-tracking-server*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a model card", + Privilege: "UpdateModelCard", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "model-card*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an artifact", - Privilege: "CreateArtifact", + Description: "Grants permission to update a ModelPackage", + Privilege: "UpdateModelPackage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "artifact*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "model-package*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "sagemaker:ModelApprovalStatus", + "sagemaker:CustomerMetadataProperties/${MetadataKey}", + "sagemaker:CustomerMetadataPropertiesToRemove", + "sagemaker:ModelLifeCycle:Stage", + "sagemaker:ModelLifeCycle:StageStatus", }, DependentActions: []string{}, ResourceType: "", @@ -238885,54 +284237,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AutoML job", - Privilege: "CreateAutoMLJob", + Description: "Grants permission to update a monitoring alert", + Privilege: "UpdateMonitoringAlert", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "automl-job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "monitoring-schedule*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "monitoring-schedule-alert*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a V2 AutoML job", - Privilege: "CreateAutoMLJobV2", + Description: "Grants permission to update a monitoring schedule", + Privilege: "UpdateMonitoringSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", - "sagemaker:AddTags", }, - ResourceType: "automl-job*", + ResourceType: "monitoring-schedule*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "sagemaker:InterContainerTrafficEncryption", + "sagemaker:InstanceTypes", + "sagemaker:MaxRuntimeInSeconds", + "sagemaker:NetworkIsolation", "sagemaker:OutputKmsKey", "sagemaker:VolumeKmsKey", "sagemaker:VpcSecurityGroupIds", "sagemaker:VpcSubnets", + "sagemaker:InterContainerTrafficEncryption", }, DependentActions: []string{}, ResourceType: "", @@ -238941,21 +284284,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a SageMaker HyperPod cluster", - Privilege: "CreateCluster", + Description: "Grants permission to update a notebook instance. Notebook instance updates include upgrading or downgrading the EC2 instance used for your notebook instance to accommodate changes in your workload requirements", + Privilege: "UpdateNotebookInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "cluster*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook-instance*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "sagemaker:AcceleratorTypes", + "sagemaker:InstanceTypes", + "sagemaker:MinimumInstanceMetadataServiceVersion", + "sagemaker:RootAccess", }, DependentActions: []string{}, ResourceType: "", @@ -238964,96 +284306,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a CodeRepository", - Privilege: "CreateCodeRepository", + Description: "Grants permission to updates a notebook instance lifecycle configuration created with the CreateNotebookInstanceLifecycleConfig API", + Privilege: "UpdateNotebookInstanceLifecycleConfig", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "code-repository*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook-instance-lifecycle-config*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a compilation job", - Privilege: "CreateCompilationJob", + Description: "Grants permission to update an Amazon SageMaker Partner AI App", + Privilege: "UpdatePartnerApp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "compilation-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "partner-app*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a context", - Privilege: "CreateContext", + Description: "Grants permission to update a pipeline", + Privilege: "UpdatePipeline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "sagemaker:AddTags", + "iam:PassRole", }, - ResourceType: "context*", + ResourceType: "pipeline*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a pipeline execution", + Privilege: "UpdatePipelineExecution", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "pipeline-execution*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a data quality job definition", - Privilege: "CreateDataQualityJobDefinition", + Description: "Grants permission to update a Project", + Privilege: "UpdateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "data-quality-job-definition*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -239062,53 +284376,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a device fleet", - Privilege: "CreateDeviceFleet", + Description: "Grants permission to update a shared model", + Privilege: "UpdateSharedModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "device-fleet*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "shared-model*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Domain for SageMaker Studio", - Privilege: "CreateDomain", + Description: "Grants permission to update a Space", + Privilege: "UpdateSpace", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "domain*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "space*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:AppNetworkAccessType", "sagemaker:InstanceTypes", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - "sagemaker:DomainSharingOutputKmsKey", - "sagemaker:VolumeKmsKey", "sagemaker:ImageArns", "sagemaker:ImageVersionArns", + "sagemaker:OwnerUserProfileArn", + "sagemaker:SpaceSharingType", }, DependentActions: []string{}, ResourceType: "", @@ -239117,21 +284411,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an edge deployment plan", - Privilege: "CreateEdgeDeploymentPlan", + Description: "Grants permission to update a training job", + Privilege: "UpdateTrainingJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "edge-deployment-plan*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "training-job*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:KeepAlivePeriod", + "sagemaker:EnableRemoteDebug", }, DependentActions: []string{}, ResourceType: "", @@ -239140,44 +284432,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an edge deployment stage", - Privilege: "CreateEdgeDeploymentStage", + Description: "Grants permission to update a trial", + Privilege: "UpdateTrial", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "edge-deployment-plan*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "experiment-trial*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a trial component", + Privilege: "UpdateTrialComponent", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "experiment-trial-component*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an edge packaging job", - Privilege: "CreateEdgePackagingJob", + Description: "Grants permission to update a UserProfile", + Privilege: "UpdateUserProfile", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "edge-packaging-job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "user-profile*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "sagemaker:InstanceTypes", + "sagemaker:VpcSecurityGroupIds", + "sagemaker:InstanceTypes", + "sagemaker:DomainSharingOutputKmsKey", + "sagemaker:ImageArns", + "sagemaker:ImageVersionArns", }, DependentActions: []string{}, ResourceType: "", @@ -239186,79 +284480,606 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an endpoint using the endpoint configuration specified in the request", - Privilege: "CreateEndpoint", + Description: "Grants permission to update a workforce", + Privilege: "UpdateWorkforce", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "endpoint*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint-config*", + ResourceType: "workforce*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a workteam", + Privilege: "UpdateWorkteam", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "workteam*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:device-fleet/${DeviceFleetName}/device/${DeviceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "device", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:device-fleet/${DeviceFleetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "device-fleet", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:edge-packaging-job/${EdgePackagingJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "edge-packaging-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:edge-deployment/${EdgeDeploymentPlanName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "edge-deployment-plan", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:human-loop/${HumanLoopName}", + ConditionKeys: []string{}, + Resource: "human-loop", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:flow-definition/${FlowDefinitionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "flow-definition", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:human-task-ui/${HumanTaskUiName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "human-task-ui", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:hub/${HubName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "hub", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:hub-content/${HubName}/${HubContentType}/${HubContentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "hub-content", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:inference-recommendations-job/${InferenceRecommendationsJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "inference-recommendations-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:inference-experiment/${InferenceExperimentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "inference-experiment", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:labeling-job/${LabelingJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "labeling-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:workteam/${WorkteamName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "workteam", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:workforce/${WorkforceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "workforce", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:domain/${DomainId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "domain", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:user-profile/${DomainId}/${UserProfileName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "user-profile", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:space/${DomainId}/${SpaceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "space", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:app/${DomainId}/${UserProfileName}/${AppType}/${AppName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "app", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:app-image-config/${AppImageConfigName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "app-image-config", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:studio-lifecycle-config/${StudioLifecycleConfigName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "studio-lifecycle-config", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:notebook-instance/${NotebookInstanceName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "notebook-instance", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:notebook-instance-lifecycle-config/${NotebookInstanceLifecycleConfigName}", + ConditionKeys: []string{}, + Resource: "notebook-instance-lifecycle-config", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:code-repository/${CodeRepositoryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "code-repository", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:image/${ImageName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "image", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:image-version/${ImageName}/${Version}", + ConditionKeys: []string{}, + Resource: "image-version", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:algorithm/${AlgorithmName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "algorithm", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:cluster/${ClusterId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "cluster", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:training-job/${TrainingJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "training-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:processing-job/${ProcessingJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "processing-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:hyper-parameter-tuning-job/${HyperParameterTuningJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "hyper-parameter-tuning-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:training-plan/${TrainingPlanName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "training-plan", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:reserved-capacity/${RandomString}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "reserved-capacity", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:project/${ProjectName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "project", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-package/${ModelPackageName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-package", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-package-group/${ModelPackageGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-package-group", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model/${ModelName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:endpoint-config/${EndpointConfigName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "endpoint-config", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:endpoint/${EndpointName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "endpoint", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:inference-component/${InferenceComponentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "inference-component", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:transform-job/${TransformJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "transform-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:compilation-job/${CompilationJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "compilation-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:optimization-job/${OptimizationJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "optimization-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:automl-job/${AutoMLJobJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "automl-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:monitoring-schedule/${MonitoringScheduleName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "monitoring-schedule", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:monitoring-schedule/${MonitoringScheduleName}/alert/${MonitoringScheduleAlertName}", + ConditionKeys: []string{}, + Resource: "monitoring-schedule-alert", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:data-quality-job-definition/${DataQualityJobDefinitionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "data-quality-job-definition", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-quality-job-definition/${ModelQualityJobDefinitionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-quality-job-definition", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-bias-job-definition/${ModelBiasJobDefinitionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-bias-job-definition", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-explainability-job-definition/${ModelExplainabilityJobDefinitionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-explainability-job-definition", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:experiment/${ExperimentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "experiment", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:experiment-trial/${TrialName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "experiment-trial", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:experiment-trial-component/${TrialComponentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "experiment-trial-component", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:feature-group/${FeatureGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "feature-group", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:pipeline/${PipelineName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "pipeline", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:pipeline/${PipelineName}/execution/${RandomString}", + ConditionKeys: []string{}, + Resource: "pipeline-execution", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:artifact/${HashOfArtifactSource}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "artifact", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:context/${ContextName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "context", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:action/${ActionName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "action", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:lineage-group/${LineageGroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "lineage-group", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-card/${ModelCardName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-card", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-card/${ModelCardName}/export-job/${ExportJobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "model-card-export-job", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:shared-model/${SharedModelId}", + ConditionKeys: []string{}, + Resource: "shared-model", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:shared-model-event/${EventId}", + ConditionKeys: []string{}, + Resource: "shared-model-event", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:sagemaker-catalog/${ResourceCatalogName}", + ConditionKeys: []string{}, + Resource: "sagemaker-catalog", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:mlflow-tracking-server/${MlflowTrackingServerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "mlflow-tracking-server", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:compute-quota/${ComputeQuotaId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "compute-quota", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:cluster-scheduler-config/${ClusterSchedulerConfigId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "cluster-scheduler-config", + }, + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:partner-app/${AppId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "partner-app", + }, + }, + ServiceName: "Amazon SageMaker", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sagemaker-data-science-assistant", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an endpoint configuration that can be deployed using Amazon SageMaker hosting services", - Privilege: "CreateEndpointConfig", + Description: "Grants permission to start a conversation with SageMaker data science assistant", + Privilege: "SendConversation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "endpoint-config*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:AcceleratorTypes", - "sagemaker:InstanceTypes", - "sagemaker:ModelArn", - "sagemaker:VolumeKmsKey", - "sagemaker:ServerlessMaxConcurrency", - "sagemaker:ServerlessMemorySize", - "sagemaker:NetworkIsolation", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon SageMaker data science assistant", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "sagemaker-geospatial", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an experiment", - Privilege: "CreateExperiment", + Description: "Grants permission to the DeleteEarthObservationJob operation which deletes an existing earth observation job", + Privilege: "DeleteEarthObservationJob", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "experiment*", + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EarthObservationJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239267,27 +285088,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a feature group", - Privilege: "CreateFeatureGroup", + Description: "Grants permission to the DeleteVectorEnrichmentJob operation which deletes an existing vector enrichment job", + Privilege: "DeleteVectorEnrichmentJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "feature-group*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VectorEnrichmentJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:FeatureGroupOnlineStoreKmsKey", - "sagemaker:FeatureGroupOfflineStoreKmsKey", - "sagemaker:FeatureGroupOfflineStoreS3Uri", - "sagemaker:FeatureGroupEnableOnlineStore", - "sagemaker:FeatureGroupOfflineStoreConfig", - "sagemaker:FeatureGroupDisableGlueTableCreation", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239296,23 +285107,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a flow definition, which defines settings for a human workflow", - Privilege: "CreateFlowDefinition", + Description: "Grants permission to copy results of an earth observation job to an S3 location", + Privilege: "ExportEarthObservationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", - "sagemaker:AddTags", }, - ResourceType: "flow-definition*", + ResourceType: "EarthObservationJob*", }, { ConditionKeys: []string{ - "sagemaker:WorkteamArn", - "sagemaker:WorkteamType", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239321,20 +285128,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a hub", - Privilege: "CreateHub", + Description: "Grants permission to copy results of an VectorEnrichmentJob to an S3 location", + Privilege: "ExportVectorEnrichmentJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "sagemaker:AddTags", + "iam:PassRole", }, - ResourceType: "hub*", + ResourceType: "VectorEnrichmentJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239342,26 +285148,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create hub content reference", - Privilege: "CreateHubContentReference", + AccessLevel: "Read", + Description: "Grants permission to return details about the earth observation job", + Privilege: "GetEarthObservationJob", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "hub*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "EarthObservationJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239369,21 +285167,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to define the settings you will use for the human review workflow user interface", - Privilege: "CreateHumanTaskUi", + AccessLevel: "Read", + Description: "Grants permission to return details about the raster data collection", + Privilege: "GetRasterDataCollection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "human-task-ui*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RasterDataCollection*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239391,57 +285186,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a hyper parameter tuning job that can be deployed using Amazon SageMaker", - Privilege: "CreateHyperParameterTuningJob", + AccessLevel: "Read", + Description: "Grants permission to get the tile of an earth observation job", + Privilege: "GetTile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "hyper-parameter-tuning-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:FileSystemAccessMode", - "sagemaker:FileSystemDirectoryPath", - "sagemaker:FileSystemId", - "sagemaker:FileSystemType", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "EarthObservationJob*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a SageMaker Image", - Privilege: "CreateImage", + AccessLevel: "Read", + Description: "Grants permission to return details about the vector enrichment job", + Privilege: "GetVectorEnrichmentJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "image*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VectorEnrichmentJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239449,85 +285219,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a SageMaker ImageVersion", - Privilege: "CreateImageVersion", + AccessLevel: "List", + Description: "Grants permission to return an array of earth observation jobs associated with the current account", + Privilege: "ListEarthObservationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an inference component on an endpoint", - Privilege: "CreateInferenceComponent", + AccessLevel: "List", + Description: "Grants permission to return an array of aster data collections associated with the given model name", + Privilege: "ListRasterDataCollections", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "endpoint*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-component*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:ModelArn", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an inference experiment", - Privilege: "CreateInferenceExperiment", + AccessLevel: "List", + Description: "Grants permission to lists tag for an SageMaker Geospatial resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "inference-experiment*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EarthObservationJob", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RasterDataCollection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an inference recommendations job", - Privilege: "CreateInferenceRecommendationsJob", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "inference-recommendations-job*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VectorEnrichmentJob", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239535,36 +285272,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a labeling job. A labeling job takes unlabeled data in and produces labeled data as output, which can be used for training SageMaker models", - Privilege: "CreateLabelingJob", + AccessLevel: "List", + Description: "Grants permission to return an array of vector enrichment jobs associated with the current account", + Privilege: "ListVectorEnrichmentJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "labeling-job*", - }, - { - ConditionKeys: []string{ - "sagemaker:WorkteamArn", - "sagemaker:WorkteamType", - "sagemaker:VolumeKmsKey", - "sagemaker:OutputKmsKey", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a lineage group policy", - Privilege: "CreateLineageGroupPolicy", + AccessLevel: "Read", + Description: "Grants permission to query raster data collections", + Privilege: "SearchRasterDataCollection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -239575,16 +285297,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an MLflow tracking server", - Privilege: "CreateMlflowTrackingServer", + Description: "Grants permission to the StartEarthObservationJob operation which starts a new earth observation job to your account", + Privilege: "StartEarthObservationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", - "sagemaker:AddTags", + "sagemaker-geospatial:TagResource", }, - ResourceType: "mlflow-tracking-server*", + ResourceType: "EarthObservationJob*", }, { ConditionKeys: []string{ @@ -239598,24 +285320,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a model in Amazon SageMaker. In the request, you specify a name for the model and describe one or more containers", - Privilege: "CreateModel", + Description: "Grants permission to the StartVectorEnrichmentJob operation which starts a new vector enrichment job to your account", + Privilege: "StartVectorEnrichmentJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ "iam:PassRole", - "sagemaker:AddTags", + "sagemaker-geospatial:TagResource", }, - ResourceType: "model*", + ResourceType: "VectorEnrichmentJob*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", - "sagemaker:NetworkIsolation", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", @@ -239624,29 +285343,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a model bias job definition", - Privilege: "CreateModelBiasJobDefinition", + Description: "Grants permission to the StopEarthObservationJob operation which stops an existing earth observation job", + Privilege: "StopEarthObservationJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "model-bias-job-definition*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EarthObservationJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239655,20 +285362,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a model card", - Privilege: "CreateModelCard", + Description: "Grants permission to the StopVectorEnrichmentJob operation which stops an existing vector enrichment job", + Privilege: "StopVectorEnrichmentJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "model-card*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VectorEnrichmentJob*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239676,71 +285380,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an export job for a model card", - Privilege: "CreateModelCardExportJob", + AccessLevel: "Tagging", + Description: "Grants permission to tag an SageMaker Geospatial resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a model explainability job definition", - Privilege: "CreateModelExplainabilityJobDefinition", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "model-explainability-job-definition*", + ResourceType: "EarthObservationJob", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a ModelPackage", - Privilege: "CreateModelPackage", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "model-package", + ResourceType: "RasterDataCollection", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group", + ResourceType: "VectorEnrichmentJob", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "sagemaker:ModelApprovalStatus", - "sagemaker:CustomerMetadataProperties/${MetadataKey}", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -239748,115 +285411,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a ModelPackageGroup", - Privilege: "CreateModelPackageGroup", + AccessLevel: "Tagging", + Description: "Grants permission to untag an SageMaker Geospatial resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "model-package-group*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "EarthObservationJob", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RasterDataCollection", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a model quality job definition", - Privilege: "CreateModelQualityJobDefinition", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "model-quality-job-definition*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VectorEnrichmentJob", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to create a monitoring schedule", - Privilege: "CreateMonitoringSchedule", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "monitoring-schedule*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:sagemaker-geospatial:${Region}:${Account}:earth-observation-job/${JobID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "EarthObservationJob", + }, + { + Arn: "arn:${Partition}:sagemaker-geospatial:${Region}:${Account}:raster-data-collection/${CollectionID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "RasterDataCollection", + }, + { + Arn: "arn:${Partition}:sagemaker-geospatial:${Region}:${Account}:vector-enrichment-job/${JobID}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "VectorEnrichmentJob", }, + }, + ServiceName: "Amazon SageMaker geospatial capabilities", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sagemaker-groundtruth-synthetic", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an Amazon SageMaker notebook instance. A notebook instance is an Amazon EC2 instance running on a Jupyter Notebook", - Privilege: "CreateNotebookInstance", + Description: "Grants permission to create a project", + Privilege: "CreateProject", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "notebook-instance*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:AcceleratorTypes", - "sagemaker:DirectInternetAccess", - "sagemaker:InstanceTypes", - "sagemaker:MinimumInstanceMetadataServiceVersion", - "sagemaker:RootAccess", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -239864,162 +285483,107 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a notebook instance lifecycle configuration that can be deployed using Amazon SageMaker", - Privilege: "CreateNotebookInstanceLifecycleConfig", + Description: "Grants permission to delete a project", + Privilege: "DeleteProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance-lifecycle-config*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a pipeline", - Privilege: "CreatePipeline", + AccessLevel: "Read", + Description: "Grants permission to get account details", + Privilege: "GetAccountDetails", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "pipeline*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to return a URL that you can use from your browser to connect to the Domain as a specified UserProfile when AuthMode is 'IAM'", - Privilege: "CreatePresignedDomainUrl", + AccessLevel: "Read", + Description: "Grants permission to get a batch", + Privilege: "GetBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user-profile*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to return a URL that you can use from your browser to connect to the MLflow tracking server", - Privilege: "CreatePresignedMlflowTrackingServerUrl", + AccessLevel: "Read", + Description: "Grants permission to get a project", + Privilege: "GetProject", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a URL that you can use from your browser to connect to the Notebook Instance", - Privilege: "CreatePresignedNotebookInstanceUrl", + AccessLevel: "List", + Description: "Grants permission to list batch data transfers", + Privilege: "ListBatchDataTransfers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a processing job. After processing completes, Amazon SageMaker saves the resulting artifacts and other optional output to an Amazon S3 location that you specify", - Privilege: "CreateProcessingJob", + AccessLevel: "List", + Description: "Grants permission to list batch summaries", + Privilege: "ListBatchSummaries", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "processing-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - "sagemaker:InterContainerTrafficEncryption", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a Project", - Privilege: "CreateProject", + AccessLevel: "List", + Description: "Grants permission to list project data transfers", + Privilege: "ListProjectDataTransfers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "project*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a shared model in a SageMaker Studio application", - Privilege: "CreateSharedModel", + AccessLevel: "List", + Description: "Grants permission to list project summaries", + Privilege: "ListProjectSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shared-model*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a Space for a SageMaker Domain", - Privilege: "CreateSpace", + Description: "Grants permission to start a batch data transfer", + Privilege: "StartBatchDataTransfer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "space*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:ImageArns", - "sagemaker:ImageVersionArns", - "sagemaker:OwnerUserProfileArn", - "sagemaker:SpaceSharingType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -240027,21 +285591,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Studio Lifecycle Configuration that can be deployed using Amazon SageMaker", - Privilege: "CreateStudioLifecycleConfig", + Description: "Grants permission to start a project data transfer", + Privilege: "StartProjectDataTransfer", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "studio-lifecycle-config*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -240049,62 +285603,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a model training job. After training completes, Amazon SageMaker saves the resulting model artifacts and other optional output to an Amazon S3 location that you specify", - Privilege: "CreateTrainingJob", + Description: "Grants permission to update a batch", + Privilege: "UpdateBatch", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "training-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:FileSystemAccessMode", - "sagemaker:FileSystemDirectoryPath", - "sagemaker:FileSystemId", - "sagemaker:FileSystemType", - "sagemaker:InstanceTypes", - "sagemaker:InterContainerTrafficEncryption", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - "sagemaker:KeepAlivePeriod", - "sagemaker:EnableRemoteDebug", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon SageMaker Ground Truth Synthetic", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to start a transform job. After the results are obtained, Amazon SageMaker saves them to an Amazon S3 location that you specify", - Privilege: "CreateTransformJob", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "sagemaker:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + }, + Prefix: "sagemaker-mlflow", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to access the MLflow UI", + Privilege: "AccessUI", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "transform-job*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:ModelArn", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -240112,546 +285646,440 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a trial", - Privilege: "CreateTrial", + Description: "Grants permission to create an MLflow experiment", + Privilege: "CreateExperiment", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "experiment*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a trial component", - Privilege: "CreateTrialComponent", + Description: "Grants permission to create a new model version", + Privilege: "CreateModelVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "experiment-trial-component*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a UserProfile for a SageMaker Domain", - Privilege: "CreateUserProfile", + Description: "Grants permission to create a registered model", + Privilege: "CreateRegisteredModel", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker:AddTags", - }, - ResourceType: "user-profile*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:InstanceTypes", - "sagemaker:DomainSharingOutputKmsKey", - "sagemaker:ImageArns", - "sagemaker:ImageVersionArns", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workforce", - Privilege: "CreateWorkforce", + Description: "Grants permission to create a new run within an experiment", + Privilege: "CreateRun", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "workforce*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a workteam", - Privilege: "CreateWorkteam", + Description: "Grants permission to mark an MLflow experiment for deletion", + Privilege: "DeleteExperiment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "workteam*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an action", - Privilege: "DeleteAction", + Description: "Grants permission to delete a model version", + Privilege: "DeleteModelVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an algorithm", - Privilege: "DeleteAlgorithm", + Description: "Grants permission to delete a model version tag", + Privilege: "DeleteModelVersionTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "algorithm*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an App", - Privilege: "DeleteApp", + Description: "Grants permission to delete a registered model", + Privilege: "DeleteRegisteredModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", - }, - { - ConditionKeys: []string{ - "sagemaker:OwnerUserProfileArn", - "sagemaker:SpaceSharingType", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AppImageConfig", - Privilege: "DeleteAppImageConfig", + Description: "Grants permission to delete a registered model alias", + Privilege: "DeleteRegisteredModelAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-image-config*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an artifact", - Privilege: "DeleteArtifact", + Description: "Grants permission to delete a registered model tag", + Privilege: "DeleteRegisteredModelTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "artifact*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the association from a lineage entity (artifact, context, action, experiment, experiment-trial-component) to another", - Privilege: "DeleteAssociation", + Description: "Grants permission to mark a run for deletion", + Privilege: "DeleteRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "artifact*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "context*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a SageMaker HyperPod cluster", - Privilege: "DeleteCluster", + Description: "Grants permission to delete a tag on a run", + Privilege: "DeleteTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a CodeRepository", - Privilege: "DeleteCodeRepository", + Description: "Grants permission to delete a trace tag in MLflow", + Privilege: "DeleteTraceTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code-repository*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a compilation job", - Privilege: "DeleteCompilationJob", + Description: "Grants permission to delete traces in MLflow", + Privilege: "DeleteTraces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "compilation-job*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a context", - Privilege: "DeleteContext", + Description: "Grants permission to end a trace in MLflow", + Privilege: "EndTrace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "context*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the data quality job definition created using the CreateDataQualityJobDefinition API", - Privilege: "DeleteDataQualityJobDefinition", + AccessLevel: "Read", + Description: "Grants permission to get a URI to download model artifacts for a specific model version", + Privilege: "GetDownloadURIForModelVersionArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-quality-job-definition*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a device fleet", - Privilege: "DeleteDeviceFleet", + AccessLevel: "Read", + Description: "Grants permission to get metadata for an MLflow experiment", + Privilege: "GetExperiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-fleet*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Domain", - Privilege: "DeleteDomain", + AccessLevel: "Read", + Description: "Grants permission to get metadata for an MLflow experiment by name", + Privilege: "GetExperimentByName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an edge deployment plan", - Privilege: "DeleteEdgeDeploymentPlan", + AccessLevel: "List", + Description: "Grants permission to get the latest model versions", + Privilege: "GetLatestModelVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-deployment-plan*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an edge deployment stage", - Privilege: "DeleteEdgeDeploymentStage", + AccessLevel: "Read", + Description: "Grants permission to get a list of all values for the specified metric for a given run", + Privilege: "GetMetricHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-deployment-plan*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an endpoint. Amazon SageMaker frees up all the resources that were deployed when the endpoint was created", - Privilege: "DeleteEndpoint", + AccessLevel: "Read", + Description: "Grants permission to get a model version by model name and version", + Privilege: "GetModelVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the endpoint configuration created using the CreateEndpointConfig API. The DeleteEndpointConfig API deletes only the specified configuration. It does not delete any endpoints created using the configuration", - Privilege: "DeleteEndpointConfig", + AccessLevel: "Read", + Description: "Grants permission to get model version by alias in MLflow", + Privilege: "GetModelVersionByAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint-config*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an experiment", - Privilege: "DeleteExperiment", + AccessLevel: "Read", + Description: "Grants permission to get a registered model", + Privilege: "GetRegisteredModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a feature group", - Privilege: "DeleteFeatureGroup", + AccessLevel: "Read", + Description: "Grants permission to get metadata, metrics, parameters, and tags for a run", + Privilege: "GetRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified flow definition", - Privilege: "DeleteFlowDefinition", + AccessLevel: "Read", + Description: "Grants permission to get information about a trace in MLflow", + Privilege: "GetTraceInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flow-definition*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete hubs", - Privilege: "DeleteHub", + AccessLevel: "List", + Description: "Grants permission to list artifacts for a run", + Privilege: "ListArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete hub content", - Privilege: "DeleteHubContent", + Description: "Grants permission to log a batch of metrics, parameters, and tags for a run", + Privilege: "LogBatch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete hub content reference", - Privilege: "DeleteHubContentReference", + Description: "Grants permission to log inputs for a run", + Privilege: "LogInputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified human loop", - Privilege: "DeleteHumanLoop", + Description: "Grants permission to log a metric for a run", + Privilege: "LogMetric", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "human-loop*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified human task user interface (worker task template)", - Privilege: "DeleteHumanTaskUi", + Description: "Grants permission to log the model associated with a run", + Privilege: "LogModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "human-task-ui*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a hyper parameter tuning job", - Privilege: "DeleteHyperParameterTuningJob", + Description: "Grants permission to log a parameter tracked during a run", + Privilege: "LogParam", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a SageMaker Image", - Privilege: "DeleteImage", + Description: "Grants permission to rename a registered model", + Privilege: "RenameRegisteredModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a SageMaker ImageVersion", - Privilege: "DeleteImageVersion", + Description: "Grants permission to restore an experiment marked for deletion", + Privilege: "RestoreExperiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image-version*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an inference component. Amazon SageMaker frees up the resources that were reserved when the inference component was created", - Privilege: "DeleteInferenceComponent", + Description: "Grants permission to restore a deleted run", + Privilege: "RestoreRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-component*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an inference experiment", - Privilege: "DeleteInferenceExperiment", + AccessLevel: "Read", + Description: "Grants permission to search for MLflow experiments", + Privilege: "SearchExperiments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-experiment*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a lineage group policy", - Privilege: "DeleteLineageGroupPolicy", + AccessLevel: "Read", + Description: "Grants permission to search for a model version", + Privilege: "SearchModelVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an MLflow tracking server", - Privilege: "DeleteMlflowTrackingServer", + AccessLevel: "Read", + Description: "Grants permission to search for registered models in MLflow", + Privilege: "SearchRegisteredModels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -240661,180 +286089,216 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a model created using the CreateModel API. The DeleteModel API deletes only the model entry in Amazon SageMaker that you created by calling the CreateModel API. It does not delete model artifacts, inference code, or the IAM role that you specified when creating the model", - Privilege: "DeleteModel", + AccessLevel: "Read", + Description: "Grants permission to search for runs that satisfy expressions", + Privilege: "SearchRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "mlflow-tracking-server*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the model bias job definition created using the CreateModelBiasJobDefinition API", - Privilege: "DeleteModelBiasJobDefinition", + AccessLevel: "Read", + Description: "Grants permission to search for traces in MLflow", + Privilege: "SearchTraces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-bias-job-definition*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a model card", - Privilege: "DeleteModelCard", + Description: "Grants permission to set a tag on an experiment", + Privilege: "SetExperimentTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the model explainability job definition created using the CreateModelExplainabilityJobDefinition API", - Privilege: "DeleteModelExplainabilityJobDefinition", + Description: "Grants permission to set a tag for the model version", + Privilege: "SetModelVersionTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-explainability-job-definition*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a ModelPackage", - Privilege: "DeleteModelPackage", + Description: "Grants permission to set a registered model alias", + Privilege: "SetRegisteredModelAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a ModelPackageGroup", - Privilege: "DeleteModelPackageGroup", + Description: "Grants permission to set a tag for a registered model", + Privilege: "SetRegisteredModelTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a ModelPackageGroup policy", - Privilege: "DeleteModelPackageGroupPolicy", + Description: "Grants permission to set a tag on a run", + Privilege: "SetTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the model quality job definition created using the CreateModelQualityJobDefinition API", - Privilege: "DeleteModelQualityJobDefinition", + Description: "Grants permission to set a trace tag in MLflow", + Privilege: "SetTraceTag", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-quality-job-definition*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a monitoring schedule", - Privilege: "DeleteMonitoringSchedule", + Description: "Grants permission to start a trace in MLflow", + Privilege: "StartTrace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Amazon SageMaker notebook instance. Before you can delete a notebook instance, you must call the StopNotebookInstance API", - Privilege: "DeleteNotebookInstance", + Description: "Grants permission to transition a model version to a particular stage", + Privilege: "TransitionModelVersionStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a notebook instance lifecycle configuration", - Privilege: "DeleteNotebookInstanceLifecycleConfig", + Description: "Grants permission to update the metadata for an MLflow experiment", + Privilege: "UpdateExperiment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance-lifecycle-config*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a pipeline", - Privilege: "DeletePipeline", + Description: "Grants permission to update the model version", + Privilege: "UpdateModelVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", + Description: "Grants permission to update a registered model", + Privilege: "UpdateRegisteredModel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "mlflow-tracking-server*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a record from a feature group", - Privilege: "DeleteRecord", + Description: "Grants permission to update run metadata", + Privilege: "UpdateRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "mlflow-tracking-server*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:mlflow-tracking-server/${MlflowTrackingServerName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sagemaker:ResourceTag/${TagKey}", + }, + Resource: "mlflow-tracking-server", + }, + }, + ServiceName: "Amazon SageMaker with MLflow", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value assoicated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "savingsplans", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants AWS Resource Access Manager permission to delete a resource policy on a SageMaker resource that supports cross-account sharing", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to create a savings plan", + Privilege: "CreateSavingsPlan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -240842,18 +286306,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a Space", - Privilege: "DeleteSpace", + Description: "Grants permission to delete the queued savings plan associated with customers account", + Privilege: "DeleteQueuedSavingsPlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "savingsplan*", }, { ConditionKeys: []string{ - "sagemaker:OwnerUserProfileArn", - "sagemaker:SpaceSharingType", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -240861,1326 +286324,2120 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a Studio Lifecycle Configuration", - Privilege: "DeleteStudioLifecycleConfig", + AccessLevel: "Read", + Description: "Grants permission to describe the rates associated with customers savings plan", + Privilege: "DescribeSavingsPlanRates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-lifecycle-config*", + ResourceType: "savingsplan*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to delete the specified set of tags from an Amazon SageMaker resource", - Privilege: "DeleteTags", + AccessLevel: "Read", + Description: "Grants permission to describe the savings plans associated with customers account", + Privilege: "DescribeSavingsPlans", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action", + ResourceType: "savingsplan*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "algorithm", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the rates assciated with savings plans offerings", + Privilege: "DescribeSavingsPlansOfferingRates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the savings plans offerings that customer is eligible to purchase", + Privilege: "DescribeSavingsPlansOfferings", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-image-config", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list tags for a savings plan", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "artifact", + ResourceType: "savingsplan*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to return a savings plan", + Privilege: "ReturnSavingsPlan", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automl-job", + ResourceType: "savingsplan*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "cluster", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a savings plan", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code-repository", + ResourceType: "savingsplan*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "compilation-job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a savings plan", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "context", + ResourceType: "savingsplan*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "data-quality-job-definition", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:savingsplans::${Account}:savingsplan/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "savingsplan", + }, + }, + ServiceName: "AWS Savings Plans", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "scheduler", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EventBridge Scheduler schedule", + Privilege: "CreateSchedule", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "schedule*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "device-fleet", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Amazon EventBridge Scheduler schedule group", + Privilege: "CreateScheduleGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain", + ResourceType: "schedule-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "edge-deployment-plan", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon EventBridge Scheduler schedule", + Privilege: "DeleteSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-packaging-job", + ResourceType: "schedule*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "endpoint", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Amazon EventBridge Scheduler schedule group", + Privilege: "DeleteScheduleGroup", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint-config", + ConditionKeys: []string{}, + DependentActions: []string{ + "scheduler:DeleteSchedule", + }, + ResourceType: "schedule-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "experiment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details about an Amazon EventBridge Scheduler schedule", + Privilege: "GetSchedule", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial", + ResourceType: "schedule*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "experiment-trial-component", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details about an Amazon EventBridge Scheduler schedule group", + Privilege: "GetScheduleGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group", + ResourceType: "schedule-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "flow-definition", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EventBridge Scheduler schedule groups in your account", + Privilege: "ListScheduleGroups", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the Amazon EventBridge Scheduler schedules in your account", + Privilege: "ListSchedules", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub-content", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to lists tag for an Amazon EventBridge Scheduler resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "human-task-ui", + ResourceType: "schedule-group", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an Amazon EventBridge Scheduler resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image", + ResourceType: "schedule-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "inference-component", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag an Amazon EventBridge Scheduler resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-recommendations-job", + ResourceType: "schedule-group*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "labeling-job", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an Amazon EventBridge Scheduler schedule", + Privilege: "UpdateSchedule", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlflow-tracking-server", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "schedule*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "model", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:scheduler:${Region}:${Account}:schedule-group/${GroupName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "schedule-group", + }, + { + Arn: "arn:${Partition}:scheduler:${Region}:${Account}:schedule/${GroupName}/${ScheduleName}", + ConditionKeys: []string{}, + Resource: "schedule", + }, + }, + ServiceName: "Amazon EventBridge Scheduler", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "schemas", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an event schema discoverer. Once created, your events will be automatically map into corresponding schema documents", + Privilege: "CreateDiscoverer", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "model-bias-job-definition", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new schema registry in your account", + Privilege: "CreateRegistry", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card", + ResourceType: "registry*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "model-explainability-job-definition", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new schema in your account", + Privilege: "CreateSchema", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package", + ResourceType: "schema*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "model-package-group", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete discoverer in your account", + Privilege: "DeleteDiscoverer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-quality-job-definition", + ResourceType: "discoverer*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing registry in your account", + Privilege: "DeleteRegistry", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule", + ResourceType: "registry*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the resource-based policy attached to a given registry", + Privilege: "DeleteResourcePolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance", + ResourceType: "registry*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing schema in your account", + Privilege: "DeleteSchema", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a specific version of schema in your account", + Privilege: "DeleteSchemaVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "processing-job", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata for generated code for specific schema in your account", + Privilege: "DescribeCodeBinding", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve discoverer metadata in your account", + Privilege: "DescribeDiscoverer", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space", + ResourceType: "discoverer*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe an existing registry metadata in your account", + Privilege: "DescribeRegistry", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-lifecycle-config", + ResourceType: "registry*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing schema in your account", + Privilege: "DescribeSchema", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to export the AWS registry or discovered schemas in OpenAPI 3 format to JSONSchema format", + Privilege: "ExportSchema", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transform-job", + ResourceType: "registry*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user-profile", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve metadata for generated code for specific schema in your account", + Privilege: "GetCodeBindingSource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam", + ResourceType: "schema*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a schema for the provided list of sample events", + Privilege: "GetDiscoveredSchema", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a trial", - Privilege: "DeleteTrial", + AccessLevel: "Read", + Description: "Grants permission to retrieve the resource-based policy attached to a given registry", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial*", + ResourceType: "registry*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a trial component", - Privilege: "DeleteTrialComponent", + AccessLevel: "List", + Description: "Grants permission to list all discoverers in your account", + Privilege: "ListDiscoverers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "discoverer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a UserProfile", - Privilege: "DeleteUserProfile", + AccessLevel: "List", + Description: "Grants permission to list all registries in your account", + Privilege: "ListRegistries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user-profile*", + ResourceType: "registry*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a workforce", - Privilege: "DeleteWorkforce", + AccessLevel: "List", + Description: "Grants permission to list all versions of a schema", + Privilege: "ListSchemaVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workforce*", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a workteam", - Privilege: "DeleteWorkteam", + AccessLevel: "List", + Description: "Grants permission to list all schemas", + Privilege: "ListSchemas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam*", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deploy a model in hub to an endpoint", - Privilege: "DeployHubModel", + AccessLevel: "Read", + Description: "Grants permission to lists tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", + ResourceType: "discoverer", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "registry", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to deregister a set of devices", - Privilege: "DeregisterDevices", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "schema", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an action", - Privilege: "DescribeAction", + AccessLevel: "Write", + Description: "Grants permission to generate code for specific schema in your account", + Privilege: "PutCodeBinding", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "action*", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an algorithm", - Privilege: "DescribeAlgorithm", + AccessLevel: "Write", + Description: "Grants permission to attach a resource-based policy to a given registry", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "algorithm*", + ResourceType: "registry*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an App", - Privilege: "DescribeApp", + AccessLevel: "List", + Description: "Grants permission to search schemas based on specified keywords in your account", + Privilege: "SearchSchemas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app*", + ResourceType: "schema*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an AppImageConfig", - Privilege: "DescribeAppImageConfig", + AccessLevel: "Write", + Description: "Grants permission to start the specified discoverer. Once started the discoverer will automatically register schemas for published events to configured source in your account", + Privilege: "StartDiscoverer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "app-image-config*", + ResourceType: "discoverer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an artifact", - Privilege: "DescribeArtifact", + AccessLevel: "Write", + Description: "Grants permission to stop the specified discoverer. Once stopped the discoverer will no longer register schemas for published events to configured source in your account", + Privilege: "StopDiscoverer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "artifact*", + ResourceType: "discoverer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an AutoML job that was created via the CreateAutoMLJob API", - Privilege: "DescribeAutoMLJob", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automl-job*", + ResourceType: "discoverer", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe an AutoML job that was created via the CreateAutoMLJobV2 API", - Privilege: "DescribeAutoMLJobV2", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automl-job*", + ResourceType: "registry", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return information about a SageMaker HyperPod cluster", - Privilege: "DescribeCluster", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "schema", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return information about a SageMaker HyperPod cluster node", - Privilege: "DescribeClusterNode", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a CodeRepository", - Privilege: "DescribeCodeRepository", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code-repository*", + ResourceType: "discoverer", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return information about a compilation job", - Privilege: "DescribeCompilationJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "compilation-job*", + ResourceType: "registry", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a context", - Privilege: "DescribeContext", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "context*", + ResourceType: "schema", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a data quality job definition", - Privilege: "DescribeDataQualityJobDefinition", + AccessLevel: "Write", + Description: "Grants permission to update an existing discoverer in your account", + Privilege: "UpdateDiscoverer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "data-quality-job-definition*", + ResourceType: "discoverer*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about a device", - Privilege: "DescribeDevice", + AccessLevel: "Write", + Description: "Grants permission to update an existing registry metadata in your account", + Privilege: "UpdateRegistry", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "registry*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about a device fleet", - Privilege: "DescribeDeviceFleet", + AccessLevel: "Write", + Description: "Grants permission to update an existing schema in your account", + Privilege: "UpdateSchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-fleet*", + ResourceType: "schema*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe a Domain", - Privilege: "DescribeDomain", + Arn: "arn:${Partition}:schemas:${Region}:${Account}:discoverer/${DiscovererId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "discoverer", + }, + { + Arn: "arn:${Partition}:schemas:${Region}:${Account}:registry/${RegistryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "registry", + }, + { + Arn: "arn:${Partition}:schemas:${Region}:${Account}:schema/${RegistryName}/${SchemaName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "schema", + }, + }, + ServiceName: "Amazon EventBridge Schemas", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by using tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by using tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by using tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "scn", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to add AWS Supply Chain administrator permission to federated user", + Privilege: "AssignAdminPermissionsToUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about an edge deployment plan", - Privilege: "DescribeEdgeDeploymentPlan", + AccessLevel: "Write", + Description: "Grants permission to create a BillOfMaterialsImportJob which will import a CSV file of BillOfMaterials records", + Privilege: "CreateBillOfMaterialsImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-deployment-plan*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about an edge packaging job", - Privilege: "DescribeEdgePackagingJob", + AccessLevel: "Write", + Description: "Grants permission to create DataIntegrationFlow that can transform from multiple sources to one target", + Privilege: "CreateDataIntegrationFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-packaging-job*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the description of an endpoint", - Privilege: "DescribeEndpoint", + AccessLevel: "Write", + Description: "Grants permission to create the data lake dataset", + Privilege: "CreateDataLakeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the description of an endpoint configuration, which was created using the CreateEndpointConfig API", - Privilege: "DescribeEndpointConfig", + AccessLevel: "Write", + Description: "Grants permission to create a new AWS Supply Chain instance", + Privilege: "CreateInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint-config*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about an experiment", - Privilege: "DescribeExperiment", + AccessLevel: "Write", + Description: "Grants permission to create IAM Identity Center application for a AWS Supply Chain instance", + Privilege: "CreateSSOApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a feature group", - Privilege: "DescribeFeatureGroup", + AccessLevel: "Write", + Description: "Grants permission to delete the DataIntegrationFlow", + Privilege: "DeleteDataIntegrationFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "data-integration-flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a feature metadata", - Privilege: "DescribeFeatureMetadata", + AccessLevel: "Write", + Description: "Grants permission to delete the data lake dataset", + Privilege: "DeleteDataLakeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about the specified flow definition", - Privilege: "DescribeFlowDefinition", + AccessLevel: "Write", + Description: "Grants permission to delete an AWS Supply Chain instance", + Privilege: "DeleteInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flow-definition*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe hubs", - Privilege: "DescribeHub", + AccessLevel: "Write", + Description: "Grants permission to delete IAM Identity Center application of the AWS Supply Chain instance", + Privilege: "DeleteSSOApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe hub content", - Privilege: "DescribeHubContent", + Description: "Grants permission to view details of an AWS Supply Chain instance", + Privilege: "DescribeInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about the specified human loop", - Privilege: "DescribeHumanLoop", + Description: "Grants permission to view status and details of a BillOfMaterialsImportJob", + Privilege: "GetBillOfMaterialsImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "human-loop*", + ResourceType: "bill-of-materials-import-job*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return detailed information about the specified human review workflow user interface", - Privilege: "DescribeHumanTaskUi", + Description: "Grants permission to get the DataIntegrationFlow details", + Privilege: "GetDataIntegrationFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "human-task-ui*", + ResourceType: "data-integration-flow*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a hyper parameter tuning job that was created via the CreateHyperParameterTuningJob API", - Privilege: "DescribeHyperParameterTuningJob", + Description: "Grants permission to get the dataset details", + Privilege: "GetDataLakeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job*", + ResourceType: "dataset*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a SageMaker Image", - Privilege: "DescribeImage", + Description: "Grants permission to view details of an AWS Supply Chain instance", + Privilege: "GetInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a SageMaker ImageVersion", - Privilege: "DescribeImageVersion", + AccessLevel: "List", + Description: "Grants permission to list AWS Supply Chain administrators of an instance", + Privilege: "ListAdminUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image-version*", + ResourceType: "instance*", }, }, }, - { - AccessLevel: "Read", - Description: "Grants permission to return the description of an inference component", - Privilege: "DescribeInferenceComponent", + { + AccessLevel: "List", + Description: "Grants permission to list all the DataIntegrationFlows in a paginated way", + Privilege: "ListDataIntegrationFlows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-component*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an inference experiment", - Privilege: "DescribeInferenceExperiment", + AccessLevel: "List", + Description: "Grants permission to list the data lake datasets under specific instance and namespace", + Privilege: "ListDataLakeDatasets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-experiment*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an inference recommendations job", - Privilege: "DescribeInferenceRecommendationsJob", + AccessLevel: "List", + Description: "Grants permission to view the AWS Supply Chain instances associated with an AWS account", + Privilege: "ListInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-recommendations-job*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a labeling job", - Privilege: "DescribeLabelingJob", + AccessLevel: "List", + Description: "Grants permission to list tags for an AWS Supply Chain resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "labeling-job*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a lineage group", - Privilege: "DescribeLineageGroup", + AccessLevel: "Write", + Description: "Grants permission to remove AWS Supply Chain administrator permission from federated user", + Privilege: "RemoveAdminPermissionsForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an MLflow tracking server", - Privilege: "DescribeMlflowTrackingServer", + AccessLevel: "Write", + Description: "Grants permission to create a DataIntegrationEvent which will ingest data in real-time", + Privilege: "SendDataIntegrationEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a model that you created using the CreateModel API", - Privilege: "DescribeModel", + AccessLevel: "Tagging", + Description: "Grants permission to tag an AWS Supply Chain resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a model bias job definition", - Privilege: "DescribeModelBiasJobDefinition", + AccessLevel: "Tagging", + Description: "Grants permission to remove tag from an AWS Supply Chain resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-bias-job-definition*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a model card", - Privilege: "DescribeModelCard", + AccessLevel: "Write", + Description: "Grants permission to update the DataIntegrationFlow", + Privilege: "UpdateDataIntegrationFlow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card*", + ResourceType: "data-integration-flow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a model card export job", - Privilege: "DescribeModelCardExportJob", + AccessLevel: "Write", + Description: "Grants permission to update the data lake dataset", + Privilege: "UpdateDataLakeDataset", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card-export-job*", + ResourceType: "dataset*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a model explainability job definition", - Privilege: "DescribeModelExplainabilityJobDefinition", + AccessLevel: "Write", + Description: "Grants permission to update an AWS Supply Chain instance", + Privilege: "UpdateInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-explainability-job-definition*", + ResourceType: "instance*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe a ModelPackage", - Privilege: "DescribeModelPackage", + Arn: "arn:${Partition}:scn:${Region}:${Account}:instance/${InstanceId}", + ConditionKeys: []string{}, + Resource: "instance", + }, + { + Arn: "arn:${Partition}:scn:${Region}:${Account}:instance/${InstanceId}/bill-of-materials-import-job/${JobId}", + ConditionKeys: []string{}, + Resource: "bill-of-materials-import-job", + }, + { + Arn: "arn:${Partition}:scn:${Region}:${Account}:instance/${InstanceId}/data-integration-flows/${FlowName}", + ConditionKeys: []string{}, + Resource: "data-integration-flow", + }, + { + Arn: "arn:${Partition}:scn:${Region}:${Account}:instance/${InstanceId}/namespaces/${Namespace}/datasets/${DatasetName}", + ConditionKeys: []string{}, + Resource: "dataset", + }, + }, + ServiceName: "AWS Supply Chain", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sdb", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Performs multiple DeleteAttributes operations in a single call, which reduces round trips and latencies", + Privilege: "BatchDeleteAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a ModelPackageGroup", - Privilege: "DescribeModelPackageGroup", + AccessLevel: "Write", + Description: "With the BatchPutAttributes operation, you can perform multiple PutAttribute operations in a single call. With the BatchPutAttributes operation, you can perform multiple PutAttribute operations in a single call", + Privilege: "BatchPutAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a model quality job definition", - Privilege: "DescribeModelQualityJobDefinition", + AccessLevel: "Write", + Description: "The CreateDomain operation creates a new domain", + Privilege: "CreateDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-quality-job-definition*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a monitoring schedule", - Privilege: "DescribeMonitoringSchedule", + AccessLevel: "Write", + Description: "Deletes one or more attributes associated with the item", + Privilege: "DeleteAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a notebook instance", - Privilege: "DescribeNotebookInstance", + AccessLevel: "Write", + Description: "The DeleteDomain operation deletes a domain", + Privilege: "DeleteDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a notebook instance lifecycle configuration that was created via the CreateNotebookInstanceLifecycleConfig API", - Privilege: "DescribeNotebookInstanceLifecycleConfig", + Description: "Returns information about the domain, including when the domain was created, the number of items and attributes, and the size of attribute names and values", + Privilege: "DomainMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance-lifecycle-config*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a pipeline", - Privilege: "DescribePipeline", + Description: "Returns all of the attributes associated with the item", + Privilege: "GetAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "domain*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the pipeline definition for a pipeline execution", - Privilege: "DescribePipelineDefinitionForExecution", + AccessLevel: "List", + Description: "Description for ListDomains", + Privilege: "ListDomains", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a pipeline execution", - Privilege: "DescribePipelineExecution", + AccessLevel: "Write", + Description: "The PutAttributes operation creates or replaces attributes in an item", + Privilege: "PutAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "domain*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a processing job", - Privilege: "DescribeProcessingJob", + Description: "Description for Select", + Privilege: "Select", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "processing-job*", + ResourceType: "domain*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to describe a project", - Privilege: "DescribeProject", + Arn: "arn:${Partition}:sdb:${Region}:${Account}:domain/${DomainName}", + ConditionKeys: []string{}, + Resource: "domain", + }, + }, + ServiceName: "Amazon SimpleDB", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a key that is present in the request the user makes to the Secrets Manager service", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the list of all the tag key names present in the request the user makes to the Secrets Manager service", + Type: "ArrayOfString", + }, + { + Condition: "secretsmanager:AddReplicaRegions", + Description: "Filters access by the list of Regions in which to replicate the secret", + Type: "ArrayOfString", + }, + { + Condition: "secretsmanager:BlockPublicPolicy", + Description: "Filters access by whether the resource policy blocks broad AWS account access", + Type: "Bool", + }, + { + Condition: "secretsmanager:Description", + Description: "Filters access by the description text in the request", + Type: "String", + }, + { + Condition: "secretsmanager:ForceDeleteWithoutRecovery", + Description: "Filters access by whether the secret is to be deleted immediately without any recovery window", + Type: "Bool", + }, + { + Condition: "secretsmanager:ForceOverwriteReplicaSecret", + Description: "Filters access by whether to overwrite a secret with the same name in the destination Region", + Type: "Bool", + }, + { + Condition: "secretsmanager:KmsKeyArn", + Description: "Filters access by the key ARN of the KMS key in the request", + Type: "ARN", + }, + { + Condition: "secretsmanager:KmsKeyId", + Description: "Filters access by the key identifier of the KMS key in the request. Deprecated: Use secretsmanager:KmsKeyArn", + Type: "String", + }, + { + Condition: "secretsmanager:ModifyRotationRules", + Description: "Filters access by whether the rotation rules of the secret are to be modified", + Type: "Bool", + }, + { + Condition: "secretsmanager:Name", + Description: "Filters access by the friendly name of the secret in the request", + Type: "String", + }, + { + Condition: "secretsmanager:RecoveryWindowInDays", + Description: "Filters access by the number of days that Secrets Manager waits before it can delete the secret", + Type: "Numeric", + }, + { + Condition: "secretsmanager:ResourceTag/tag-key", + Description: "Filters access by a tag key and value pair", + Type: "String", + }, + { + Condition: "secretsmanager:RotateImmediately", + Description: "Filters access by whether the secret is to be rotated immediately", + Type: "Bool", + }, + { + Condition: "secretsmanager:RotationLambdaARN", + Description: "Filters access by the ARN of the rotation Lambda function in the request", + Type: "ARN", + }, + { + Condition: "secretsmanager:SecretId", + Description: "Filters access by the SecretID value in the request", + Type: "ARN", + }, + { + Condition: "secretsmanager:SecretPrimaryRegion", + Description: "Filters access by primary region in which the secret is created", + Type: "String", + }, + { + Condition: "secretsmanager:VersionId", + Description: "Filters access by the unique identifier of the version of the secret in the request", + Type: "String", + }, + { + Condition: "secretsmanager:VersionStage", + Description: "Filters access by the list of version stages in the request", + Type: "String", + }, + { + Condition: "secretsmanager:resource/AllowRotationLambdaArn", + Description: "Filters access by the ARN of the rotation Lambda function associated with the secret", + Type: "ARN", + }, + }, + Prefix: "secretsmanager", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "List", + Description: "Grants permission to retrieve and decrypt a list of secrets", + Privilege: "BatchGetSecretValue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a shared model in a SageMaker Studio application", - Privilege: "DescribeSharedModel", + AccessLevel: "Write", + Description: "Grants permission to cancel an in-progress secret rotation", + Privilege: "CancelRotateSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shared-model*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a Space", - Privilege: "DescribeSpace", + AccessLevel: "Write", + Description: "Grants permission to create a secret that stores encrypted data that can be queried and rotated", + Privilege: "CreateSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:Name", + "secretsmanager:Description", + "secretsmanager:KmsKeyArn", + "secretsmanager:KmsKeyId", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "secretsmanager:ResourceTag/tag-key", + "secretsmanager:AddReplicaRegions", + "secretsmanager:ForceOverwriteReplicaSecret", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a Studio Lifecycle Configuration", - Privilege: "DescribeStudioLifecycleConfig", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the resource policy attached to a secret", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "studio-lifecycle-config*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a subscribed workteam", - Privilege: "DescribeSubscribedWorkteam", + AccessLevel: "Write", + Description: "Grants permission to delete a secret", + Privilege: "DeleteSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:RecoveryWindowInDays", + "secretsmanager:ForceDeleteWithoutRecovery", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a training job", - Privilege: "DescribeTrainingJob", + Description: "Grants permission to retrieve the metadata about a secret, but not the encrypted data", + Privilege: "DescribeSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a transform job", - Privilege: "DescribeTransformJob", + Description: "Grants permission to generate a random string for use in password creation", + Privilege: "GetRandomPassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "transform-job*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a trial", - Privilege: "DescribeTrial", + Description: "Grants permission to get the resource policy attached to a secret", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return information about a trial component", - Privilege: "DescribeTrialComponent", + Description: "Grants permission to retrieve and decrypt the encrypted data", + Privilege: "GetSecretValue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:VersionId", + "secretsmanager:VersionStage", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a UserProfile", - Privilege: "DescribeUserProfile", + Description: "Grants permission to list the available versions of a secret", + Privilege: "ListSecretVersionIds", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "user-profile*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a workforce", - Privilege: "DescribeWorkforce", + AccessLevel: "List", + Description: "Grants permission to list the available secrets", + Privilege: "ListSecrets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workforce*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a workteam", - Privilege: "DescribeWorkteam", + AccessLevel: "Permissions management", + Description: "Grants permission to attach a resource policy to a secret", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:BlockPublicPolicy", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable a SageMaker Service Catalog Portfolio", - Privilege: "DisableSagemakerServicecatalogPortfolio", + Description: "Grants permission to create a new version of the secret with new encrypted data", + Privilege: "PutSecretValue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a trial component from a trial", - Privilege: "DisassociateTrialComponent", + Description: "Grants permission to remove regions from replication", + Privilege: "RemoveRegionsFromReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "Secret*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, DependentActions: []string{}, - ResourceType: "processing-job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable a SageMaker Service Catalog Portfolio", - Privilege: "EnableSagemakerServicecatalogPortfolio", + Description: "Grants permission to convert an existing secret to a multi-Region secret and begin replicating the secret to a list of new regions", + Privilege: "ReplicateSecretToRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + "secretsmanager:AddReplicaRegions", + "secretsmanager:ForceOverwriteReplicaSecret", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get deployment plan for device", - Privilege: "GetDeployments", + AccessLevel: "Write", + Description: "Grants permission to cancel deletion of a secret", + Privilege: "RestoreSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access a summary of the devices in a device fleet", - Privilege: "GetDeviceFleetReport", + AccessLevel: "Write", + Description: "Grants permission to start rotation of a secret", + Privilege: "RotateSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-fleet*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:RotationLambdaARN", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + "secretsmanager:ModifyRotationRules", + "secretsmanager:RotateImmediately", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get device registration. After you deploy a model onto edge devices this api is used to get current device registration", - Privilege: "GetDeviceRegistration", + AccessLevel: "Write", + Description: "Grants permission to remove the secret from replication and promote the secret to a regional secret in the replica Region", + Privilege: "StopReplicationToReplica", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retreive a lineage group policy", - Privilege: "GetLineageGroupPolicy", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a secret", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a ModelPackageGroup policy", - Privilege: "GetModelPackageGroupPolicy", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a secret", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "aws:TagKeys", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a record from a feature group", - Privilege: "GetRecord", + AccessLevel: "Write", + Description: "Grants permission to update a secret with new metadata or with a new version of the encrypted data", + Privilege: "UpdateSecret", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:Description", + "secretsmanager:KmsKeyArn", + "secretsmanager:KmsKeyId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants AWS Resource Access Manager permission to retrieve a resource policy on a SageMaker resource that supports cross-account sharing", - Privilege: "GetResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to move a stage from one secret to another", + Privilege: "UpdateSecretVersionStage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:VersionStage", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a SageMaker Service Catalog Portfolio", - Privilege: "GetSagemakerServicecatalogPortfolioStatus", + AccessLevel: "Permissions management", + Description: "Grants permission to validate a resource policy before attaching policy", + Privilege: "ValidateResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Secret*", + }, + { + ConditionKeys: []string{ + "secretsmanager:SecretId", + "secretsmanager:resource/AllowRotationLambdaArn", + "secretsmanager:ResourceTag/tag-key", + "aws:ResourceTag/${TagKey}", + "secretsmanager:SecretPrimaryRegion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:secretsmanager:${Region}:${Account}:secret:${SecretId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "secretsmanager:ResourceTag/tag-key", + "secretsmanager:resource/AllowRotationLambdaArn", + }, + Resource: "Secret", + }, + }, + ServiceName: "AWS Secrets Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "security-ir", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to get a scaling policy configuration recommendation", - Privilege: "GetScalingConfigurationRecommendation", + Description: "Grants permission to get member account details in batch", + Privilege: "BatchGetMemberAccountDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-recommendations-job*", + ResourceType: "membership*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get search suggestions when provided with a keyword", - Privilege: "GetSearchSuggestions", + AccessLevel: "Write", + Description: "Grants permission to cancel a membership", + Privilege: "CancelMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import hub content", - Privilege: "ImportHubContent", + Description: "Grants permission to close a case", + Privilege: "CloseCase", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sagemaker:AddTags", - }, - ResourceType: "hub*", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "case*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a case", + Privilege: "CreateCase", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", @@ -242192,103 +288449,100 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to invoke an endpoint. After you deploy a model into production using Amazon SageMaker hosting services, your client applications use this API to get inferences from the model hosted at the specified endpoint", - Privilege: "InvokeEndpoint", + AccessLevel: "Write", + Description: "Grants permission to create a case comment", + Privilege: "CreateCaseComment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-component", + ResourceType: "case*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a membership", + Privilege: "CreateMembership", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "sagemaker:TargetModel", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "organizations:ListDelegatedAdministrators", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get inferences from the hosted model at the specified endpoint in an asynchronous manner", - Privilege: "InvokeEndpointAsync", + Description: "Grants permission to get a case", + Privilege: "GetCase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "case*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the inference response as a stream from the specified endpoint", - Privilege: "InvokeEndpointWithResponseStream", + Description: "Grants permission to get a case attachment download URL", + Privilege: "GetCaseAttachmentDownloadUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-component", + ResourceType: "case*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list actions", - Privilege: "ListActions", + AccessLevel: "Write", + Description: "Grants permission to get a case attachment upload URL", + Privilege: "GetCaseAttachmentUploadUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Algorithms", - Privilege: "ListAlgorithms", + AccessLevel: "Read", + Description: "Grants permission to get a membership", + Privilege: "GetMembership", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "membership*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list Aliases that belong to a SageMaker Image or Sagemaker ImageVersion", - Privilege: "ListAliases", + AccessLevel: "Read", + Description: "Grants permission to list case edits", + Privilege: "ListCaseEdits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "image-version*", + ResourceType: "case*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the AppImageConfigs in your account", - Privilege: "ListAppImageConfigs", + Description: "Grants permission to list cases", + Privilege: "ListCases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -242298,21 +288552,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Apps in your account", - Privilege: "ListApps", + AccessLevel: "Read", + Description: "Grants permission to list case comments", + Privilege: "ListComments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list artifacts", - Privilege: "ListArtifacts", + Description: "Grants permission to list memberships", + Privilege: "ListMemberships", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -242322,189 +288576,268 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list associations", - Privilege: "ListAssociations", + AccessLevel: "Read", + Description: "Grants permission to list the tags attached to the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list AutoML jobs", - Privilege: "ListAutoMLJobs", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "membership", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to lists candidates for an AutoML job", - Privilege: "ListCandidatesForAutoMLJob", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "case", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list nodes within a SageMaker HyperPod cluster", - Privilege: "ListClusterNodes", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "case", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "membership", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list SageMaker HyperPod clusters", - Privilege: "ListClusters", + AccessLevel: "Write", + Description: "Grants permission to update a case", + Privilege: "UpdateCase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list code repositories", - Privilege: "ListCodeRepositories", + AccessLevel: "Write", + Description: "Grants permission to update a case comment", + Privilege: "UpdateCaseComment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list compilation jobs", - Privilege: "ListCompilationJobs", + AccessLevel: "Write", + Description: "Grants permission to update a case status", + Privilege: "UpdateCaseStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list contexts", - Privilege: "ListContexts", + AccessLevel: "Write", + Description: "Grants permission to update memberships", + Privilege: "UpdateMembership", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "membership*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list data quality job definitions", - Privilege: "ListDataQualityJobDefinitions", + AccessLevel: "Write", + Description: "Grants permission to update case resolver type", + Privilege: "UpdateResolverType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "case*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list device fleets", - Privilege: "ListDeviceFleets", + Arn: "arn:${Partition}:security-ir:${Region}:${Account}:case/${CaseId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "case", + }, + { + Arn: "arn:${Partition}:security-ir:${Region}:${Account}:membership/${MembershipId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "membership", + }, + }, + ServiceName: "AWS Security Incident Response", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "securityhub:ASFFSyntaxPath/${ASFFSyntaxPath}", + Description: "Filters access by the specified fields and values in the request", + Type: "String", + }, + { + Condition: "securityhub:TargetAccount", + Description: "Filters access by the AwsAccountId field that is specified in the request", + Type: "String", + }, + }, + Prefix: "securityhub", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept Security Hub invitations to become a member account", + Privilege: "AcceptAdministratorInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list devices", - Privilege: "ListDevices", + AccessLevel: "Write", + Description: "Grants permission to accept Security Hub invitations to become a member account", + Privilege: "AcceptInvitation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Domains in your account", - Privilege: "ListDomains", + AccessLevel: "Write", + Description: "Grants permission to delete one or more automation rules in Security Hub", + Privilege: "BatchDeleteAutomationRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "automation-rule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list edge deployment plans", - Privilege: "ListEdgeDeploymentPlans", + AccessLevel: "Write", + Description: "Grants permission to disable standards in Security Hub", + Privilege: "BatchDisableStandards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list edge packaging jobs", - Privilege: "ListEdgePackagingJobs", + AccessLevel: "Write", + Description: "Grants permission to enable standards in Security Hub", + Privilege: "BatchEnableStandards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, - { - AccessLevel: "List", - Description: "Grants permission to list endpoint configurations", - Privilege: "ListEndpointConfigs", + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of details for automation rules from Security Hub based on rule Amazon Resource Names (ARNs)", + Privilege: "BatchGetAutomationRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "automation-rule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list endpoints", - Privilege: "ListEndpoints", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about configuration policies associated with a specific list of member accounts and organizational units of the calling account's organization", + Privilege: "BatchGetConfigurationPolicyAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -242514,134 +288847,155 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list experiments", - Privilege: "ListExperiments", + AccessLevel: "Read", + Description: "Grants permission to get the enablement and compliance status of controls, the findings count for controls, and the overall security score for controls on the Security Hub console", + Privilege: "BatchGetControlEvaluations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list feature groups", - Privilege: "ListFeatureGroups", + AccessLevel: "Read", + Description: "Grants permission to get details about specific security controls identified by ID or ARN", + Privilege: "BatchGetSecurityControls", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "securityhub:DescribeStandardsControls", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return summary information about flow definitions, given the specified parameters", - Privilege: "ListFlowDefinitions", + AccessLevel: "Read", + Description: "Grants permission to get the enablement status of a batch of security controls in standards", + Privilege: "BatchGetStandardsControlAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "securityhub:DescribeStandardsControls", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all versions of hub content", - Privilege: "ListHubContentVersions", + AccessLevel: "Write", + Description: "Grants permission to import findings into Security Hub from an integrated product", + Privilege: "BatchImportFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", + ResourceType: "product*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "securityhub:TargetAccount", + }, DependentActions: []string{}, - ResourceType: "hub-content*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list newest versions of hub content", - Privilege: "ListHubContents", + AccessLevel: "Write", + Description: "Grants permission to update one or more automation rules from Security Hub based on rule Amazon Resource Names (ARNs) and input parameters", + Privilege: "BatchUpdateAutomationRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", + ResourceType: "automation-rule*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list hubs", - Privilege: "ListHubs", + AccessLevel: "Write", + Description: "Grants permission to update customer-controlled fields for a selected set of Security Hub findings", + Privilege: "BatchUpdateFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hub", + }, + { + ConditionKeys: []string{ + "securityhub:ASFFSyntaxPath/${ASFFSyntaxPath}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return summary information about human loops, given the specified parameters", - Privilege: "ListHumanLoops", + AccessLevel: "Write", + Description: "Grants permission to update the enablement status of a batch of security controls in standards", + Privilege: "BatchUpdateStandardsControlAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "securityhub:UpdateStandardsControl", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return summary information about human review workflow user interfaces, given the specified parameters", - Privilege: "ListHumanTaskUis", + AccessLevel: "Write", + Description: "Grants permission to create custom actions in Security Hub", + Privilege: "CreateActionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list hyper parameter tuning jobs", - Privilege: "ListHyperParameterTuningJobs", + AccessLevel: "Write", + Description: "Grants permission to create an automation rule based on input parameters", + Privilege: "CreateAutomationRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list ImageVersions that belong to a SageMaker Image", - Privilege: "ListImageVersions", + AccessLevel: "Write", + Description: "Grants permission to create a configuration policy to manage organization member settings in Security Hub", + Privilege: "CreateConfigurationPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "image*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list SageMaker Images in your account", - Privilege: "ListImages", + AccessLevel: "Write", + Description: "Grants permission to create a finding aggregator, which contains the cross-Region finding aggregation configuration", + Privilege: "CreateFindingAggregator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -242651,333 +289005,347 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list inference components", - Privilege: "ListInferenceComponents", + AccessLevel: "Write", + Description: "Grants permission to create insights in Security Hub. Insights are collections of related findings", + Privilege: "CreateInsight", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list inference experiments", - Privilege: "ListInferenceExperiments", + AccessLevel: "Write", + Description: "Grants permission to create member accounts in Security Hub", + Privilege: "CreateMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list inference recommendations job steps", - Privilege: "ListInferenceRecommendationsJobSteps", + AccessLevel: "Write", + Description: "Grants permission to decline Security Hub invitations to become a member account", + Privilege: "DeclineInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list inference recommendations jobs", - Privilege: "ListInferenceRecommendationsJobs", + AccessLevel: "Write", + Description: "Grants permission to delete custom actions in Security Hub", + Privilege: "DeleteActionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list labeling jobs", - Privilege: "ListLabelingJobs", + AccessLevel: "Write", + Description: "Grants permission to delete an existing configuration policy", + Privilege: "DeleteConfigurationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list labeling jobs for workteam", - Privilege: "ListLabelingJobsForWorkteam", + AccessLevel: "Write", + Description: "Grants permission to delete a finding aggregator, which disables finding aggregation across Regions", + Privilege: "DeleteFindingAggregator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam*", + ResourceType: "finding-aggregator*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list lineage groups", - Privilege: "ListLineageGroups", + AccessLevel: "Write", + Description: "Grants permission to delete insights from Security Hub", + Privilege: "DeleteInsight", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list MLflow tracking servers", - Privilege: "ListMlflowTrackingServers", + AccessLevel: "Write", + Description: "Grants permission to delete Security Hub invitations to become a member account", + Privilege: "DeleteInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list model bias job definitions", - Privilege: "ListModelBiasJobDefinitions", + AccessLevel: "Write", + Description: "Grants permission to delete Security Hub member accounts", + Privilege: "DeleteMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list export jobs for a model card", - Privilege: "ListModelCardExportJobs", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of custom actions using the API", + Privilege: "DescribeActionTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card*", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list versions of a model card", - Privilege: "ListModelCardVersions", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the hub resource in your account", + Privilege: "DescribeHub", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-card*", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list model cards", - Privilege: "ListModelCards", + AccessLevel: "Read", + Description: "Grants permission to describe the organization configuration for Security Hub", + Privilege: "DescribeOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list model explainability job definitions", - Privilege: "ListModelExplainabilityJobDefinitions", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the available Security Hub product integrations", + Privilege: "DescribeProducts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list model metadata for inference recommendations jobs", - Privilege: "ListModelMetadata", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about Security Hub standards", + Privilege: "DescribeStandards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list ModelPackageGroups", - Privilege: "ListModelPackageGroups", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about Security Hub standards controls", + Privilege: "DescribeStandardsControls", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list ModelPackages", - Privilege: "ListModelPackages", + AccessLevel: "Write", + Description: "Grants permission to disable the findings importing for a Security Hub integrated product", + Privilege: "DisableImportFindingsForProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list model quality job definitions", - Privilege: "ListModelQualityJobDefinitions", + AccessLevel: "Write", + Description: "Grants permission to remove the Security Hub administrator account for your organization", + Privilege: "DisableOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the models created with the CreateModel API", - Privilege: "ListModels", + AccessLevel: "Write", + Description: "Grants permission to disable Security Hub", + Privilege: "DisableSecurityHub", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the history of a monitoring alert", - Privilege: "ListMonitoringAlertHistory", + AccessLevel: "Write", + Description: "Grants permission to a Security Hub member account to disassociate from the associated administrator account", + Privilege: "DisassociateFromAdministratorAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list monitoring alerts", - Privilege: "ListMonitoringAlerts", + AccessLevel: "Write", + Description: "Grants permission to a Security Hub member account to disassociate from the associated master account", + Privilege: "DisassociateFromMasterAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list monitoring executions", - Privilege: "ListMonitoringExecutions", + AccessLevel: "Write", + Description: "Grants permission to disassociate Security Hub member accounts from the associated administrator account", + Privilege: "DisassociateMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list monitoring schedules", - Privilege: "ListMonitoringSchedules", + AccessLevel: "Write", + Description: "Grants permission to enable the findings importing for a Security Hub integrated product", + Privilege: "EnableImportFindingsForProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the notebook instance lifecycle configurations that can be deployed using Amazon SageMaker", - Privilege: "ListNotebookInstanceLifecycleConfigs", + AccessLevel: "Write", + Description: "Grants permission to designate a Security Hub administrator account for your organization", + Privilege: "EnableOrganizationAdminAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", + "organizations:RegisterDelegatedAdministrator", + }, + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon SageMaker notebook instances in the requester's account in an AWS Region", - Privilege: "ListNotebookInstances", + AccessLevel: "Write", + Description: "Grants permission to enable Security Hub", + Privilege: "EnableSecurityHub", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "hub", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list steps for a pipeline execution", - Privilege: "ListPipelineExecutionSteps", + AccessLevel: "Read", + Description: "Grants permission to retrieve insight results by providing a set of filters instead of an insight ARN", + Privilege: "GetAdhocInsightResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list executions for a pipeline", - Privilege: "ListPipelineExecutions", + AccessLevel: "Read", + Description: "Grants permission to retrieve details about the Security Hub administrator account", + Privilege: "GetAdministratorAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list parameters for a pipeline execution", - Privilege: "ListPipelineParametersForExecution", + AccessLevel: "Read", + Description: "Grants permission to get a complete overview of one configuration policy created by the calling account", + Privilege: "GetConfigurationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "configuration-policy*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list pipelines", - Privilege: "ListPipelines", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a configuration policy associated with a member account or organizational unit of the calling account's organization", + Privilege: "GetConfigurationPolicyAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -242987,434 +289355,203 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list processing jobs", - Privilege: "ListProcessingJobs", + AccessLevel: "Read", + Description: "Grants permission to retrieve a security score and counts of finding and control statuses for a security standard", + Privilege: "GetControlFindingSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list Projects", - Privilege: "ListProjects", + Description: "Grants permission to retrieve a list of the standards that are enabled in Security Hub", + Privilege: "GetEnabledStandards", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list resource catalogs", - Privilege: "ListResourceCatalogs", + AccessLevel: "Read", + Description: "Grants permission to retrieve details for a finding aggregator, which configures finding aggregation across Regions", + Privilege: "GetFindingAggregator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "finding-aggregator*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list shared model events", - Privilege: "ListSharedModelEvents", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of finding history from Security Hub", + Privilege: "GetFindingHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list shared model versions", - Privilege: "ListSharedModelVersions", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of findings from Security Hub", + Privilege: "GetFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shared-model*", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list shared models", - Privilege: "ListSharedModels", + AccessLevel: "Read", + Description: "Grants permission to retrieve the end date for an account's free trial of Security Hub", + Privilege: "GetFreeTrialEndDate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Spaces in your account", - Privilege: "ListSpaces", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about Security Hub usage during the free trial period", + Privilege: "GetFreeTrialUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list stage devices", - Privilege: "ListStageDevices", + AccessLevel: "Read", + Description: "Grants permission to retrieve an insight finding trend from Security Hub in order to generate a graph", + Privilege: "GetInsightFindingTrend", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Studio Lifecycle Configurations that can be deployed using Amazon SageMaker", - Privilege: "ListStudioLifecycleConfigs", + AccessLevel: "Read", + Description: "Grants permission to retrieve insight results from Security Hub", + Privilege: "GetInsightResults", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list subscribed workteams", - Privilege: "ListSubscribedWorkteams", + Description: "Grants permission to retrieve Security Hub insights", + Privilege: "GetInsights", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the tag set associated with the specified resource", - Privilege: "ListTags", + AccessLevel: "Read", + Description: "Grants permission to retrieve the count of Security Hub membership invitations sent to the account", + Privilege: "GetInvitationsCount", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "action", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "algorithm", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-image-config", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "artifact", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "automl-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "cluster", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "code-repository", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "compilation-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "context", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-quality-job-definition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "device-fleet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "domain", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "edge-deployment-plan", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "edge-packaging-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint-config", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment-trial", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "experiment-trial-component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "feature-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "flow-definition", - }, { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "hub", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve details about the Security Hub master account", + Privilege: "GetMasterAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub-content", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "human-task-ui", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "image", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-recommendations-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "labeling-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlflow-tracking-server", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-bias-job-definition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-card", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-explainability-job-definition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-package", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-package-group", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-quality-job-definition", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "monitoring-schedule", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook-instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pipeline", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "processing-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "project", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "space", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "studio-lifecycle-config", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "training-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "transform-job", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user-profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workteam", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list training jobs", - Privilege: "ListTrainingJobs", + AccessLevel: "Read", + Description: "Grants permission to retrieve the details of Security Hub member accounts", + Privilege: "GetMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list training jobs for a hyper parameter tuning job", - Privilege: "ListTrainingJobsForHyperParameterTuningJob", + AccessLevel: "Read", + Description: "Grants permission to get the definition details of a specific security control identified by ID", + Privilege: "GetSecurityControlDefinition", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job*", + ConditionKeys: []string{}, + DependentActions: []string{ + "securityhub:DescribeStandardsControls", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list transform jobs", - Privilege: "ListTransformJobs", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about Security Hub usage by accounts", + Privilege: "GetUsage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list trial components", - Privilege: "ListTrialComponents", + AccessLevel: "Write", + Description: "Grants permission to invite other AWS accounts to become Security Hub member accounts", + Privilege: "InviteMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list trials", - Privilege: "ListTrials", + Description: "Grants permission to retrieve a list of automation rules and their metadata for the calling account from Security Hub", + Privilege: "ListAutomationRules", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -243425,8 +289562,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the UserProfiles in your account", - Privilege: "ListUserProfiles", + Description: "Grants permission to list the summaries of all configuration policies created by the calling account", + Privilege: "ListConfigurationPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -243437,8 +289574,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list workforces", - Privilege: "ListWorkforces", + Description: "Grants permission to retrieve information about all configuration policies associationed with all member accounts and organizational units of the calling account's organization", + Privilege: "ListConfigurationPolicyAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -243448,821 +289585,1060 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list workteams", - Privilege: "ListWorkteams", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of controls for a standard, including the control IDs, statuses and finding counts", + Privilege: "ListControlEvaluationSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a lineage group policy", - Privilege: "PutLineageGroupPolicy", + AccessLevel: "List", + Description: "Grants permission to retrieve the Security Hub integrated products that are currently enabled", + Privilege: "ListEnabledProductsForImport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a ModelPackageGroup policy", - Privilege: "PutModelPackageGroupPolicy", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of finding aggregators, which contain the cross-Region finding aggregation configuration", + Privilege: "ListFindingAggregators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package-group*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a record to a feature group", - Privilege: "PutRecord", + AccessLevel: "List", + Description: "Grants permission to retrieve the Security Hub invitations sent to the account", + Privilege: "ListInvitations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "hub", }, }, }, { - AccessLevel: "Write", - Description: "Grants AWS Resource Access Manager permission to create a resource policy on a SageMaker resource that supports cross-account sharing", - Privilege: "PutResourcePolicy", + AccessLevel: "List", + Description: "Grants permission to retrieve details about Security Hub member accounts associated with the administrator account", + Privilege: "ListMembers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { AccessLevel: "List", - Description: "Grants permission to explore the lineage graph", - Privilege: "QueryLineage", + Description: "Grants permission to list the Security Hub administrator accounts for your organization", + Privilege: "ListOrganizationAdminAccounts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "hub", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a set of devices", - Privilege: "RegisterDevices", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of security control definitions, which contain details for security controls in the current region", + Privilege: "ListSecurityControlDefinitions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to render a UI template used for a human annotation task", - Privilege: "RenderUiTemplate", + AccessLevel: "List", + Description: "Grants permission to list the enablement status of a security control in standards", + Privilege: "ListStandardsControlAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "securityhub:DescribeStandardsControls", }, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to retry a pipeline execution", - Privilege: "RetryPipelineExecution", + AccessLevel: "Read", + Description: "Grants permission to list of tags associated with a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "automation-rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to search for SageMaker objects", - Privilege: "Search", + Description: "Grants permission to use a custom action to send Security Hub findings to Amazon EventBridge", + Privilege: "SendFindingEvents", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "sagemaker:SearchVisibilityCondition/${FilterKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "hub", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to publish heartbeat data from devices. After you deploy a model onto edge devices this api is used to report device status", - Privilege: "SendHeartbeat", + AccessLevel: "Read", + Description: "Grants permission to use a custom action to send Security Hub insights to Amazon EventBridge", + Privilege: "SendInsightEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to fail a pending callback step", - Privilege: "SendPipelineExecutionStepFailure", + Description: "Grants permission to associate a configuration policy with a member account or organizational unit in the calling account's organization", + Privilege: "StartConfigurationPolicyAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "configuration-policy", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to succeed a pending callback step", - Privilege: "SendPipelineExecutionStepSuccess", + Description: "Grants permission to remove a configuration policy association from a member account or organizational unit in the calling account's organization", + Privilege: "StartConfigurationPolicyDisassociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "configuration-policy", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a shared model event", - Privilege: "SendSharedModelEvent", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a Security Hub resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shared-model-event*", + ResourceType: "automation-rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an edge deployment stage", - Privilege: "StartEdgeDeploymentStage", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a Security Hub resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-deployment-plan*", + ResourceType: "automation-rule", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-policy", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a human loop", - Privilege: "StartHumanLoop", + Description: "Grants permission to update custom actions in Security Hub", + Privilege: "UpdateActionTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "flow-definition*", + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an inference experiment", - Privilege: "StartInferenceExperiment", + Description: "Grants permission to update an existing configuration policy", + Privilege: "UpdateConfigurationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-experiment*", + ResourceType: "configuration-policy*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an MLfLow tracking server", - Privilege: "StartMlflowTrackingServer", + Description: "Grants permission to update a finding aggregator, which contains the cross-Region finding aggregation configuration", + Privilege: "UpdateFindingAggregator", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "finding-aggregator*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a monitoring schedule", - Privilege: "StartMonitoringSchedule", + Description: "Grants permission to update Security Hub findings", + Privilege: "UpdateFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule*", + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a notebook instance. This launches an EC2 instance with the latest version of the libraries and attaches your EBS volume", - Privilege: "StartNotebookInstance", + Description: "Grants permission to update insights in Security Hub", + Privilege: "UpdateInsight", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance*", + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a pipeline execution", - Privilege: "StartPipelineExecution", + Description: "Grants permission to update the organization configuration for Security Hub", + Privilege: "UpdateOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "pipeline*", + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running AutoML job", - Privilege: "StopAutoMLJob", + Description: "Grants permission to update properties of a specific security control identified by ID or ARN", + Privilege: "UpdateSecurityControl", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "automl-job*", + ConditionKeys: []string{}, + DependentActions: []string{ + "securityhub:UpdateStandardsControl", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a compilation job", - Privilege: "StopCompilationJob", + Description: "Grants permission to update Security Hub configuration", + Privilege: "UpdateSecurityHubConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "compilation-job*", + ResourceType: "hub", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an edge deployment stage", - Privilege: "StopEdgeDeploymentStage", + Description: "Grants permission to update Security Hub standards controls", + Privilege: "UpdateStandardsControl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "edge-deployment-plan*", + ResourceType: "hub", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:securityhub:${Region}:${Account}:hub/default", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "hub", + }, + { + Arn: "arn:${Partition}:securityhub:${Region}:${Account}:product/${Company}/${ProductId}", + ConditionKeys: []string{}, + Resource: "product", + }, + { + Arn: "arn:${Partition}:securityhub:${Region}:${Account}:finding-aggregator/${FindingAggregatorId}", + ConditionKeys: []string{}, + Resource: "finding-aggregator", + }, + { + Arn: "arn:${Partition}:securityhub:${Region}:${Account}:automation-rule/${AutomationRuleId}", + ConditionKeys: []string{}, + Resource: "automation-rule", + }, + { + Arn: "arn:${Partition}:securityhub:${Region}:${Account}:configuration-policy/${ConfigurationPolicyId}", + ConditionKeys: []string{}, + Resource: "configuration-policy", + }, + }, + ServiceName: "AWS Security Hub", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "securitylake", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to stop an edge packaging job", - Privilege: "StopEdgePackagingJob", + Description: "Grants permission to enable any source type in any region for accounts that are either part of a trusted organization or standalone account", + Privilege: "CreateAwsLogSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "edge-packaging-job*", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:CreateDatabase", + "glue:CreateTable", + "glue:GetDatabase", + "glue:GetTable", + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:DescribeKey", + }, + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a specified human loop", - Privilege: "StopHumanLoop", + Description: "Grants permission to add a custom source", + Privilege: "CreateCustomLogSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "human-loop*", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:CreateCrawler", + "glue:CreateDatabase", + "glue:CreateTable", + "glue:StartCrawlerSchedule", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:PassRole", + "iam:PutRolePolicy", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:GenerateDataKey", + "lakeformation:GrantPermissions", + "lakeformation:RegisterResource", + "s3:ListBucket", + "s3:PutObject", + }, + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a running hyper parameter tuning job create via the CreateHyperParameterTuningJob", - Privilege: "StopHyperParameterTuningJob", + Description: "Grants permission to create a new security data lake", + Privilege: "CreateDataLake", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "events:PutRule", + "events:PutTargets", + "iam:CreateServiceLinkedRole", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:PassRole", + "iam:PutRolePolicy", + "kms:CreateGrant", + "kms:DescribeKey", + "lakeformation:GetDataLakeSettings", + "lakeformation:PutDataLakeSettings", + "lambda:AddPermission", + "lambda:CreateEventSourceMapping", + "lambda:CreateFunction", + "organizations:DescribeOrganization", + "organizations:ListAccounts", + "organizations:ListDelegatedServicesForAccount", + "s3:CreateBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:ListBucket", + "s3:PutBucketPolicy", + "s3:PutBucketPublicAccessBlock", + "s3:PutBucketVersioning", + "sqs:CreateQueue", + "sqs:GetQueueAttributes", + "sqs:SetQueueAttributes", + }, + ResourceType: "data-lake*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "hyper-parameter-tuning-job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an inference experiment", - Privilege: "StopInferenceExperiment", + Description: "Grants permission to get instant notifications about exceptions. Subscribes to the SNS topics for exception notifications", + Privilege: "CreateDataLakeExceptionSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-experiment*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an inference recommendations job", - Privilege: "StopInferenceRecommendationsJob", + Description: "Grants permission to automatically enable Amazon Security Lake for new member accounts in your organization", + Privilege: "CreateDataLakeOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "inference-recommendations-job*", + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a labeling job. Any labels already generated will be exported before stopping", - Privilege: "StopLabelingJob", + Description: "Grants permission to create a subscriber", + Privilege: "CreateSubscriber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "labeling-job*", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "iam:CreateRole", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:PutRolePolicy", + "lakeformation:GrantPermissions", + "lakeformation:ListPermissions", + "lakeformation:RegisterResource", + "lakeformation:RevokePermissions", + "ram:GetResourceShareAssociations", + "ram:GetResourceShares", + "ram:UpdateResourceShare", + "s3:PutObject", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an MLflow tracking server", - Privilege: "StopMlflowTrackingServer", + Description: "Grants permission to create a webhook invocation to notify a client when there is new data in the data lake", + Privilege: "CreateSubscriberNotification", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ConditionKeys: []string{}, + DependentActions: []string{ + "events:CreateApiDestination", + "events:CreateConnection", + "events:DescribeRule", + "events:ListApiDestinations", + "events:ListConnections", + "events:PutRule", + "events:PutTargets", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:PassRole", + "s3:GetBucketNotification", + "s3:PutBucketNotification", + "sqs:CreateQueue", + "sqs:DeleteQueue", + "sqs:GetQueueAttributes", + "sqs:GetQueueUrl", + "sqs:SetQueueAttributes", + }, + ResourceType: "subscriber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a monitoring schedule", - Privilege: "StopMonitoringSchedule", + Description: "Grants permission to disable any source type in any region for accounts that are part of a trusted organization or standalone accounts", + Privilege: "DeleteAwsLogSource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule*", + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a notebook instance. This terminates the EC2 instance. Before terminating the instance, Amazon SageMaker disconnects the EBS volume from it. Amazon SageMaker preserves the EBS volume", - Privilege: "StopNotebookInstance", + Description: "Grants permission to remove a custom source", + Privilege: "DeleteCustomLogSource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook-instance*", + ConditionKeys: []string{}, + DependentActions: []string{ + "glue:StopCrawlerSchedule", + }, + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a pipeline execution", - Privilege: "StopPipelineExecution", + Description: "Grants permission to delete security data lake", + Privilege: "DeleteDataLake", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + "organizations:ListDelegatedAdministrators", + "organizations:ListDelegatedServicesForAccount", + }, + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a processing job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds", - Privilege: "StopProcessingJob", + Description: "Grants permission to unsubscribe from SNS topics for exception notifications. Removes exception notifications for the SNS topic", + Privilege: "DeleteDataLakeExceptionSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "processing-job*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a training job. To stop a job, Amazon SageMaker sends the algorithm the SIGTERM signal, which delays job termination for 120 seconds", - Privilege: "StopTrainingJob", + Description: "Grants permission to remove the automatic enablement of Amazon Security Lake access for new organization accounts", + Privilege: "DeleteDataLakeOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job*", + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a transform job. When Amazon SageMaker receives a StopTransformJob request, the status of the job changes to Stopping. After Amazon SageMaker stops the job, the status is set to Stopped", - Privilege: "StopTransformJob", + Description: "Grants permission to delete the specified subscriber", + Privilege: "DeleteSubscriber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "transform-job*", + ConditionKeys: []string{}, + DependentActions: []string{ + "events:DeleteApiDestination", + "events:DeleteConnection", + "events:DeleteRule", + "events:DescribeRule", + "events:ListApiDestinations", + "events:ListTargetsByRule", + "events:RemoveTargets", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:ListRolePolicies", + "lakeformation:ListPermissions", + "lakeformation:RevokePermissions", + "sqs:DeleteQueue", + "sqs:GetQueueUrl", + }, + ResourceType: "subscriber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an action", - Privilege: "UpdateAction", + Description: "Grants permission to remove a webhook invocation to notify a client when there is new data in the data lake", + Privilege: "DeleteSubscriberNotification", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "action*", + ConditionKeys: []string{}, + DependentActions: []string{ + "events:DeleteApiDestination", + "events:DeleteConnection", + "events:DeleteRule", + "events:DescribeRule", + "events:ListApiDestinations", + "events:ListTargetsByRule", + "events:RemoveTargets", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:ListRolePolicies", + "lakeformation:RevokePermissions", + "sqs:DeleteQueue", + "sqs:GetQueueUrl", + }, + ResourceType: "subscriber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an AppImageConfig", - Privilege: "UpdateAppImageConfig", + Description: "Grants permission to remove the Delegated Administrator account and disable Amazon Security Lake as a service for this organization", + Privilege: "DeregisterDataLakeDelegatedAdministrator", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "app-image-config*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DeregisterDelegatedAdministrator", + "organizations:DescribeOrganization", + "organizations:ListDelegatedServicesForAccount", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an artifact", - Privilege: "UpdateArtifact", + AccessLevel: "Read", + Description: "Grants permission to query the protocol and endpoint that were provided when subscribing to SNS topics for exception notifications", + Privilege: "GetDataLakeExceptionSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "artifact*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a SageMaker HyperPod cluster", - Privilege: "UpdateCluster", + AccessLevel: "Read", + Description: "Grants permission to get an organization's configuration setting for automatically enabling Amazon Security Lake access for new organization accounts", + Privilege: "GetDataLakeOrganizationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "organizations:DescribeOrganization", }, - ResourceType: "cluster*", + ResourceType: "data-lake*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update platform software for a SageMaker HyperPod cluster", - Privilege: "UpdateClusterSoftware", + AccessLevel: "Read", + Description: "Grants permission to get a static snapshot of the security data lake in the current region. The snapshot includes enabled accounts and log sources", + Privilege: "GetDataLakeSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "cluster*", + ResourceType: "data-lake*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a CodeRepository", - Privilege: "UpdateCodeRepository", + AccessLevel: "Read", + Description: "Grants permission to get information about subscriber that is already created", + Privilege: "GetSubscriber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "code-repository*", + ResourceType: "subscriber*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a context", - Privilege: "UpdateContext", + AccessLevel: "List", + Description: "Grants permission to get the list of all non-retryable failures", + Privilege: "ListDataLakeExceptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "context*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a device fleet", - Privilege: "UpdateDeviceFleet", + AccessLevel: "List", + Description: "Grants permission to list information about the security data lakes", + Privilege: "ListDataLakes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device-fleet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a set of devices", - Privilege: "UpdateDevices", + AccessLevel: "List", + Description: "Grants permission to view the enabled accounts. You can view the enabled sources in the enabled regions", + Privilege: "ListLogSources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "device*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Domain", - Privilege: "UpdateDomain", + AccessLevel: "List", + Description: "Grants permission to list all subscribers", + Privilege: "ListSubscribers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", - }, - { - ConditionKeys: []string{ - "sagemaker:VpcSecurityGroupIds", - "sagemaker:InstanceTypes", - "sagemaker:DomainSharingOutputKmsKey", - "sagemaker:ImageArns", - "sagemaker:ImageVersionArns", - "sagemaker:AppNetworkAccessType", - "sagemaker:VpcSubnets", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an endpoint to use the endpoint configuration specified in the request", - Privilege: "UpdateEndpoint", + AccessLevel: "List", + Description: "Grants permission to list all tags for the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint*", + ResourceType: "data-lake", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "endpoint-config*", + ResourceType: "subscriber", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update variant weight, capacity, or both of one or more variants associated with an endpoint", - Privilege: "UpdateEndpointWeightsAndCapacities", + Description: "Grants permission to designate an account as the Amazon Security Lake administrator account for the organization", + Privilege: "RegisterDataLakeDelegatedAdministrator", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "endpoint*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", + "organizations:ListDelegatedAdministrators", + "organizations:ListDelegatedServicesForAccount", + "organizations:RegisterDelegatedAdministrator", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an experiment", - Privilege: "UpdateExperiment", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment*", + ResourceType: "data-lake", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a feature group", - Privilege: "UpdateFeatureGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "subscriber", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a feature metadata", - Privilege: "UpdateFeatureMetadata", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "feature-group*", + ResourceType: "data-lake", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update hubs", - Privilege: "UpdateHub", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub*", + ResourceType: "subscriber", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the properties of a SageMaker Image", - Privilege: "UpdateImage", + Description: "Grants permission to update a security data lake", + Privilege: "UpdateDataLake", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "iam:PassRole", + "events:PutRule", + "events:PutTargets", + "iam:CreateServiceLinkedRole", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:PutRolePolicy", + "kms:CreateGrant", + "kms:DescribeKey", + "lakeformation:GetDataLakeSettings", + "lakeformation:PutDataLakeSettings", + "lambda:AddPermission", + "lambda:CreateEventSourceMapping", + "lambda:CreateFunction", + "organizations:DescribeOrganization", + "organizations:ListDelegatedServicesForAccount", + "s3:CreateBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "s3:ListBucket", + "s3:PutBucketPolicy", + "s3:PutBucketPublicAccessBlock", + "s3:PutBucketVersioning", + "sqs:CreateQueue", + "sqs:GetQueueAttributes", + "sqs:SetQueueAttributes", }, - ResourceType: "image*", + ResourceType: "data-lake*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the properties of a SageMaker ImageVersion", - Privilege: "UpdateImageVersion", + Description: "Grants permission to update subscriptions to the SNS topics for exception notifications", + Privilege: "UpdateDataLakeExceptionSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "image-version*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an inference component to use the specification and configurations specified in the request", - Privilege: "UpdateInferenceComponent", + Description: "Grants permission to update subscriber", + Privilege: "UpdateSubscriber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-component*", + ConditionKeys: []string{}, + DependentActions: []string{ + "events:CreateApiDestination", + "events:CreateConnection", + "events:DescribeRule", + "events:ListApiDestinations", + "events:ListConnections", + "events:PutRule", + "events:PutTargets", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:PutRolePolicy", + }, + ResourceType: "subscriber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the runtime config of a given inference component", - Privilege: "UpdateInferenceComponentRuntimeConfig", + Description: "Grants permission to update a webhook invocation to notify a client when there is new data in the data lake", + Privilege: "UpdateSubscriberNotification", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-component*", + ConditionKeys: []string{}, + DependentActions: []string{ + "events:CreateApiDestination", + "events:CreateConnection", + "events:DescribeRule", + "events:ListApiDestinations", + "events:ListConnections", + "events:PutRule", + "events:PutTargets", + "iam:CreateServiceLinkedRole", + "iam:DeleteRolePolicy", + "iam:GetRole", + "iam:PassRole", + "iam:PutRolePolicy", + "s3:CreateBucket", + "s3:GetBucketNotification", + "s3:ListBucket", + "s3:PutBucketNotification", + "s3:PutBucketPolicy", + "s3:PutBucketPublicAccessBlock", + "s3:PutBucketVersioning", + "s3:PutLifecycleConfiguration", + "sqs:CreateQueue", + "sqs:DeleteQueue", + "sqs:GetQueueAttributes", + "sqs:GetQueueUrl", + "sqs:SetQueueAttributes", + }, + ResourceType: "subscriber*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update an inference experiment", - Privilege: "UpdateInferenceExperiment", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "inference-experiment*", - }, + Arn: "arn:${Partition}:securitylake:${Region}:${Account}:data-lake/default", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, + Resource: "data-lake", }, { - AccessLevel: "Write", - Description: "Grants permission to update an MLflow tracking server", - Privilege: "UpdateMlflowTrackingServer", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", - }, + Arn: "arn:${Partition}:securitylake:${Region}:${Account}:subscriber/${SubscriberId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, + Resource: "subscriber", }, + }, + ServiceName: "Amazon Security Lake", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Write", - Description: "Grants permission to update a model card", - Privilege: "UpdateModelCard", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "model-card*", - }, - }, + Condition: "serverlessrepo:applicationType", + Description: "Filters access by application type", + Type: "String", }, + }, + Prefix: "serverlessrepo", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update a ModelPackage", - Privilege: "UpdateModelPackage", + Description: "Grants permission to create an application, optionally including an AWS SAM file to create the first application version in the same call", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "model-package*", - }, - { - ConditionKeys: []string{ - "sagemaker:ModelApprovalStatus", - "sagemaker:CustomerMetadataProperties/${MetadataKey}", - "sagemaker:CustomerMetadataPropertiesToRemove", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a monitoring alert", - Privilege: "UpdateMonitoringAlert", + Description: "Grants permission to create an application version", + Privilege: "CreateApplicationVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "monitoring-schedule*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "monitoring-schedule-alert*", + ResourceType: "applications*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a monitoring schedule", - Privilege: "UpdateMonitoringSchedule", + Description: "Grants permission to create an AWS CloudFormation ChangeSet for the given application", + Privilege: "CreateCloudFormationChangeSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "monitoring-schedule*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "sagemaker:InstanceTypes", - "sagemaker:MaxRuntimeInSeconds", - "sagemaker:NetworkIsolation", - "sagemaker:OutputKmsKey", - "sagemaker:VolumeKmsKey", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:VpcSubnets", - "sagemaker:InterContainerTrafficEncryption", + "serverlessrepo:applicationType", }, DependentActions: []string{}, ResourceType: "", @@ -244271,20 +290647,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a notebook instance. Notebook instance updates include upgrading or downgrading the EC2 instance used for your notebook instance to accommodate changes in your workload requirements", - Privilege: "UpdateNotebookInstance", + Description: "Grants permission to create an AWS CloudFormation template", + Privilege: "CreateCloudFormationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance*", + ResourceType: "applications*", }, { ConditionKeys: []string{ - "sagemaker:AcceleratorTypes", - "sagemaker:InstanceTypes", - "sagemaker:MinimumInstanceMetadataServiceVersion", - "sagemaker:RootAccess", + "serverlessrepo:applicationType", }, DependentActions: []string{}, ResourceType: "", @@ -244293,91 +290666,72 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to updates a notebook instance lifecycle configuration created with the CreateNotebookInstanceLifecycleConfig API", - Privilege: "UpdateNotebookInstanceLifecycleConfig", + Description: "Grants permission to delete the specified application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook-instance-lifecycle-config*", + ResourceType: "applications*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a pipeline", - Privilege: "UpdatePipeline", + AccessLevel: "Read", + Description: "Grants permission to get the specified application", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "pipeline*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "applications*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a pipeline execution", - Privilege: "UpdatePipelineExecution", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "serverlessrepo:applicationType", + }, DependentActions: []string{}, - ResourceType: "pipeline-execution*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Project", - Privilege: "UpdateProject", + AccessLevel: "Read", + Description: "Grants permission to get the policy for the specified application", + Privilege: "GetApplicationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "project*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "applications*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a shared model", - Privilege: "UpdateSharedModel", + AccessLevel: "Read", + Description: "Grants permission to get the specified AWS CloudFormation template", + Privilege: "GetCloudFormationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "shared-model*", + ResourceType: "applications*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a Space", - Privilege: "UpdateSpace", + AccessLevel: "List", + Description: "Grants permission to retrieve the list of applications nested in the containing application", + Privilege: "ListApplicationDependencies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "space*", + ResourceType: "applications*", }, { ConditionKeys: []string{ - "sagemaker:InstanceTypes", - "sagemaker:ImageArns", - "sagemaker:ImageVersionArns", - "sagemaker:OwnerUserProfileArn", - "sagemaker:SpaceSharingType", + "serverlessrepo:applicationType", }, DependentActions: []string{}, ResourceType: "", @@ -244385,20 +290739,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a training job", - Privilege: "UpdateTrainingJob", + AccessLevel: "List", + Description: "Grants permission to list versions for the specified application owned by the requester", + Privilege: "ListApplicationVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "training-job*", + ResourceType: "applications*", }, { ConditionKeys: []string{ - "sagemaker:InstanceTypes", - "sagemaker:KeepAlivePeriod", - "sagemaker:EnableRemoteDebug", + "serverlessrepo:applicationType", }, DependentActions: []string{}, ResourceType: "", @@ -244406,47 +290758,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a trial", - Privilege: "UpdateTrial", + AccessLevel: "List", + Description: "Grants permission to list applications owned by the requester", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a trial component", - Privilege: "UpdateTrialComponent", + Description: "Grants permission to put the policy for the specified application", + Privilege: "PutApplicationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "experiment-trial-component*", + ResourceType: "applications*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a UserProfile", - Privilege: "UpdateUserProfile", + AccessLevel: "Read", + Description: "Grants permission to get all applications authorized for this user", + Privilege: "SearchApplications", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "user-profile*", - }, { ConditionKeys: []string{ - "sagemaker:InstanceTypes", - "sagemaker:VpcSecurityGroupIds", - "sagemaker:InstanceTypes", - "sagemaker:DomainSharingOutputKmsKey", - "sagemaker:ImageArns", - "sagemaker:ImageVersionArns", + "serverlessrepo:applicationType", }, DependentActions: []string{}, ResourceType: "", @@ -244455,539 +290797,427 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a workforce", - Privilege: "UpdateWorkforce", + Description: "Grants permission to unshare the specified application", + Privilege: "UnshareApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workforce*", + ResourceType: "applications*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a workteam", - Privilege: "UpdateWorkteam", + Description: "Grants permission to update meta-data of the application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workteam*", + ResourceType: "applications*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:device-fleet/${DeviceFleetName}/device/${DeviceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "device", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:device-fleet/${DeviceFleetName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "device-fleet", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:edge-packaging-job/${EdgePackagingJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "edge-packaging-job", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:edge-deployment/${EdgeDeploymentPlanName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "edge-deployment-plan", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:human-loop/${HumanLoopName}", - ConditionKeys: []string{}, - Resource: "human-loop", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:flow-definition/${FlowDefinitionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "flow-definition", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:human-task-ui/${HumanTaskUiName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "human-task-ui", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:hub/${HubName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "hub", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:hub-content/${HubName}/${HubContentType}/${HubContentName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "hub-content", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:inference-recommendations-job/${InferenceRecommendationsJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "inference-recommendations-job", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:inference-experiment/${InferenceExperimentName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "inference-experiment", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:labeling-job/${LabelingJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "labeling-job", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:workteam/${WorkteamName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "workteam", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:workforce/${WorkforceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "workforce", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:domain/${DomainId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "domain", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:user-profile/${DomainId}/${UserProfileName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "user-profile", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:space/${DomainId}/${SpaceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "space", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:app/${DomainId}/${UserProfileName}/${AppType}/${AppName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "app", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:app-image-config/${AppImageConfigName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "app-image-config", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:studio-lifecycle-config/${StudioLifecycleConfigName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "studio-lifecycle-config", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:notebook-instance/${NotebookInstanceName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "notebook-instance", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:notebook-instance-lifecycle-config/${NotebookInstanceLifecycleConfigName}", - ConditionKeys: []string{}, - Resource: "notebook-instance-lifecycle-config", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:code-repository/${CodeRepositoryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "code-repository", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:image/${ImageName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "image", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:image-version/${ImageName}/${Version}", - ConditionKeys: []string{}, - Resource: "image-version", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:algorithm/${AlgorithmName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "algorithm", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:cluster/${ClusterId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "cluster", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:training-job/${TrainingJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "training-job", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:processing-job/${ProcessingJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "processing-job", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:hyper-parameter-tuning-job/${HyperParameterTuningJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "hyper-parameter-tuning-job", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:project/${ProjectName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "project", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-package/${ModelPackageName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "model-package", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-package-group/${ModelPackageGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "model-package-group", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model/${ModelName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "model", - }, - { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:endpoint-config/${EndpointConfigName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "endpoint-config", - }, + }, + Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:endpoint/${EndpointName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "endpoint", + Arn: "arn:${Partition}:serverlessrepo:${Region}:${Account}:applications/${ResourceId}", + ConditionKeys: []string{}, + Resource: "applications", }, + }, + ServiceName: "AWS Serverless Application Repository", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:inference-component/${InferenceComponentName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "inference-component", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:transform-job/${TransformJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "transform-job", + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:compilation-job/${CompilationJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "compilation-job", + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:automl-job/${AutoMLJobJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "automl-job", + Condition: "servicecatalog:Resource", + Description: "Filters access by controlling what value can be specified as the Resource parameter in an AppRegistry associate resource API", + Type: "String", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:monitoring-schedule/${MonitoringScheduleName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "monitoring-schedule", + Condition: "servicecatalog:ResourceType", + Description: "Filters access by controlling what value can be specified as the ResourceType parameter in an AppRegistry associate resource API", + Type: "String", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:monitoring-schedule/${MonitoringScheduleName}/alert/${MonitoringScheduleAlertName}", - ConditionKeys: []string{}, - Resource: "monitoring-schedule-alert", + Condition: "servicecatalog:accountLevel", + Description: "Filters access by user to see and perform actions on resources created by anyone in the account", + Type: "String", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:data-quality-job-definition/${DataQualityJobDefinitionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", - }, - Resource: "data-quality-job-definition", + Condition: "servicecatalog:roleLevel", + Description: "Filters access by user to see and perform actions on resources created either by them or by anyone federating into the same role as them", + Type: "String", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-quality-job-definition/${ModelQualityJobDefinitionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + Condition: "servicecatalog:userLevel", + Description: "Filters access by user to see and perform actions on only resources that they created", + Type: "String", + }, + }, + Prefix: "servicecatalog", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to accept a portfolio that has been shared with you", + Privilege: "AcceptPortfolioShare", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Portfolio*", + }, }, - Resource: "model-quality-job-definition", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-bias-job-definition/${ModelBiasJobDefinitionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate an attribute group with an application", + Privilege: "AssociateAttributeGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Application*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup*", + }, }, - Resource: "model-bias-job-definition", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-explainability-job-definition/${ModelExplainabilityJobDefinitionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate a budget with a resource", + Privilege: "AssociateBudgetWithResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "model-explainability-job-definition", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:experiment/${ExperimentName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate an IAM principal with a portfolio, giving the specified principal access to any products associated with the specified portfolio", + Privilege: "AssociatePrincipalWithPortfolio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Portfolio*", + }, }, - Resource: "experiment", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:experiment-trial/${TrialName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate a product with a portfolio", + Privilege: "AssociateProductWithPortfolio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "experiment-trial", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:experiment-trial-component/${TrialComponentName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate a resource with an application", + Privilege: "AssociateResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:DescribeStacks", + "resource-groups:CreateGroup", + "resource-groups:GetGroup", + "resource-groups:Tag", + }, + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "servicecatalog:ResourceType", + "servicecatalog:Resource", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "experiment-trial-component", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:feature-group/${FeatureGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate an action with a provisioning artifact", + Privilege: "AssociateServiceActionWithProvisioningArtifact", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product*", + }, }, - Resource: "feature-group", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:pipeline/${PipelineName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to associate the specified TagOption with the specified portfolio or product", + Privilege: "AssociateTagOptionWithResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Portfolio", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product", + }, }, - Resource: "pipeline", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:pipeline/${PipelineName}/execution/${RandomString}", - ConditionKeys: []string{}, - Resource: "pipeline-execution", + AccessLevel: "Write", + Description: "Grants permission to associate multiple self-service actions with provisioning artifacts", + Privilege: "BatchAssociateServiceActionWithProvisioningArtifact", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:artifact/${HashOfArtifactSource}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to disassociate a batch of self-service actions from the specified provisioning artifact", + Privilege: "BatchDisassociateServiceActionFromProvisioningArtifact", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "artifact", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:context/${ContextName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to copy the specified source product to the specified target product or a new product", + Privilege: "CopyProduct", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "context", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:action/${ActionName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "action", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:lineage-group/${LineageGroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create an attribute group", + Privilege: "CreateAttributeGroup", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "lineage-group", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-card/${ModelCardName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create a constraint on an associated product and portfolio", + Privilege: "CreateConstraint", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product*", + }, }, - Resource: "model-card", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:model-card/${ModelCardName}/export-job/${ExportJobName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create a portfolio", + Privilege: "CreatePortfolio", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Portfolio*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "model-card-export-job", }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:shared-model/${SharedModelId}", - ConditionKeys: []string{}, - Resource: "shared-model", + AccessLevel: "Permissions management", + Description: "Grants permission to share a portfolio you own with another AWS account", + Privilege: "CreatePortfolioShare", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Portfolio*", + }, + }, }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:shared-model-event/${EventId}", - ConditionKeys: []string{}, - Resource: "shared-model-event", + AccessLevel: "Write", + Description: "Grants permission to create a product and that product's first provisioning artifact", + Privilege: "CreateProduct", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:sagemaker-catalog/${ResourceCatalogName}", - ConditionKeys: []string{}, - Resource: "sagemaker-catalog", + AccessLevel: "Write", + Description: "Grants permission to add a new provisioned product plan", + Privilege: "CreateProvisionedProductPlan", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:mlflow-tracking-server/${MlflowTrackingServerName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sagemaker:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to add a new provisioning artifact to an existing product", + Privilege: "CreateProvisioningArtifact", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product*", + }, }, - Resource: "mlflow-tracking-server", }, - }, - ServiceName: "Amazon SageMaker", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to create a self-service action", + Privilege: "CreateServiceAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to create a TagOption", + Privilege: "CreateTagOption", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to delete an application if all associations have been removed from the application", + Privilege: "DeleteApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Application*", + }, + }, }, - }, - Prefix: "sagemaker-geospatial", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to the DeleteEarthObservationJob operation which deletes an existing earth observation job", - Privilege: "DeleteEarthObservationJob", + Description: "Grants permission to delete an attribute group if all associations have been removed from the attribute group", + Privilege: "DeleteAttributeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EarthObservationJob*", + ResourceType: "AttributeGroup*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove and delete an existing constraint from an associated product and portfolio", + Privilege: "DeleteConstraint", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -244995,38 +291225,50 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to the DeleteVectorEnrichmentJob operation which deletes an existing vector enrichment job", - Privilege: "DeleteVectorEnrichmentJob", + Description: "Grants permission to delete a portfolio if all associations and shares have been removed from the portfolio", + Privilege: "DeletePortfolio", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VectorEnrichmentJob*", + ResourceType: "Portfolio*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to unshare a portfolio you own from an AWS account you previously shared the portfolio with", + Privilege: "DeletePortfolioShare", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Portfolio*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to copy results of an earth observation job to an S3 location", - Privilege: "ExportEarthObservationJob", + Description: "Grants permission to delete a product if all associations have been removed from the product", + Privilege: "DeleteProduct", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "EarthObservationJob*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a provisioned product plan", + Privilege: "DeleteProvisionedProductPlan", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", }, DependentActions: []string{}, ResourceType: "", @@ -245035,58 +291277,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to copy results of an VectorEnrichmentJob to an S3 location", - Privilege: "ExportVectorEnrichmentJob", + Description: "Grants permission to delete a provisioning artifact from a product", + Privilege: "DeleteProvisioningArtifact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "VectorEnrichmentJob*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Product*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return details about the earth observation job", - Privilege: "GetEarthObservationJob", + AccessLevel: "Write", + Description: "Grants permission to delete a resource-based policy for the specified resource", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EarthObservationJob*", + ResourceType: "Application", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AttributeGroup", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return details about the raster data collection", - Privilege: "GetRasterDataCollection", + AccessLevel: "Write", + Description: "Grants permission to delete a self-service action", + Privilege: "DeleteServiceAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RasterDataCollection*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the specified TagOption", + Privilege: "DeleteTagOption", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -245094,41 +291330,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the tile of an earth observation job", - Privilege: "GetTile", + Description: "Grants permission to describe a constraint", + Privilege: "DescribeConstraint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "EarthObservationJob*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return details about the vector enrichment job", - Privilege: "GetVectorEnrichmentJob", + Description: "Grants permission to get the status of the specified copy product operation", + Privilege: "DescribeCopyProductStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VectorEnrichmentJob*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a portfolio", + Privilege: "DescribePortfolio", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Portfolio*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return an array of earth observation jobs associated with the current account", - Privilege: "ListEarthObservationJobs", + AccessLevel: "Read", + Description: "Grants permission to get the status of the specified portfolio share operation", + Privilege: "DescribePortfolioShareStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -245139,39 +291378,62 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to return an array of aster data collections associated with the given model name", - Privilege: "ListRasterDataCollections", + Description: "Grants permission to view a summary of each of the portfolio shares that were created for the specified portfolio", + Privilege: "DescribePortfolioShares", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Portfolio*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to lists tag for an SageMaker Geospatial resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to describe a product as an end-user", + Privilege: "DescribeProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EarthObservationJob", + ResourceType: "Product*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a product as an admin", + Privilege: "DescribeProductAsAdmin", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RasterDataCollection", + ResourceType: "Product*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a product as an end-user", + Privilege: "DescribeProductView", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VectorEnrichmentJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a provisioned product", + Privilege: "DescribeProvisionedProduct", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", }, DependentActions: []string{}, ResourceType: "", @@ -245179,12 +291441,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to return an array of vector enrichment jobs associated with the current account", - Privilege: "ListVectorEnrichmentJobs", + AccessLevel: "Read", + Description: "Grants permission to describe a provisioned product plan", + Privilege: "DescribeProvisionedProductPlan", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, ResourceType: "", }, @@ -245192,33 +291458,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to query raster data collections", - Privilege: "SearchRasterDataCollection", + Description: "Grants permission to describe a provisioning artifact", + Privilege: "DescribeProvisioningArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Product*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to the StartEarthObservationJob operation which starts a new earth observation job to your account", - Privilege: "StartEarthObservationJob", + AccessLevel: "Read", + Description: "Grants permission to describe the parameters that you need to specify to successfully provision a specified provisioning artifact", + Privilege: "DescribeProvisioningParameters", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker-geospatial:TagResource", - }, - ResourceType: "EarthObservationJob*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Product*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a record and lists any outputs", + Privilege: "DescribeRecord", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", }, DependentActions: []string{}, ResourceType: "", @@ -245226,22 +291497,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to the StartVectorEnrichmentJob operation which starts a new vector enrichment job to your account", - Privilege: "StartVectorEnrichmentJob", + AccessLevel: "Read", + Description: "Grants permission to describe a self-service action", + Privilege: "DescribeServiceAction", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "sagemaker-geospatial:TagResource", - }, - ResourceType: "VectorEnrichmentJob*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the default parameters if you executed the specified Service Action on the specified Provisioned Product", + Privilege: "DescribeServiceActionExecutionParameters", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", }, DependentActions: []string{}, ResourceType: "", @@ -245249,19 +291525,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to the StopEarthObservationJob operation which stops an existing earth observation job", - Privilege: "StopEarthObservationJob", + AccessLevel: "Read", + Description: "Grants permission to get information about the specified TagOption", + Privilege: "DescribeTagOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EarthObservationJob*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable portfolio sharing through AWS Organizations feature", + Privilege: "DisableAWSOrganizationsAccess", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -245269,48 +291550,73 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to the StopVectorEnrichmentJob operation which stops an existing vector enrichment job", - Privilege: "StopVectorEnrichmentJob", + Description: "Grants permission to disassociate an attribute group from an application", + Privilege: "DisassociateAttributeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VectorEnrichmentJob*", + ResourceType: "Application*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AttributeGroup*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an SageMaker Geospatial resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to disassociate a budget from a resource", + Privilege: "DisassociateBudgetFromResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EarthObservationJob", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate an IAM principal from a portfolio", + Privilege: "DisassociatePrincipalFromPortfolio", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RasterDataCollection", + ResourceType: "Portfolio*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a product from a portfolio", + Privilege: "DisassociateProductFromPortfolio", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VectorEnrichmentJob", + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a resource from an application", + Privilege: "DisassociateResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "resource-groups:DeleteGroup", + }, + ResourceType: "Application*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", + "servicecatalog:ResourceType", + "servicecatalog:Resource", }, DependentActions: []string{}, ResourceType: "", @@ -245318,104 +291624,138 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag an SageMaker Geospatial resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to disassociate the specified self-service action association from the specified provisioning artifact", + Privilege: "DisassociateServiceActionFromProvisioningArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "EarthObservationJob", + ResourceType: "Product*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate the specified TagOption from the specified resource", + Privilege: "DisassociateTagOptionFromResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RasterDataCollection", + ResourceType: "Portfolio", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VectorEnrichmentJob", + ResourceType: "Product", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to enable portfolio sharing feature through AWS Organizations", + Privilege: "EnableAWSOrganizationsAccess", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:sagemaker-geospatial:${Region}:${Account}:earth-observation-job/${JobID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to execute a provisioned product plan", + Privilege: "ExecuteProvisionedProductPlan", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "EarthObservationJob", }, { - Arn: "arn:${Partition}:sagemaker-geospatial:${Region}:${Account}:raster-data-collection/${CollectionID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to executes a provisioned product plan", + Privilege: "ExecuteProvisionedProductServiceAction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "RasterDataCollection", }, { - Arn: "arn:${Partition}:sagemaker-geospatial:${Region}:${Account}:vector-enrichment-job/${JobID}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get the access status of AWS Organization portfolio share feature", + Privilege: "GetAWSOrganizationsAccessStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "VectorEnrichmentJob", }, - }, - ServiceName: "Amazon SageMaker geospatial capabilities", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sagemaker-groundtruth-synthetic", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a project", - Privilege: "CreateProject", + AccessLevel: "Read", + Description: "Grants permission to get an application", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a project", - Privilege: "DeleteProject", + AccessLevel: "Read", + Description: "Grants permission to get information about a resource associated to an application", + Privilege: "GetAssociatedResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "servicecatalog:ResourceType", + "servicecatalog:Resource", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get account details", - Privilege: "GetAccountDetails", + Description: "Grants permission to get an attribute group", + Privilege: "GetAttributeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AttributeGroup*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a batch", - Privilege: "GetBatch", + Description: "Grants permission to read AppRegistry configurations", + Privilege: "GetConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -245426,8 +291766,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get a project", - Privilege: "GetProject", + Description: "Grants permission to get the provisioned product output with either provisioned product id or name", + Privilege: "GetProvisionedProductOutputs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -245437,33 +291777,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list batch data transfers", - Privilege: "ListBatchDataTransfers", + AccessLevel: "Read", + Description: "Grants permission to get a resource-based policy for the specified resource", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list batch summaries", - Privilege: "ListBatchSummaries", + AccessLevel: "Write", + Description: "Grants permission to import a resource into a provisioned product", + Privilege: "ImportAsProvisionedProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Product*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list project data transfers", - Privilege: "ListProjectDataTransfers", + Description: "Grants permission to list the portfolios that have been shared with you and you have accepted", + Privilege: "ListAcceptedPortfolioShares", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -245474,8 +291819,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list project summaries", - Privilege: "ListProjectSummaries", + Description: "Grants permission to list your applications", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -245485,33 +291830,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a batch data transfer", - Privilege: "StartBatchDataTransfer", + AccessLevel: "List", + Description: "Grants permission to list the attribute groups associated with an application", + Privilege: "ListAssociatedAttributeGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a project data transfer", - Privilege: "StartProjectDataTransfer", + AccessLevel: "List", + Description: "Grants permission to list the resources associated with an application", + Privilege: "ListAssociatedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a batch", - Privilege: "UpdateBatch", + AccessLevel: "List", + Description: "Grants permission to list your attribute groups", + Privilege: "ListAttributeGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -245520,593 +291865,720 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon SageMaker Ground Truth Synthetic", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sagemaker-mlflow", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to access the MLflow UI", - Privilege: "AccessUI", + AccessLevel: "List", + Description: "Grants permission to list the associated attribute groups for a given application", + Privilege: "ListAttributeGroupsForApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Application*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an MLflow experiment", - Privilege: "CreateExperiment", + AccessLevel: "List", + Description: "Grants permission to list all the budgets associated to a resource", + Privilege: "ListBudgetsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new model version", - Privilege: "CreateModelVersion", + AccessLevel: "List", + Description: "Grants permission to list constraints associated with a given portfolio", + Privilege: "ListConstraintsForPortfolio", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a registered model", - Privilege: "CreateRegisteredModel", + AccessLevel: "List", + Description: "Grants permission to list the different ways to launch a given product as an end-user", + Privilege: "ListLaunchPaths", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new run within an experiment", - Privilege: "CreateRun", + AccessLevel: "List", + Description: "Grants permission to list the organization nodes that have access to the specified portfolio", + Privilege: "ListOrganizationPortfolioAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to mark an MLflow experiment for deletion", - Privilege: "DeleteExperiment", + AccessLevel: "List", + Description: "Grants permission to list the AWS accounts you have shared a given portfolio with", + Privilege: "ListPortfolioAccess", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Portfolio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a model version", - Privilege: "DeleteModelVersion", + AccessLevel: "List", + Description: "Grants permission to list the portfolios in your account", + Privilege: "ListPortfolios", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a model version tag", - Privilege: "DeleteModelVersionTag", + AccessLevel: "List", + Description: "Grants permission to list the portfolios associated with a given product", + Privilege: "ListPortfoliosForProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a registered model", - Privilege: "DeleteRegisteredModel", + AccessLevel: "List", + Description: "Grants permission to list the IAM principals associated with a given portfolio", + Privilege: "ListPrincipalsForPortfolio", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Portfolio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a registered model alias", - Privilege: "DeleteRegisteredModelAlias", + AccessLevel: "List", + Description: "Grants permission to list the provisioned product plans", + Privilege: "ListProvisionedProductPlans", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a registered model tag", - Privilege: "DeleteRegisteredModelTag", + AccessLevel: "List", + Description: "Grants permission to list the provisioning artifacts associated with a given product", + Privilege: "ListProvisioningArtifacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to mark a run for deletion", - Privilege: "DeleteRun", + AccessLevel: "List", + Description: "Grants permission to list all provisioning artifacts for the specified self-service action", + Privilege: "ListProvisioningArtifactsForServiceAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a tag on a run", - Privilege: "DeleteTag", + AccessLevel: "List", + Description: "Grants permission to list all the records in your account or all the records related to a given provisioned product", + Privilege: "ListRecordHistory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a URI to download model artifacts for a specific model version", - Privilege: "GetDownloadURIForModelVersionArtifacts", + AccessLevel: "List", + Description: "Grants permission to list the resources associated with the specified TagOption", + Privilege: "ListResourcesForTagOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get metadata for an MLflow experiment", - Privilege: "GetExperiment", + AccessLevel: "List", + Description: "Grants permission to list all self-service actions", + Privilege: "ListServiceActions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get metadata for an MLflow experiment by name", - Privilege: "GetExperimentByName", + AccessLevel: "List", + Description: "Grants permission to list all the service actions associated with the specified provisioning artifact in your account", + Privilege: "ListServiceActionsForProvisioningArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", + }, + { + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get the latest model versions", - Privilege: "GetLatestModelVersions", + Description: "Grants permission to list account, region and status of each stack instances that are associated with a CFN_STACKSET type provisioned product", + Privilege: "ListStackInstancesForProvisionedProduct", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a list of all values for the specified metric for a given run", - Privilege: "GetMetricHistory", + AccessLevel: "List", + Description: "Grants permission to list the specified TagOptions or all TagOptions", + Privilege: "ListTagOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a model version by model name and version", - Privilege: "GetModelVersion", + Description: "Grants permission to list the tags for a service catalog appregistry resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get model version by alias in MLflow", - Privilege: "GetModelVersionByAlias", + AccessLevel: "Write", + Description: "Grants permission to notify the result of the provisioning engine execution", + Privilege: "NotifyProvisionProductEngineWorkflowResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a registered model", - Privilege: "GetRegisteredModel", + AccessLevel: "Write", + Description: "Grants permission to notify the result of the terminate engine execution", + Privilege: "NotifyTerminateProvisionedProductEngineWorkflowResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get metadata, metrics, parameters, and tags for a run", - Privilege: "GetRun", + AccessLevel: "Write", + Description: "Grants permission to notify the result of the update engine execution", + Privilege: "NotifyUpdateProvisionedProductEngineWorkflowResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list artifacts for a run", - Privilege: "ListArtifacts", + AccessLevel: "Write", + Description: "Grants permission to provision a product with a specified provisioning artifact and launch parameters", + Privilege: "ProvisionProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to log a batch of metrics, parameters, and tags for a run", - Privilege: "LogBatch", + Description: "Grants permission to assign AppRegistry configurations", + Privilege: "PutConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to log inputs for a run", - Privilege: "LogInputs", + Description: "Grants permission to add a resource-based policy for the specified resource", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to log a metric for a run", - Privilege: "LogMetric", + Description: "Grants permission to reject a portfolio that has been shared with you that you previously accepted", + Privilege: "RejectPortfolioShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Portfolio*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to log the model associated with a run", - Privilege: "LogModel", + AccessLevel: "List", + Description: "Grants permission to list all the provisioned products in your account", + Privilege: "ScanProvisionedProducts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to log a parameter tracked during a run", - Privilege: "LogParam", + AccessLevel: "List", + Description: "Grants permission to list the products available to you as an end-user", + Privilege: "SearchProducts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to rename a registered model", - Privilege: "RenameRegisteredModel", + AccessLevel: "List", + Description: "Grants permission to list all the products in your account or all the products associated with a given portfolio", + Privilege: "SearchProductsAsAdmin", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore an experiment marked for deletion", - Privilege: "RestoreExperiment", + AccessLevel: "List", + Description: "Grants permission to list all the provisioned products in your account", + Privilege: "SearchProvisionedProducts", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore a deleted run", - Privilege: "RestoreRun", + Description: "Grants permission to sync a resource with its current state in AppRegistry", + Privilege: "SyncResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ConditionKeys: []string{}, + DependentActions: []string{ + "cloudformation:UpdateStack", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for MLflow experiments", - Privilege: "SearchExperiments", + AccessLevel: "Tagging", + Description: "Grants permission to tag a service catalog appregistry resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for a model version", - Privilege: "SearchModelVersions", + AccessLevel: "Write", + Description: "Grants permission to terminate an existing provisioned product", + Privilege: "TerminateProvisionedProduct", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for registered models in MLflow", - Privilege: "SearchRegisteredModels", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a service catalog appregistry resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AttributeGroup", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for runs that satisfy expressions", - Privilege: "SearchRuns", + AccessLevel: "Write", + Description: "Grants permission to update the attributes of an existing application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "Application*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set a tag on an experiment", - Privilege: "SetExperimentTag", + Description: "Grants permission to update the attributes of an existing attribute group", + Privilege: "UpdateAttributeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "AttributeGroup*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set a tag for the model version", - Privilege: "SetModelVersionTag", + Description: "Grants permission to update the metadata fields of an existing constraint", + Privilege: "UpdateConstraint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set a registered model alias", - Privilege: "SetRegisteredModelAlias", + Description: "Grants permission to update the metadata fields and/or tags of an existing portfolio", + Privilege: "UpdatePortfolio", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Portfolio*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set a tag for a registered model", - Privilege: "SetRegisteredModelTag", + AccessLevel: "Permissions management", + Description: "Grants permission to enable or disable resource sharing for an existing portfolio share", + Privilege: "UpdatePortfolioShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Portfolio*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set a tag on a run", - Privilege: "SetTag", + Description: "Grants permission to update the metadata fields and/or tags of an existing product", + Privilege: "UpdateProduct", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to transition a model version to a particular stage", - Privilege: "TransitionModelVersionStage", + Description: "Grants permission to update an existing provisioned product", + Privilege: "UpdateProvisionedProduct", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "servicecatalog:accountLevel", + "servicecatalog:roleLevel", + "servicecatalog:userLevel", + }, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata for an MLflow experiment", - Privilege: "UpdateExperiment", + Description: "Grants permission to update the properties of an existing provisioned product", + Privilege: "UpdateProvisionedProductProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the model version", - Privilege: "UpdateModelVersion", + Description: "Grants permission to update the metadata fields of an existing provisioning artifact", + Privilege: "UpdateProvisioningArtifact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "Product*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a registered model", - Privilege: "UpdateRegisteredModel", + Description: "Grants permission to update a self-service action", + Privilege: "UpdateServiceAction", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update run metadata", - Privilege: "UpdateRun", + Description: "Grants permission to update the specified TagOption", + Privilege: "UpdateTagOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mlflow-tracking-server*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:sagemaker:${Region}:${Account}:mlflow-tracking-server/${MlflowTrackingServerName}", - ConditionKeys: []string{}, - Resource: "mlflow-tracking-server", + Arn: "arn:${Partition}:servicecatalog:${Region}:${Account}:/applications/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Application", + }, + { + Arn: "arn:${Partition}:servicecatalog:${Region}:${Account}:/attribute-groups/${AttributeGroupId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AttributeGroup", + }, + { + Arn: "arn:${Partition}:catalog:${Region}:${Account}:portfolio/${PortfolioId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Portfolio", + }, + { + Arn: "arn:${Partition}:catalog:${Region}:${Account}:product/${ProductId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Product", }, }, - ServiceName: "Amazon SageMaker with MLflow", + ServiceName: "AWS Service Catalog", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the allowed set of values for each of the tags", + Description: "Filters actions based on the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value assoicated with the resource", + Description: "Filters actions based on the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", + Description: "Filters actions based on the tag keys that are passed in the request", Type: "ArrayOfString", }, + { + Condition: "servicediscovery:NamespaceArn", + Description: "Filters access by specifying the Amazon Resource Name (ARN) for the related namespace", + Type: "ARN", + }, + { + Condition: "servicediscovery:NamespaceName", + Description: "Filters access by specifying the name of the related namespace", + Type: "String", + }, + { + Condition: "servicediscovery:ServiceArn", + Description: "Filters access by specifying the Amazon Resource Name (ARN) for the related service", + Type: "ARN", + }, + { + Condition: "servicediscovery:ServiceName", + Description: "Filters access by specifying the name of the related service", + Type: "String", + }, }, - Prefix: "savingsplans", + Prefix: "servicediscovery", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a savings plan", - Privilege: "CreateSavingsPlan", + Description: "Grants permission to create an HTTP namespace", + Privilege: "CreateHttpNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -246115,17 +292587,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the queued savings plan associated with customers account", - Privilege: "DeleteQueuedSavingsPlan", + Description: "Grants permission to create a private namespace based on DNS, which will be visible only inside a specified Amazon VPC", + Privilege: "CreatePrivateDnsNamespace", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "savingsplan*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -246133,18 +292601,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the rates associated with customers savings plan", - Privilege: "DescribeSavingsPlanRates", + AccessLevel: "Write", + Description: "Grants permission to create a public namespace based on DNS, which will be visible on the internet", + Privilege: "CreatePublicDnsNamespace", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "savingsplan*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -246152,18 +292616,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the savings plans associated with customers account", - Privilege: "DescribeSavingsPlans", + AccessLevel: "Write", + Description: "Grants permission to create a service", + Privilege: "CreateService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "savingsplan*", + ResourceType: "namespace*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "service*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "servicediscovery:NamespaceArn", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -246171,54 +292642,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the rates assciated with savings plans offerings", - Privilege: "DescribeSavingsPlansOfferingRates", + AccessLevel: "Write", + Description: "Grants permission to delete a specified namespace", + Privilege: "DeleteNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the savings plans offerings that customer is eligible to purchase", - Privilege: "DescribeSavingsPlansOfferings", + AccessLevel: "Write", + Description: "Grants permission to delete a specified service", + Privilege: "DeleteService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "service*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for a savings plan", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete specified attributes from a service", + Privilege: "DeleteServiceAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "savingsplan*", + ResourceType: "service*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to return a savings plan", - Privilege: "ReturnSavingsPlan", + Description: "Grants permission to delete the records and the health check, if any, that Amazon Route 53 created for the specified instance", + Privilege: "DeregisterInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "savingsplan*", + ResourceType: "service*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "servicediscovery:ServiceArn", }, DependentActions: []string{}, ResourceType: "", @@ -246226,19 +292697,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a savings plan", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to discover registered instances for a specified namespace and service", + Privilege: "DiscoverInstances", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "savingsplan*", - }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "servicediscovery:NamespaceName", + "servicediscovery:ServiceName", }, DependentActions: []string{}, ResourceType: "", @@ -246246,71 +292712,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a savings plan", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to discover the revision of the instances for a specified namespace and service", + Privilege: "DiscoverInstancesRevision", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "savingsplan*", - }, { ConditionKeys: []string{ - "aws:TagKeys", + "servicediscovery:NamespaceName", + "servicediscovery:ServiceName", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:savingsplans::${Account}:savingsplan/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "savingsplan", - }, - }, - ServiceName: "AWS Savings Plans", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "scheduler", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon EventBridge Scheduler schedule", - Privilege: "CreateSchedule", + AccessLevel: "Read", + Description: "Grants permission to get information about a specified instance", + Privilege: "GetInstance", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "schedule*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "servicediscovery:ServiceArn", }, DependentActions: []string{}, ResourceType: "", @@ -246318,19 +292741,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an Amazon EventBridge Scheduler schedule group", - Privilege: "CreateScheduleGroup", + AccessLevel: "Read", + Description: "Grants permission to get the current health status (Healthy, Unhealthy, or Unknown) of one or more instances", + Privilege: "GetInstancesHealthStatus", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schedule-group*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "servicediscovery:ServiceArn", }, DependentActions: []string{}, ResourceType: "", @@ -246338,40 +292755,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon EventBridge Scheduler schedule", - Privilege: "DeleteSchedule", + AccessLevel: "Read", + Description: "Grants permission to get information about a namespace", + Privilege: "GetNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schedule*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an Amazon EventBridge Scheduler schedule group", - Privilege: "DeleteScheduleGroup", + AccessLevel: "Read", + Description: "Grants permission to get information about a specific operation", + Privilege: "GetOperation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "scheduler:DeleteSchedule", - }, - ResourceType: "schedule-group*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -246379,36 +292780,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view details about an Amazon EventBridge Scheduler schedule", - Privilege: "GetSchedule", + Description: "Grants permission to get the settings for a specified service", + Privilege: "GetService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schedule*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "service*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about an Amazon EventBridge Scheduler schedule group", - Privilege: "GetScheduleGroup", + Description: "Grants permission to get the attributes for a specified service", + Privilege: "GetServiceAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schedule-group*", + ResourceType: "service*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get summary information about the instances that were registered with a specified service", + Privilege: "ListInstances", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "servicediscovery:ServiceArn", }, DependentActions: []string{}, ResourceType: "", @@ -246416,9 +292817,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the Amazon EventBridge Scheduler schedule groups in your account", - Privilege: "ListScheduleGroups", + AccessLevel: "Read", + Description: "Grants permission to get information about the namespaces", + Privilege: "ListNamespaces", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -246429,8 +292830,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the Amazon EventBridge Scheduler schedules in your account", - Privilege: "ListSchedules", + Description: "Grants permission to list operations that match the criteria that you specify", + Privilege: "ListOperations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -246441,58 +292842,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to lists tag for an Amazon EventBridge Scheduler resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get settings for all the services that match specified filters", + Privilege: "ListServices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schedule-group", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an Amazon EventBridge Scheduler resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to lists tags for the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schedule-group*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag an Amazon EventBridge Scheduler resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to register an instance based on the settings in a specified service", + Privilege: "RegisterInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schedule-group*", + ResourceType: "service*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:ResourceTag/${TagKey}", + "servicediscovery:ServiceArn", }, DependentActions: []string{}, ResourceType: "", @@ -246500,71 +292884,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to modify an Amazon EventBridge Scheduler schedule", - Privilege: "UpdateSchedule", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "schedule*", - }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:scheduler:${Region}:${Account}:schedule-group/${GroupName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "schedule-group", - }, - { - Arn: "arn:${Partition}:scheduler:${Region}:${Account}:schedule/${GroupName}/${ScheduleName}", - ConditionKeys: []string{}, - Resource: "schedule", - }, - }, - ServiceName: "Amazon EventBridge Scheduler", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by allowed set of values for each of the tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of mandatory tags in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "schemas", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an event schema discoverer. Once created, your events will be automatically map into corresponding schema documents", - Privilege: "CreateDiscoverer", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -246574,38 +292914,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new schema registry in your account", - Privilege: "CreateRegistry", + Description: "Grants permission to update the settings for a HTTP namespace", + Privilege: "UpdateHttpNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "namespace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new schema in your account", - Privilege: "CreateSchema", + Description: "Grants permission to update the current health status for an instance that has a custom health check", + Privilege: "UpdateInstanceCustomHealthStatus", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "servicediscovery:ServiceArn", }, DependentActions: []string{}, ResourceType: "", @@ -246614,348 +292940,342 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete discoverer in your account", - Privilege: "DeleteDiscoverer", + Description: "Grants permission to update the settings for a private DNS namespace", + Privilege: "UpdatePrivateDnsNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoverer*", + ResourceType: "namespace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing registry in your account", - Privilege: "DeleteRegistry", + Description: "Grants permission to update the settings for a public DNS namespace", + Privilege: "UpdatePublicDnsNamespace", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "namespace*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the resource-based policy attached to a given registry", - Privilege: "DeleteResourcePolicy", + Description: "Grants permission to update the settings in a specified service", + Privilege: "UpdateService", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "service*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing schema in your account", - Privilege: "DeleteSchema", + Description: "Grants permission to update the attributes in a specified service", + Privilege: "UpdateServiceAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "service*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete a specific version of schema in your account", - Privilege: "DeleteSchemaVersion", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", - }, + Arn: "arn:${Partition}:servicediscovery:${Region}:${Account}:namespace/${NamespaceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "namespace", }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata for generated code for specific schema in your account", - Privilege: "DescribeCodeBinding", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", - }, + Arn: "arn:${Partition}:servicediscovery:${Region}:${Account}:service/${ServiceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "service", }, + }, + ServiceName: "AWS Cloud Map", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "serviceextract", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Read", - Description: "Grants permission to retrieve discoverer metadata in your account", - Privilege: "DescribeDiscoverer", + Description: "Grants permission to get required configuration for the AWS Microservice Extractor for .NET desktop client", + Privilege: "GetConfig", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoverer*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Microservice Extractor for .NET", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "Read", - Description: "Grants permission to describe an existing registry metadata in your account", - Privilege: "DescribeRegistry", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry*", - }, - }, + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve an existing schema in your account", - Privilege: "DescribeSchema", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", - }, - }, + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", }, { - AccessLevel: "Read", - Description: "Grants permission to export the AWS registry or discovered schemas in OpenAPI 3 format to JSONSchema format", - Privilege: "ExportSchema", + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "servicequotas:service", + Description: "Filters access by the specified AWS service", + Type: "String", + }, + }, + Prefix: "servicequotas", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate the Service Quotas template with your organization", + Privilege: "AssociateServiceQuotaTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve metadata for generated code for specific schema in your account", - Privilege: "GetCodeBindingSource", + AccessLevel: "Write", + Description: "Grants permission to remove the specified service quota from the service quota template", + Privilege: "DeleteServiceQuotaIncreaseRequestFromTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a schema for the provided list of sample events", - Privilege: "GetDiscoveredSchema", + AccessLevel: "Write", + Description: "Grants permission to disassociate the Service Quotas template from your organization", + Privilege: "DisassociateServiceQuotaTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the resource-based policy attached to a given registry", - Privilege: "GetResourcePolicy", + Description: "Grants permission to return the details for the specified service quota, including the AWS default value", + Privilege: "GetAWSDefaultServiceQuota", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all discoverers in your account", - Privilege: "ListDiscoverers", + AccessLevel: "Read", + Description: "Grants permission to retrieve the ServiceQuotaTemplateAssociationStatus value, which tells you if the Service Quotas template is associated with an organization", + Privilege: "GetAssociationForServiceQuotaTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "discoverer*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all registries in your account", - Privilege: "ListRegistries", + AccessLevel: "Read", + Description: "Grants permission to retrieve the details for a particular service quota increase request", + Privilege: "GetRequestedServiceQuotaChange", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all versions of a schema", - Privilege: "ListSchemaVersions", + AccessLevel: "Read", + Description: "Grants permission to return the details for the specified service quota, including the applied value", + Privilege: "GetServiceQuota", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ConditionKeys: []string{}, + DependentActions: []string{ + "autoscaling:DescribeAccountLimits", + "cloudformation:DescribeAccountLimits", + "dynamodb:DescribeLimits", + "elasticloadbalancing:DescribeAccountLimits", + "iam:GetAccountSummary", + "kinesis:DescribeLimits", + "rds:DescribeAccountAttributes", + "route53:GetAccountLimit", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all schemas", - Privilege: "ListSchemas", + AccessLevel: "Read", + Description: "Grants permission to retrieve the details for a service quota increase request from the service quota template", + Privilege: "GetServiceQuotaIncreaseRequestFromTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to lists tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to list all default service quotas for the specified AWS service", + Privilege: "ListAWSDefaultServiceQuotas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoverer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to generate code for specific schema in your account", - Privilege: "PutCodeBinding", + AccessLevel: "Read", + Description: "Grants permission to request a list of the changes to quotas for a service", + Privilege: "ListRequestedServiceQuotaChangeHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to attach a resource-based policy to a given registry", - Privilege: "PutResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to request a list of the changes to specific service quotas", + Privilege: "ListRequestedServiceQuotaChangeHistoryByQuota", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to search schemas based on specified keywords in your account", - Privilege: "SearchSchemas", + AccessLevel: "Read", + Description: "Grants permission to return a list of the service quota increase requests from the service quota template", + Privilege: "ListServiceQuotaIncreaseRequestsInTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start the specified discoverer. Once started the discoverer will automatically register schemas for published events to configured source in your account", - Privilege: "StartDiscoverer", + AccessLevel: "Read", + Description: "Grants permission to list all service quotas for the specified AWS service, in that account, in that Region", + Privilege: "ListServiceQuotas", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "discoverer*", + ConditionKeys: []string{}, + DependentActions: []string{ + "autoscaling:DescribeAccountLimits", + "cloudformation:DescribeAccountLimits", + "dynamodb:DescribeLimits", + "elasticloadbalancing:DescribeAccountLimits", + "iam:GetAccountSummary", + "kinesis:DescribeLimits", + "rds:DescribeAccountAttributes", + "route53:GetAccountLimit", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop the specified discoverer. Once stopped the discoverer will no longer register schemas for published events to configured source in your account", - Privilege: "StopDiscoverer", + AccessLevel: "Read", + Description: "Grants permission to list the AWS services available in Service Quotas", + Privilege: "ListServices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoverer*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to view the existing tags on a SQ resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoverer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from a resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to define and add a quota to the service quota template", + Privilege: "PutServiceQuotaIncreaseRequestIntoTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "discoverer", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "registry", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "schema", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + }, + ResourceType: "quota", }, { ConditionKeys: []string{ - "aws:TagKeys", + "servicequotas:service", }, DependentActions: []string{}, ResourceType: "", @@ -246964,256 +293284,318 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an existing discoverer in your account", - Privilege: "UpdateDiscoverer", + Description: "Grants permission to submit the request for a service quota increase", + Privilege: "RequestServiceQuotaIncrease", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "discoverer*", + ResourceType: "quota", + }, + { + ConditionKeys: []string{ + "servicequotas:service", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing registry metadata in your account", - Privilege: "UpdateRegistry", + AccessLevel: "Tagging", + Description: "Grants permission to associate a set of tags with an existing SQ resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "registry*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing schema in your account", - Privilege: "UpdateSchema", + AccessLevel: "Tagging", + Description: "Grants permission to remove a set of tags from a SQ resource, where tags to be removed match a set of customer-supplied tag keys", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "schema*", + ResourceType: "", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:schemas:${Region}:${Account}:discoverer/${DiscovererId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "discoverer", - }, - { - Arn: "arn:${Partition}:schemas:${Region}:${Account}:registry/${RegistryName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "registry", - }, - { - Arn: "arn:${Partition}:schemas:${Region}:${Account}:schema/${RegistryName}/${SchemaName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "schema", + Arn: "arn:${Partition}:servicequotas:${Region}:${Account}:${ServiceCode}/${QuotaCode}", + ConditionKeys: []string{}, + Resource: "quota", }, }, - ServiceName: "Amazon EventBridge Schemas", + ServiceName: "Service Quotas", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by using tag key-value pairs in the request", + Description: "Filters actions based on the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by using tag key-value pairs attached to the resource", + Description: "Filters actions based on tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by using tag keys in the request", + Description: "Filters actions based on the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "ses:ApiVersion", + Description: "Filters actions based on the SES API version", + Type: "String", + }, + { + Condition: "ses:FeedbackAddress", + Description: "Filters actions based on the \"Return-Path\" address, which specifies where bounces and complaints are sent by email feedback forwarding", + Type: "String", + }, + { + Condition: "ses:FromAddress", + Description: "Filters actions based on the \"From\" address of a message", + Type: "String", + }, + { + Condition: "ses:FromDisplayName", + Description: "Filters actions based on the \"From\" address that is used as the display name of a message", + Type: "String", + }, + { + Condition: "ses:Recipients", + Description: "Filters actions based on the recipient addresses of a message, which include the \"To\", \"CC\", and \"BCC\" addresses", Type: "ArrayOfString", }, }, - Prefix: "scn", + Prefix: "ses", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add AWS Supply Chain administrator permission to federated user", - Privilege: "AssignAdminPermissionsToUser", + Description: "Grants permission to create a configuration set", + Privilege: "CreateConfigurationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a BillOfMaterialsImportJob which will import a CSV file of BillOfMaterials records", - Privilege: "CreateBillOfMaterialsImportJob", + Description: "Grants permission to create a configuration set event destination", + Privilege: "CreateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "configuration-set*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new AWS Supply Chain instance", - Privilege: "CreateInstance", + Description: "Grants permission to create a new pool of dedicated IP addresses", + Privilege: "CreateDedicatedIpPool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create IAM Identity Center application for a AWS Supply Chain instance", - Privilege: "CreateSSOApplication", + Description: "Grants permission to create a new predictive inbox placement test", + Privilege: "CreateDeliverabilityTestReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS Supply Chain instance", - Privilege: "DeleteInstance", + Description: "Grants permission to start the process of verifying an email identity", + Privilege: "CreateEmailIdentity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete IAM Identity Center application of the AWS Supply Chain instance", - Privilege: "DeleteSSOApplication", + Description: "Grants permission to delete an existing configuration set", + Privilege: "DeleteConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details of an AWS Supply Chain instance", - Privilege: "DescribeInstance", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view status and details of a BillOfMaterialsImportJob", - Privilege: "GetBillOfMaterialsImportJob", + AccessLevel: "Write", + Description: "Grants permission to delete an event destination", + Privilege: "DeleteConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bill-of-materials-import-job*", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list AWS Supply Chain administrators of an instance", - Privilege: "ListAdminUsers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the AWS Supply Chain instances associated with an AWS account", - Privilege: "ListInstances", + AccessLevel: "Write", + Description: "Grants permission to delete a dedicated IP pool", + Privilege: "DeleteDedicatedIpPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "dedicated-ip-pool*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for an AWS Supply Chain instance", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete an email identity that you previously verified", + Privilege: "DeleteEmailIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove AWS Supply Chain administrator permission from federated user", - Privilege: "RemoveAdminPermissionsForUser", + AccessLevel: "Read", + Description: "Grants permission to get information about the email-sending status and capabilities", + Privilege: "GetAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a DataIntegrationEvent which will ingest data in real-time", - Privilege: "SendDataIntegrationEvent", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of the deny lists on which your dedicated IP addresses appear", + Privilege: "GetBlacklistReports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an AWS Supply Chain instance", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to get information about an existing configuration set", + Privilege: "GetConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -247221,18 +293603,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tag from an AWS Supply Chain instance", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of event destinations that are associated with a configuration set", + Privilege: "GetConfigurationSetEventDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "aws:TagKeys", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -247240,300 +293623,177 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an AWS Supply Chain instance", - Privilege: "UpdateInstance", + AccessLevel: "Read", + Description: "Grants permission to get information about a dedicated IP address", + Privilege: "GetDedicatedIp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:scn:${Region}:${Account}:instance/${InstanceId}", - ConditionKeys: []string{}, - Resource: "instance", - }, - { - Arn: "arn:${Partition}:scn:${Region}:${Account}:instance/${InstanceId}/bill-of-materials-import-job/${JobId}", - ConditionKeys: []string{}, - Resource: "bill-of-materials-import-job", - }, - }, - ServiceName: "AWS Supply Chain", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sdb", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Performs multiple DeleteAttributes operations in a single call, which reduces round trips and latencies", - Privilege: "BatchDeleteAttributes", + AccessLevel: "Read", + Description: "Grants permission to list the dedicated IP addresses that are associated with your account", + Privilege: "GetDedicatedIps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "dedicated-ip-pool*", }, - }, - }, - { - AccessLevel: "Write", - Description: "With the BatchPutAttributes operation, you can perform multiple PutAttribute operations in a single call. With the BatchPutAttributes operation, you can perform multiple PutAttribute operations in a single call", - Privilege: "BatchPutAttributes", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "The CreateDomain operation creates a new domain", - Privilege: "CreateDomain", + AccessLevel: "Read", + Description: "Grants permission to get the status of the Deliverability dashboard", + Privilege: "GetDeliverabilityDashboardOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Deletes one or more attributes associated with the item", - Privilege: "DeleteAttributes", + AccessLevel: "Read", + Description: "Grants permission to retrieve the results of a predictive inbox placement test", + Privilege: "GetDeliverabilityTestReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "deliverability-test-report*", }, - }, - }, - { - AccessLevel: "Write", - Description: "The DeleteDomain operation deletes a domain", - Privilege: "DeleteDomain", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Returns information about the domain, including when the domain was created, the number of items and attributes, and the size of attribute names and values", - Privilege: "DomainMetadata", + Description: "Grants permission to retrieve all the deliverability data for a specific campaign", + Privilege: "GetDomainDeliverabilityCampaign", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Returns all of the attributes associated with the item", - Privilege: "GetAttributes", + Description: "Grants permission to retrieve inbox placement and engagement rates for the domains that you use to send email", + Privilege: "GetDomainStatisticsReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Description for ListDomains", - Privilege: "ListDomains", + AccessLevel: "Read", + Description: "Grants permission to get information about a specific identity associated with your account", + Privilege: "GetEmailIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "The PutAttributes operation creates or replaces attributes in an item", - Privilege: "PutAttributes", + AccessLevel: "List", + Description: "Grants permission to list all of the configuration sets associated with your account", + Privilege: "ListConfigurationSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Description for Select", - Privilege: "Select", + AccessLevel: "List", + Description: "Grants permission to list all of the dedicated IP pools that exist in your account", + Privilege: "ListDedicatedIpPools", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "domain*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sdb:${Region}:${Account}:domain/${DomainName}", - ConditionKeys: []string{}, - Resource: "domain", - }, - }, - ServiceName: "Amazon SimpleDB", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a key that is present in the request the user makes to the Secrets Manager service", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the list of all the tag key names present in the request the user makes to the Secrets Manager service", - Type: "ArrayOfString", - }, - { - Condition: "secretsmanager:AddReplicaRegions", - Description: "Filters access by the list of Regions in which to replicate the secret", - Type: "ArrayOfString", - }, - { - Condition: "secretsmanager:BlockPublicPolicy", - Description: "Filters access by whether the resource policy blocks broad AWS account access", - Type: "Bool", - }, - { - Condition: "secretsmanager:Description", - Description: "Filters access by the description text in the request", - Type: "String", - }, - { - Condition: "secretsmanager:ForceDeleteWithoutRecovery", - Description: "Filters access by whether the secret is to be deleted immediately without any recovery window", - Type: "Bool", - }, - { - Condition: "secretsmanager:ForceOverwriteReplicaSecret", - Description: "Filters access by whether to overwrite a secret with the same name in the destination Region", - Type: "Bool", - }, - { - Condition: "secretsmanager:KmsKeyId", - Description: "Filters access by the key identifier of the KMS key in the request", - Type: "String", - }, - { - Condition: "secretsmanager:ModifyRotationRules", - Description: "Filters access by whether the rotation rules of the secret are to be modified", - Type: "Bool", - }, - { - Condition: "secretsmanager:Name", - Description: "Filters access by the friendly name of the secret in the request", - Type: "String", - }, - { - Condition: "secretsmanager:RecoveryWindowInDays", - Description: "Filters access by the number of days that Secrets Manager waits before it can delete the secret", - Type: "Numeric", - }, - { - Condition: "secretsmanager:ResourceTag/tag-key", - Description: "Filters access by a tag key and value pair", - Type: "String", - }, - { - Condition: "secretsmanager:RotateImmediately", - Description: "Filters access by whether the secret is to be rotated immediately", - Type: "Bool", - }, - { - Condition: "secretsmanager:RotationLambdaARN", - Description: "Filters access by the ARN of the rotation Lambda function in the request", - Type: "ARN", - }, - { - Condition: "secretsmanager:SecretId", - Description: "Filters access by the SecretID value in the request", - Type: "ARN", - }, - { - Condition: "secretsmanager:SecretPrimaryRegion", - Description: "Filters access by primary region in which the secret is created", - Type: "String", - }, - { - Condition: "secretsmanager:VersionId", - Description: "Filters access by the unique identifier of the version of the secret in the request", - Type: "String", - }, - { - Condition: "secretsmanager:VersionStage", - Description: "Filters access by the list of version stages in the request", - Type: "String", - }, - { - Condition: "secretsmanager:resource/AllowRotationLambdaArn", - Description: "Filters access by the ARN of the rotation Lambda function associated with the secret", - Type: "ARN", - }, - }, - Prefix: "secretsmanager", - Privileges: []ParliamentPrivilege{ { AccessLevel: "List", - Description: "Grants permission to retrieve and decrypt a list of secrets", - Privilege: "BatchGetSecretValue", + Description: "Grants permission to retrieve a list of the predictive inbox placement tests that you've performed, regardless of their statuses", + Privilege: "ListDeliverabilityTestReports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel an in-progress secret rotation", - Privilege: "CancelRotateSecret", + AccessLevel: "Read", + Description: "Grants permission to retrieve deliverability data for all the campaigns that used a specific domain to send email during a specified time range", + Privilege: "ListDomainDeliverabilityCampaigns", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Secret*", - }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -247541,26 +293801,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a secret that stores encrypted data that can be queried and rotated", - Privilege: "CreateSecret", + AccessLevel: "List", + Description: "Grants permission to list all of the email identities that are associated with your account", + Privilege: "ListEmailIdentities", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Secret*", - }, { ConditionKeys: []string{ - "secretsmanager:Name", - "secretsmanager:Description", - "secretsmanager:KmsKeyId", - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "secretsmanager:ResourceTag/tag-key", - "secretsmanager:AddReplicaRegions", - "secretsmanager:ForceOverwriteReplicaSecret", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -247568,47 +293815,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the resource policy attached to a secret", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of the tags (keys and values) that are associated with a specific resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set", }, { - ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a secret", - Privilege: "DeleteSecret", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "deliverability-test-report", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:RecoveryWindowInDays", - "secretsmanager:ForceDeleteWithoutRecovery", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -247616,22 +293849,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the metadata about a secret, but not the encrypted data", - Privilege: "DescribeSecret", + AccessLevel: "Write", + Description: "Grants permission to enable or disable the automatic warm-up feature for dedicated IP addresses", + Privilege: "PutAccountDedicatedIpWarmupAttributes", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Secret*", - }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -247639,34 +293863,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to generate a random string for use in password creation", - Privilege: "GetRandomPassword", + AccessLevel: "Write", + Description: "Grants permission to enable or disable the ability of your account to send email", + Privilege: "PutAccountSendingAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the resource policy attached to a secret", - Privilege: "GetResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to associate a configuration set with a dedicated IP pool", + Privilege: "PutConfigurationSetDeliveryOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", }, DependentActions: []string{}, ResourceType: "", @@ -247674,24 +293897,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve and decrypt the encrypted data", - Privilege: "GetSecretValue", + AccessLevel: "Write", + Description: "Grants permission to enable or disable collection of reputation metrics for emails that you send using a particular configuration set", + Privilege: "PutConfigurationSetReputationOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:VersionId", - "secretsmanager:VersionStage", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", }, DependentActions: []string{}, ResourceType: "", @@ -247699,22 +293917,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the available versions of a secret", - Privilege: "ListSecretVersionIds", + AccessLevel: "Write", + Description: "Grants permission to enable or disable email sending for messages that use a particular configuration set", + Privilege: "PutConfigurationSetSendingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", }, DependentActions: []string{}, ResourceType: "", @@ -247722,35 +293937,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the available secrets", - Privilege: "ListSecrets", + AccessLevel: "Write", + Description: "Grants permission to specify a custom domain to use for open and click tracking elements in email that you send using a particular configuration set", + Privilege: "PutConfigurationSetTrackingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "configuration-set*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a resource policy to a secret", - Privilege: "PutResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to move a dedicated IP address to an existing dedicated IP pool", + Privilege: "PutDedicatedIpInPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "dedicated-ip-pool*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:BlockPublicPolicy", - "secretsmanager:SecretPrimaryRegion", }, DependentActions: []string{}, ResourceType: "", @@ -247759,21 +293978,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new version of the secret with new encrypted data", - Privilege: "PutSecretValue", + Description: "Grants permission to enable dedicated IP warm up attributes", + Privilege: "PutDedicatedIpWarmupAttributes", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Secret*", - }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -247782,21 +293992,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove regions from replication", - Privilege: "RemoveRegionsFromReplication", + Description: "Grants permission to enable or disable the Deliverability dashboard", + Privilege: "PutDeliverabilityDashboardOption", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Secret*", - }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -247805,23 +294006,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to convert an existing secret to a multi-Region secret and begin replicating the secret to a list of new regions", - Privilege: "ReplicateSecretToRegions", + Description: "Grants permission to enable or disable DKIM authentication for an email identity", + Privilege: "PutEmailIdentityDkimAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", - "secretsmanager:AddReplicaRegions", - "secretsmanager:ForceOverwriteReplicaSecret", }, DependentActions: []string{}, ResourceType: "", @@ -247830,21 +294026,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to cancel deletion of a secret", - Privilege: "RestoreSecret", + Description: "Grants permission to enable or disable feedback forwarding for an identity", + Privilege: "PutEmailIdentityFeedbackAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", }, DependentActions: []string{}, ResourceType: "", @@ -247853,24 +294046,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start rotation of a secret", - Privilege: "RotateSecret", + Description: "Grants permission to enable or disable the custom MAIL FROM domain configuration for an email identity", + Privilege: "PutEmailIdentityMailFromAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:RotationLambdaARN", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", - "secretsmanager:ModifyRotationRules", - "secretsmanager:RotateImmediately", }, DependentActions: []string{}, ResourceType: "", @@ -247879,21 +294066,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the secret from replication and promote the secret to a regional secret in the replica Region", - Privilege: "StopReplicationToReplica", + Description: "Grants permission to send an email message", + Privilege: "SendEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", }, DependentActions: []string{}, ResourceType: "", @@ -247902,47 +294089,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to add tags to a secret", + Description: "Grants permission to add one or more tags (keys and values) to a specified resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set", }, { - ConditionKeys: []string{ - "secretsmanager:SecretId", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a secret", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "deliverability-test-report", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", + "ses:ApiVersion", "aws:TagKeys", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -247950,48 +294124,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a secret with new metadata or with a new version of the encrypted data", - Privilege: "UpdateSecret", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags (keys and values) from a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set", }, { - ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:Description", - "secretsmanager:KmsKeyId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to move a stage from one secret to another", - Privilege: "UpdateSecretVersionStage", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "deliverability-test-report", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity", }, { ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:VersionStage", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", - "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", + "ses:ApiVersion", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -247999,22 +294159,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to validate a resource policy before attaching policy", - Privilege: "ValidateResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to update the configuration of an event destination for a configuration set", + Privilege: "UpdateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Secret*", + ResourceType: "configuration-set*", }, { - ConditionKeys: []string{ - "secretsmanager:SecretId", - "secretsmanager:resource/AllowRotationLambdaArn", - "secretsmanager:ResourceTag/tag-key", + ConditionKeys: []string{ + "ses:ApiVersion", "aws:ResourceTag/${TagKey}", - "secretsmanager:SecretPrimaryRegion", }, DependentActions: []string{}, ResourceType: "", @@ -248024,186 +294181,227 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:secretsmanager:${Region}:${Account}:secret:${SecretId}", + Arn: "arn:${Partition}:ses:${Region}:${Account}:configuration-set/${ConfigurationSetName}", ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - "secretsmanager:ResourceTag/tag-key", - "secretsmanager:resource/AllowRotationLambdaArn", }, - Resource: "Secret", + Resource: "configuration-set", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:dedicated-ip-pool/${DedicatedIPPool}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dedicated-ip-pool", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:deliverability-test-report/${ReportId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deliverability-test-report", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:identity/${IdentityName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "identity", }, }, - ServiceName: "AWS Secrets Manager", + ServiceName: "Amazon Pinpoint Email Service", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by actions based on the presence of tag key-value pairs in the request", + Description: "Filters access by the presence of tag key-value pairs in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by actions based on tag key-value pairs attached to the resource", + Description: "Filters access by tag key-value pairs attached to the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by actions based on the presence of tag keys in the request", + Description: "Filters access by the presence of tag keys in the request", Type: "ArrayOfString", }, { - Condition: "securityhub:ASFFSyntaxPath/${ASFFSyntaxPath}", - Description: "Filters access by the specified fields and values in the request", - Type: "String", + Condition: "ses:AddonSubscriptionArn", + Description: "Filters access by SES Addon Subscription ARN", + Type: "ARN", }, { - Condition: "securityhub:TargetAccount", - Description: "Filters access by the AwsAccountId field that is specified in the request", + Condition: "ses:MailManagerIngressPointType", + Description: "Filters access by SES Mail Manager ingress point type, for example OPEN or AUTH", Type: "String", }, + { + Condition: "ses:MailManagerRuleSetArn", + Description: "Filters access by SES Mail Manager rule set ARN", + Type: "ARN", + }, + { + Condition: "ses:MailManagerTrafficPolicyArn", + Description: "Filters access by SES Mail Manager traffic policy ARN", + Type: "ARN", + }, }, - Prefix: "securityhub", + Prefix: "ses", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to accept Security Hub invitations to become a member account", - Privilege: "AcceptAdministratorInvitation", + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for Mail Manager resources", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-ingress-point", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to accept Security Hub invitations to become a member account", - Privilege: "AcceptInvitation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-rule-set", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete one or more automation rules in Security Hub", - Privilege: "BatchDeleteAutomationRules", + Description: "Grants permission to create an addon instance", + Privilege: "CreateAddonInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ses:AddonSubscriptionArn", + }, DependentActions: []string{}, - ResourceType: "automation-rule*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable standards in Security Hub", - Privilege: "BatchDisableStandards", + Description: "Grants permission to create an addon subscription", + Privilege: "CreateAddonSubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable standards in Security Hub", - Privilege: "BatchEnableStandards", + Description: "Grants permission to create an address list", + Privilege: "CreateAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of details for automation rules from Security Hub based on rule Amazon Resource Names (ARNs)", - Privilege: "BatchGetAutomationRules", + AccessLevel: "Write", + Description: "Grants permission to create an import job on an address list", + Privilege: "CreateAddressListImportJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "automation-rule*", + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about configuration policies associated with a specific list of member accounts and organizational units of the calling account's organization", - Privilege: "BatchGetConfigurationPolicyAssociations", + AccessLevel: "Write", + Description: "Grants permission to create an archive", + Privilege: "CreateArchive", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the enablement and compliance status of controls, the findings count for controls, and the overall security score for controls on the Security Hub console", - Privilege: "BatchGetControlEvaluations", + AccessLevel: "Write", + Description: "Grants permission to create an ingress point", + Privilege: "CreateIngressPoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "hub", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ses:MailManagerRuleSetArn", + "ses:MailManagerTrafficPolicyArn", + }, + DependentActions: []string{ + "ec2:DescribeVpcEndpoints", + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get details about specific security controls identified by ID or ARN", - Privilege: "BatchGetSecurityControls", + AccessLevel: "Write", + Description: "Grants permission to create a SMTP relay", + Privilege: "CreateRelay", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "securityhub:DescribeStandardsControls", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the enablement status of a batch of security controls in standards", - Privilege: "BatchGetStandardsControlAssociations", + AccessLevel: "Write", + Description: "Grants permission to create a rule set", + Privilege: "CreateRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "securityhub:DescribeStandardsControls", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to import findings into Security Hub from an integrated product", - Privilege: "BatchImportFindings", + Description: "Grants permission to create a traffic policy", + Privilege: "CreateTrafficPolicy", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "product*", - }, { ConditionKeys: []string{ - "securityhub:TargetAccount", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -248212,29 +294410,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update one or more automation rules from Security Hub based on rule Amazon Resource Names (ARNs) and input parameters", - Privilege: "BatchUpdateAutomationRules", + Description: "Grants permission to delete an addon instance", + Privilege: "DeleteAddonInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-rule*", + ResourceType: "addon-instance*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update customer-controlled fields for a selected set of Security Hub findings", - Privilege: "BatchUpdateFindings", + Description: "Grants permission to delete an addon subscription", + Privilege: "DeleteAddonSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "addon-subscription*", }, { ConditionKeys: []string{ - "securityhub:ASFFSyntaxPath/${ASFFSyntaxPath}", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -248243,39 +294448,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the enablement status of a batch of security controls in standards", - Privilege: "BatchUpdateStandardsControlAssociations", + Description: "Grants permission to delete an address list", + Privilege: "DeleteAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "securityhub:UpdateStandardsControl", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "mailmanager-address-list*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create custom actions in Security Hub", - Privilege: "CreateActionTarget", + Description: "Grants permission to delete an archive", + Privilege: "DeleteArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an automation rule based on input parameters", - Privilege: "CreateAutomationRule", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", - "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -248284,13 +294481,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a configuration policy to manage organization member settings in Security Hub", - Privilege: "CreateConfigurationPolicy", + Description: "Grants permission to delete an ingress point", + Privilege: "DeleteIngressPoint", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-ingress-point*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", - "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -248299,312 +294500,304 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a finding aggregator, which contains the cross-Region finding aggregation configuration", - Privilege: "CreateFindingAggregator", + Description: "Grants permission to delete a SMTP relay", + Privilege: "DeleteRelay", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "mailmanager-smtp-relay*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create insights in Security Hub. Insights are collections of related findings", - Privilege: "CreateInsight", + Description: "Grants permission to delete a rule set", + Privilege: "DeleteRuleSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-rule-set*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create member accounts in Security Hub", - Privilege: "CreateMembers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to decline Security Hub invitations to become a member account", - Privilege: "DeclineInvitations", + Description: "Grants permission to delete a traffic point", + Privilege: "DeleteTrafficPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-traffic-policy*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete custom actions in Security Hub", - Privilege: "DeleteActionTarget", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing configuration policy", - Privilege: "DeleteConfigurationPolicy", + Description: "Grants permission to remove a member from an address list", + Privilege: "DeregisterMemberFromAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "configuration-policy*", + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a finding aggregator, which disables finding aggregation across Regions", - Privilege: "DeleteFindingAggregator", + AccessLevel: "Read", + Description: "Grants permission to get information about an addon instance", + Privilege: "GetAddonInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "finding-aggregator*", + ResourceType: "addon-instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete insights from Security Hub", - Privilege: "DeleteInsight", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete Security Hub invitations to become a member account", - Privilege: "DeleteInvitations", + AccessLevel: "Read", + Description: "Grants permission to get information about an addon subscription", + Privilege: "GetAddonSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "addon-subscription*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete Security Hub member accounts", - Privilege: "DeleteMembers", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of custom actions using the API", - Privilege: "DescribeActionTargets", + Description: "Grants permission to get information about an address list", + Privilege: "GetAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the hub resource in your account", - Privilege: "DescribeHub", + Description: "Grants permission to get information about an import job on an address list", + Privilege: "GetAddressListImportJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the organization configuration for Security Hub", - Privilege: "DescribeOrganizationConfiguration", + Description: "Grants permission to get information about an archive", + Privilege: "GetArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about the available Security Hub product integrations", - Privilege: "DescribeProducts", + Description: "Grants permission to get information about an archive export", + Privilege: "GetArchiveExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about Security Hub standards", - Privilege: "DescribeStandards", + Description: "Grants permission to retrieve archived message", + Privilege: "GetArchiveMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about Security Hub standards controls", - Privilege: "DescribeStandardsControls", + Description: "Grants permission to retrieve archived message content", + Privilege: "GetArchiveMessageContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable the findings importing for a Security Hub integrated product", - Privilege: "DisableImportFindingsForProduct", + AccessLevel: "Read", + Description: "Grants permission to get information about a search", + Privilege: "GetArchiveSearch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the Security Hub administrator account for your organization", - Privilege: "DisableOrganizationAdminAccount", + AccessLevel: "Read", + Description: "Grants permission to get information about search results", + Privilege: "GetArchiveSearchResults", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "hub", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable Security Hub", - Privilege: "DisableSecurityHub", + AccessLevel: "Read", + Description: "Grants permission to get information about an ingress point", + Privilege: "GetIngressPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-ingress-point*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to a Security Hub member account to disassociate from the associated administrator account", - Privilege: "DisassociateFromAdministratorAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to a Security Hub member account to disassociate from the associated master account", - Privilege: "DisassociateFromMasterAccount", + AccessLevel: "Read", + Description: "Grants permission to get information about a member in an address list", + Privilege: "GetMemberOfAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate Security Hub member accounts from the associated administrator account", - Privilege: "DisassociateMembers", + AccessLevel: "Read", + Description: "Grants permission to get information about a SMTP relay", + Privilege: "GetRelay", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-smtp-relay*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable the findings importing for a Security Hub integrated product", - Privilege: "EnableImportFindingsForProduct", + AccessLevel: "Read", + Description: "Grants permission to get information about a rule set", + Privilege: "GetRuleSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-rule-set*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to designate a Security Hub administrator account for your organization", - Privilege: "EnableOrganizationAdminAccount", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - "organizations:EnableAWSServiceAccess", - "organizations:RegisterDelegatedAdministrator", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", }, - ResourceType: "hub", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable Security Hub", - Privilege: "EnableSecurityHub", + AccessLevel: "Read", + Description: "Grants permission to get information about a traffic policy", + Privilege: "GetTrafficPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-traffic-policy*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", - "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -248612,45 +294805,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve insight results by providing a set of filters instead of an insight ARN", - Privilege: "GetAdhocInsightResults", + AccessLevel: "List", + Description: "Grants permission to list all of the addon instances associated with your account", + Privilege: "ListAddonInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about the Security Hub administrator account", - Privilege: "GetAdministratorAccount", + AccessLevel: "List", + Description: "Grants permission to list all of the addon subscriptions associated with your account", + Privilege: "ListAddonSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a complete overview of one configuration policy created by the calling account", - Privilege: "GetConfigurationPolicy", + AccessLevel: "List", + Description: "Grants permission to list all of the import jobs associated with an address list", + Privilege: "ListAddressListImportJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "configuration-policy*", + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a configuration policy associated with a member account or organizational unit of the calling account's organization", - Privilege: "GetConfigurationPolicyAssociation", + AccessLevel: "List", + Description: "Grants permission to list all of the address lists associated with your account", + Privilege: "ListAddressLists", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -248660,702 +294855,681 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a security score and counts of finding and control statuses for a security standard", - Privilege: "GetControlFindingSummary", + AccessLevel: "List", + Description: "Grants permission to list all of the archive exports associated with your account", + Privilege: "ListArchiveExports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of the standards that are enabled in Security Hub", - Privilege: "GetEnabledStandards", + Description: "Grants permission to list all of the archive searches associated with your account", + Privilege: "ListArchiveSearches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve details for a finding aggregator, which configures finding aggregation across Regions", - Privilege: "GetFindingAggregator", + AccessLevel: "List", + Description: "Grants permission to list all of the archives associated with your account", + Privilege: "ListArchives", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "finding-aggregator*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of finding history from Security Hub", - Privilege: "GetFindingHistory", + AccessLevel: "List", + Description: "Grants permission to list all of the ingress points associated with your account", + Privilege: "ListIngressPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of findings from Security Hub", - Privilege: "GetFindings", + AccessLevel: "List", + Description: "Grants permission to list all of the members associated with an address list", + Privilege: "ListMembersOfAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the end date for an account's free trial of Security Hub", - Privilege: "GetFreeTrialEndDate", + AccessLevel: "List", + Description: "Grants permission to list all of the SMTP relays associated with your account", + Privilege: "ListRelays", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about Security Hub usage during the free trial period", - Privilege: "GetFreeTrialUsage", + AccessLevel: "List", + Description: "Grants permission to list all of the rule sets associated with your account", + Privilege: "ListRuleSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an insight finding trend from Security Hub in order to generate a graph", - Privilege: "GetInsightFindingTrend", + Description: "Grants permission to list all of the tags associated with the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "addon-instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve insight results from Security Hub", - Privilege: "GetInsightResults", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "addon-subscription", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve Security Hub insights", - Privilege: "GetInsights", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the count of Security Hub membership invitations sent to the account", - Privilege: "GetInvitationsCount", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-ingress-point", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about the Security Hub master account", - Privilege: "GetMasterAccount", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-rule-set", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-smtp-relay", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-traffic-policy", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details of Security Hub member accounts", - Privilege: "GetMembers", + AccessLevel: "List", + Description: "Grants permission to list all of the traffic policies associated with your account", + Privilege: "ListTrafficPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the definition details of a specific security control identified by ID", - Privilege: "GetSecurityControlDefinition", + AccessLevel: "Write", + Description: "Grants permission to add a member to an address list", + Privilege: "RegisterMemberToAddressList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "securityhub:DescribeStandardsControls", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about Security Hub usage by accounts", - Privilege: "GetUsage", + AccessLevel: "Write", + Description: "Grants permission to start an import job on an address list", + Privilege: "StartAddressListImportJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invite other AWS accounts to become Security Hub member accounts", - Privilege: "InviteMembers", + Description: "Grants permission to start an archive export", + Privilege: "StartArchiveExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of automation rules and their metadata for the calling account from Security Hub", - Privilege: "ListAutomationRules", + AccessLevel: "Write", + Description: "Grants permission to start an archive search", + Privilege: "StartArchiveSearch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the summaries of all configuration policies created by the calling account", - Privilege: "ListConfigurationPolicies", + AccessLevel: "Write", + Description: "Grants permission to stop an ongoing import job on an address list", + Privilege: "StopAddressListImportJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mailmanager-address-list*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve information about all configuration policies associationed with all member accounts and organizational units of the calling account's organization", - Privilege: "ListConfigurationPolicyAssociations", + AccessLevel: "Write", + Description: "Grants permission to stop archive export", + Privilege: "StopArchiveExport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of controls for a standard, including the control IDs, statuses and finding counts", - Privilege: "ListControlEvaluationSummaries", + AccessLevel: "Write", + Description: "Grants permission to stop archive search", + Privilege: "StopArchiveSearch", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the Security Hub integrated products that are currently enabled", - Privilege: "ListEnabledProductsForImport", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags (keys and values) to a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "addon-instance", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of finding aggregators, which contain the cross-Region finding aggregation configuration", - Privilege: "ListFindingAggregators", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "addon-subscription", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve the Security Hub invitations sent to the account", - Privilege: "ListInvitations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve details about Security Hub member accounts associated with the administrator account", - Privilege: "ListMembers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the Security Hub administrator accounts for your organization", - Privilege: "ListOrganizationAdminAccounts", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "hub", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-ingress-point", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of security control definitions, which contain details for security controls in the current region", - Privilege: "ListSecurityControlDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mailmanager-rule-set", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the enablement status of a security control in standards", - Privilege: "ListStandardsControlAssociations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "securityhub:DescribeStandardsControls", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-smtp-relay", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-traffic-policy", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list of tags associated with a resource", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags (keys and values) from a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-rule", + ResourceType: "addon-instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-policy", + ResourceType: "addon-subscription", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-address-list", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to use a custom action to send Security Hub findings to Amazon EventBridge", - Privilege: "SendFindingEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-archive", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to use a custom action to send Security Hub insights to Amazon EventBridge", - Privilege: "SendInsightEvents", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-ingress-point", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-rule-set", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-smtp-relay", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "mailmanager-traffic-policy", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a configuration policy with a member account or organizational unit in the calling account's organization", - Privilege: "StartConfigurationPolicyAssociation", + Description: "Grants permission to update an archive", + Privilege: "UpdateArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-policy", + ResourceType: "mailmanager-archive*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a configuration policy association from a member account or organizational unit in the calling account's organization", - Privilege: "StartConfigurationPolicyDisassociation", + Description: "Grants permission to update an ingress point", + Privilege: "UpdateIngressPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-policy", + ResourceType: "mailmanager-ingress-point*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "ses:MailManagerTrafficPolicyArn", + "ses:MailManagerRuleSetArn", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a Security Hub resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update a SMTP relay", + Privilege: "UpdateRelay", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-rule", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configuration-policy", + ResourceType: "mailmanager-smtp-relay*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a Security Hub resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update a rule set", + Privilege: "UpdateRuleSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-rule", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configuration-policy", + ResourceType: "mailmanager-rule-set*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update custom actions in Security Hub", - Privilege: "UpdateActionTarget", + Description: "Grants permission to update a traffic policy", + Privilege: "UpdateTrafficPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "mailmanager-traffic-policy*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:addon-instance/${AddonInstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "addon-instance", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:addon-subscription/${AddonSubscriptionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "addon-subscription", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-archive/${ArchiveId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mailmanager-archive", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-ingress-point/${IngressPointId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ses:MailManagerIngressPointType", + }, + Resource: "mailmanager-ingress-point", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-smtp-relay/${RelayId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mailmanager-smtp-relay", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-rule-set/${RuleSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mailmanager-rule-set", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-traffic-policy/${TrafficPolicyId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mailmanager-traffic-policy", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-address-list/${AddressListId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mailmanager-address-list", + }, + }, + ServiceName: "Amazon Simple Email Service - Mail Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "ses:ApiVersion", + Description: "Filters actions based on the SES API version", + Type: "String", + }, + { + Condition: "ses:FeedbackAddress", + Description: "Filters actions based on the \"Return-Path\" address, which specifies where bounces and complaints are sent by email feedback forwarding", + Type: "String", + }, + { + Condition: "ses:FromAddress", + Description: "Filters actions based on the \"From\" address of a message", + Type: "String", + }, + { + Condition: "ses:FromDisplayName", + Description: "Filters actions based on the \"From\" address that is used as the display name of a message", + Type: "String", + }, + { + Condition: "ses:Recipients", + Description: "Filters actions based on the recipient addresses of a message, which include the \"To\", \"CC\", and \"BCC\" addresses", + Type: "ArrayOfString", + }, + }, + Prefix: "ses", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update an existing configuration policy", - Privilege: "UpdateConfigurationPolicy", + Description: "Grants permission to create a receipt rule set by cloning an existing one", + Privilege: "CloneReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "configuration-policy*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a finding aggregator, which contains the cross-Region finding aggregation configuration", - Privilege: "UpdateFindingAggregator", + Description: "Grants permission to create a new configuration set", + Privilege: "CreateConfigurationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "finding-aggregator*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Security Hub findings", - Privilege: "UpdateFindings", + Description: "Grants permission to create a configuration set event destination", + Privilege: "CreateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update insights in Security Hub", - Privilege: "UpdateInsight", + Description: "Grants permission to creates an association between a configuration set and a custom domain for open and click event tracking", + Privilege: "CreateConfigurationSetTrackingOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the organization configuration for Security Hub", - Privilege: "UpdateOrganizationConfiguration", + Description: "Grants permission to create a new custom verification email template", + Privilege: "CreateCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update properties of a specific security control identified by ID or ARN", - Privilege: "UpdateSecurityControl", + Description: "Grants permission to create a new IP address filter", + Privilege: "CreateReceiptFilter", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "securityhub:UpdateStandardsControl", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Security Hub configuration", - Privilege: "UpdateSecurityHubConfiguration", + Description: "Grants permission to create a receipt rule", + Privilege: "CreateReceiptRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update Security Hub standards controls", - Privilege: "UpdateStandardsControl", + Description: "Grants permission to create an empty receipt rule set", + Privilege: "CreateReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "hub", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:securityhub:${Region}:${Account}:hub/default", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "hub", - }, - { - Arn: "arn:${Partition}:securityhub:${Region}:${Account}:product/${Company}/${ProductId}", - ConditionKeys: []string{}, - Resource: "product", - }, - { - Arn: "arn:${Partition}:securityhub:${Region}:${Account}:finding-aggregator/${FindingAggregatorId}", - ConditionKeys: []string{}, - Resource: "finding-aggregator", - }, - { - Arn: "arn:${Partition}:securityhub:${Region}:${Account}:automation-rule/${AutomationRuleId}", - ConditionKeys: []string{}, - Resource: "automation-rule", - }, - { - Arn: "arn:${Partition}:securityhub:${Region}:${Account}:configuration-policy/${ConfigurationPolicyId}", - ConditionKeys: []string{}, - Resource: "configuration-policy", - }, - }, - ServiceName: "AWS Security Hub", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "securitylake", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to enable any source type in any region for accounts that are either part of a trusted organization or standalone account", - Privilege: "CreateAwsLogSource", + Description: "Grants permission to creates an email template", + Privilege: "CreateTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:CreateDatabase", - "glue:CreateTable", - "glue:GetDatabase", - "glue:GetTable", - "iam:CreateServiceLinkedRole", - "kms:CreateGrant", - "kms:DescribeKey", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "data-lake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a custom source", - Privilege: "CreateCustomLogSource", + Description: "Grants permission to delete an existing configuration set", + Privilege: "DeleteConfigurationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:CreateCrawler", - "glue:CreateDatabase", - "glue:CreateTable", - "glue:StartCrawlerSchedule", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:PassRole", - "iam:PutRolePolicy", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:GenerateDataKey", - "lakeformation:GrantPermissions", - "lakeformation:RegisterResource", - "s3:ListBucket", - "s3:PutObject", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "data-lake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new security data lake", - Privilege: "CreateDataLake", + Description: "Grants permission to delete an event destination", + Privilege: "DeleteConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:PutRule", - "events:PutTargets", - "iam:CreateServiceLinkedRole", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:PassRole", - "iam:PutRolePolicy", - "kms:CreateGrant", - "kms:DescribeKey", - "lakeformation:GetDataLakeSettings", - "lakeformation:PutDataLakeSettings", - "lambda:AddPermission", - "lambda:CreateEventSourceMapping", - "lambda:CreateFunction", - "organizations:DescribeOrganization", - "organizations:ListAccounts", - "organizations:ListDelegatedServicesForAccount", - "s3:CreateBucket", - "s3:GetObject", - "s3:GetObjectVersion", - "s3:ListBucket", - "s3:PutBucketPolicy", - "s3:PutBucketPublicAccessBlock", - "s3:PutBucketVersioning", - "sqs:CreateQueue", - "sqs:GetQueueAttributes", - "sqs:SetQueueAttributes", - }, - ResourceType: "data-lake*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -249364,11 +295538,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to get instant notifications about exceptions. Subscribes to the SNS topics for exception notifications", - Privilege: "CreateDataLakeExceptionSubscription", + Description: "Grants permission to delete an association between a configuration set and a custom domain for open and click event tracking", + Privilege: "DeleteConfigurationSetTrackingOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -249376,123 +295552,97 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to automatically enable Amazon Security Lake for new member accounts in your organization", - Privilege: "CreateDataLakeOrganizationConfiguration", + Description: "Grants permission to delete an existing custom verification email template", + Privilege: "DeleteCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "data-lake*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a subscriber", - Privilege: "CreateSubscriber", + Description: "Grants permission to delete the specified identity", + Privilege: "DeleteIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "iam:CreateRole", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:PutRolePolicy", - "lakeformation:GrantPermissions", - "lakeformation:ListPermissions", - "lakeformation:RegisterResource", - "lakeformation:RevokePermissions", - "ram:GetResourceShareAssociations", - "ram:GetResourceShares", - "ram:UpdateResourceShare", - "s3:PutObject", + "ses:ApiVersion", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a webhook invocation to notify a client when there is new data in the data lake", - Privilege: "CreateSubscriberNotification", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified sending authorization policy for the given identity (an email address or a domain)", + Privilege: "DeleteIdentityPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:CreateApiDestination", - "events:CreateConnection", - "events:DescribeRule", - "events:ListApiDestinations", - "events:ListConnections", - "events:PutRule", - "events:PutTargets", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:PassRole", - "s3:GetBucketNotification", - "s3:PutBucketNotification", - "sqs:CreateQueue", - "sqs:DeleteQueue", - "sqs:GetQueueAttributes", - "sqs:GetQueueUrl", - "sqs:SetQueueAttributes", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "subscriber*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable any source type in any region for accounts that are part of a trusted organization or standalone accounts", - Privilege: "DeleteAwsLogSource", + Description: "Grants permission to delete the specified IP address filter", + Privilege: "DeleteReceiptFilter", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "data-lake*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a custom source", - Privilege: "DeleteCustomLogSource", + Description: "Grants permission to delete the specified receipt rule", + Privilege: "DeleteReceiptRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "glue:StopCrawlerSchedule", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "data-lake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete security data lake", - Privilege: "DeleteDataLake", + Description: "Grants permission to delete the specified receipt rule set and all of the receipt rules it contains", + Privilege: "DeleteReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - "organizations:ListDelegatedAdministrators", - "organizations:ListDelegatedServicesForAccount", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "data-lake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to unsubscribe from SNS topics for exception notifications. Removes exception notifications for the SNS topic", - Privilege: "DeleteDataLakeExceptionSubscription", + Description: "Grants permission to delete an email template", + Privilege: "DeleteTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -249500,94 +295650,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the automatic enablement of Amazon Security Lake access for new organization accounts", - Privilege: "DeleteDataLakeOrganizationConfiguration", + Description: "Grants permission to delete the specified email address from the list of verified addresses", + Privilege: "DeleteVerifiedEmailAddress", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "data-lake*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified subscriber", - Privilege: "DeleteSubscriber", + AccessLevel: "Read", + Description: "Grants permission to return the metadata and receipt rules for the receipt rule set that is currently active", + Privilege: "DescribeActiveReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:DeleteApiDestination", - "events:DeleteConnection", - "events:DeleteRule", - "events:DescribeRule", - "events:ListApiDestinations", - "events:ListTargetsByRule", - "events:RemoveTargets", - "iam:DeleteRole", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:ListRolePolicies", - "lakeformation:ListPermissions", - "lakeformation:RevokePermissions", - "sqs:DeleteQueue", - "sqs:GetQueueUrl", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "subscriber*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a webhook invocation to notify a client when there is new data in the data lake", - Privilege: "DeleteSubscriberNotification", + AccessLevel: "Read", + Description: "Grants permission to return the details of the specified configuration set", + Privilege: "DescribeConfigurationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:DeleteApiDestination", - "events:DeleteConnection", - "events:DeleteRule", - "events:DescribeRule", - "events:ListApiDestinations", - "events:ListTargetsByRule", - "events:RemoveTargets", - "iam:DeleteRole", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:ListRolePolicies", - "lakeformation:RevokePermissions", - "sqs:DeleteQueue", - "sqs:GetQueueUrl", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "subscriber*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the Delegated Administrator account and disable Amazon Security Lake as a service for this organization", - Privilege: "DeregisterDataLakeDelegatedAdministrator", + AccessLevel: "Read", + Description: "Grants permission to return the details of the specified receipt rule", + Privilege: "DescribeReceiptRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DeregisterDelegatedAdministrator", - "organizations:DescribeOrganization", - "organizations:ListDelegatedServicesForAccount", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to query the protocol and endpoint that were provided when subscribing to SNS topics for exception notifications", - Privilege: "GetDataLakeExceptionSubscription", + Description: "Grants permission to return the details of the specified receipt rule set", + Privilege: "DescribeReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -249595,145 +295720,138 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an organization’s configuration setting for automatically enabling Amazon Security Lake access for new organization accounts", - Privilege: "GetDataLakeOrganizationConfiguration", + Description: "Grants permission to return the email sending status of your account", + Privilege: "GetAccountSendingEnabled", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "data-lake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a static snapshot of the security data lake in the current region. The snapshot includes enabled accounts and log sources", - Privilege: "GetDataLakeSources", + Description: "Grants permission to return the custom email verification template for the template name you specify", + Privilege: "GetCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "data-lake*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about subscriber that is already created", - Privilege: "GetSubscriber", + Description: "Grants permission to return the current status of Easy DKIM signing for an entity", + Privilege: "GetIdentityDkimAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "subscriber*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get the list of all non-retryable failures", - Privilege: "ListDataLakeExceptions", + AccessLevel: "Read", + Description: "Grants permission to return the custom MAIL FROM attributes for a list of identities (email addresses and/or domains)", + Privilege: "GetIdentityMailFromDomainAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list information about the security data lakes", - Privilege: "ListDataLakes", + AccessLevel: "Read", + Description: "Grants permission to return a structure describing identity notification attributes for a list of verified identities (email addresses and/or domains),", + Privilege: "GetIdentityNotificationAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view the enabled accounts. You can view the enabled sources in the enabled regions", - Privilege: "ListLogSources", + AccessLevel: "Read", + Description: "Grants permission to return the requested sending authorization policies for the given identity (an email address or a domain)", + Privilege: "GetIdentityPolicies", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all subscribers", - Privilege: "ListSubscribers", + AccessLevel: "Read", + Description: "Grants permission to return the verification status and (for domain identities) the verification token for a list of identities", + Privilege: "GetIdentityVerificationAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all tags for the resource", - Privilege: "ListTagsForResource", + AccessLevel: "Read", + Description: "Grants permission to return the user's current sending limits", + Privilege: "GetSendQuota", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-lake", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "subscriber", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to designate an account as the Amazon Security Lake administrator account for the organization", - Privilege: "RegisterDataLakeDelegatedAdministrator", + AccessLevel: "Read", + Description: "Grants permission to returns the user's sending statistics", + Privilege: "GetSendStatistics", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:DescribeOrganization", - "organizations:EnableAWSServiceAccess", - "organizations:ListDelegatedAdministrators", - "organizations:ListDelegatedServicesForAccount", - "organizations:RegisterDelegatedAdministrator", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to return the template object, which includes the subject line, HTML par, and text part for the template you specify", + Privilege: "GetTemplate", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-lake", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subscriber", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -249741,23 +295859,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list all of the configuration sets for your account", + Privilege: "ListConfigurationSets", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "data-lake", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "subscriber", - }, { ConditionKeys: []string{ - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -249765,185 +295873,97 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a security data lake", - Privilege: "UpdateDataLake", + AccessLevel: "List", + Description: "Grants permission to list all of the existing custom verification email templates for your account", + Privilege: "ListCustomVerificationEmailTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:PutRule", - "events:PutTargets", - "iam:CreateServiceLinkedRole", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:PutRolePolicy", - "kms:CreateGrant", - "kms:DescribeKey", - "lakeformation:GetDataLakeSettings", - "lakeformation:PutDataLakeSettings", - "lambda:AddPermission", - "lambda:CreateEventSourceMapping", - "lambda:CreateFunction", - "organizations:DescribeOrganization", - "organizations:ListDelegatedServicesForAccount", - "s3:CreateBucket", - "s3:GetObject", - "s3:GetObjectVersion", - "s3:ListBucket", - "s3:PutBucketPolicy", - "s3:PutBucketPublicAccessBlock", - "s3:PutBucketVersioning", - "sqs:CreateQueue", - "sqs:GetQueueAttributes", - "sqs:SetQueueAttributes", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "data-lake*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update subscriptions to the SNS topics for exception notifications", - Privilege: "UpdateDataLakeExceptionSubscription", + AccessLevel: "List", + Description: "Grants permission to list the email identities for your account", + Privilege: "ListIdentities", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update subscriber", - Privilege: "UpdateSubscriber", + AccessLevel: "List", + Description: "Grants permission to list all of the email templates for your account", + Privilege: "ListIdentityPolicies", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:CreateApiDestination", - "events:CreateConnection", - "events:DescribeRule", - "events:ListApiDestinations", - "events:ListConnections", - "events:PutRule", - "events:PutTargets", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:PutRolePolicy", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "subscriber*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a webhook invocation to notify a client when there is new data in the data lake", - Privilege: "UpdateSubscriberNotification", + AccessLevel: "Read", + Description: "Grants permission to list the IP address filters associated with your account", + Privilege: "ListReceiptFilters", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "events:CreateApiDestination", - "events:CreateConnection", - "events:DescribeRule", - "events:ListApiDestinations", - "events:ListConnections", - "events:PutRule", - "events:PutTargets", - "iam:CreateServiceLinkedRole", - "iam:DeleteRolePolicy", - "iam:GetRole", - "iam:PassRole", - "iam:PutRolePolicy", - "s3:CreateBucket", - "s3:GetBucketNotification", - "s3:ListBucket", - "s3:PutBucketNotification", - "s3:PutBucketPolicy", - "s3:PutBucketPublicAccessBlock", - "s3:PutBucketVersioning", - "s3:PutLifecycleConfiguration", - "sqs:CreateQueue", - "sqs:DeleteQueue", - "sqs:GetQueueAttributes", - "sqs:GetQueueUrl", - "sqs:SetQueueAttributes", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "subscriber*", + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:securitylake:${Region}:${Account}:data-lake/default", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - Resource: "data-lake", - }, - { - Arn: "arn:${Partition}:securitylake:${Region}:${Account}:subscriber/${SubscriberId}", - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - Resource: "subscriber", - }, - }, - ServiceName: "Amazon Security Lake", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "serverlessrepo:applicationType", - Description: "Filters access by application type", - Type: "String", - }, - }, - Prefix: "serverlessrepo", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an application, optionally including an AWS SAM file to create the first application version in the same call", - Privilege: "CreateApplication", + AccessLevel: "Read", + Description: "Grants permission to list the receipt rule sets that exist under your account", + Privilege: "ListReceiptRuleSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an application version", - Privilege: "CreateApplicationVersion", + AccessLevel: "List", + Description: "Grants permission to list the email templates present in your account", + Privilege: "ListTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an AWS CloudFormation ChangeSet for the given application", - Privilege: "CreateCloudFormationChangeSet", + AccessLevel: "Read", + Description: "Grants permission to list all of the email addresses that have been verified in your account", + Privilege: "ListVerifiedEmailAddresses", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "applications*", - }, { ConditionKeys: []string{ - "serverlessrepo:applicationType", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -249952,17 +295972,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an AWS CloudFormation template", - Privilege: "CreateCloudFormationTemplate", + Description: "Grants permission to add or update the delivery options for a configuration set", + Privilege: "PutConfigurationSetDeliveryOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to add or update a sending authorization policy for the specified identity (an email address or a domain)", + Privilege: "PutIdentityPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "serverlessrepo:applicationType", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -249971,29 +296000,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified application", - Privilege: "DeleteApplication", + Description: "Grants permission to reorder the receipt rules within a receipt rule set", + Privilege: "ReorderReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the specified application", - Privilege: "GetApplication", + AccessLevel: "Write", + Description: "Grants permission to generate and send a bounce message to the sender of an email you received through Amazon SES", + Privilege: "SendBounce", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "serverlessrepo:applicationType", + "ses:ApiVersion", + "ses:FromAddress", }, DependentActions: []string{}, ResourceType: "", @@ -250001,42 +296033,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the policy for the specified application", - Privilege: "GetApplicationPolicy", + AccessLevel: "Write", + Description: "Grants permission to compose an email message to multiple destinations", + Privilege: "SendBulkTemplatedEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the specified AWS CloudFormation template", - Privilege: "GetCloudFormationTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "template*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve the list of applications nested in the containing application", - Privilege: "ListApplicationDependencies", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "configuration-set", }, { ConditionKeys: []string{ - "serverlessrepo:applicationType", + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", }, DependentActions: []string{}, ResourceType: "", @@ -250044,18 +296066,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list versions for the specified application owned by the requester", - Privilege: "ListApplicationVersions", + AccessLevel: "Write", + Description: "Grants permission to add an email address to the list of identities and attempts to verify it for your account", + Privilege: "SendCustomVerificationEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "serverlessrepo:applicationType", + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", }, DependentActions: []string{}, ResourceType: "", @@ -250063,37 +296089,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list applications owned by the requester", - Privilege: "ListApplications", + AccessLevel: "Write", + Description: "Grants permission to send an email message", + Privilege: "SendEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to put the policy for the specified application", - Privilege: "PutApplicationPolicy", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "configuration-set", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get all applications authorized for this user", - Privilege: "SearchApplications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "serverlessrepo:applicationType", + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", }, DependentActions: []string{}, ResourceType: "", @@ -250102,119 +296118,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to unshare the specified application", - Privilege: "UnshareApplication", + Description: "Grants permission to send an email message, with header and content specified by the client", + Privilege: "SendRawEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update meta-data of the application", - Privilege: "UpdateApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "applications*", + ResourceType: "configuration-set", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:serverlessrepo:${Region}:${Account}:applications/${ResourceId}", - ConditionKeys: []string{}, - Resource: "applications", - }, - }, - ServiceName: "AWS Serverless Application Repository", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "servicecatalog:Resource", - Description: "Filters access by controlling what value can be specified as the Resource parameter in an AppRegistry associate resource API", - Type: "String", - }, - { - Condition: "servicecatalog:ResourceType", - Description: "Filters access by controlling what value can be specified as the ResourceType parameter in an AppRegistry associate resource API", - Type: "String", - }, - { - Condition: "servicecatalog:accountLevel", - Description: "Filters access by user to see and perform actions on resources created by anyone in the account", - Type: "String", - }, - { - Condition: "servicecatalog:roleLevel", - Description: "Filters access by user to see and perform actions on resources created either by them or by anyone federating into the same role as them", - Type: "String", - }, - { - Condition: "servicecatalog:userLevel", - Description: "Filters access by user to see and perform actions on only resources that they created", - Type: "String", - }, - }, - Prefix: "servicecatalog", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept a portfolio that has been shared with you", - Privilege: "AcceptPortfolioShare", + Description: "Grants permission to compose an email message using an email template", + Privilege: "SendTemplatedEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to associate an attribute group with an application", - Privilege: "AssociateAttributeGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "template*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AttributeGroup*", + ResourceType: "configuration-set", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a budget with a resource", - Privilege: "AssociateBudgetWithResource", + Description: "Grants permission to set the specified receipt rule set as the active receipt rule set", + Privilege: "SetActiveReceiptRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250222,23 +296193,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate an IAM principal with a portfolio, giving the specified principal access to any products associated with the specified portfolio", - Privilege: "AssociatePrincipalWithPortfolio", + Description: "Grants permission to enable or disable Easy DKIM signing of email sent from an identity", + Privilege: "SetIdentityDkimEnabled", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a product with a portfolio", - Privilege: "AssociateProductWithPortfolio", + Description: "Grants permission to enable or disable whether Amazon SES forwards bounce and complaint notifications for an identity (an email address or a domain)", + Privilege: "SetIdentityFeedbackForwardingEnabled", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250246,23 +296221,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate a resource with an application", - Privilege: "AssociateResource", + Description: "Grants permission to set whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type for a given identity (an email address or a domain)", + Privilege: "SetIdentityHeadersInNotificationsEnabled", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:DescribeStacks", - "resource-groups:CreateGroup", - "resource-groups:GetGroup", - "resource-groups:Tag", - }, - ResourceType: "Application*", - }, { ConditionKeys: []string{ - "servicecatalog:ResourceType", - "servicecatalog:Resource", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250271,40 +296235,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate an action with a provisioning artifact", - Privilege: "AssociateServiceActionWithProvisioningArtifact", + Description: "Grants permission to enable or disable the custom MAIL FROM domain setup for a verified identity", + Privilege: "SetIdentityMailFromDomain", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate the specified TagOption with the specified portfolio or product", - Privilege: "AssociateTagOptionWithResource", + Description: "Grants permission to set an Amazon Simple Notification Service (Amazon SNS) topic to use when delivering notifications for a verified identity", + Privilege: "SetIdentityNotificationTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Portfolio", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to set the position of the specified receipt rule in the receipt rule set", + Privilege: "SetReceiptRulePosition", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Product", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate multiple self-service actions with provisioning artifacts", - Privilege: "BatchAssociateServiceActionWithProvisioningArtifact", + Description: "Grants permission to create a preview of the MIME content of an email when provided with a template and a set of replacement data", + Privilege: "TestRenderTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250312,11 +296291,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a batch of self-service actions from the specified provisioning artifact", - Privilege: "BatchDisassociateServiceActionFromProvisioningArtifact", + Description: "Grants permission to enable or disable email sending for your account", + Privilege: "UpdateAccountSendingEnabled", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250324,11 +296305,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to copy the specified source product to the specified target product or a new product", - Privilege: "CopyProduct", + Description: "Grants permission to update the event destination of a configuration set", + Privilege: "UpdateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250336,20 +296319,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", + Description: "Grants permission to enable or disable the publishing of reputation metrics for emails sent using a specific configuration set", + Privilege: "UpdateConfigurationSetReputationMetricsEnabled", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "Application*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250358,18 +296333,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an attribute group", - Privilege: "CreateAttributeGroup", + Description: "Grants permission to enable or disable email sending for messages sent using a specific configuration set", + Privilege: "UpdateConfigurationSetSendingEnabled", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "AttributeGroup*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250378,30 +296347,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a constraint on an associated product and portfolio", - Privilege: "CreateConstraint", + Description: "Grants permission to modify an association between a configuration set and a custom domain for open and click event tracking", + Privilege: "UpdateConfigurationSetTrackingOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a portfolio", - Privilege: "CreatePortfolio", + Description: "Grants permission to update an existing custom verification email template", + Privilege: "UpdateCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Portfolio*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250409,31 +296374,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to share a portfolio you own with another AWS account", - Privilege: "CreatePortfolioShare", + AccessLevel: "Write", + Description: "Grants permission to update a receipt rule", + Privilege: "UpdateReceiptRule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a product and that product's first provisioning artifact", - Privilege: "CreateProduct", + Description: "Grants permission to update an email template", + Privilege: "UpdateTemplate", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Product*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250442,14 +296403,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a new provisioned product plan", - Privilege: "CreateProvisionedProductPlan", + Description: "Grants permission to return a set of DKIM tokens for a domain", + Privilege: "VerifyDomainDkim", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250458,23 +296417,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a new provisioning artifact to an existing product", - Privilege: "CreateProvisioningArtifact", + Description: "Grants permission to verify a domain", + Privilege: "VerifyDomainIdentity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a self-service action", - Privilege: "CreateServiceAction", + Description: "Grants permission to verify an email address", + Privilege: "VerifyEmailAddress", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250482,98 +296445,173 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a TagOption", - Privilege: "CreateTagOption", + Description: "Grants permission to verify an email identity", + Privilege: "VerifyEmailIdentity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to delete an application if all associations have been removed from the application", - Privilege: "DeleteApplication", + Arn: "arn:${Partition}:ses:${Region}:${Account}:configuration-set/${ConfigurationSetName}", + ConditionKeys: []string{}, + Resource: "configuration-set", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:custom-verification-email-template/${TemplateName}", + ConditionKeys: []string{}, + Resource: "custom-verification-email-template", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:identity/${IdentityName}", + ConditionKeys: []string{}, + Resource: "identity", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:template/${TemplateName}", + ConditionKeys: []string{}, + Resource: "template", + }, + }, + ServiceName: "Amazon SES", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + { + Condition: "ses:ApiVersion", + Description: "Filters access by the SES API version", + Type: "String", + }, + { + Condition: "ses:ExportSourceType", + Description: "Filters access by the export source type", + Type: "String", + }, + { + Condition: "ses:FeedbackAddress", + Description: "Filters access by the \"Return-Path\" address, which specifies where bounces and complaints are sent by email feedback forwarding", + Type: "String", + }, + { + Condition: "ses:FromAddress", + Description: "Filters access by the \"From\" address of a message", + Type: "String", + }, + { + Condition: "ses:FromDisplayName", + Description: "Filters access by the \"From\" address that is used as the display name of a message", + Type: "String", + }, + { + Condition: "ses:MultiRegionEndpointId", + Description: "Filters access by the multi-region endpoint ID that is used to send email", + Type: "String", + }, + { + Condition: "ses:Recipients", + Description: "Filters access by the recipient addresses of a message, which include the \"To\", \"CC\", and \"BCC\" addresses", + Type: "ArrayOfString", + }, + { + Condition: "ses:ReplicaRegion", + Description: "Filters access by the replica regions for Replicating domain DKIM signing key", + Type: "ArrayOfString", + }, + }, + Prefix: "ses", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Read", + Description: "Grants permission to get metric data on your activity", + Privilege: "BatchGetMetricData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "configuration-set", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an attribute group if all associations have been removed from the attribute group", - Privilege: "DeleteAttributeGroup", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AttributeGroup*", + ResourceType: "identity", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove and delete an existing constraint from an associated product and portfolio", - Privilege: "DeleteConstraint", + Description: "Grants permission to cancel an export job", + Privilege: "CancelExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "export-job*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "ses:ExportSourceType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a portfolio if all associations and shares have been removed from the portfolio", - Privilege: "DeletePortfolio", + Description: "Grants permission to create a new configuration set", + Privilege: "CreateConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to unshare a portfolio you own from an AWS account you previously shared the portfolio with", - Privilege: "DeletePortfolioShare", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a product if all associations have been removed from the product", - Privilege: "DeleteProduct", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "mailmanager-archive", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a provisioned product plan", - Privilege: "DeleteProvisionedProductPlan", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -250582,146 +296620,195 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a provisioning artifact from a product", - Privilege: "DeleteProvisioningArtifact", + Description: "Grants permission to create a configuration set event destination", + Privilege: "CreateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "configuration-set*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a self-service action", - Privilege: "DeleteServiceAction", + Description: "Grants permission to create a contact", + Privilege: "CreateContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-list*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified TagOption", - Privilege: "DeleteTagOption", + Description: "Grants permission to create a contact list", + Privilege: "CreateContactList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-list*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a constraint", - Privilege: "DescribeConstraint", + AccessLevel: "Write", + Description: "Grants permission to create a new custom verification email template", + Privilege: "CreateCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "custom-verification-email-template*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the status of the specified copy product operation", - Privilege: "DescribeCopyProductStatus", + AccessLevel: "Write", + Description: "Grants permission to create a new pool of dedicated IP addresses", + Privilege: "CreateDedicatedIpPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "dedicated-ip-pool*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a portfolio", - Privilege: "DescribePortfolio", + AccessLevel: "Write", + Description: "Grants permission to create a new predictive inbox placement test", + Privilege: "CreateDeliverabilityTestReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the status of the specified portfolio share operation", - Privilege: "DescribePortfolioShareStatus", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a summary of each of the portfolio shares that were created for the specified portfolio", - Privilege: "DescribePortfolioShares", + AccessLevel: "Write", + Description: "Grants permission to start the process of verifying an email identity", + Privilege: "CreateEmailIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a product as an end-user", - Privilege: "DescribeProduct", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a product as an admin", - Privilege: "DescribeProductAsAdmin", + AccessLevel: "Permissions management", + Description: "Grants permission to create the specified sending authorization policy for the given identity", + Privilege: "CreateEmailIdentityPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a product as an end-user", - Privilege: "DescribeProductView", + AccessLevel: "Write", + Description: "Grants permission to create an email template", + Privilege: "CreateEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a provisioned product", - Privilege: "DescribeProvisionedProduct", + AccessLevel: "Write", + Description: "Grants permission to create an export job", + Privilege: "CreateExportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "ses:ExportSourceType", }, DependentActions: []string{}, ResourceType: "", @@ -250729,15 +296816,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a provisioned product plan", - Privilege: "DescribeProvisionedProductPlan", + AccessLevel: "Write", + Description: "Grants permission to creates an import job for a data destination", + Privilege: "CreateImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250745,39 +296830,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a provisioning artifact", - Privilege: "DescribeProvisioningArtifact", + AccessLevel: "Write", + Description: "Grants permission to create a new multi-region endpoint", + Privilege: "CreateMultiRegionEndpoint", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Product*", + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the parameters that you need to specify to successfully provision a specified provisioning artifact", - Privilege: "DescribeProvisioningParameters", + AccessLevel: "Write", + Description: "Grants permission to delete an existing configuration set", + Privilege: "DeleteConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a record and lists any outputs", - Privilege: "DescribeRecord", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -250785,27 +296868,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe a self-service action", - Privilege: "DescribeServiceAction", + AccessLevel: "Write", + Description: "Grants permission to delete an event destination", + Privilege: "DeleteConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get the default parameters if you executed the specified Service Action on the specified Provisioned Product", - Privilege: "DescribeServiceActionExecutionParameters", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -250813,24 +296888,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the specified TagOption", - Privilege: "DescribeTagOption", + AccessLevel: "Write", + Description: "Grants permission to delete a contact from a contact list", + Privilege: "DeleteContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-list*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disable portfolio sharing through AWS Organizations feature", - Privilege: "DisableAWSOrganizationsAccess", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250838,52 +296909,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an attribute group from an application", - Privilege: "DisassociateAttributeGroup", + Description: "Grants permission to delete a contact list with all of its contacts", + Privilege: "DeleteContactList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "contact-list*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "AttributeGroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a budget from a resource", - Privilege: "DisassociateBudgetFromResource", + Description: "Grants permission to delete an existing custom verification email template", + Privilege: "DeleteCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "custom-verification-email-template*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate an IAM principal from a portfolio", - Privilege: "DisassociatePrincipalFromPortfolio", + Description: "Grants permission to delete a dedicated IP pool", + Privilege: "DeleteDedicatedIpPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "dedicated-ip-pool*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate a product from a portfolio", - Privilege: "DisassociateProductFromPortfolio", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250891,20 +296968,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a resource from an application", - Privilege: "DisassociateResource", + Description: "Grants permission to delete an email identity", + Privilege: "DeleteEmailIdentity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "resource-groups:DeleteGroup", - }, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity*", }, { ConditionKeys: []string{ - "servicecatalog:ResourceType", - "servicecatalog:Resource", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -250912,56 +296987,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate the specified self-service action association from the specified provisioning artifact", - Privilege: "DisassociateServiceActionFromProvisioningArtifact", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the specified sending authorization policy for the given identity (an email address or a domain)", + Privilege: "DeleteEmailIdentityPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate the specified TagOption from the specified resource", - Privilege: "DisassociateTagOptionFromResource", + Description: "Grants permission to delete an email template", + Privilege: "DeleteEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio", + ResourceType: "template*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Product", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable portfolio sharing feature through AWS Organizations", - Privilege: "EnableAWSOrganizationsAccess", + Description: "Grants permission to delete a multi-region endpoint", + Privilege: "DeleteMultiRegionEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "multi-region-endpoint*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to execute a provisioned product plan", - Privilege: "ExecuteProvisionedProductPlan", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -250970,14 +297047,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to executes a provisioned product plan", - Privilege: "ExecuteProvisionedProductServiceAction", + Description: "Grants permission to remove an email address from the suppression list for your account", + Privilege: "DeleteSuppressedDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -250986,11 +297061,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the access status of AWS Organization portfolio share feature", - Privilege: "GetAWSOrganizationsAccessStatus", + Description: "Grants permission to get information about the email-sending status and capabilities for your account", + Privilege: "GetAccount", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -250998,30 +297075,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an application", - Privilege: "GetApplication", + Description: "Grants permission to retrieve a list of the deny lists on which your dedicated IP addresses or tracked domains appear", + Privilege: "GetBlacklistReports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a resource associated to an application", - Privilege: "GetAssociatedResource", + Description: "Grants permission to get information about an existing configuration set", + Privilege: "GetConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "servicecatalog:ResourceType", - "servicecatalog:Resource", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251030,23 +297109,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an attribute group", - Privilege: "GetAttributeGroup", + Description: "Grants permission to retrieve a list of event destinations that are associated with a configuration set", + Privilege: "GetConfigurationSetEventDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AttributeGroup*", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to read AppRegistry configurations", - Privilege: "GetConfiguration", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -251054,206 +297129,218 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the provisioned product output with either provisioned product id or name", - Privilege: "GetProvisionedProductOutputs", + Description: "Grants permission to return a contact from a contact list", + Privilege: "GetContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-list*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a resource into a provisioned product", - Privilege: "ImportAsProvisionedProduct", + AccessLevel: "Read", + Description: "Grants permission to return contact list metadata", + Privilege: "GetContactList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "contact-list*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the portfolios that have been shared with you and you have accepted", - Privilege: "ListAcceptedPortfolioShares", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list your applications", - Privilege: "ListApplications", + AccessLevel: "Read", + Description: "Grants permission to return the custom email verification template for the template name you specify", + Privilege: "GetCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "custom-verification-email-template*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the attribute groups associated with an application", - Privilege: "ListAssociatedAttributeGroups", + AccessLevel: "Read", + Description: "Grants permission to get information about a dedicated IP address", + Privilege: "GetDedicatedIp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the resources associated with an application", - Privilege: "ListAssociatedResources", + AccessLevel: "Read", + Description: "Grants permission to get information about a dedicated IP pool", + Privilege: "GetDedicatedIpPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "dedicated-ip-pool*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list your attribute groups", - Privilege: "ListAttributeGroups", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the associated attribute groups for a given application", - Privilege: "ListAttributeGroupsForApplication", + AccessLevel: "Read", + Description: "Grants permission to list the dedicated IP addresses a dedicated IP pool", + Privilege: "GetDedicatedIps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "dedicated-ip-pool*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all the budgets associated to a resource", - Privilege: "ListBudgetsForResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list constraints associated with a given portfolio", - Privilege: "ListConstraintsForPortfolio", + AccessLevel: "Read", + Description: "Grants permission to get the status of the Deliverability dashboard", + Privilege: "GetDeliverabilityDashboardOptions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the different ways to launch a given product as an end-user", - Privilege: "ListLaunchPaths", + AccessLevel: "Read", + Description: "Grants permission to retrieve the results of a predictive inbox placement test", + Privilege: "GetDeliverabilityTestReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "deliverability-test-report*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the organization nodes that have access to the specified portfolio", - Privilege: "ListOrganizationPortfolioAccess", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the AWS accounts you have shared a given portfolio with", - Privilege: "ListPortfolioAccess", + AccessLevel: "Read", + Description: "Grants permission to retrieve all the deliverability data for a specific campaign", + Privilege: "GetDomainDeliverabilityCampaign", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the portfolios in your account", - Privilege: "ListPortfolios", + AccessLevel: "Read", + Description: "Grants permission to retrieve inbox placement and engagement rates for the domains that you use to send email", + Privilege: "GetDomainStatisticsReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the portfolios associated with a given product", - Privilege: "ListPortfoliosForProduct", + AccessLevel: "Read", + Description: "Grants permission to get information about a specific identity", + Privilege: "GetEmailIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the IAM principals associated with a given portfolio", - Privilege: "ListPrincipalsForPortfolio", + AccessLevel: "Read", + Description: "Grants permission to return the requested sending authorization policies for the given identity (an email address or a domain)", + Privilege: "GetEmailIdentityPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the provisioned product plans", - Privilege: "ListProvisionedProductPlans", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251261,39 +297348,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the provisioning artifacts associated with a given product", - Privilege: "ListProvisioningArtifacts", + AccessLevel: "Read", + Description: "Grants permission to return the template object, which includes the subject line, HTML part, and text part for the template you specify", + Privilege: "GetEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "template*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all provisioning artifacts for the specified self-service action", - Privilege: "ListProvisioningArtifactsForServiceAction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the records in your account or all the records related to a given provisioned product", - Privilege: "ListRecordHistory", + AccessLevel: "Read", + Description: "Grants permission to get information about an export job", + Privilege: "GetExportJob", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "export-job*", + }, { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "ses:ExportSourceType", }, DependentActions: []string{}, ResourceType: "", @@ -251301,44 +297387,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the resources associated with the specified TagOption", - Privilege: "ListResourcesForTagOption", + AccessLevel: "Read", + Description: "Grants permission to provide information about an import job", + Privilege: "GetImportJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "import-job*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all self-service actions", - Privilege: "ListServiceActions", + AccessLevel: "Read", + Description: "Grants permission to provide insights about a message", + Privilege: "GetMessageInsights", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the service actions associated with the specified provisioning artifact in your account", - Privilege: "ListServiceActionsForProvisioningArtifact", + AccessLevel: "Read", + Description: "Grants permission to get information about a multi-region endpoint", + Privilege: "GetMultiRegionEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "multi-region-endpoint*", }, { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251346,15 +297440,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list account, region and status of each stack instances that are associated with a CFN_STACKSET type provisioned product", - Privilege: "ListStackInstancesForProvisionedProduct", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a specific email address that's on the suppression list for your account", + Privilege: "GetSuppressedDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251363,115 +297455,115 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the specified TagOptions or all TagOptions", - Privilege: "ListTagOptions", + Description: "Grants permission to list all of the configuration sets for your account", + Privilege: "ListConfigurationSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags for a service catalog appregistry resource", - Privilege: "ListTagsForResource", + AccessLevel: "List", + Description: "Grants permission to list all of the contact lists available for your account", + Privilege: "ListContactLists", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "AttributeGroup", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to notify the result of the provisioning engine execution", - Privilege: "NotifyProvisionProductEngineWorkflowResult", + AccessLevel: "List", + Description: "Grants permission to list the contacts present in a specific contact list", + Privilege: "ListContacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-list*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to notify the result of the terminate engine execution", - Privilege: "NotifyTerminateProvisionedProductEngineWorkflowResult", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to notify the result of the update engine execution", - Privilege: "NotifyUpdateProvisionedProductEngineWorkflowResult", + AccessLevel: "List", + Description: "Grants permission to list all of the existing custom verification email templates for your account", + Privilege: "ListCustomVerificationEmailTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to provision a product with a specified provisioning artifact and launch parameters", - Privilege: "ProvisionProduct", + AccessLevel: "List", + Description: "Grants permission to list all of the dedicated IP pools for your account", + Privilege: "ListDedicatedIpPools", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assign AppRegistry configurations", - Privilege: "PutConfiguration", + AccessLevel: "List", + Description: "Grants permission to retrieve the list of the predictive inbox placement tests that you've performed, regardless of their statuses, for your account", + Privilege: "ListDeliverabilityTestReports", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reject a portfolio that has been shared with you that you previously accepted", - Privilege: "RejectPortfolioShare", + AccessLevel: "Read", + Description: "Grants permission to list deliverability data for campaigns that used a specific domain to send email during a specified time range", + Privilege: "ListDomainDeliverabilityCampaigns", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the provisioned products in your account", - Privilege: "ScanProvisionedProducts", + Description: "Grants permission to list the email identities for your account", + Privilege: "ListEmailIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251480,11 +297572,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the products available to you as an end-user", - Privilege: "SearchProducts", + Description: "Grants permission to list all of the email templates for your account", + Privilege: "ListEmailTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -251492,11 +297586,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all the products in your account or all the products associated with a given portfolio", - Privilege: "SearchProductsAsAdmin", + Description: "Grants permission to list all the exports jobs for your account", + Privilege: "ListExportJobs", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "ses:ExportSourceType", + }, DependentActions: []string{}, ResourceType: "", }, @@ -251504,14 +297601,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all the provisioned products in your account", - Privilege: "SearchProvisionedProducts", + Description: "Grants permission to list all of the import jobs for your account", + Privilege: "ListImportJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251519,38 +297614,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to sync a resource with its current state in AppRegistry", - Privilege: "SyncResource", + AccessLevel: "List", + Description: "Grants permission to list all of the multi-region endpoints for your account", + Privilege: "ListMultiRegionEndpoints", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "cloudformation:UpdateStack", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a service catalog appregistry resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to list recommendations for your account", + Privilege: "ListRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "AttributeGroup", + ResourceType: "identity", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251558,15 +297648,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate an existing provisioned product", - Privilege: "TerminateProvisionedProduct", + AccessLevel: "Read", + Description: "Grants permission to list email addresses that are on the suppression list for your account", + Privilege: "ListSuppressedDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251574,24 +297662,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from a service catalog appregistry resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve a list of the tags (keys and values) that are associated with a specific resource for your account", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", + ResourceType: "configuration-set", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "AttributeGroup", + ResourceType: "contact-list", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dedicated-ip-pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverability-test-report", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251600,37 +297702,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the attributes of an existing application", - Privilege: "UpdateApplication", + Description: "Grants permission to enable or disable the automatic warm-up feature for dedicated IP addresses", + Privilege: "PutAccountDedicatedIpWarmupAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "Application*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the attributes of an existing attribute group", - Privilege: "UpdateAttributeGroup", + Description: "Grants permission to update your account details", + Privilege: "PutAccountDetails", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "AttributeGroup*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata fields of an existing constraint", - Privilege: "UpdateConstraint", + Description: "Grants permission to enable or disable the ability to send email for your account", + Privilege: "PutAccountSendingAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, ResourceType: "", }, @@ -251638,18 +297744,12 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata fields and/or tags of an existing portfolio", - Privilege: "UpdatePortfolio", + Description: "Grants permission to change the settings for the account-level suppression list", + Privilege: "PutAccountSuppressionAttributes", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Portfolio*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251657,47 +297757,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to enable or disable resource sharing for an existing portfolio share", - Privilege: "UpdatePortfolioShare", + AccessLevel: "Write", + Description: "Grants permission to change the settings for VDM for your account", + Privilege: "PutAccountVdmAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + }, DependentActions: []string{}, - ResourceType: "Portfolio*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata fields and/or tags of an existing product", - Privilege: "UpdateProduct", + Description: "Grants permission to associate a configuration set with a Mail Manager archive", + Privilege: "PutConfigurationSetArchivingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "configuration-set*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "mailmanager-archive", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an existing provisioned product", - Privilege: "UpdateProvisionedProduct", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicecatalog:accountLevel", - "servicecatalog:roleLevel", - "servicecatalog:userLevel", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251706,35 +297797,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the properties of an existing provisioned product", - Privilege: "UpdateProvisionedProductProperties", + Description: "Grants permission to associate a configuration set with a dedicated IP pool", + Privilege: "PutConfigurationSetDeliveryOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the metadata fields of an existing provisioning artifact", - Privilege: "UpdateProvisioningArtifact", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Product*", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a self-service action", - Privilege: "UpdateServiceAction", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -251742,98 +297822,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the specified TagOption", - Privilege: "UpdateTagOption", + Description: "Grants permission to enable or disable collection of reputation metrics for emails that you send using a particular configuration set", + Privilege: "PutConfigurationSetReputationOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-set*", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:servicecatalog:${Region}:${Account}:/applications/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Application", - }, - { - Arn: "arn:${Partition}:servicecatalog:${Region}:${Account}:/attribute-groups/${AttributeGroupId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "AttributeGroup", - }, - { - Arn: "arn:${Partition}:catalog:${Region}:${Account}:portfolio/${PortfolioId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Portfolio", - }, - { - Arn: "arn:${Partition}:catalog:${Region}:${Account}:product/${ProductId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Product", - }, - }, - ServiceName: "AWS Service Catalog", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "servicediscovery:NamespaceArn", - Description: "Filters access by specifying the Amazon Resource Name (ARN) for the related namespace", - Type: "ARN", - }, - { - Condition: "servicediscovery:NamespaceName", - Description: "Filters access by specifying the name of the related namespace", - Type: "String", - }, - { - Condition: "servicediscovery:ServiceArn", - Description: "Filters access by specifying the Amazon Resource Name (ARN) for the related service", - Type: "ARN", - }, - { - Condition: "servicediscovery:ServiceName", - Description: "Filters access by specifying the name of the related service", - Type: "String", - }, - }, - Prefix: "servicediscovery", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create an HTTP namespace", - Privilege: "CreateHttpNamespace", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251842,13 +297842,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a private namespace based on DNS, which will be visible only inside a specified Amazon VPC", - Privilege: "CreatePrivateDnsNamespace", + Description: "Grants permission to enable or disable email sending for messages that use a particular configuration set", + Privilege: "PutConfigurationSetSendingOptions", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-set*", + }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251857,13 +297862,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a public namespace based on DNS, which will be visible on the internet", - Privilege: "CreatePublicDnsNamespace", + Description: "Grants permission to specify the account suppression list preferences for a particular configuration set", + Privilege: "PutConfigurationSetSuppressionOptions", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-set*", + }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251872,24 +297882,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a service", - Privilege: "CreateService", + Description: "Grants permission to specify a custom domain to use for open and click tracking elements in email that you send for a particular configuration set", + Privilege: "PutConfigurationSetTrackingOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "configuration-set*", }, { ConditionKeys: []string{ - "servicediscovery:NamespaceArn", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251898,41 +297902,38 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified namespace", - Privilege: "DeleteNamespace", + Description: "Grants permission to override account-level VDM settings for a particular configuration set", + Privilege: "PutConfigurationSetVdmOptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "configuration-set*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a specified service", - Privilege: "DeleteService", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the records and the health check, if any, that Amazon Route 53 created for the specified instance", - Privilege: "DeregisterInstance", + Description: "Grants permission to move a dedicated IP address to an existing dedicated IP pool", + Privilege: "PutDedicatedIpInPool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "dedicated-ip-pool*", }, { ConditionKeys: []string{ - "servicediscovery:ServiceArn", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251940,29 +297941,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to discover registered instances for a specified namespace and service", - Privilege: "DiscoverInstances", + AccessLevel: "Write", + Description: "Grants permission to transition a dedicated IP pool from Standard to Managed", + Privilege: "PutDedicatedIpPoolScalingAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "servicediscovery:NamespaceName", - "servicediscovery:ServiceName", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-ip-pool*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to discover the revision of the instances for a specified namespace and service", - Privilege: "DiscoverInstancesRevision", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicediscovery:NamespaceName", - "servicediscovery:ServiceName", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -251970,13 +297961,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specified instance", - Privilege: "GetInstance", + AccessLevel: "Write", + Description: "Grants permission to put Dedicated IP warm up attributes", + Privilege: "PutDedicatedIpWarmupAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicediscovery:ServiceArn", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251984,13 +297975,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the current health status (Healthy, Unhealthy, or Unknown) of one or more instances", - Privilege: "GetInstancesHealthStatus", + AccessLevel: "Write", + Description: "Grants permission to enable or disable the Deliverability dashboard", + Privilege: "PutDeliverabilityDashboardOption", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicediscovery:ServiceArn", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -251998,49 +297989,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a namespace", - Privilege: "GetNamespace", + AccessLevel: "Write", + Description: "Grants permission to associate a configuration set with an email identity", + Privilege: "PutEmailIdentityConfigurationSetAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about a specific operation", - Privilege: "GetOperation", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "configuration-set", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the settings for a specified service", - Privilege: "GetService", + AccessLevel: "Write", + Description: "Grants permission to enable or disable DKIM authentication for an email identity", + Privilege: "PutEmailIdentityDkimAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get summary information about the instances that were registered with a specified service", - Privilege: "ListInstances", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicediscovery:ServiceArn", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -252048,48 +298034,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the namespaces", - Privilege: "ListNamespaces", + AccessLevel: "Write", + Description: "Grants permission to configure or change the DKIM authentication settings for an email domain identity", + Privilege: "PutEmailIdentityDkimSigningAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list operations that match the criteria that you specify", - Privilege: "ListOperations", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get settings for all the services that match specified filters", - Privilege: "ListServices", + AccessLevel: "Write", + Description: "Grants permission to enable or disable feedback forwarding for an email identity", + Privilege: "PutEmailIdentityFeedbackAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to lists tags for the specified resource", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -252097,17 +298075,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to register an instance based on the settings in a specified service", - Privilege: "RegisterInstance", + Description: "Grants permission to enable or disable the custom MAIL FROM domain configuration for an email identity", + Privilege: "PutEmailIdentityMailFromAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "identity*", }, { ConditionKeys: []string{ - "servicediscovery:ServiceArn", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -252115,14 +298094,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to the specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to add an email address to the suppression list", + Privilege: "PutSuppressedDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -252130,13 +298108,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to replicate email identity DKIM signing key", + Privilege: "ReplicateEmailIdentityDkimSigningKey", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity*", + }, { ConditionKeys: []string{ - "aws:TagKeys", + "ses:ReplicaRegion", }, DependentActions: []string{}, ResourceType: "", @@ -252145,24 +298128,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the settings for a HTTP namespace", - Privilege: "UpdateHttpNamespace", + Description: "Grants permission to compose an email message to multiple destinations", + Privilege: "SendBulkEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "identity*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-set", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the current health status for an instance that has a custom health check", - Privilege: "UpdateInstanceCustomHealthStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "servicediscovery:ServiceArn", + "ses:ApiVersion", + "ses:MultiRegionEndpointId", }, DependentActions: []string{}, ResourceType: "", @@ -252171,330 +298158,211 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the settings for a private DNS namespace", - Privilege: "UpdatePrivateDnsNamespace", + Description: "Grants permission to add an email address to the list of identities and attempts to verify it", + Privilege: "SendCustomVerificationEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "custom-verification-email-template*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the settings for a public DNS namespace", - Privilege: "UpdatePublicDnsNamespace", + Description: "Grants permission to send an email message", + Privilege: "SendEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "namespace*", + ResourceType: "identity*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the settings in a specified service", - Privilege: "UpdateService", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "service*", + ResourceType: "configuration-set", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:servicediscovery:${Region}:${Account}:namespace/${NamespaceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "namespace", - }, - { - Arn: "arn:${Partition}:servicediscovery:${Region}:${Account}:service/${ServiceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "service", - }, - }, - ServiceName: "AWS Cloud Map", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "serviceextract", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to get required configuration for the AWS Microservice Extractor for .NET desktop client", - Privilege: "GetConfig", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "template", }, - }, - }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Microservice Extractor for .NET", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "servicequotas:service", - Description: "Filters access by the specified AWS service", - Type: "String", - }, - }, - Prefix: "servicequotas", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to associate the Service Quotas template with your organization", - Privilege: "AssociateServiceQuotaTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - "organizations:EnableAWSServiceAccess", + ConditionKeys: []string{ + "ses:ApiVersion", + "ses:FeedbackAddress", + "ses:FromAddress", + "ses:FromDisplayName", + "ses:Recipients", + "ses:MultiRegionEndpointId", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the specified service quota from the service quota template", - Privilege: "DeleteServiceQuotaIncreaseRequestFromTemplate", + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags (keys and values) to a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "configuration-set", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to disassociate the Service Quotas template from your organization", - Privilege: "DisassociateServiceQuotaTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-list", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return the details for the specified service quota, including the AWS default value", - Privilege: "GetAWSDefaultServiceQuota", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the ServiceQuotaTemplateAssociationStatus value, which tells you if the Service Quotas template is associated with an organization", - Privilege: "GetAssociationForServiceQuotaTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverability-test-report", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details for a particular service quota increase request", - Privilege: "GetRequestedServiceQuotaChange", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "identity", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return the details for the specified service quota, including the applied value", - Privilege: "GetServiceQuota", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "autoscaling:DescribeAccountLimits", - "cloudformation:DescribeAccountLimits", - "dynamodb:DescribeLimits", - "elasticloadbalancing:DescribeAccountLimits", - "iam:GetAccountSummary", - "kinesis:DescribeLimits", - "rds:DescribeAccountAttributes", - "route53:GetAccountLimit", + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the details for a service quota increase request from the service quota template", - Privilege: "GetServiceQuotaIncreaseRequestFromTemplate", + AccessLevel: "Write", + Description: "Grants permission to create a preview of the MIME content of an email when provided with a template and a set of replacement data", + Privilege: "TestRenderEmailTemplate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all default service quotas for the specified AWS service", - Privilege: "ListAWSDefaultServiceQuotas", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags (keys and values) from a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-set", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to request a list of the changes to quotas for a service", - Privilege: "ListRequestedServiceQuotaChangeHistory", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact-list", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to request a list of the changes to specific service quotas", - Privilege: "ListRequestedServiceQuotaChangeHistoryByQuota", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "dedicated-ip-pool", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return a list of the service quota increase requests from the service quota template", - Privilege: "ListServiceQuotaIncreaseRequestsInTemplate", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "deliverability-test-report", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list all service quotas for the specified AWS service, in that account, in that Region", - Privilege: "ListServiceQuotas", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "autoscaling:DescribeAccountLimits", - "cloudformation:DescribeAccountLimits", - "dynamodb:DescribeLimits", - "elasticloadbalancing:DescribeAccountLimits", - "iam:GetAccountSummary", - "kinesis:DescribeLimits", - "rds:DescribeAccountAttributes", - "route53:GetAccountLimit", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the AWS services available in Service Quotas", - Privilege: "ListServices", + AccessLevel: "Write", + Description: "Grants permission to update the configuration of an event destination for a configuration set", + Privilege: "UpdateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "configuration-set*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the existing tags on a SQ resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update a contact's preferences for a list", + Privilege: "UpdateContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "contact-list*", + }, + { + ConditionKeys: []string{ + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to define and add a quota to the service quota template", - Privilege: "PutServiceQuotaIncreaseRequestIntoTemplate", + Description: "Grants permission to update contact list metadata", + Privilege: "UpdateContactList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - }, - ResourceType: "quota", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "contact-list*", }, { ConditionKeys: []string{ - "servicequotas:service", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -252503,17 +298371,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to submit the request for a service quota increase", - Privilege: "RequestServiceQuotaIncrease", + Description: "Grants permission to update an existing custom verification email template", + Privilege: "UpdateCustomVerificationEmailTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "quota", + ResourceType: "custom-verification-email-template*", }, { ConditionKeys: []string{ - "servicequotas:service", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -252521,14 +298389,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate a set of tags with an existing SQ resource", - Privilege: "TagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to update the specified sending authorization policy for the given identity (an email address or a domain)", + Privilege: "UpdateEmailIdentityPolicy", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identity*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ses:ApiVersion", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -252536,13 +298409,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a set of tags from a SQ resource, where tags to be removed match a set of customer-supplied tag keys", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update an email template", + Privilege: "UpdateEmailTemplate", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "template*", + }, { ConditionKeys: []string{ - "aws:TagKeys", + "ses:ApiVersion", }, DependentActions: []string{}, ResourceType: "", @@ -252552,12 +298430,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:servicequotas:${Region}:${Account}:${ServiceCode}/${QuotaCode}", + Arn: "arn:${Partition}:ses:${Region}:${Account}:configuration-set/${ConfigurationSetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configuration-set", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:contact-list/${ContactListName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "contact-list", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:custom-verification-email-template/${TemplateName}", ConditionKeys: []string{}, - Resource: "quota", + Resource: "custom-verification-email-template", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:dedicated-ip-pool/${DedicatedIPPool}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dedicated-ip-pool", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:deliverability-test-report/${ReportId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "deliverability-test-report", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:export-job/${ExportJobId}", + ConditionKeys: []string{}, + Resource: "export-job", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:identity/${IdentityName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "identity", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:import-job/${ImportJobId}", + ConditionKeys: []string{}, + Resource: "import-job", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:template/${TemplateName}", + ConditionKeys: []string{}, + Resource: "template", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:multi-region-endpoint/${EndpointName}", + ConditionKeys: []string{}, + Resource: "multi-region-endpoint", + }, + { + Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-archive/${ArchiveId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "mailmanager-archive", }, }, - ServiceName: "Service Quotas", + ServiceName: "Amazon Simple Email Service v2", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -252576,44 +298516,55 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters actions based on the presence of tag keys in the request", Type: "ArrayOfString", }, + }, + Prefix: "shield", + Privileges: []ParliamentPrivilege{ { - Condition: "ses:ApiVersion", - Description: "Filters actions based on the SES API version", - Type: "String", - }, - { - Condition: "ses:FeedbackAddress", - Description: "Filters actions based on the \"Return-Path\" address, which specifies where bounces and complaints are sent by email feedback forwarding", - Type: "String", - }, - { - Condition: "ses:FromAddress", - Description: "Filters actions based on the \"From\" address of a message", - Type: "String", - }, - { - Condition: "ses:FromDisplayName", - Description: "Filters actions based on the \"From\" address that is used as the display name of a message", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to authorize the DDoS Response team to access the specified Amazon S3 bucket containing your flow logs", + Privilege: "AssociateDRTLogBucket", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", + }, + ResourceType: "", + }, + }, }, { - Condition: "ses:Recipients", - Description: "Filters actions based on the recipient addresses of a message, which include the \"To\", \"CC\", and \"BCC\" addresses", - Type: "ArrayOfString", + AccessLevel: "Write", + Description: "Grants permission to authorize the DDoS Response team using the specified role, to access your AWS account to assist with DDoS attack mitigation during potential attacks", + Privilege: "AssociateDRTRole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:PassRole", + }, + ResourceType: "", + }, + }, }, - }, - Prefix: "ses", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a configuration set", - Privilege: "CreateConfigurationSet", + Description: "Grants permission to add health-based detection to the Shield Advanced protection for a resource", + Privilege: "AssociateHealthCheck", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "route53:GetHealthCheck", + }, + ResourceType: "protection*", + }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -252622,34 +298573,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a configuration set event destination", - Privilege: "CreateConfigurationSetEventDestination", + Description: "Grants permission to initialize proactive engagement and set the list of contacts for the DDoS Response Team (DRT) to use", + Privilege: "AssociateProactiveEngagementDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new pool of dedicated IP addresses", - Privilege: "CreateDedicatedIpPool", + Description: "Grants permission to activate DDoS protection service for a given resource ARN", + Privilege: "CreateProtection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -252658,19 +298600,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new predictive inbox placement test", - Privilege: "CreateDeliverabilityTestReport", + Description: "Grants permission to create a grouping of protected resources so they can be handled as a collective", + Privilege: "CreateProtectionGroup", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identity*", - }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -252679,15 +298615,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start the process of verifying an email identity", - Privilege: "CreateEmailIdentity", + Description: "Grants permission to activate subscription", + Privilege: "CreateSubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -252695,17 +298627,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing configuration set", - Privilege: "DeleteConfigurationSet", + Description: "Grants permission to delete an existing protection", + Privilege: "DeleteProtection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "protection*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -252715,17 +298646,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an event destination", - Privilege: "DeleteConfigurationSetEventDestination", + Description: "Grants permission to remove the specified protection group", + Privilege: "DeleteProtectionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "protection-group*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -252735,39 +298665,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a dedicated IP pool", - Privilege: "DeleteDedicatedIpPool", + Description: "Grants permission to deactivate subscription", + Privilege: "DeleteSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an email identity that you previously verified", - Privilege: "DeleteEmailIdentity", + AccessLevel: "Read", + Description: "Grants permission to get attack details", + Privilege: "DescribeAttack", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "attack*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe information about the number and type of attacks AWS Shield has detected in the last year", + Privilege: "DescribeAttackStatistics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -252775,13 +298701,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about the email-sending status and capabilities", - Privilege: "GetAccount", + Description: "Grants permission to describe the current role and list of Amazon S3 log buckets used by the DDoS Response team to access your AWS account while assisting with attack mitigation", + Privilege: "DescribeDRTAccess", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -252789,13 +298713,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of the deny lists on which your dedicated IP addresses appear", - Privilege: "GetBlacklistReports", + Description: "Grants permission to list the email addresses that the DRT can use to contact you during a suspected attack", + Privilege: "DescribeEmergencyContactSettings", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -252803,17 +298725,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about an existing configuration set", - Privilege: "GetConfigurationSet", + Description: "Grants permission to get protection details", + Privilege: "DescribeProtection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "protection*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -252823,17 +298744,16 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of event destinations that are associated with a configuration set", - Privilege: "GetConfigurationSetEventDestinations", + Description: "Grants permission to describe the specification for the specified protection group", + Privilege: "DescribeProtectionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "protection-group*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -252843,99 +298763,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about a dedicated IP address", - Privilege: "GetDedicatedIp", + Description: "Grants permission to get subscription details, such as start time", + Privilege: "DescribeSubscription", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the dedicated IP addresses that are associated with your account", - Privilege: "GetDedicatedIps", + AccessLevel: "Write", + Description: "Grants permission to disable application layer automatic response for Shield Advanced protection for a resource", + Privilege: "DisableApplicationLayerAutomaticResponse", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the status of the Deliverability dashboard", - Privilege: "GetDeliverabilityDashboardOptions", + AccessLevel: "Write", + Description: "Grants permission to remove authorization from the DDoS Response Team (DRT) to notify contacts about escalations", + Privilege: "DisableProactiveEngagement", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the results of a predictive inbox placement test", - Privilege: "GetDeliverabilityTestReport", + AccessLevel: "Write", + Description: "Grants permission to remove the DDoS Response team's access to the specified Amazon S3 bucket containing your flow logs", + Privilege: "DisassociateDRTLogBucket", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "deliverability-test-report*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "s3:DeleteBucketPolicy", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all the deliverability data for a specific campaign", - Privilege: "GetDomainDeliverabilityCampaign", + AccessLevel: "Write", + Description: "Grants permission to remove the DDoS Response team's access to your AWS account", + Privilege: "DisassociateDRTRole", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve inbox placement and engagement rates for the domains that you use to send email", - Privilege: "GetDomainStatisticsReport", + AccessLevel: "Write", + Description: "Grants permission to remove health-based detection from the Shield Advanced protection for a resource", + Privilege: "DisassociateHealthCheck", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "protection*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -252944,34 +298845,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specific identity associated with your account", - Privilege: "GetEmailIdentity", + AccessLevel: "Write", + Description: "Grants permission to enable application layer automatic response for Shield Advanced protection for a resource", + Privilege: "EnableApplicationLayerAutomaticResponse", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identity*", + ConditionKeys: []string{}, + DependentActions: []string{ + "apprunner:DescribeWebAclForService", + "cloudfront:GetDistribution", + "cognito-idp:GetWebACLForResource", + "ec2:GetVerifiedAccessInstanceWebAcl", + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "wafv2:GetWebACL", + "wafv2:GetWebACLForResource", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to authorize the DDoS Response Team (DRT) to use email and phone to notify contacts about escalations", + Privilege: "EnableProactiveEngagement", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the configuration sets associated with your account", - Privilege: "ListConfigurationSets", + AccessLevel: "Read", + Description: "Grants permission to get subscription state", + Privilege: "GetSubscriptionState", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -252979,13 +298891,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all of the dedicated IP pools that exist in your account", - Privilege: "ListDedicatedIpPools", + Description: "Grants permission to list all existing attacks", + Privilege: "ListAttacks", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -252993,27 +298903,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to retrieve a list of the predictive inbox placement tests that you've performed, regardless of their statuses", - Privilege: "ListDeliverabilityTestReports", + Description: "Grants permission to retrieve the protection groups for the account", + Privilege: "ListProtectionGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve deliverability data for all the campaigns that used a specific domain to send email during a specified time range", - Privilege: "ListDomainDeliverabilityCampaigns", + AccessLevel: "List", + Description: "Grants permission to list all existing protections", + Privilege: "ListProtections", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -253021,46 +298927,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all of the email identities that are associated with your account", - Privilege: "ListEmailIdentities", + Description: "Grants permission to retrieve the resources that are included in the protection group", + Privilege: "ListResourcesInProtectionGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "protection-group*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a list of the tags (keys and values) that are associated with a specific resource", + Description: "Grants permission to get information about AWS tags for a specified Amazon Resource Name (ARN) in AWS Shield", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "protection", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool", + ResourceType: "protection-group", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add or updates tags for a resource in AWS Shield", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverability-test-report", + ResourceType: "protection", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "protection-group", }, { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -253068,13 +298980,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable the automatic warm-up feature for dedicated IP addresses", - Privilege: "PutAccountDedicatedIpWarmupAttributes", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource in AWS Shield", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "protection-group", + }, { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -253083,51 +299005,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable the ability of your account to send email", - Privilege: "PutAccountSendingAttributes", + Description: "Grants permission to update application layer automatic response for Shield Advanced protection for a resource", + Privilege: "UpdateApplicationLayerAutomaticResponse", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", + ConditionKeys: []string{}, + DependentActions: []string{ + "apprunner:DescribeWebAclForService", + "cognito-idp:GetWebACLForResource", + "ec2:GetVerifiedAccessInstanceWebAcl", + "wafv2:GetWebACL", + "wafv2:GetWebACLForResource", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a configuration set with a dedicated IP pool", - Privilege: "PutConfigurationSetDeliveryOptions", + Description: "Grants permission to update the details of the list of email addresses that the DRT can use to contact you during a suspected attack", + Privilege: "UpdateEmergencyContactSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable collection of reputation metrics for emails that you send using a particular configuration set", - Privilege: "PutConfigurationSetReputationOptions", + Description: "Grants permission to update an existing protection group", + Privilege: "UpdateProtectionGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "protection-group*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -253137,38 +299054,90 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable email sending for messages that use a particular configuration set", - Privilege: "PutConfigurationSetSendingOptions", + Description: "Grants permission to update the details of an existing subscription", + Privilege: "UpdateSubscription", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:shield::${Account}:attack/${Id}", + ConditionKeys: []string{}, + Resource: "attack", + }, + { + Arn: "arn:${Partition}:shield::${Account}:protection/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "protection", + }, + { + Arn: "arn:${Partition}:shield::${Account}:protection-group/${Id}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "protection-group", + }, + }, + ServiceName: "AWS Shield", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by presence of mandatory tags in the request", + Type: "ArrayOfString", + }, + { + Condition: "signer:ProfileVersion", + Description: "Filters access by version of the Signing Profile", + Type: "String", + }, + }, + Prefix: "signer", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to add cross-account permissions to a Signing Profile", + Privilege: "AddProfilePermission", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signing-profile*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify a custom domain to use for open and click tracking elements in email that you send using a particular configuration set", - Privilege: "PutConfigurationSetTrackingOptions", + Description: "Grants permission to change the state of a Signing Profile to CANCELED", + Privilege: "CancelSigningProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "signing-profile*", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "signer:ProfileVersion", }, DependentActions: []string{}, ResourceType: "", @@ -253176,67 +299145,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to move a dedicated IP address to an existing dedicated IP pool", - Privilege: "PutDedicatedIpInPool", + AccessLevel: "Read", + Description: "Grants permission to return information about a specific Signing Job", + Privilege: "DescribeSigningJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "signing-job*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable dedicated IP warm up attributes", - Privilege: "PutDedicatedIpWarmupAttributes", + AccessLevel: "Read", + Description: "Grants permission to query revocation info of signing resources", + Privilege: "GetRevocationStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "signing-job*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "signing-profile*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable the Deliverability dashboard", - Privilege: "PutDeliverabilityDashboardOption", + AccessLevel: "Read", + Description: "Grants permission to return information about a specific Signing Platform", + Privilege: "GetSigningPlatform", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable DKIM authentication for an email identity", - Privilege: "PutEmailIdentityDkimAttributes", + AccessLevel: "Read", + Description: "Grants permission to return information about a specific Signing Profile", + Privilege: "GetSigningProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "signing-profile*", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "signer:ProfileVersion", }, DependentActions: []string{}, ResourceType: "", @@ -253244,62 +299205,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable feedback forwarding for an identity", - Privilege: "PutEmailIdentityFeedbackAttributes", + AccessLevel: "Read", + Description: "Grants permission to list the cross-account permissions associated with a Signing Profile", + Privilege: "ListProfilePermissions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "signing-profile*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all Signing Jobs in your account", + Privilege: "ListSigningJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable the custom MAIL FROM domain configuration for an email identity", - Privilege: "PutEmailIdentityMailFromAttributes", + AccessLevel: "List", + Description: "Grants permission to list all available Signing Platforms", + Privilege: "ListSigningPlatforms", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all Signing Profiles in your account", + Privilege: "ListSigningProfiles", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send an email message", - Privilege: "SendEmail", + AccessLevel: "Read", + Description: "Grants permission to list the tags associated with a Signing Profile", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "signing-profile*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new Signing Profile", + Privilege: "PutSigningProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -253307,35 +299280,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags (keys and values) to a specified resource", - Privilege: "TagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to remove cross-account permissions from a Signing Profile", + Privilege: "RemoveProfilePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "signing-profile*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the state of a Signing Job to REVOKED", + Privilege: "RevokeSignature", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool", + ResourceType: "signing-job*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "signer:ProfileVersion", + }, DependentActions: []string{}, - ResourceType: "deliverability-test-report", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to change the state of a Signing Profile to REVOKED", + Privilege: "RevokeSigningProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "signing-profile*", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "signer:ProfileVersion", }, DependentActions: []string{}, ResourceType: "", @@ -253343,34 +299330,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags (keys and values) from a specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to initiate a Signing Job on the provided payload", + Privilege: "SignPayload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "signing-profile*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "signer:ProfileVersion", + }, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate a Signing Job on the provided code", + Privilege: "StartSigningJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverability-test-report", + ResourceType: "signing-profile*", }, + { + ConditionKeys: []string{ + "signer:ProfileVersion", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a Signing Profile", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "signing-profile*", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -253378,19 +299388,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the configuration of an event destination for a configuration set", - Privilege: "UpdateConfigurationSetEventDestination", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from a Signing Profile", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "signing-profile*", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -253400,175 +299410,207 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ses:${Region}:${Account}:configuration-set/${ConfigurationSetName}", + Arn: "arn:${Partition}:signer:${Region}:${Account}:/signing-profiles/${ProfileName}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "configuration-set", + Resource: "signing-profile", }, { - Arn: "arn:${Partition}:ses:${Region}:${Account}:dedicated-ip-pool/${DedicatedIPPool}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dedicated-ip-pool", + Arn: "arn:${Partition}:signer:${Region}:${Account}:/signing-jobs/${JobId}", + ConditionKeys: []string{}, + Resource: "signing-job", }, + }, + ServiceName: "AWS Signer", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "signin", + Privileges: []ParliamentPrivilege{ { - Arn: "arn:${Partition}:ses:${Region}:${Account}:deliverability-test-report/${ReportId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create an Identity Center application that represents the AWS Management Console on an Identity Center organization instance", + Privilege: "CreateTrustedIdentityPropagationApplicationForConsole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:CreateApplication", + "sso:GetSharedSsoConfiguration", + "sso:ListApplications", + "sso:PutApplicationAccessScope", + "sso:PutApplicationAssignmentConfiguration", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + }, + ResourceType: "", + }, }, - Resource: "deliverability-test-report", }, { - Arn: "arn:${Partition}:ses:${Region}:${Account}:identity/${IdentityName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list all Identity Center applications that represent the AWS Management Console", + Privilege: "ListTrustedIdentityPropagationApplicationsForConsole", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetSharedSsoConfiguration", + "sso:ListApplications", + }, + ResourceType: "", + }, }, - Resource: "identity", }, }, - ServiceName: "Amazon Pinpoint Email Service", + Resources: []ParliamentResource{}, + ServiceName: "AWS Signin", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", + Description: "Filters access by tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", + Description: "Filters access by tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", + Description: "Filters access by tag keys that are passed in the request", Type: "ArrayOfString", }, + }, + Prefix: "simspaceweaver", + Privileges: []ParliamentPrivilege{ { - Condition: "ses:AddonSubscriptionArn", - Description: "Filters access by SES Addon Subscription ARN", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to create a snapshot", + Privilege: "CreateSnapshot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Simulation*", + }, + }, }, { - Condition: "ses:MailManagerIngressPointType", - Description: "Filters access by SES Mail Manager ingress point type, for example OPEN or AUTH", - Type: "String", + AccessLevel: "Write", + Description: "Grants permission to delete an app", + Privilege: "DeleteApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Simulation*", + }, + }, }, { - Condition: "ses:MailManagerRuleSetArn", - Description: "Filters access by SES Mail Manager rule set ARN", - Type: "ARN", + AccessLevel: "Write", + Description: "Grants permission to delete a simulation", + Privilege: "DeleteSimulation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Simulation*", + }, + }, }, { - Condition: "ses:MailManagerTrafficPolicyArn", - Description: "Filters access by SES Mail Manager traffic policy ARN", - Type: "ARN", + AccessLevel: "Read", + Description: "Grants permission to describe an app", + Privilege: "DescribeApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Simulation*", + }, + }, }, - }, - Prefix: "ses", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an addon instance", - Privilege: "CreateAddonInstance", + AccessLevel: "Read", + Description: "Grants permission to describe a simulation", + Privilege: "DescribeSimulation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ses:AddonSubscriptionArn", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Simulation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an addon subscription", - Privilege: "CreateAddonSubscription", + AccessLevel: "Read", + Description: "Grants permission to list apps", + Privilege: "ListApps", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Simulation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an archive", - Privilege: "CreateArchive", + AccessLevel: "List", + Description: "Grants permission to list simulations", + Privilege: "ListSimulations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an ingress point", - Privilege: "CreateIngressPoint", + AccessLevel: "Read", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ses:MailManagerRuleSetArn", - "ses:MailManagerTrafficPolicyArn", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a SMTP relay", - Privilege: "CreateRelay", + Description: "Grants permission to start an app", + Privilege: "StartApp", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Simulation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a rule set", - Privilege: "CreateRuleSet", + Description: "Grants permission to start a simulation clock", + Privilege: "StartClock", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Simulation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a traffic policy", - Privilege: "CreateTrafficPolicy", + Description: "Grants permission to start a simulation", + Privilege: "StartSimulation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ @@ -253582,55 +299624,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an addon instance", - Privilege: "DeleteAddonInstance", + Description: "Grants permission to stop an app", + Privilege: "StopApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-instance*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Simulation*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an addon subscription", - Privilege: "DeleteAddonSubscription", + Description: "Grants permission to stop a simulation clock", + Privilege: "StopClock", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-subscription*", + ResourceType: "Simulation*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to stop a simulation", + Privilege: "StopSimulation", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Simulation*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an archive", - Privilege: "DeleteArchive", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "Simulation*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -253638,57 +299679,71 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an ingress point", - Privilege: "DeleteIngressPoint", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-ingress-point*", + ResourceType: "Simulation*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:simspaceweaver:${Region}:${Account}:simulation/${SimulationName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Simulation", + }, + }, + ServiceName: "AWS SimSpace Weaver", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sms", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a SMTP relay", - Privilege: "DeleteRelay", + Description: "Grants permission to create an application configuration to migrate on-premise application onto AWS", + Privilege: "CreateApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-smtp-relay*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a rule set", - Privilege: "DeleteRuleSet", + Description: "Grants permission to create a job to migrate on-premise server onto AWS", + Privilege: "CreateReplicationJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-rule-set*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing application configuration", + Privilege: "DeleteApp", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -253696,75 +299751,95 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a traffic point", - Privilege: "DeleteTrafficPolicy", + Description: "Grants permission to delete launch configuration for an existing application", + Privilege: "DeleteAppLaunchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-traffic-policy*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete replication configuration for an existing application", + Privilege: "DeleteAppReplicationConfiguration", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an addon instance", - Privilege: "GetAddonInstance", + AccessLevel: "Write", + Description: "Grants permission to delete validation configuration for an existing application", + Privilege: "DeleteAppValidationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an existing job to migrate on-premise server onto AWS", + Privilege: "DeleteReplicationJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an addon subscription", - Privilege: "GetAddonSubscription", + AccessLevel: "Write", + Description: "Grants permission to delete the complete list of on-premise servers gathered into AWS", + Privilege: "DeleteServerCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-subscription*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate a connector that has been associated", + Privilege: "DisassociateConnector", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an archive", - Privilege: "GetArchive", + AccessLevel: "Write", + Description: "Grants permission to generate a changeSet for the CloudFormation stack of an application", + Privilege: "GenerateChangeSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a CloudFormation template for an existing application", + Privilege: "GenerateTemplate", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -253772,144 +299847,116 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get information about an archive export", - Privilege: "GetArchiveExport", + Description: "Grants permission to get the configuration and statuses for an existing application", + Privilege: "GetApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve archived message", - Privilege: "GetArchiveMessage", + Description: "Grants permission to get launch configuration for an existing application", + Privilege: "GetAppLaunchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve archived message content", - Privilege: "GetArchiveMessageContent", + Description: "Grants permission to get replication configuration for an existing application", + Privilege: "GetAppReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a search", - Privilege: "GetArchiveSearch", + Description: "Grants permission to get validation configuration for an existing application", + Privilege: "GetAppValidationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about search results", - Privilege: "GetArchiveSearchResults", + Description: "Grants permission to get notification sent from application validation script.", + Privilege: "GetAppValidationOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about an ingress point", - Privilege: "GetIngressPoint", + Description: "Grants permission to get all connectors that have been associated", + Privilege: "GetConnectors", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-ingress-point*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a SMTP relay", - Privilege: "GetRelay", + Description: "Grants permission to gets messages from AWS Server Migration Service to Server Migration Connector", + Privilege: "GetMessages", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-smtp-relay*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a rule set", - Privilege: "GetRuleSet", + Description: "Grants permission to get all existing jobs to migrate on-premise servers onto AWS", + Privilege: "GetReplicationJobs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-rule-set*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a traffic policy", - Privilege: "GetTrafficPolicy", + Description: "Grants permission to get all runs for an existing job", + Privilege: "GetReplicationRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-traffic-policy*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the addon instances associated with your account", - Privilege: "ListAddonInstances", + AccessLevel: "Read", + Description: "Grants permission to get all servers that have been imported", + Privilege: "GetServers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253919,9 +299966,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the addon subscriptions associated with your account", - Privilege: "ListAddonSubscriptions", + AccessLevel: "Write", + Description: "Grants permission to import application catalog from AWS Application Discovery Service", + Privilege: "ImportAppCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253931,9 +299978,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the archive exports associated with your account", - Privilege: "ListArchiveExports", + AccessLevel: "Write", + Description: "Grants permission to gather a complete list of on-premise servers", + Privilege: "ImportServerCatalog", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253943,9 +299990,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the archive searches associated with your account", - Privilege: "ListArchiveSearches", + AccessLevel: "Write", + Description: "Grants permission to create and launch a CloudFormation stack for an existing application", + Privilege: "LaunchApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253956,8 +300003,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all of the archives associated with your account", - Privilege: "ListArchives", + Description: "Grants permission to get a list of summaries for existing applications", + Privilege: "ListApps", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253967,9 +300014,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the ingress points associated with your account", - Privilege: "ListIngressPoints", + AccessLevel: "Write", + Description: "Grants permission to send notification for application validation script", + Privilege: "NotifyAppValidationOutput", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253979,9 +300026,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the SMTP relays associated with your account", - Privilege: "ListRelays", + AccessLevel: "Write", + Description: "Grants permission to create or update launch configuration for an existing application", + Privilege: "PutAppLaunchConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -253991,9 +300038,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the rule sets associated with your account", - Privilege: "ListRuleSets", + AccessLevel: "Write", + Description: "Grants permission to create or update replication configuration for an existing application", + Privilege: "PutAppReplicationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -254003,51 +300050,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all of the tags associated with the resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to put validation configuration for an existing application", + Privilege: "PutAppValidationConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "addon-subscription", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-archive", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-ingress-point", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-rule-set", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-smtp-relay", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send message from Server Migration Connector to AWS Server Migration Service", + Privilege: "SendMessage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-traffic-policy", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the traffic policies associated with your account", - Privilege: "ListTrafficPolicies", + AccessLevel: "Write", + Description: "Grants permission to create and start replication jobs for an existing application", + Privilege: "StartAppReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -254058,144 +300087,207 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start an archive export", - Privilege: "StartArchiveExport", + Description: "Grants permission to start a replication run for an existing application", + Privilege: "StartOnDemandAppReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start an archive search", - Privilege: "StartArchiveSearch", + Description: "Grants permission to start a replication run for an existing replication job", + Privilege: "StartOnDemandReplicationRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop archive export", - Privilege: "StopArchiveExport", + Description: "Grants permission to stop and delete replication jobs for an existing application", + Privilege: "StopAppReplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop archive search", - Privilege: "StopArchiveSearch", + Description: "Grants permission to terminate the CloudFormation stack for an existing application", + Privilege: "TerminateApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags (keys and values) to a specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update an existing application configuration", + Privilege: "UpdateApp", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update an existing job to migrate on-premise server onto AWS", + Privilege: "UpdateReplicationJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "addon-subscription", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Server Migration Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "sms-voice", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate an origination phone number or sender ID to a pool", + Privilege: "AssociateOriginationIdentity", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-archive", + ResourceType: "Pool*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-ingress-point", + ResourceType: "PhoneNumber", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-rule-set", + ResourceType: "SenderId", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate a protect configuration to a configuration set", + Privilege: "AssociateProtectConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-smtp-relay", + ResourceType: "ConfigurationSet*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-traffic-policy", + ResourceType: "ProtectConfiguration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a configuration set", + Privilege: "CreateConfigurationSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags (keys and values) from a specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create an event destination within a configuration set", + Privilege: "CreateEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "addon-instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "addon-subscription", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-archive", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-ingress-point", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "ConfigurationSet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an opt-out list", + Privilege: "CreateOptOutList", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-rule-set", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a pool", + Privilege: "CreatePool", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-smtp-relay", + ConditionKeys: []string{}, + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "PhoneNumber", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-traffic-policy", + ResourceType: "SenderId", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -254205,265 +300297,185 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an archive", - Privilege: "UpdateArchive", + Description: "Grants permission to create a protect configuration", + Privilege: "CreateProtectConfiguration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-archive*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an ingress point", - Privilege: "UpdateIngressPoint", + Description: "Grants permission to create a registration", + Privilege: "CreateRegistration", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-ingress-point*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", - "ses:MailManagerTrafficPolicyArn", - "ses:MailManagerRuleSetArn", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a SMTP relay", - Privilege: "UpdateRelay", + Description: "Grants permission to associate a registration with a phone number or another registration", + Privilege: "CreateRegistrationAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-smtp-relay*", + ResourceType: "Registration*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a rule set", - Privilege: "UpdateRuleSet", + Description: "Grants permission to create a registration attachment", + Privilege: "CreateRegistrationAttachment", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "mailmanager-rule-set*", - }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a traffic policy", - Privilege: "UpdateTrafficPolicy", + Description: "Grants permission to create a registration version", + Privilege: "CreateRegistrationVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "mailmanager-traffic-policy*", + ResourceType: "Registration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a verified destination number", + Privilege: "CreateVerifiedDestinationNumber", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:addon-instance/${AddonInstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "addon-instance", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:addon-subscription/${AddonSubscriptionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "addon-subscription", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-archive/${ArchiveId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "mailmanager-archive", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-ingress-point/${IngressPointId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ses:MailManagerIngressPointType", - }, - Resource: "mailmanager-ingress-point", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-smtp-relay/${RelayId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "mailmanager-smtp-relay", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-rule-set/${RuleSetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "mailmanager-rule-set", - }, { - Arn: "arn:${Partition}:ses:${Region}:${Account}:mailmanager-traffic-policy/${TrafficPolicyId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to delete the account default protect configuration", + Privilege: "DeleteAccountDefaultProtectConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "mailmanager-traffic-policy", - }, - }, - ServiceName: "Amazon Simple Email Service - Mail Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "ses:ApiVersion", - Description: "Filters actions based on the SES API version", - Type: "String", - }, - { - Condition: "ses:FeedbackAddress", - Description: "Filters actions based on the \"Return-Path\" address, which specifies where bounces and complaints are sent by email feedback forwarding", - Type: "String", - }, - { - Condition: "ses:FromAddress", - Description: "Filters actions based on the \"From\" address of a message", - Type: "String", - }, - { - Condition: "ses:FromDisplayName", - Description: "Filters actions based on the \"From\" address that is used as the display name of a message", - Type: "String", - }, - { - Condition: "ses:Recipients", - Description: "Filters actions based on the recipient addresses of a message, which include the \"To\", \"CC\", and \"BCC\" addresses", - Type: "ArrayOfString", }, - }, - Prefix: "ses", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a receipt rule set by cloning an existing one", - Privilege: "CloneReceiptRuleSet", + Description: "Grants permission to delete a configuration set", + Privilege: "DeleteConfigurationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new configuration set", - Privilege: "CreateConfigurationSet", + Description: "Grants permission to delete the default message type for a configuration set", + Privilege: "DeleteDefaultMessageType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a configuration set event destination", - Privilege: "CreateConfigurationSetEventDestination", + Description: "Grants permission to delete the default sender ID for a configuration set", + Privilege: "DeleteDefaultSenderId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to creates an association between a configuration set and a custom domain for open and click event tracking", - Privilege: "CreateConfigurationSetTrackingOptions", + Description: "Grants permission to delete an event destination within a configuration set", + Privilege: "DeleteEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new custom verification email template", - Privilege: "CreateCustomVerificationEmailTemplate", + Description: "Grants permission to delete a keyword for a pool or origination phone number", + Privilege: "DeleteKeyword", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Pool", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new IP address filter", - Privilege: "CreateReceiptFilter", + Description: "Grants permission to delete an override for your account's media messaging monthly spend limit", + Privilege: "DeleteMediaMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -254471,139 +300483,134 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a receipt rule", - Privilege: "CreateReceiptRule", + Description: "Grants permission to delete an opt-out list", + Privilege: "DeleteOptOutList", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an empty receipt rule set", - Privilege: "CreateReceiptRuleSet", + Description: "Grants permission to delete a destination phone number from an opt-out list", + Privilege: "DeleteOptedOutNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to creates an email template", - Privilege: "CreateTemplate", + Description: "Grants permission to delete a pool", + Privilege: "DeletePool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing configuration set", - Privilege: "DeleteConfigurationSet", + Description: "Grants permission to delete a protect configuration", + Privilege: "DeleteProtectConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an event destination", - Privilege: "DeleteConfigurationSetEventDestination", + Description: "Grants permission to delete a phone number override for a protect configuration", + Privilege: "DeleteProtectConfigurationRuleSetNumberOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an association between a configuration set and a custom domain for open and click event tracking", - Privilege: "DeleteConfigurationSetTrackingOptions", + Description: "Grants permission to delete a registration", + Privilege: "DeleteRegistration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing custom verification email template", - Privilege: "DeleteCustomVerificationEmailTemplate", + Description: "Grants permission to delete a registration attachment", + Privilege: "DeleteRegistrationAttachment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RegistrationAttachment*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified identity", - Privilege: "DeleteIdentity", + Description: "Grants permission to delete an optional registration field value", + Privilege: "DeleteRegistrationFieldValue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, { AccessLevel: "Permissions management", - Description: "Grants permission to delete the specified sending authorization policy for the given identity (an email address or a domain)", - Privilege: "DeleteIdentityPolicy", + Description: "Grants permission to delete a resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified IP address filter", - Privilege: "DeleteReceiptFilter", + Description: "Grants permission to delete an override for your account's text messaging monthly spend limit", + Privilege: "DeleteTextMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -254611,55 +300618,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified receipt rule", - Privilege: "DeleteReceiptRule", + Description: "Grants permission to delete a verified destination number", + Privilege: "DeleteVerifiedDestinationNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "VerifiedDestinationNumber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified receipt rule set and all of the receipt rules it contains", - Privilege: "DeleteReceiptRuleSet", + Description: "Grants permission to delete an override for your account's voice messaging monthly spend limit", + Privilege: "DeleteVoiceMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an email template", - Privilege: "DeleteTemplate", + AccessLevel: "Read", + Description: "Grants permission to describe the attributes of your account", + Privilege: "DescribeAccountAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the specified email address from the list of verified addresses", - Privilege: "DeleteVerifiedEmailAddress", + AccessLevel: "Read", + Description: "Grants permission to describe the service quotas for your account", + Privilege: "DescribeAccountLimits", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -254667,125 +300666,112 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the metadata and receipt rules for the receipt rule set that is currently active", - Privilege: "DescribeActiveReceiptRuleSet", + Description: "Grants permission to describe the configuration sets in your account", + Privilege: "DescribeConfigurationSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the details of the specified configuration set", - Privilege: "DescribeConfigurationSet", + Description: "Grants permission to describe the keywords for a pool or origination phone number", + Privilege: "DescribeKeywords", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Pool", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the details of the specified receipt rule", - Privilege: "DescribeReceiptRule", + Description: "Grants permission to describe the opt-out lists in your account", + Privilege: "DescribeOptOutLists", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the details of the specified receipt rule set", - Privilege: "DescribeReceiptRuleSet", + Description: "Grants permission to describe the destination phone numbers in an opt-out list", + Privilege: "DescribeOptedOutNumbers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the email sending status of your account", - Privilege: "GetAccountSendingEnabled", + Description: "Grants permission to describe the origination phone numbers in your account", + Privilege: "DescribePhoneNumbers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the custom email verification template for the template name you specify", - Privilege: "GetCustomVerificationEmailTemplate", + Description: "Grants permission to describe the pools in your account", + Privilege: "DescribePools", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the current status of Easy DKIM signing for an entity", - Privilege: "GetIdentityDkimAttributes", + Description: "Grants permission to describe the protect configurations in your account", + Privilege: "DescribeProtectConfigurations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the custom MAIL FROM attributes for a list of identities (email addresses and/or domains)", - Privilege: "GetIdentityMailFromDomainAttributes", + Description: "Grants permission to describe the registration attachments in your account", + Privilege: "DescribeRegistrationAttachments", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "RegistrationAttachment", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a structure describing identity notification attributes for a list of verified identities (email addresses and/or domains),", - Privilege: "GetIdentityNotificationAttributes", + Description: "Grants permission to describe the field definitions for a given registration type", + Privilege: "DescribeRegistrationFieldDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -254793,27 +300779,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the requested sending authorization policies for the given identity (an email address or a domain)", - Privilege: "GetIdentityPolicies", + Description: "Grants permission to describe the field values for a given registration", + Privilege: "DescribeRegistrationFieldValues", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the verification status and (for domain identities) the verification token for a list of identities", - Privilege: "GetIdentityVerificationAttributes", + Description: "Grants permission to describe the section definitions for a given registration type", + Privilege: "DescribeRegistrationSectionDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -254821,13 +300803,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return the user's current sending limits", - Privilege: "GetSendQuota", + Description: "Grants permission to describe the registration types supported by the service", + Privilege: "DescribeRegistrationTypeDefinitions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -254835,401 +300815,375 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to returns the user's sending statistics", - Privilege: "GetSendStatistics", + Description: "Grants permission to describe the versions for a given registration", + Privilege: "DescribeRegistrationVersions", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the template object, which includes the subject line, HTML par, and text part for the template you specify", - Privilege: "GetTemplate", + Description: "Grants permission to describe the registrations in your account", + Privilege: "DescribeRegistrations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the configuration sets for your account", - Privilege: "ListConfigurationSets", + AccessLevel: "Read", + Description: "Grants permission to describe the sender IDs in your account", + Privilege: "DescribeSenderIds", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SenderId", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the existing custom verification email templates for your account", - Privilege: "ListCustomVerificationEmailTemplates", + AccessLevel: "Read", + Description: "Grants permission to describe the monthly spend limits for your account", + Privilege: "DescribeSpendLimits", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the email identities for your account", - Privilege: "ListIdentities", + AccessLevel: "Read", + Description: "Grants permission to describe the verified destination numbers in your account", + Privilege: "DescribeVerifiedDestinationNumbers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "VerifiedDestinationNumber", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the email templates for your account", - Privilege: "ListIdentityPolicies", + AccessLevel: "Write", + Description: "Grants permission to disassociate an origination phone number or sender ID from a pool", + Privilege: "DisassociateOriginationIdentity", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the IP address filters associated with your account", - Privilege: "ListReceiptFilters", + AccessLevel: "Write", + Description: "Grants permission to disassociate a protect configuration from a configuration set", + Privilege: "DisassociateProtectConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ProtectConfiguration*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to discard the latest version of a given registration", + Privilege: "DiscardRegistrationVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Registration*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the receipt rule sets that exist under your account", - Privilege: "ListReceiptRuleSets", + Description: "Grants permission to get the country rule set for a protect configuration", + Privilege: "GetProtectConfigurationCountryRuleSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the email templates present in your account", - Privilege: "ListTemplates", + AccessLevel: "Read", + Description: "Grants permission to get a resource policy", + Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all of the email addresses that have been verified in your account", - Privilege: "ListVerifiedEmailAddresses", + Description: "Grants permission to list all origination phone numbers and sender IDs associated to a pool", + Privilege: "ListPoolOriginationIdentities", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add or update the delivery options for a configuration set", - Privilege: "PutConfigurationSetDeliveryOptions", + AccessLevel: "Read", + Description: "Grants permission to list all phone number overrides for a protect configuration", + Privilege: "ListProtectConfigurationRuleSetNumberOverrides", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add or update a sending authorization policy for the specified identity (an email address or a domain)", - Privilege: "PutIdentityPolicy", + AccessLevel: "Read", + Description: "Grants permission to list all resources associated to a registration", + Privilege: "ListRegistrationAssociations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to reorder the receipt rules within a receipt rule set", - Privilege: "ReorderReceiptRuleSet", + AccessLevel: "Read", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ConfigurationSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "OptOutList", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to generate and send a bounce message to the sender of an email you received through Amazon SES", - Privilege: "SendBounce", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "Pool", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FromAddress", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to compose an email message to multiple destinations", - Privilege: "SendBulkTemplatedEmail", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "Registration", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "RegistrationAttachment", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "SenderId", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "VerifiedDestinationNumber", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add an email address to the list of identities and attempts to verify it for your account", - Privilege: "SendCustomVerificationEmail", + Description: "Grants permission to create or update a keyword for a pool or origination phone number", + Privilege: "PutKeyword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an email message", - Privilege: "SendEmail", + Description: "Grants permission to put feedback for a text, voice, or media message", + Privilege: "PutMessageFeedback", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "Message*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put a destination phone number into an opt-out list", + Privilege: "PutOptedOutNumber", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send an email message, with header and content specified by the client", - Privilege: "SendRawEmail", + Description: "Grants permission to put a phone number override for a protect configuration", + Privilege: "PutProtectConfigurationRuleSetNumberOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "ProtectConfiguration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put a registration field value", + Privilege: "PutRegistrationFieldValue", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to compose an email message using an email template", - Privilege: "SendTemplatedEmail", + AccessLevel: "Permissions management", + Description: "Grants permission to put a resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "OptOutList", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "PhoneNumber", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "Pool", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SenderId", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the specified receipt rule set as the active receipt rule set", - Privilege: "SetActiveReceiptRuleSet", + Description: "Grants permission to release an origination phone number", + Privilege: "ReleasePhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable Easy DKIM signing of email sent from an identity", - Privilege: "SetIdentityDkimEnabled", + Description: "Grants permission to release a sender ID", + Privilege: "ReleaseSenderId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SenderId*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable whether Amazon SES forwards bounce and complaint notifications for an identity (an email address or a domain)", - Privilege: "SetIdentityFeedbackForwardingEnabled", + Description: "Grants permission to request an origination phone number", + Privilege: "RequestPhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", + ConditionKeys: []string{}, + DependentActions: []string{ + "sms-voice:AssociateOriginationIdentity", + "sms-voice:TagResource", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set whether Amazon SES includes the original email headers in the Amazon Simple Notification Service (Amazon SNS) notifications of a specified type for a given identity (an email address or a domain)", - Privilege: "SetIdentityHeadersInNotificationsEnabled", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -255238,181 +301192,157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable the custom MAIL FROM domain setup for a verified identity", - Privilege: "SetIdentityMailFromDomain", + Description: "Grants permission to request an unregistered sender ID", + Privilege: "RequestSenderId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set an Amazon Simple Notification Service (Amazon SNS) topic to use when delivering notifications for a verified identity", - Privilege: "SetIdentityNotificationTopic", + Description: "Grants permission to send a text or voice message containing a verification code to a destination phone number", + Privilege: "SendDestinationNumberVerificationCode", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", + ConditionKeys: []string{}, + DependentActions: []string{ + "sms-voice:SendTextMessage", + "sms-voice:SendVoiceMessage", }, + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to set the position of the specified receipt rule in the receipt rule set", - Privilege: "SetReceiptRulePosition", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SenderId", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a preview of the MIME content of an email when provided with a template and a set of replacement data", - Privilege: "TestRenderTemplate", + Description: "Grants permission to send a media message to a destination phone number", + Privilege: "SendMediaMessage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable or disable email sending for your account", - Privilege: "UpdateAccountSendingEnabled", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the event destination of a configuration set", - Privilege: "UpdateConfigurationSetEventDestination", + Description: "Grants permission to send a text message to a destination phone number", + Privilege: "SendTextMessage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to enable or disable the publishing of reputation metrics for emails sent using a specific configuration set", - Privilege: "UpdateConfigurationSetReputationMetricsEnabled", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable email sending for messages sent using a specific configuration set", - Privilege: "UpdateConfigurationSetSendingEnabled", + Description: "Grants permission to send a voice message to a destination phone number", + Privilege: "SendVoiceMessage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Pool", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to modify an association between a configuration set and a custom domain for open and click event tracking", - Privilege: "UpdateConfigurationSetTrackingOptions", + Description: "Grants permission to set a default protect configuration for the account", + Privilege: "SetAccountDefaultProtectConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an existing custom verification email template", - Privilege: "UpdateCustomVerificationEmailTemplate", + Description: "Grants permission to set the default message feedback for a configuration set", + Privilege: "SetDefaultMessageFeedbackEnabled", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a receipt rule", - Privilege: "UpdateReceiptRule", + Description: "Grants permission to set the default message type for a configuration set", + Privilege: "SetDefaultMessageType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an email template", - Privilege: "UpdateTemplate", + Description: "Grants permission to set the default sender ID for a configuration set", + Privilege: "SetDefaultSenderId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to return a set of DKIM tokens for a domain", - Privilege: "VerifyDomainDkim", + Description: "Grants permission to set an override for your account's media messaging monthly spend limit", + Privilege: "SetMediaMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -255420,13 +301350,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to verify a domain", - Privilege: "VerifyDomainIdentity", + Description: "Grants permission to set an override for your account's text messaging monthly spend limit", + Privilege: "SetTextMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -255434,13 +301362,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to verify an email address", - Privilege: "VerifyEmailAddress", + Description: "Grants permission to set an override for your account's voice messaging monthly spend limit", + Privilege: "SetVoiceMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -255448,153 +301374,70 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to verify an email identity", - Privilege: "VerifyEmailIdentity", + Description: "Grants permission to submit the latest version of a given registration", + Privilege: "SubmitRegistrationVersion", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:configuration-set/${ConfigurationSetName}", - ConditionKeys: []string{}, - Resource: "configuration-set", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:custom-verification-email-template/${TemplateName}", - ConditionKeys: []string{}, - Resource: "custom-verification-email-template", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:identity/${IdentityName}", - ConditionKeys: []string{}, - Resource: "identity", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:template/${TemplateName}", - ConditionKeys: []string{}, - Resource: "template", - }, - }, - ServiceName: "Amazon SES", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - { - Condition: "ses:ApiVersion", - Description: "Filters access by the SES API version", - Type: "String", - }, - { - Condition: "ses:ExportSourceType", - Description: "Filters access by the export source type", - Type: "String", - }, - { - Condition: "ses:FeedbackAddress", - Description: "Filters access by the \"Return-Path\" address, which specifies where bounces and complaints are sent by email feedback forwarding", - Type: "String", - }, - { - Condition: "ses:FromAddress", - Description: "Filters access by the \"From\" address of a message", - Type: "String", - }, - { - Condition: "ses:FromDisplayName", - Description: "Filters access by the \"From\" address that is used as the display name of a message", - Type: "String", - }, { - Condition: "ses:Recipients", - Description: "Filters access by the recipient addresses of a message, which include the \"To\", \"CC\", and \"BCC\" addresses", - Type: "ArrayOfString", - }, - }, - Prefix: "ses", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Read", - Description: "Grants permission to get metric data on your activity", - Privilege: "BatchGetMetricData", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "ConfigurationSet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "OptOutList", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an export job", - Privilege: "CancelExportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-job*", + ResourceType: "Pool", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:ExportSourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new configuration set", - Privilege: "CreateConfigurationSet", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "Registration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "RegistrationAttachment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "VerifiedDestinationNumber", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -255602,100 +301445,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a configuration set event destination", - Privilege: "CreateConfigurationSetEventDestination", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "ConfigurationSet", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a contact", - Privilege: "CreateContact", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a contact list", - Privilege: "CreateContactList", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", + ResourceType: "ProtectConfiguration", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Registration", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new custom verification email template", - Privilege: "CreateCustomVerificationEmailTemplate", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-verification-email-template*", + ResourceType: "RegistrationAttachment", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SenderId", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a new pool of dedicated IP addresses", - Privilege: "CreateDedicatedIpPool", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", + ResourceType: "VerifiedDestinationNumber", }, { ConditionKeys: []string{ - "ses:ApiVersion", "aws:TagKeys", - "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -255704,95 +301505,178 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a new predictive inbox placement test", - Privilege: "CreateDeliverabilityTestReport", + Description: "Grants permission to update an event destination within a configuration set", + Privilege: "UpdateEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start the process of verifying an email identity", - Privilege: "CreateEmailIdentity", + Description: "Grants permission to update an origination phone number's configuration", + Privilege: "UpdatePhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identity*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "PhoneNumber*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a pool's configuration", + Privilege: "UpdatePool", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create the specified sending authorization policy for the given identity", - Privilege: "CreateEmailIdentityPolicy", + AccessLevel: "Write", + Description: "Grants permission to update a protect configuration", + Privilege: "UpdateProtectConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "ProtectConfiguration*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a country rule set for a protect configuration", + Privilege: "UpdateProtectConfigurationCountryRuleSet", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ProtectConfiguration*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an email template", - Privilege: "CreateEmailTemplate", + Description: "Grants permission to update a sender ID's configuration", + Privilege: "UpdateSenderId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "SenderId*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to verify a destination phone number", + Privilege: "VerifyDestinationNumber", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "VerifiedDestinationNumber*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:configuration-set/${ConfigurationSetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ConfigurationSet", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:opt-out-list/${OptOutListName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "OptOutList", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:phone-number/${PhoneNumberId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "PhoneNumber", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:pool/${PoolId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Pool", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:protect-configuration/${ProtectConfigurationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ProtectConfiguration", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:sender-id/${SenderId}/${IsoCountryCode}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SenderId", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:registration/${RegistrationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Registration", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:registration-attachment/${RegistrationAttachmentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "RegistrationAttachment", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:verified-destination-number/${VerifiedDestinationNumberId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "VerifiedDestinationNumber", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:message/${MessageId}", + ConditionKeys: []string{}, + Resource: "Message", + }, + }, + ServiceName: "AWS End User Messaging SMS and Voice V2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sms-voice", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create an export job", - Privilege: "CreateExportJob", + Description: "Create a new configuration set. After you create the configuration set, you can add one or more event destinations to it.", + Privilege: "CreateConfigurationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:ExportSourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -255800,73 +301684,61 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to creates an import job for a data destination", - Privilege: "CreateImportJob", + Description: "Create a new event destination in a configuration set.", + Privilege: "CreateConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing configuration set", + Description: "Deletes an existing configuration set.", Privilege: "DeleteConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an event destination", + Description: "Deletes an event destination in a configuration set.", Privilege: "DeleteConfigurationSetEventDestination", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a contact from a contact list", - Privilege: "DeleteContact", + AccessLevel: "Read", + Description: "Obtain information about an event destination, including the types of events it reports, the Amazon Resource Name (ARN) of the destination, and the name of the event destination.", + Privilege: "GetConfigurationSetEventDestinations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Return a list of configuration sets. This operation only returns the configuration sets that are associated with your account in the current AWS Region.", + Privilege: "ListConfigurationSets", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -255874,97 +301746,145 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a contact list with all of its contacts", - Privilege: "DeleteContactList", + Description: "Create a new voice message and send it to a recipient's phone number.", + Privilege: "SendVoiceMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Update an event destination in a configuration set. An event destination is a location that you publish information about your voice calls to. For example, you can log an event to an Amazon CloudWatch destination when a call fails.", + Privilege: "UpdateConfigurationSetEventDestination", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Pinpoint SMS and Voice Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "sms-voice", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete an existing custom verification email template", - Privilege: "DeleteCustomVerificationEmailTemplate", + Description: "Grants permission to associate an origination phone number or sender ID to a pool", + Privilege: "AssociateOriginationIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-verification-email-template*", + ResourceType: "Pool*", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a dedicated IP pool", - Privilege: "DeleteDedicatedIpPool", + Description: "Grants permission to create a configuration set", + Privilege: "CreateConfigurationSet", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", - }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an email identity", - Privilege: "DeleteEmailIdentity", + Description: "Grants permission to create an event destination within a configuration set", + Privilege: "CreateEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "identity*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "ConfigurationSet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an opt-out list", + Privilege: "CreateOptOutList", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the specified sending authorization policy for the given identity (an email address or a domain)", - Privilege: "DeleteEmailIdentityPolicy", + AccessLevel: "Write", + Description: "Grants permission to create a pool", + Privilege: "CreatePool", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "sms-voice:TagResource", + }, + ResourceType: "PhoneNumber", + }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "SenderId", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -255973,120 +301893,124 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an email template", - Privilege: "DeleteEmailTemplate", + Description: "Grants permission to delete a configuration set", + Privilege: "DeleteConfigurationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove an email address from the suppression list for your account", - Privilege: "DeleteSuppressedDestination", + Description: "Grants permission to delete the default message type for a configuration set", + Privilege: "DeleteDefaultMessageType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the email-sending status and capabilities for your account", - Privilege: "GetAccount", + AccessLevel: "Write", + Description: "Grants permission to delete the default sender ID for a configuration set", + Privilege: "DeleteDefaultSenderId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of the deny lists on which your dedicated IP addresses or tracked domains appear", - Privilege: "GetBlacklistReports", + AccessLevel: "Write", + Description: "Grants permission to delete an event destination within a configuration set", + Privilege: "DeleteEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about an existing configuration set", - Privilege: "GetConfigurationSet", + AccessLevel: "Write", + Description: "Grants permission to delete a keyword for a pool or origination phone number", + Privilege: "DeleteKeyword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of event destinations that are associated with a configuration set", - Privilege: "GetConfigurationSetEventDestinations", + AccessLevel: "Write", + Description: "Grants permission to delete an opt-out list", + Privilege: "DeleteOptOutList", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "OptOutList*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a destination phone number from an opt-out list", + Privilege: "DeleteOptedOutNumber", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a contact from a contact list", - Privilege: "GetContact", + AccessLevel: "Write", + Description: "Grants permission to delete a pool", + Privilege: "DeletePool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", + ResourceType: "Pool*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an override for your account's text messaging monthly spend limit", + Privilege: "DeleteTextMessageSpendLimitOverride", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an override for your account's voice messaging monthly spend limit", + Privilege: "DeleteVoiceMessageSpendLimitOverride", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -256094,312 +302018,253 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to return contact list metadata", - Privilege: "GetContactList", + Description: "Grants permission to describe the attributes of your account", + Privilege: "DescribeAccountAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the custom email verification template for the template name you specify", - Privilege: "GetCustomVerificationEmailTemplate", + Description: "Grants permission to describe the service quotas for your account", + Privilege: "DescribeAccountLimits", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-verification-email-template*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a dedicated IP address", - Privilege: "GetDedicatedIp", + Description: "Grants permission to describe the configuration sets in your account", + Privilege: "DescribeConfigurationSets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get information about a dedicated IP pool", - Privilege: "GetDedicatedIpPool", + Description: "Grants permission to describe the keywords for a pool or origination phone number", + Privilege: "DescribeKeywords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the dedicated IP addresses a dedicated IP pool", - Privilege: "GetDedicatedIps", + Description: "Grants permission to describe the opt-out lists in your account", + Privilege: "DescribeOptOutLists", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the status of the Deliverability dashboard", - Privilege: "GetDeliverabilityDashboardOptions", + Description: "Grants permission to describe the destination phone numbers in an opt-out list", + Privilege: "DescribeOptedOutNumbers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the results of a predictive inbox placement test", - Privilege: "GetDeliverabilityTestReport", + Description: "Grants permission to describe the origination phone numbers in your account", + Privilege: "DescribePhoneNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverability-test-report*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all the deliverability data for a specific campaign", - Privilege: "GetDomainDeliverabilityCampaign", + Description: "Grants permission to describe the pools in your account", + Privilege: "DescribePools", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve inbox placement and engagement rates for the domains that you use to send email", - Privilege: "GetDomainStatisticsReport", + Description: "Grants permission to describe the sender IDs in your account", + Privilege: "DescribeSenderIds", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "SenderId", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the monthly spend limits for your account", + Privilege: "DescribeSpendLimits", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about a specific identity", - Privilege: "GetEmailIdentity", + AccessLevel: "Write", + Description: "Grants permission to disassociate an origination phone number or sender ID from a pool", + Privilege: "DisassociateOriginationIdentity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "Pool*", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the requested sending authorization policies for the given identity (an email address or a domain)", - Privilege: "GetEmailIdentityPolicies", + Description: "Grants permission to list all origination phone numbers and sender IDs associated to a pool", + Privilege: "ListPoolOriginationIdentities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return the template object, which includes the subject line, HTML part, and text part for the template you specify", - Privilege: "GetEmailTemplate", + Description: "Grants permission to list the tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "ConfigurationSet", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get information about an export job", - Privilege: "GetExportJob", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "export-job*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:ExportSourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide information about an import job", - Privilege: "GetImportJob", + AccessLevel: "Write", + Description: "Grants permission to create or update a keyword for a pool or origination phone number", + Privilege: "PutKeyword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "import-job*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to provide insights about a message", - Privilege: "GetMessageInsights", + AccessLevel: "Write", + Description: "Grants permission to put a destination phone number into an opt-out list", + Privilege: "PutOptedOutNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "OptOutList*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about a specific email address that's on the suppression list for your account", - Privilege: "GetSuppressedDestination", + AccessLevel: "Write", + Description: "Grants permission to release an origination phone number", + Privilege: "ReleasePhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the configuration sets for your account", - Privilege: "ListConfigurationSets", + AccessLevel: "Write", + Description: "Grants permission to request an origination phone number", + Privilege: "RequestPhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", + ConditionKeys: []string{}, + DependentActions: []string{ + "sms-voice:AssociateOriginationIdentity", + "sms-voice:TagResource", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all of the contact lists available for your account", - Privilege: "ListContactLists", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -256407,165 +302272,126 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the contacts present in a specific contact list", - Privilege: "ListContacts", + AccessLevel: "Write", + Description: "Grants permission to send a text message to a destination phone number", + Privilege: "SendTextMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", + ResourceType: "PhoneNumber", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all of the existing custom verification email templates for your account", - Privilege: "ListCustomVerificationEmailTemplates", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "SenderId", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the dedicated IP pools for your account", - Privilege: "ListDedicatedIpPools", + AccessLevel: "Write", + Description: "Grants permission to send a voice message to a destination phone number", + Privilege: "SendVoiceMessage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to retrieve the list of the predictive inbox placement tests that you've performed, regardless of their statuses, for your account", - Privilege: "ListDeliverabilityTestReports", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list deliverability data for campaigns that used a specific domain to send email during a specified time range", - Privilege: "ListDomainDeliverabilityCampaigns", + AccessLevel: "Write", + Description: "Grants permission to set the default message type for a configuration set", + Privilege: "SetDefaultMessageType", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the email identities for your account", - Privilege: "ListEmailIdentities", + AccessLevel: "Write", + Description: "Grants permission to set the default sender ID for a configuration set", + Privilege: "SetDefaultSenderId", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the email templates for your account", - Privilege: "ListEmailTemplates", + AccessLevel: "Write", + Description: "Grants permission to set an override for your account's text messaging monthly spend limit", + Privilege: "SetTextMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all the exports jobs for your account", - Privilege: "ListExportJobs", + AccessLevel: "Write", + Description: "Grants permission to set an override for your account's voice messaging monthly spend limit", + Privilege: "SetVoiceMessageSpendLimitOverride", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:ExportSourceType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of the import jobs for your account", - Privilege: "ListImportJobs", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list recommendations for your account", - Privilege: "ListRecommendations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "OptOutList", }, { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Pool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "SenderId", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list email addresses that are on the suppression list for your account", - Privilege: "ListSuppressedDestinations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -256573,38 +302399,39 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve a list of the tags (keys and values) that are associated with a specific resource for your account", - Privilege: "ListTagsForResource", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "ConfigurationSet", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list", + ResourceType: "OptOutList", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool", + ResourceType: "PhoneNumber", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverability-test-report", + ResourceType: "Pool", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "SenderId", }, { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -256613,68 +302440,123 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable the automatic warm-up feature for dedicated IP addresses", - Privilege: "PutAccountDedicatedIpWarmupAttributes", + Description: "Grants permission to update an event destination within a configuration set", + Privilege: "UpdateEventDestination", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "ConfigurationSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update your account details", - Privilege: "PutAccountDetails", + Description: "Grants permission to update an origination phone number's configuration", + Privilege: "UpdatePhoneNumber", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PhoneNumber*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable the ability to send email for your account", - Privilege: "PutAccountSendingAttributes", + Description: "Grants permission to update a pool's configuration", + Privilege: "UpdatePool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Pool*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:configuration-set/${ConfigurationSetName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "ConfigurationSet", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:opt-out-list/${OptOutListName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "OptOutList", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:phone-number/${PhoneNumberId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "PhoneNumber", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:pool/${PoolId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Pool", + }, + { + Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:sender-id/${SenderId}/${IsoCountryCode}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "SenderId", + }, + }, + ServiceName: "Amazon Pinpoint SMS Voice V2", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "snow-device-management", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to change the settings for the account-level suppression list", - Privilege: "PutAccountSuppressionAttributes", + Description: "Grants permission to cancel tasks on remote devices", + Privilege: "CancelTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "task*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the settings for VDM for your account", - Privilege: "PutAccountVdmAttributes", + Description: "Grants permission to create tasks on remote devices", + Privilege: "CreateTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -256682,99 +302564,98 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate a configuration set with a dedicated IP pool", - Privilege: "PutConfigurationSetDeliveryOptions", + AccessLevel: "Read", + Description: "Grants permission to describe a remotely-managed device", + Privilege: "DescribeDevice", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "managed-device*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable collection of reputation metrics for emails that you send using a particular configuration set", - Privilege: "PutConfigurationSetReputationOptions", + AccessLevel: "Read", + Description: "Grants permission to describe a remotely-managed device's EC2 instances", + Privilege: "DescribeDeviceEc2Instances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "managed-device*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe task executions", + Privilege: "DescribeExecution", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable or disable email sending for messages that use a particular configuration set", - Privilege: "PutConfigurationSetSendingOptions", + AccessLevel: "Read", + Description: "Grants permission to describe a task", + Privilege: "DescribeTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "task*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to specify the account suppression list preferences for a particular configuration set", - Privilege: "PutConfigurationSetSuppressionOptions", + AccessLevel: "List", + Description: "Grants permission to list a remotely-managed device's resources", + Privilege: "ListDeviceResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "managed-device*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list remotely-managed devices", + Privilege: "ListDevices", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to specify a custom domain to use for open and click tracking elements in email that you send for a particular configuration set", - Privilege: "PutConfigurationSetTrackingOptions", + AccessLevel: "List", + Description: "Grants permission to list task executions", + Privilege: "ListExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list the tags for a resource (device or task)", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -256782,39 +302663,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to override account-level VDM settings for a particular configuration set", - Privilege: "PutConfigurationSetVdmOptions", + AccessLevel: "List", + Description: "Grants permission to list tasks", + Privilege: "ListTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to move a dedicated IP address to an existing dedicated IP pool", - Privilege: "PutDedicatedIpInPool", + AccessLevel: "Tagging", + Description: "Grants permission to tag a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", + ResourceType: "managed-device", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -256822,34 +302700,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to transition a dedicated IP pool from Standard to Managed", - Privilege: "PutDedicatedIpPoolScalingAttributes", + AccessLevel: "Tagging", + Description: "Grants permission to untag a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool*", + ResourceType: "managed-device", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:snow-device-management:${Region}:${Account}:managed-device/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "managed-device", + }, + { + Arn: "arn:${Partition}:snow-device-management:${Region}:${Account}:task/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "task", + }, + }, + ServiceName: "AWS Snow Device Management", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "snowball", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to put Dedicated IP warm up attributes", - Privilege: "PutDedicatedIpWarmupAttributes", + Description: "Grants permission to cancel a cluster job", + Privilege: "CancelCluster", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -256857,13 +302760,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable the Deliverability dashboard", - Privilege: "PutDeliverabilityDashboardOption", + Description: "Grants permission to cancel the specified job", + Privilege: "CancelJob", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -256871,240 +302772,251 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to associate a configuration set with an email identity", - Privilege: "PutEmailIdentityConfigurationSetAttributes", + Description: "Grants permission to create an address for a Snowball to be shipped to", + Privilege: "CreateAddress", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "configuration-set", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable DKIM authentication for an email identity", - Privilege: "PutEmailIdentityDkimAttributes", + Description: "Grants permission to create an empty cluster", + Privilege: "CreateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to configure or change the DKIM authentication settings for an email domain identity", - Privilege: "PutEmailIdentityDkimSigningAttributes", + Description: "Grants permission to creates a job to import or export data between Amazon S3 and your on-premises data center", + Privilege: "CreateJob", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable feedback forwarding for an email identity", - Privilege: "PutEmailIdentityFeedbackAttributes", + Description: "Grants permission to creates a LongTermPricingListEntry for allowing customers to add an upfront billing contract for a job", + Privilege: "CreateLongTermPricing", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to enable or disable the custom MAIL FROM domain configuration for an email identity", - Privilege: "PutEmailIdentityMailFromAttributes", + Description: "Grants permission to create a shipping label that will be used to return the Snow device to AWS", + Privilege: "CreateReturnShippingLabel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an email address to the suppression list", - Privilege: "PutSuppressedDestination", + AccessLevel: "Read", + Description: "Grants permission to get specific details about that address in the form of an Address object", + Privilege: "DescribeAddress", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to compose an email message to multiple destinations", - Privilege: "SendBulkEmail", + AccessLevel: "List", + Description: "Grants permission to describe a specified number of ADDRESS objects", + Privilege: "DescribeAddresses", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe information about a specific cluster including shipping information, cluster status, and other important metadata", + Privilege: "DescribeCluster", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe information about a specific job including shipping information, job status, and other important metadata", + Privilege: "DescribeJob", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an email address to the list of identities and attempts to verify it", - Privilege: "SendCustomVerificationEmail", + AccessLevel: "Read", + Description: "Grants permission to describe information on the shipping label of a Snow device that is being returned to AWS", + Privilege: "DescribeReturnShippingLabel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-verification-email-template*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a link to an Amazon S3 presigned URL for the manifest file associated with the specified JobId value", + Privilege: "GetJobManifest", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send an email message", - Privilege: "SendEmail", + AccessLevel: "Read", + Description: "Grants permission to get the UnlockCode code value for the specified job", + Privilege: "GetJobUnlockCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the Snowball service limit for your account, and also the number of Snowballs your account has in use", + Privilege: "GetSnowballUsage", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return an Amazon S3 presigned URL for an update file associated with a specified JobId", + Privilege: "GetSoftwareUpdates", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list JobListEntry objects of the specified length", + Privilege: "ListClusterJobs", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "ses:FeedbackAddress", - "ses:FromAddress", - "ses:FromDisplayName", - "ses:Recipients", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags (keys and values) to a specified resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to list ClusterListEntry objects of the specified length", + Privilege: "ListClusters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of the different Amazon EC2 Amazon Machine Images (AMIs) that are owned by your AWS account that would be supported for use on a Snow device", + Privilege: "ListCompatibleImages", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list JobListEntry objects of the specified length", + Privilege: "ListJobs", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list LongTermPricingListEntry objects for the account making the request", + Privilege: "ListLongTermPricing", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverability-test-report", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list Address objects where pickup is available, of the specified length", + Privilege: "ListPickupLocations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all supported versions for Snow on-device services", + Privilege: "ListServiceVersions", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -257112,117 +303024,176 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a preview of the MIME content of an email when provided with a template and a set of replacement data", - Privilege: "TestRenderEmailTemplate", + Description: "Grants permission to update while a cluster's ClusterState value is in the AwaitingQuorum state, you can update some of the information associated with a cluster", + Privilege: "UpdateCluster", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update while a job's JobState value is New, you can update some of the information associated with a job", + Privilege: "UpdateJob", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ses:ApiVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags (keys and values) from a specified resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update the state when a the shipment states changes to a different state", + Privilege: "UpdateJobShipmentState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a specific upfront billing contract for a job", + Privilege: "UpdateLongTermPricing", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS Snowball", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by tags from request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by tag keys from request", + Type: "ArrayOfString", + }, + { + Condition: "sns:Endpoint", + Description: "Filters access by the URL, email address, or ARN from a Subscribe request or a previously confirmed subscription", + Type: "String", + }, + { + Condition: "sns:Protocol", + Description: "Filters access by the protocol value from a Subscribe request or a previously confirmed subscription", + Type: "String", + }, + }, + Prefix: "sns", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to add a statement to a topic's access control policy, granting access for the specified AWS accounts to the specified actions", + Privilege: "AddPermission", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "dedicated-ip-pool", + ResourceType: "topic*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to accept a phone number and indicate whether the phone holder has opted out of receiving SMS messages from your account", + Privilege: "CheckIfPhoneNumberIsOptedOut", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "deliverability-test-report", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to verify an endpoint owner's intent to receive messages by validating the token sent to the endpoint by an earlier Subscribe action", + Privilege: "ConfirmSubscription", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity", + ResourceType: "topic*", }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:TagKeys", + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a platform application object for one of the supported push notification services, such as APNS and GCM, to which devices and mobile apps may register", + Privilege: "CreatePlatformApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration of an event destination for a configuration set", - Privilege: "UpdateConfigurationSetEventDestination", + Description: "Grants permission to create an endpoint for a device and mobile app on one of the supported push notification services, such as GCM and APNS", + Privilege: "CreatePlatformEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-set*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a contact's preferences for a list", - Privilege: "UpdateContact", + Description: "Grants permission to add a destination phone number and send a one-time password (OTP) to that phone number for an AWS account", + Privilege: "CreateSMSSandboxPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact-list*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update contact list metadata", - Privilege: "UpdateContactList", + Description: "Grants permission to create a topic to which notifications can be published", + Privilege: "CreateTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "contact-list*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "topic*", }, { ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -257231,198 +303202,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an existing custom verification email template", - Privilege: "UpdateCustomVerificationEmailTemplate", + Description: "Grants permission to delete the endpoint for a device and mobile app from Amazon SNS", + Privilege: "DeleteEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "custom-verification-email-template*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the specified sending authorization policy for the given identity (an email address or a domain)", - Privilege: "UpdateEmailIdentityPolicy", + AccessLevel: "Write", + Description: "Grants permission to delete a platform application object for one of the supported push notification services, such as APNS and GCM", + Privilege: "DeletePlatformApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "identity*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an email template", - Privilege: "UpdateEmailTemplate", + Description: "Grants permission to delete an AWS account's verified or pending phone number", + Privilege: "DeleteSMSSandboxPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "template*", - }, - { - ConditionKeys: []string{ - "ses:ApiVersion", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:configuration-set/${ConfigurationSetName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "configuration-set", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:contact-list/${ContactListName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "contact-list", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:custom-verification-email-template/${TemplateName}", - ConditionKeys: []string{}, - Resource: "custom-verification-email-template", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:dedicated-ip-pool/${DedicatedIPPool}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "dedicated-ip-pool", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:deliverability-test-report/${ReportId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "deliverability-test-report", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:export-job/${ExportJobId}", - ConditionKeys: []string{}, - Resource: "export-job", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:identity/${IdentityName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "identity", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:import-job/${ImportJobId}", - ConditionKeys: []string{}, - Resource: "import-job", - }, - { - Arn: "arn:${Partition}:ses:${Region}:${Account}:template/${TemplateName}", - ConditionKeys: []string{}, - Resource: "template", - }, - }, - ServiceName: "Amazon Simple Email Service v2", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters actions based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters actions based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters actions based on the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "shield", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to authorize the DDoS Response team to access the specified Amazon S3 bucket containing your flow logs", - Privilege: "AssociateDRTLogBucket", + Description: "Grants permission to delete a topic and all its subscriptions", + Privilege: "DeleteTopic", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to authorize the DDoS Response team using the specified role, to access your AWS account to assist with DDoS attack mitigation during potential attacks", - Privilege: "AssociateDRTRole", + AccessLevel: "Read", + Description: "Grants permission to return the data protection policy of the topic", + Privilege: "GetDataProtectionPolicy", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "topic*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add health-based detection to the Shield Advanced protection for a resource", - Privilege: "AssociateHealthCheck", + AccessLevel: "Read", + Description: "Grants permission to retrieve the endpoint attributes for a device on one of the supported push notification services, such as GCM and APNS", + Privilege: "GetEndpointAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "route53:GetHealthCheck", - }, - ResourceType: "protection*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to initialize proactive engagement and set the list of contacts for the DDoS Response Team (DRT) to use", - Privilege: "AssociateProactiveEngagementDetails", + AccessLevel: "Read", + Description: "Grants permission to retrieve the attributes of the platform application object for the supported push notification services, such as APNS and GCM", + Privilege: "GetPlatformApplicationAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257432,39 +303285,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to activate DDoS protection service for a given resource ARN", - Privilege: "CreateProtection", + AccessLevel: "Read", + Description: "Grants permission to return the settings for sending SMS messages from your account", + Privilege: "GetSMSAttributes", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a grouping of protected resources so they can be handled as a collective", - Privilege: "CreateProtectionGroup", + AccessLevel: "Read", + Description: "Grants permission to retrieve the sandbox status for the calling account in the target region", + Privilege: "GetSMSSandboxAccountStatus", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to activate subscription", - Privilege: "CreateSubscription", + AccessLevel: "Read", + Description: "Grants permission to return all of the properties of a subscription", + Privilege: "GetSubscriptionAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257474,47 +303321,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing protection", - Privilege: "DeleteProtection", + AccessLevel: "Read", + Description: "Grants permission to return all of the properties of a topic", + Privilege: "GetTopicAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection*", + ResourceType: "topic*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the endpoints and endpoint attributes for devices in a supported push notification service, such as GCM and APNS", + Privilege: "ListEndpointsByPlatformApplication", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove the specified protection group", - Privilege: "DeleteProtectionGroup", + AccessLevel: "List", + Description: "Grants permission to list all origination numbers, and their metadata", + Privilege: "ListOriginationNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate subscription", - Privilege: "DeleteSubscription", + AccessLevel: "Read", + Description: "Grants permission to return a list of phone numbers that are opted out, meaning you cannot send SMS messages to them", + Privilege: "ListPhoneNumbersOptedOut", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257524,21 +303369,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get attack details", - Privilege: "DescribeAttack", + AccessLevel: "List", + Description: "Grants permission to list the platform application objects for the supported push notification services, such as APNS and GCM", + Privilege: "ListPlatformApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "attack*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe information about the number and type of attacks AWS Shield has detected in the last year", - Privilege: "DescribeAttackStatistics", + AccessLevel: "List", + Description: "Grants permission to list the calling account's current pending and verified destination phone numbers", + Privilege: "ListSMSSandboxPhoneNumbers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257548,9 +303393,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the current role and list of Amazon S3 log buckets used by the DDoS Response team to access your AWS account while assisting with attack mitigation", - Privilege: "DescribeDRTAccess", + AccessLevel: "List", + Description: "Grants permission to return a list of the requester's subscriptions", + Privilege: "ListSubscriptions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257560,83 +303405,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the email addresses that the DRT can use to contact you during a suspected attack", - Privilege: "DescribeEmergencyContactSettings", + AccessLevel: "List", + Description: "Grants permission to return a list of the subscriptions to a specific topic", + Privilege: "ListSubscriptionsByTopic", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get protection details", - Privilege: "DescribeProtection", + Description: "Grants permission to list all tags added to the specified Amazon SNS topic", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection*", + ResourceType: "topic", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to return a list of the requester's topics", + Privilege: "ListTopics", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the specification for the specified protection group", - Privilege: "DescribeProtectionGroup", + AccessLevel: "Write", + Description: "Grants permission to opt in a phone number that is currently opted out, which enables you to resume sending SMS messages to the number", + Privilege: "OptInPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a message to all of a topic's subscribed endpoints", + Privilege: "Publish", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get subscription details, such as start time", - Privilege: "DescribeSubscription", + AccessLevel: "Write", + Description: "Grants permission to allow a topic owner to set the data protection policy", + Privilege: "PutDataProtectionPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable application layer automatic response for Shield Advanced protection for a resource", - Privilege: "DisableApplicationLayerAutomaticResponse", + AccessLevel: "Permissions management", + Description: "Grants permission to remove a statement from a topic's access control policy", + Privilege: "RemovePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove authorization from the DDoS Response Team (DRT) to notify contacts about escalations", - Privilege: "DisableProactiveEngagement", + Description: "Grants permission to set the attributes for an endpoint for a device on one of the supported push notification services, such as GCM and APNS", + Privilege: "SetEndpointAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257647,15 +303502,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the DDoS Response team's access to the specified Amazon S3 bucket containing your flow logs", - Privilege: "DisassociateDRTLogBucket", + Description: "Grants permission to set the attributes of the platform application object for the supported push notification services, such as APNS and GCM", + Privilege: "SetPlatformApplicationAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "s3:DeleteBucketPolicy", - "s3:GetBucketPolicy", - "s3:PutBucketPolicy", + "iam:PassRole", }, ResourceType: "", }, @@ -257663,8 +303516,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove the DDoS Response team's access to your AWS account", - Privilege: "DisassociateDRTRole", + Description: "Grants permission to set the default settings for sending SMS messages and receiving daily SMS usage reports", + Privilege: "SetSMSAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257675,72 +303528,74 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove health-based detection from the Shield Advanced protection for a resource", - Privilege: "DisassociateHealthCheck", + Description: "Grants permission to allow a subscription owner to set an attribute of the topic to a new value", + Privilege: "SetSubscriptionAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable application layer automatic response for Shield Advanced protection for a resource", - Privilege: "EnableApplicationLayerAutomaticResponse", + AccessLevel: "Permissions management", + Description: "Grants permission to allow a topic owner to set an attribute of the topic to a new value", + Privilege: "SetTopicAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "apprunner:DescribeWebAclForService", - "cloudfront:GetDistribution", - "cognito-idp:GetWebACLForResource", - "ec2:GetVerifiedAccessInstanceWebAcl", - "iam:CreateServiceLinkedRole", - "iam:GetRole", - "wafv2:GetWebACL", - "wafv2:GetWebACLForResource", + "iam:PassRole", }, - ResourceType: "", + ResourceType: "topic*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to authorize the DDoS Response Team (DRT) to use email and phone to notify contacts about escalations", - Privilege: "EnableProactiveEngagement", + Description: "Grants permission to prepare to subscribe an endpoint by sending the endpoint a confirmation message", + Privilege: "Subscribe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "topic*", + }, + { + ConditionKeys: []string{ + "sns:Endpoint", + "sns:Protocol", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get subscription state", - Privilege: "GetSubscriptionState", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the specified Amazon SNS topic", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "topic", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all existing attacks", - Privilege: "ListAttacks", + AccessLevel: "Write", + Description: "Grants permission to delete a subscription", + Privilege: "Unsubscribe", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257750,21 +303605,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve the protection groups for the account", - Privilege: "ListProtectionGroups", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified Amazon SNS topic", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "topic", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all existing protections", - Privilege: "ListProtections", + AccessLevel: "Write", + Description: "Grants permission to verify a destination phone number with a one-time password (OTP) for an AWS account", + Privilege: "VerifySMSSandboxPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -257773,127 +303635,199 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to retrieve the resources that are included in the protection group", - Privilege: "ListResourcesInProtectionGroup", + Arn: "arn:${Partition}:sns:${Region}:${Account}:${TopicName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "topic", + }, + }, + ServiceName: "Amazon SNS", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "social-messaging", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate a WhatsApp Business Account with your AWS account", + Privilege: "AssociateWhatsAppBusinessAccount", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a media object from WhatsApp", + Privilege: "DeleteWhatsAppMessageMedia", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group*", + ResourceType: "phone-number-id*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about AWS tags for a specified Amazon Resource Name (ARN) in AWS Shield", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to disassociate a WhatsApp Business Account from your AWS account", + Privilege: "DisassociateWhatsAppBusinessAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection", + ResourceType: "waba*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the details of a WhatsApp Business Account", + Privilege: "GetLinkedWhatsAppBusinessAccount", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group", + ResourceType: "waba*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add or updates tags for a resource in AWS Shield", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to view the details of a phone number", + Privilege: "GetLinkedWhatsAppBusinessAccountPhoneNumber", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection", + ResourceType: "phone-number-id*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to get a media object from WhatsApp", + Privilege: "GetWhatsAppMessageMedia", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group", + ResourceType: "phone-number-id*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to view all of your WhatsApp Business Accounts", + Privilege: "ListLinkedWhatsAppBusinessAccounts", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource in AWS Shield", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection", + ResourceType: "phone-number-id", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group", + ResourceType: "waba", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upload a media object to WhatsApp", + Privilege: "PostWhatsAppMessageMedia", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "phone-number-id*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update application layer automatic response for Shield Advanced protection for a resource", - Privilege: "UpdateApplicationLayerAutomaticResponse", + Description: "Grants permission to update a WhatsApp Business Accounts event destination", + Privilege: "PutWhatsAppBusinessAccountEventDestinations", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "apprunner:DescribeWebAclForService", - "cognito-idp:GetWebACLForResource", - "ec2:GetVerifiedAccessInstanceWebAcl", - "wafv2:GetWebACL", - "wafv2:GetWebACLForResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "waba*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the details of the list of email addresses that the DRT can use to contact you during a suspected attack", - Privilege: "UpdateEmergencyContactSettings", + Description: "Grants permission to send a message through WhatsApp", + Privilege: "SendWhatsAppMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "phone-number-id*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing protection group", - Privilege: "UpdateProtectionGroup", + AccessLevel: "Tagging", + Description: "Grants permission to add a tag to a resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "protection-group*", + ResourceType: "phone-number-id", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "waba", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -257901,13 +303835,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the details of an existing subscription", - Privilege: "UpdateSubscription", + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from a resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "phone-number-id", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "waba", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, @@ -257915,116 +303862,123 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:shield::${Account}:attack/${Id}", - ConditionKeys: []string{}, - Resource: "attack", - }, - { - Arn: "arn:${Partition}:shield::${Account}:protection/${Id}", + Arn: "arn:${Partition}:social-messaging:${Region}:${Account}:phone-number-id/${OriginationPhoneNumberId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "protection", + Resource: "phone-number-id", }, { - Arn: "arn:${Partition}:shield::${Account}:protection-group/${Id}", + Arn: "arn:${Partition}:social-messaging:${Region}:${Account}:waba/${WabaId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "protection-group", + Resource: "waba", }, }, - ServiceName: "AWS Shield", + ServiceName: "AWS End User Messaging Social", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by allowed set of values for each of the tags", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag-value associated with the resource", + Description: "Filters access by the tags that are associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by presence of mandatory tags in the request", + Description: "Filters access by the tag keys that are passed in the request", Type: "ArrayOfString", }, - { - Condition: "signer:ProfileVersion", - Description: "Filters access by version of the Signing Profile", - Type: "String", - }, }, - Prefix: "signer", + Prefix: "sqlworkbench", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Grants permission to add cross-account permissions to a Signing Profile", - Privilege: "AddProfilePermission", + AccessLevel: "Write", + Description: "Grants permission to associate connection to a chart", + Privilege: "AssociateConnectionWithChart", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "chart*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the state of a Signing Profile to CANCELED", - Privilege: "CancelSigningProfile", + Description: "Grants permission to associate connection to a tab", + Privilege: "AssociateConnectionWithTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "connection*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate notebook to a tab", + Privilege: "AssociateNotebookWithTab", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "signer:ProfileVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a specific Signing Job", - Privilege: "DescribeSigningJob", + AccessLevel: "Write", + Description: "Grants permission to associate query to a tab", + Privilege: "AssociateQueryWithTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-job*", + ResourceType: "query*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to query revocation info of signing resources", - Privilege: "GetRevocationStatus", + AccessLevel: "Write", + Description: "Grants permission to delete folders on your account", + Privilege: "BatchDeleteFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-job*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get notebook cells content on your account", + Privilege: "BatchGetNotebookCell", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "notebook*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a specific Signing Platform", - Privilege: "GetSigningPlatform", + AccessLevel: "Write", + Description: "Grants permission to create SQLWorkbench account", + Privilege: "CreateAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258034,18 +303988,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return information about a specific Signing Profile", - Privilege: "GetSigningProfile", + AccessLevel: "Write", + Description: "Grants permission to create new saved chart on your account", + Privilege: "CreateChart", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "chart*", }, { ConditionKeys: []string{ - "signer:ProfileVersion", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -258053,21 +304008,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the cross-account permissions associated with a Signing Profile", - Privilege: "ListProfilePermissions", + AccessLevel: "Write", + Description: "Grants permission to create a new connection on your account", + Privilege: "CreateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "connection*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Signing Jobs in your account", - Privilege: "ListSigningJobs", + AccessLevel: "Write", + Description: "Grants permission to create folder on your account", + Privilege: "CreateFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258077,50 +304040,99 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all available Signing Platforms", - Privilege: "ListSigningPlatforms", + AccessLevel: "Write", + Description: "Grants permission to create a new notebook on your account", + Privilege: "CreateNotebook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Signing Profiles in your account", - Privilege: "ListSigningProfiles", + AccessLevel: "Write", + Description: "Grants permission to create a notebook cell on your account", + Privilege: "CreateNotebookCell", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags associated with a Signing Profile", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create a new notebook from a notebook version on your account", + Privilege: "CreateNotebookFromVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new Signing Profile", - Privilege: "PutSigningProfile", + Description: "Grants permission to create a notebook version on your account", + Privilege: "CreateNotebookVersion", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook*", + }, { ConditionKeys: []string{ + "aws:TagKeys", "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a new saved query on your account", + Privilege: "CreateSavedQuery", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "query*", + }, + { + ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -258128,50 +304140,72 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove cross-account permissions from a Signing Profile", - Privilege: "RemoveProfilePermission", + AccessLevel: "Write", + Description: "Grants permission to remove charts on your account", + Privilege: "DeleteChart", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "chart*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the state of a Signing Job to REVOKED", - Privilege: "RevokeSignature", + Description: "Grants permission to remove connections on your account", + Privilege: "DeleteConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-job*", + ResourceType: "connection*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove notebooks on your account", + Privilege: "DeleteNotebook", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "signer:ProfileVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "notebook*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the state of a Signing Profile to REVOKED", - Privilege: "RevokeSigningProfile", + Description: "Grants permission to remove notebooks cells on your account", + Privilege: "DeleteNotebookCell", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "notebook*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove notebooks cells on your account", + Privilege: "DeleteNotebookVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete account-wide custom context", + Privilege: "DeleteQCustomContext", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "signer:ProfileVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -258179,18 +304213,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to initiate a Signing Job on the provided payload", - Privilege: "SignPayload", + Description: "Grants permission to remove saved queries on your account", + Privilege: "DeleteSavedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "query*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete sql generation context", + Privilege: "DeleteSqlGenerationContext", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "signer:ProfileVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -258198,32 +304237,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to initiate a Signing Job on the provided code", - Privilege: "StartSigningJob", + Description: "Grants permission to remove a tab on your account", + Privilege: "DeleteTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to execute a query in your redshift cluster", + Privilege: "DriverExecute", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "signer:ProfileVersion", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "connection*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add one or more tags to a Signing Profile", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create a new notebook by duplicating an existing one on your account", + Privilege: "DuplicateNotebook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "notebook*", }, { ConditionKeys: []string{ @@ -258236,181 +304280,201 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove one or more tags from a Signing Profile", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to export a notebook on your account", + Privilege: "ExportNotebook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "signing-profile*", + ResourceType: "notebook*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to generate a new session on your account", + Privilege: "GenerateSession", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:signer:${Region}:${Account}:/signing-profiles/${ProfileName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to get account info", + Privilege: "GetAccountInfo", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "signing-profile", }, { - Arn: "arn:${Partition}:signer:${Region}:${Account}:/signing-jobs/${JobId}", - ConditionKeys: []string{}, - Resource: "signing-job", + AccessLevel: "Read", + Description: "Grants permission to get account settings", + Privilege: "GetAccountSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, }, - }, - ServiceName: "AWS Signer", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "signin", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an Identity Center application that represents the AWS Management Console on an Identity Center organization instance", - Privilege: "CreateTrustedIdentityPropagationApplicationForConsole", + AccessLevel: "Read", + Description: "Grants permission to get database structure metadata for auto-completion", + Privilege: "GetAutocompletionMetadata", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:CreateApplication", - "sso:GetSharedSsoConfiguration", - "sso:ListApplications", - "sso:PutApplicationAccessScope", - "sso:PutApplicationAssignmentConfiguration", - "sso:PutApplicationAuthenticationMethod", - "sso:PutApplicationGrant", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all Identity Center applications that represent the AWS Management Console", - Privilege: "ListTrustedIdentityPropagationApplicationsForConsole", + AccessLevel: "Read", + Description: "Grants permission to get database structure information for auto-completion", + Privilege: "GetAutocompletionResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:GetSharedSsoConfiguration", - "sso:ListApplications", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Signin", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags that are passed in the request", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to get charts on your account", + Privilege: "GetChart", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "chart*", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", - Type: "String", + AccessLevel: "Read", + Description: "Grants permission to get connections on your account", + Privilege: "GetConnection", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get notebook metadata on your account", + Privilege: "GetNotebook", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook*", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys that are passed in the request", - Type: "ArrayOfString", + AccessLevel: "Read", + Description: "Grants permission to get the content of a notebook version on your account", + Privilege: "GetNotebookVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook*", + }, + }, }, - }, - Prefix: "simspaceweaver", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create a snapshot", - Privilege: "CreateSnapshot", + AccessLevel: "Read", + Description: "Grants permission to get account-wide custom context", + Privilege: "GetQCustomContext", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an app", - Privilege: "DeleteApp", + AccessLevel: "Read", + Description: "Grants permission to get Q generative SQL maximum prompt quotas", + Privilege: "GetQSqlPromptQuotas", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a simulation", - Privilege: "DeleteSimulation", + AccessLevel: "Read", + Description: "Grants permission to get text to SQL recommendations", + Privilege: "GetQSqlRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an app", - Privilege: "DescribeApp", + Description: "Grants permission to get the query execution history on your account", + Privilege: "GetQueryExecutionHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a simulation", - Privilege: "DescribeSimulation", + Description: "Grants permission to get saved query on your account", + Privilege: "GetSavedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "query*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list apps", - Privilege: "ListApps", + Description: "Grants permission to get the columns and data types inferred from a file", + Privilege: "GetSchemaInference", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list simulations", - Privilege: "ListSimulations", + AccessLevel: "Read", + Description: "Grants permission to get sql generation context", + Privilege: "GetSqlGenerationContext", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258421,8 +304485,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get text to SQL recommendations", + Privilege: "GetSqlRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258432,38 +304496,43 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an app", - Privilege: "StartApp", + AccessLevel: "Read", + Description: "Grants permission to get user info", + Privilege: "GetUserInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a simulation clock", - Privilege: "StartClock", + AccessLevel: "Read", + Description: "Grants permission to get workspace settings on your account", + Privilege: "GetUserWorkspaceSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a simulation", - Privilege: "StartSimulation", + Description: "Grants permission to import a notebook on your account", + Privilege: "ImportNotebook", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -258471,100 +304540,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an app", - Privilege: "StopApp", + AccessLevel: "List", + Description: "Grants permission to list the connections on your account", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a simulation clock", - Privilege: "StopClock", + AccessLevel: "List", + Description: "Grants permission to list databases of your redshift cluster", + Privilege: "ListDatabases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a simulation", - Privilege: "StopSimulation", + AccessLevel: "List", + Description: "Grants permission to list files and folders", + Privilege: "ListFiles", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "List", + Description: "Grants permission to get notebook versions metadata on your account", + Privilege: "ListNotebookVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", + ResourceType: "notebook*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the notebooks on your account", + Privilege: "ListNotebooks", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "List", + Description: "Grants permission to list the query execution history on your account", + Privilege: "ListQueryExecutionHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Simulation*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:simspaceweaver:${Region}:${Account}:simulation/${SimulationName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "List", + Description: "Grants permission to list redshift clusters on your account", + Privilege: "ListRedshiftClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "Simulation", }, - }, - ServiceName: "AWS SimSpace Weaver", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sms", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to create an application configuration to migrate on-premise application onto AWS", - Privilege: "CreateApp", + AccessLevel: "Read", + Description: "Grants permission to list sample databases", + Privilege: "ListSampleDatabases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258574,21 +304636,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a job to migrate on-premise server onto AWS", - Privilege: "CreateReplicationJob", + AccessLevel: "List", + Description: "Grants permission to list versions of saved query on your account", + Privilege: "ListSavedQueryVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "query*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an existing application configuration", - Privilege: "DeleteApp", + AccessLevel: "List", + Description: "Grants permission to list tabs on your account", + Privilege: "ListTabs", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258598,9 +304660,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete launch configuration for an existing application", - Privilege: "DeleteAppLaunchConfiguration", + AccessLevel: "Read", + Description: "Grants permission to list tagged resources", + Privilege: "ListTaggedResources", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258610,21 +304672,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete replication configuration for an existing application", - Privilege: "DeleteAppReplicationConfiguration", + AccessLevel: "Read", + Description: "Grants permission to list the tags of an sqlworkbench resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "chart", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "query", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete validation configuration for an existing application", - Privilege: "DeleteAppValidationConfiguration", + Description: "Grants permission to provide account settings with the request", + Privilege: "PassAccountSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258635,8 +304712,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an existing job to migrate on-premise server onto AWS", - Privilege: "DeleteReplicationJob", + Description: "Grants permission to update account-wide custom context", + Privilege: "PutQCustomContext", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258647,8 +304724,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the complete list of on-premise servers gathered into AWS", - Privilege: "DeleteServerCatalog", + Description: "Grants permission to update sql generation context", + Privilege: "PutSqlGenerationContext", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258659,8 +304736,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a connector that has been associated", - Privilege: "DisassociateConnector", + Description: "Grants permission to create or update a tab on your account", + Privilege: "PutTab", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258671,8 +304748,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to generate a changeSet for the CloudFormation stack of an application", - Privilege: "GenerateChangeSet", + Description: "Grants permission to update workspace settings on your account", + Privilege: "PutUserWorkspaceSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258683,44 +304760,97 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to generate a CloudFormation template for an existing application", - Privilege: "GenerateTemplate", + Description: "Grants permission to restore a notebook on your account to a version", + Privilege: "RestoreNotebookVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the configuration and statuses for an existing application", - Privilege: "GetApp", + AccessLevel: "Tagging", + Description: "Grants permission to tag an sqlworkbench resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "chart", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "query", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get launch configuration for an existing application", - Privilege: "GetAppLaunchConfiguration", + AccessLevel: "Tagging", + Description: "Grants permission to untag an sqlworkbench resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "chart", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connection", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "notebook", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "query", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get replication configuration for an existing application", - Privilege: "GetAppReplicationConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update account-wide connection settings", + Privilege: "UpdateAccountConnectionSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258730,9 +304860,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get validation configuration for an existing application", - Privilege: "GetAppValidationConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update account-wide export settings", + Privilege: "UpdateAccountExportSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258742,9 +304872,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get notification sent from application validation script.", - Privilege: "GetAppValidationOutput", + AccessLevel: "Write", + Description: "Grants permission to update account-wide general settings", + Privilege: "UpdateAccountGeneralSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258754,9 +304884,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all connectors that have been associated", - Privilege: "GetConnectors", + AccessLevel: "Write", + Description: "Grants permission to update account-wide text to SQL settings", + Privilege: "UpdateAccountQSqlSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258766,45 +304896,66 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to gets messages from AWS Server Migration Service to Server Migration Connector", - Privilege: "GetMessages", + AccessLevel: "Write", + Description: "Grants permission to update a chart on your account", + Privilege: "UpdateChart", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "chart*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all existing jobs to migrate on-premise servers onto AWS", - Privilege: "GetReplicationJobs", + AccessLevel: "Write", + Description: "Grants permission to update a connection on your account", + Privilege: "UpdateConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "connection*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all runs for an existing job", - Privilege: "GetReplicationRuns", + AccessLevel: "Write", + Description: "Grants permission to move files on your account", + Privilege: "UpdateFileFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "chart", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "query", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get all servers that have been imported", - Privilege: "GetServers", + AccessLevel: "Write", + Description: "Grants permission to update a folder's name and details on your account", + Privilege: "UpdateFolder", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -258815,188 +304966,281 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to import application catalog from AWS Application Discovery Service", - Privilege: "ImportAppCatalog", + Description: "Grants permission to update a notebook metadata on your account", + Privilege: "UpdateNotebook", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to gather a complete list of on-premise servers", - Privilege: "ImportServerCatalog", + Description: "Grants permission to update a notebook cell content on your account", + Privilege: "UpdateNotebookCellContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and launch a CloudFormation stack for an existing application", - Privilege: "LaunchApp", + Description: "Grants permission to update a notebook cell layout on your account", + Privilege: "UpdateNotebookCellLayout", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "notebook*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to get a list of summaries for existing applications", - Privilege: "ListApps", + AccessLevel: "Write", + Description: "Grants permission to update a saved query on your account", + Privilege: "UpdateSavedQuery", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "query*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to send notification for application validation script", - Privilege: "NotifyAppValidationOutput", + Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:connection/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "connection", + }, + { + Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:query/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "query", + }, + { + Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:chart/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "chart", + }, + { + Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:notebook/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "notebook", + }, + }, + ServiceName: "AWS SQL Workbench", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "sqs", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to a queue for a specific principal", + Privilege: "AddPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update launch configuration for an existing application", - Privilege: "PutAppLaunchConfiguration", + Description: "Grants permission to cancel an in progress message move task", + Privilege: "CancelMessageMoveTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update replication configuration for an existing application", - Privilege: "PutAppReplicationConfiguration", + Description: "Grants permission to change the visibility timeout of a specified message in a queue to a new value", + Privilege: "ChangeMessageVisibility", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put validation configuration for an existing application", - Privilege: "PutAppValidationConfiguration", + Description: "Grants permission to create a new queue, or returns the URL of an existing one", + Privilege: "CreateQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send message from Server Migration Connector to AWS Server Migration Service", - Privilege: "SendMessage", + Description: "Grants permission to delete the specified message from the specified queue", + Privilege: "DeleteMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create and start replication jobs for an existing application", - Privilege: "StartAppReplication", + Description: "Grants permission to delete the queue specified by the queue URL, regardless of whether the queue is empty", + Privilege: "DeleteQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a replication run for an existing application", - Privilege: "StartOnDemandAppReplication", + AccessLevel: "Read", + Description: "Grants permission to get attributes for the specified queue", + Privilege: "GetQueueAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a replication run for an existing replication job", - Privilege: "StartOnDemandReplicationRun", + AccessLevel: "Read", + Description: "Grants permission to return the URL of an existing queue", + Privilege: "GetQueueUrl", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop and delete replication jobs for an existing application", - Privilege: "StopAppReplication", + AccessLevel: "Read", + Description: "Grants permission to return a list of your queues that have the RedrivePolicy queue attribute configured with a dead letter queue", + Privilege: "ListDeadLetterSourceQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to terminate the CloudFormation stack for an existing application", - Privilege: "TerminateApp", + AccessLevel: "Read", + Description: "Grants permission to list message move tasks", + Privilege: "ListMessageMoveTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing application configuration", - Privilege: "UpdateApp", + AccessLevel: "Read", + Description: "Grants permission to list tags added to an SQS queue", + Privilege: "ListQueueTags", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an existing job to migrate on-premise server onto AWS", - Privilege: "UpdateReplicationJob", + AccessLevel: "Read", + Description: "Grants permission to return a list of your queues", + Privilege: "ListQueues", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -259005,244 +305249,369 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Server Migration Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sms-voice", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Create a new configuration set. After you create the configuration set, you can add one or more event destinations to it.", - Privilege: "CreateConfigurationSet", + Description: "Grants permission to delete the messages in a queue specified by the queue URL", + Privilege: "PurgeQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Create a new event destination in a configuration set.", - Privilege: "CreateConfigurationSetEventDestination", + AccessLevel: "Read", + Description: "Grants permission to retrieve one or more messages, with a maximum limit of 10 messages, from the specified queue", + Privilege: "ReceiveMessage", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Deletes an existing configuration set.", - Privilege: "DeleteConfigurationSet", + AccessLevel: "Permissions management", + Description: "Grants permission to revoke any permissions in the queue policy that matches the specified Label parameter", + Privilege: "RemovePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { AccessLevel: "Write", - Description: "Deletes an event destination in a configuration set.", - Privilege: "DeleteConfigurationSetEventDestination", + Description: "Grants permission to deliver a message to the specified queue", + Privilege: "SendMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Obtain information about an event destination, including the types of events it reports, the Amazon Resource Name (ARN) of the destination, and the name of the event destination.", - Privilege: "GetConfigurationSetEventDestinations", + AccessLevel: "Write", + Description: "Grants permission to set the value of one or more queue attributes", + Privilege: "SetQueueAttributes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Read", - Description: "Return a list of configuration sets. This operation only returns the configuration sets that are associated with your account in the current AWS Region.", - Privilege: "ListConfigurationSets", + AccessLevel: "Write", + Description: "Grants permission to start a message move task", + Privilege: "StartMessageMoveTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "queue*", }, }, }, { - AccessLevel: "Write", - Description: "Create a new voice message and send it to a recipient's phone number.", - Privilege: "SendVoiceMessage", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the specified SQS queue", + Privilege: "TagQueue", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Update an event destination in a configuration set. An event destination is a location that you publish information about your voice calls to. For example, you can log an event to an Amazon CloudWatch destination when a call fails.", - Privilege: "UpdateConfigurationSetEventDestination", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified SQS queue", + Privilege: "UntagQueue", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "queue*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Pinpoint SMS and Voice Service", + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sqs:${Region}:${Account}:${QueueName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "queue", + }, + }, + ServiceName: "Amazon SQS", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", + Description: "Filters access by 'Create' requests based on the allowed set of values for a specified tags", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", + Description: "Filters access by based on a tag key-value pair assigned to the AWS resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", + Description: "Filters access by 'Create' requests based on whether mandatory tags are included in the request", + Type: "ArrayOfString", + }, + { + Condition: "ec2:SourceInstanceARN", + Description: "Filters access by the ARN of the instance from which the request originated", + Type: "ARN", + }, + { + Condition: "ssm:AccessRequestId", + Description: "Filters access by verifying that a user has access to the access request ID specified in the request", + Type: "String", + }, + { + Condition: "ssm:AutoApprove", + Description: "Filters access by verifying that a user has permission to start Change Manager workflows without a review step (with the exception of change freeze events)", + Type: "Bool", + }, + { + Condition: "ssm:DocumentCategories", + Description: "Filters access by verifying that a user has permission to access a document belonging to a specific category enum", Type: "ArrayOfString", }, + { + Condition: "ssm:DocumentType", + Description: "Filters access by verifying that a user has permission to access a document belonging to a specific document type. Only available in \"aws\", \"aws-cn\", and \"aws-us-gov\" partitions", + Type: "String", + }, + { + Condition: "ssm:Overwrite", + Description: "Filters access by controling whether Systems Manager parameters can be overwritten", + Type: "String", + }, + { + Condition: "ssm:Policies", + Description: "Filters access by controlling whether an IAM Entity (user or role) can create or update a parameter that includes a parameter policy", + Type: "String", + }, + { + Condition: "ssm:Recursive", + Description: "Filters access by Systems Manager parameters created in a hierarchical structure", + Type: "String", + }, + { + Condition: "ssm:SourceInstanceARN", + Description: "Filters access by verifying the Amazon Resource Name (ARN) of the AWS Systems Manager's managed instance from which the request is made. This key is not present when the request comes from the managed instance authenticated with an IAM role associated with EC2 instance profile", + Type: "ARN", + }, + { + Condition: "ssm:SyncType", + Description: "Filters access by verifying that a user also has access to the ResourceDataSync SyncType specified in the request", + Type: "String", + }, + { + Condition: "ssm:resourceTag/${TagKey}", + Description: "Filters access by a tag key-value pair assigned to the Systems Manager resource", + Type: "String", + }, + { + Condition: "ssm:resourceTag/aws:ssmmessages:session-id", + Description: "Filters access by based on a tag key-value pair assigned to the Systems Manager session resource", + Type: "String", + }, + { + Condition: "ssm:resourceTag/aws:ssmmessages:target-id", + Description: "Filters access by based on a tag key-value pair assigned to the Systems Manager session resource", + Type: "String", + }, + { + Condition: "ssm:resourceTag/tag-key", + Description: "Filters access by based on a tag key-value pair assigned to the Systems Manager resource", + Type: "String", + }, }, - Prefix: "sms-voice", + Prefix: "ssm", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to associate an origination phone number or sender ID to a pool", - Privilege: "AssociateOriginationIdentity", + AccessLevel: "Tagging", + Description: "Grants permission to add or overwrite one or more tags for a specified AWS resource", + Privilege: "AddTagsToResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool*", + ResourceType: "association", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "automation-execution", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "document", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "maintenancewindow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "opsitem", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "opsmetadata", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parameter", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "patchbaseline", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a protect configuration to a configuration set", - Privilege: "AssociateProtectConfiguration", + Description: "Grants permission to associate RelatedItem to an OpsItem", + Privilege: "AssociateOpsItemRelatedItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "opsitem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a configuration set", - Privilege: "CreateConfigurationSet", + Description: "Grants permission to cancel a specified Run Command command", + Privilege: "CancelCommand", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an event destination within a configuration set", - Privilege: "CreateEventDestination", + Description: "Grants permission to cancel an in-progress maintenance window execution", + Privilege: "CancelMaintenanceWindowExecution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "ConfigurationSet*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "maintenancewindow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an opt-out list", - Privilege: "CreateOptOutList", + Description: "Grants permission to create an activation that is used to register on-premises servers and virtual machines (VMs) with Systems Manager", + Privilege: "CreateActivation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a pool", - Privilege: "CreatePool", + Description: "Grants permission to associate a specified Systems Manager document with specified instances or other targets", + Privilege: "CreateAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "PhoneNumber", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "association*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "document*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, @@ -259253,466 +305622,466 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a protect configuration", - Privilege: "CreateProtectConfiguration", + Description: "Grants permission to combine entries for multiple CreateAssociation operations in a single command", + Privilege: "CreateAssociationBatch", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a registration", - Privilege: "CreateRegistration", + Description: "Grants permission to create a Systems Manager SSM document", + Privilege: "CreateDocument", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "document*", + }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "ssm:DocumentType", }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a registration with a phone number or another registration", - Privilege: "CreateRegistrationAssociation", + Description: "Grants permission to create a maintenance window", + Privilege: "CreateMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Registration*", - }, - { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a registration attachment", - Privilege: "CreateRegistrationAttachment", + Description: "Grants permission to create an OpsItem in OpsCenter", + Privilege: "CreateOpsItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a registration version", - Privilege: "CreateRegistrationVersion", + Description: "Grants permission to create an OpsMetadata object for an AWS resource", + Privilege: "CreateOpsMetadata", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a verified destination number", - Privilege: "CreateVerifiedDestinationNumber", + Description: "Grants permission to create a patch baseline", + Privilege: "CreatePatchBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the account default protect configuration", - Privilege: "DeleteAccountDefaultProtectConfiguration", + Description: "Grants permission to create a resource data sync configuration, which regularly collects inventory data from managed instances and updates the data in an Amazon S3 bucket", + Privilege: "CreateResourceDataSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "resourcedatasync*", + }, + { + ConditionKeys: []string{ + "ssm:SyncType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a configuration set", - Privilege: "DeleteConfigurationSet", + Description: "Grants permission to delete a specified activation for managed instances", + Privilege: "DeleteActivation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the default message type for a configuration set", - Privilege: "DeleteDefaultMessageType", + Description: "Grants permission to disassociate a specified SSM document from a specified instance", + Privilege: "DeleteAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "association", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the default sender ID for a configuration set", - Privilege: "DeleteDefaultSenderId", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "document", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an event destination within a configuration set", - Privilege: "DeleteEventDestination", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "instance", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a keyword for a pool or origination phone number", - Privilege: "DeleteKeyword", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "managed-instance", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an override for your account's media messaging monthly spend limit", - Privilege: "DeleteMediaMessageSpendLimitOverride", + Description: "Grants permission to delete a specified SSM document and its instance associations", + Privilege: "DeleteDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an opt-out list", - Privilege: "DeleteOptOutList", + Description: "Grants permission to delete a specified custom inventory type, or the data associated with a custom inventory type", + Privilege: "DeleteInventory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OptOutList*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a destination phone number from an opt-out list", - Privilege: "DeleteOptedOutNumber", + Description: "Grants permission to delete a specified maintenance window", + Privilege: "DeleteMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OptOutList*", + ResourceType: "maintenancewindow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a pool", - Privilege: "DeletePool", + Description: "Grants permission to delete an OpsItem", + Privilege: "DeleteOpsItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool*", + ResourceType: "opsitem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a protect configuration", - Privilege: "DeleteProtectConfiguration", + Description: "Grants permission to delete an OpsMetadata object", + Privilege: "DeleteOpsMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "opsmetadata*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a registration", - Privilege: "DeleteRegistration", + Description: "Grants permission to delete a specified SSM parameter", + Privilege: "DeleteParameter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "parameter*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a registration attachment", - Privilege: "DeleteRegistrationAttachment", + Description: "Grants permission to delete multiple specified SSM parameters", + Privilege: "DeleteParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RegistrationAttachment*", + ResourceType: "parameter*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an optional registration field value", - Privilege: "DeleteRegistrationFieldValue", + Description: "Grants permission to delete a specified patch baseline", + Privilege: "DeletePatchBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "patchbaseline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an override for your account's text messaging monthly spend limit", - Privilege: "DeleteTextMessageSpendLimitOverride", + Description: "Grants permission to delete a specified resource data sync", + Privilege: "DeleteResourceDataSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "resourcedatasync*", + }, + { + ConditionKeys: []string{ + "ssm:SyncType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a verified destination number", - Privilege: "DeleteVerifiedDestinationNumber", + AccessLevel: "Permissions management", + Description: "Grants permission to delete a Systems Manager resource policy", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VerifiedDestinationNumber*", + ResourceType: "document", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete an override for your account's voice messaging monthly spend limit", - Privilege: "DeleteVoiceMessageSpendLimitOverride", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "opsitemgroup", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the attributes of your account", - Privilege: "DescribeAccountAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parameter", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the service quotas for your account", - Privilege: "DescribeAccountLimits", + AccessLevel: "Write", + Description: "Grants permission to deregister a specified on-premises server or virtual machine (VM) from Systems Manager", + Privilege: "DeregisterManagedInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "managed-instance*", + }, + { + ConditionKeys: []string{ + "ssm:resourceTag/tag-key", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the configuration sets in your account", - Privilege: "DescribeConfigurationSets", + AccessLevel: "Write", + Description: "Grants permission to deregister a specified patch baseline from being the default patch baseline for a specified patch group", + Privilege: "DeregisterPatchBaselineForPatchGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet", + ResourceType: "patchbaseline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the keywords for a pool or origination phone number", - Privilege: "DescribeKeywords", + AccessLevel: "Write", + Description: "Grants permission to deregister a specified target from a maintenance window", + Privilege: "DeregisterTargetFromMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "maintenancewindow*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "windowtarget*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the opt-out lists in your account", - Privilege: "DescribeOptOutLists", + AccessLevel: "Write", + Description: "Grants permission to deregister a specified task from a maintenance window", + Privilege: "DeregisterTaskFromMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OptOutList", + ResourceType: "maintenancewindow*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the destination phone numbers in an opt-out list", - Privilege: "DescribeOptedOutNumbers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OptOutList*", + ResourceType: "windowtask*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the origination phone numbers in your account", - Privilege: "DescribePhoneNumbers", + Description: "Grants permission to view details about a specified managed instance activation, such as when it was created and the number of instances registered using the activation", + Privilege: "DescribeActivations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the pools in your account", - Privilege: "DescribePools", + Description: "Grants permission to view details about the specified association for a specified instance or target", + Privilege: "DescribeAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "association", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the protect configurations in your account", - Privilege: "DescribeProtectConfigurations", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration", + ResourceType: "document", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the registration attachments in your account", - Privilege: "DescribeRegistrationAttachments", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RegistrationAttachment", + ResourceType: "instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the field definitions for a given registration type", - Privilege: "DescribeRegistrationFieldDefinitions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the field values for a given registration", - Privilege: "DescribeRegistrationFieldValues", + Description: "Grants permission to view information about a specified association execution", + Privilege: "DescribeAssociationExecutionTargets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "association*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe the section definitions for a given registration type", - Privilege: "DescribeRegistrationSectionDefinitions", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, @@ -259720,441 +306089,415 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe the registration types supported by the service", - Privilege: "DescribeRegistrationTypeDefinitions", + Description: "Grants permission to view all executions for a specified association", + Privilege: "DescribeAssociationExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "association*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the versions for a given registration", - Privilege: "DescribeRegistrationVersions", + Description: "Grants permission to view details about all active and terminated Automation executions", + Privilege: "DescribeAutomationExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the registrations in your account", - Privilege: "DescribeRegistrations", + Description: "Grants permission to view information about all active and terminated step executions in an Automation workflow", + Privilege: "DescribeAutomationStepExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration", + ResourceType: "automation-execution*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the sender IDs in your account", - Privilege: "DescribeSenderIds", + Description: "Grants permission to view all patches eligible to include in a patch baseline", + Privilege: "DescribeAvailablePatches", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the monthly spend limits for your account", - Privilege: "DescribeSpendLimits", + Description: "Grants permission to view details about a specified SSM document", + Privilege: "DescribeDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe the verified destination numbers in your account", - Privilege: "DescribeVerifiedDestinationNumbers", + Description: "Grants permission to display information about SSM document parameters in the Systems Manager console (internal Systems Manager action)", + Privilege: "DescribeDocumentParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VerifiedDestinationNumber", + ResourceType: "document*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate an origination phone number or sender ID from a pool", - Privilege: "DisassociateOriginationIdentity", + AccessLevel: "Read", + Description: "Grants permission to view the permissions for a specified SSM document", + Privilege: "DescribeDocumentPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "document*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ssm:DocumentType", + }, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a protect configuration from a configuration set", - Privilege: "DisassociateProtectConfiguration", + AccessLevel: "Read", + Description: "Grants permission to view all current associations for a specified instance", + Privilege: "DescribeEffectiveInstanceAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "managed-instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to discard the latest version of a given registration", - Privilege: "DiscardRegistrationVersion", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the country rule set for a protect configuration", - Privilege: "GetProtectConfigurationCountryRuleSet", + Description: "Grants permission to view details about the patches currently associated with the specified patch baseline (Windows only)", + Privilege: "DescribeEffectivePatchesForPatchBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "patchbaseline*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all origination phone numbers and sender IDs associated to a pool", - Privilege: "ListPoolOriginationIdentities", + Description: "Grants permission to view the status of the associations for a specified instance", + Privilege: "DescribeInstanceAssociationsStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool*", + ResourceType: "instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all resources associated to a registration", - Privilege: "ListRegistrationAssociations", + Description: "Grants permission to view details about a specified instance", + Privilege: "DescribeInstanceInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to view status details about patches on a specified instance", + Privilege: "DescribeInstancePatchStates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "OptOutList", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PhoneNumber", + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "managed-instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "ProtectConfiguration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe the high-level patch state for the instances in the specified patch group", + Privilege: "DescribeInstancePatchStatesForPatchGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view general details about the patches on a specified instance", + Privilege: "DescribeInstancePatches", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RegistrationAttachment", + ResourceType: "instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "managed-instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "VerifiedDestinationNumber", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create or update a keyword for a pool or origination phone number", - Privilege: "PutKeyword", + AccessLevel: "Read", + Description: "Grants permission to user's Amazon EC2 console to render managed instances' nodes", + Privilege: "DescribeInstanceProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a destination phone number into an opt-out list", - Privilege: "PutOptedOutNumber", + AccessLevel: "Read", + Description: "Grants permission to view details about a specified inventory deletion", + Privilege: "DescribeInventoryDeletions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "OptOutList*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to put a registration field value", - Privilege: "PutRegistrationFieldValue", + AccessLevel: "List", + Description: "Grants permission to view details of a specified task execution for a maintenance window", + Privilege: "DescribeMaintenanceWindowExecutionTaskInvocations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to release an origination phone number", - Privilege: "ReleasePhoneNumber", + AccessLevel: "List", + Description: "Grants permission to view details about the tasks that ran during a specified maintenance window execution", + Privilege: "DescribeMaintenanceWindowExecutionTasks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to release a sender ID", - Privilege: "ReleaseSenderId", + AccessLevel: "List", + Description: "Grants permission to view the executions of a specified maintenance window", + Privilege: "DescribeMaintenanceWindowExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId*", + ResourceType: "maintenancewindow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to request an origination phone number", - Privilege: "RequestPhoneNumber", + AccessLevel: "List", + Description: "Grants permission to view details about upcoming executions of a specified maintenance window", + Privilege: "DescribeMaintenanceWindowSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sms-voice:AssociateOriginationIdentity", - "sms-voice:TagResource", - }, - ResourceType: "Pool", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to request an unregistered sender ID", - Privilege: "RequestSenderId", + AccessLevel: "List", + Description: "Grants permission to view a list of the targets associated with a specified maintenance window", + Privilege: "DescribeMaintenanceWindowTargets", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{ - "sms-voice:TagResource", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "maintenancewindow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a text or voice message containing a verification code to a destination phone number", - Privilege: "SendDestinationNumberVerificationCode", + AccessLevel: "List", + Description: "Grants permission to view a list of the tasks associated with a specified maintenance window", + Privilege: "DescribeMaintenanceWindowTasks", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "sms-voice:SendTextMessage", - "sms-voice:SendVoiceMessage", - }, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", - }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "maintenancewindow*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a media message to a destination phone number", - Privilege: "SendMediaMessage", + AccessLevel: "List", + Description: "Grants permission to view information about all or specified maintenance windows", + Privilege: "DescribeMaintenanceWindows", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a text message to a destination phone number", - Privilege: "SendTextMessage", + AccessLevel: "List", + Description: "Grants permission to view information about the maintenance window targets and tasks associated with a specified instance", + Privilege: "DescribeMaintenanceWindowsForTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send a voice message to a destination phone number", - Privilege: "SendVoiceMessage", + AccessLevel: "Read", + Description: "Grants permission to view details about specified OpsItems", + Privilege: "DescribeOpsItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set a default protect configuration for the account", - Privilege: "SetAccountDefaultProtectConfiguration", + AccessLevel: "List", + Description: "Grants permission to view details about a specified SSM parameter", + Privilege: "DescribeParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the default message type for a configuration set", - Privilege: "SetDefaultMessageType", + AccessLevel: "List", + Description: "Grants permission to view information about patch baselines that meet the specified criteria", + Privilege: "DescribePatchBaselines", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the default sender ID for a configuration set", - Privilege: "SetDefaultSenderId", + AccessLevel: "List", + Description: "Grants permission to view aggregated status details for patches for a specified patch group", + Privilege: "DescribePatchGroupState", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set an override for your account's media messaging monthly spend limit", - Privilege: "SetMediaMessageSpendLimitOverride", + AccessLevel: "List", + Description: "Grants permission to view information about the patch baseline for a specified patch group", + Privilege: "DescribePatchGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260164,9 +306507,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to set an override for your account's text messaging monthly spend limit", - Privilege: "SetTextMessageSpendLimitOverride", + AccessLevel: "List", + Description: "Grants permission to view details of available patches for a specified operating system and patch property", + Privilege: "DescribePatchProperties", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260176,9 +306519,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to set an override for your account's voice messaging monthly spend limit", - Privilege: "SetVoiceMessageSpendLimitOverride", + AccessLevel: "List", + Description: "Grants permission to view a list of recent Session Manager sessions that meet the specified search criteria", + Privilege: "DescribeSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260189,70 +306532,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to submit the latest version of a given registration", - Privilege: "SubmitRegistrationVersion", + Description: "Grants permission to disassociate RelatedItem from an OpsItem", + Privilege: "DisassociateOpsItemRelatedItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration*", + ResourceType: "opsitem*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to a Systems Manager delegated administrator to view related resource details about OpsItems across multiple AWS accounts in the AWS Management Console", + Privilege: "ExecuteAPI", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "OptOutList", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ProtectConfiguration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Registration", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "RegistrationAttachment", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to return a credentials set to be used with just-in-time node access", + Privilege: "GetAccessToken", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "opsitem*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details of a specified Automation execution", + Privilege: "GetAutomationExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VerifiedDestinationNumber", + ResourceType: "automation-execution*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -260260,58 +306586,65 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to view details of a specific calendar", + Privilege: "GetCalendar", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ConfigurationSet", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "OptOutList", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PhoneNumber", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Pool", + ResourceType: "document*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the calendar state for a change calendar or a list of change calendars", + Privilege: "GetCalendarState", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration", + ResourceType: "document*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view details about the command execution of a specified invocation or plugin", + Privilege: "GetCommandInvocation", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Registration", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view the Session Manager connection status for a specified managed instance", + Privilege: "GetConnectionStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "RegistrationAttachment", + ResourceType: "instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId", + ResourceType: "managed-instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VerifiedDestinationNumber", + ResourceType: "task", }, { ConditionKeys: []string{ - "aws:TagKeys", + "ssm:resourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -260319,205 +306652,116 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an event destination within a configuration set", - Privilege: "UpdateEventDestination", + AccessLevel: "Read", + Description: "Grants permission to view the current default patch baseline for a specified operating system type", + Privilege: "GetDefaultPatchBaseline", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "ConfigurationSet*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "patchbaseline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update an origination phone number's configuration", - Privilege: "UpdatePhoneNumber", + AccessLevel: "Read", + Description: "Grants permission to retrieve the current patch baseline snapshot for a specified instance", + Privilege: "GetDeployablePatchSnapshotForInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "PhoneNumber*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a pool's configuration", - Privilege: "UpdatePool", + AccessLevel: "Read", + Description: "Grants permission to view the contents of a specified SSM document", + Privilege: "GetDocument", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentCategories", + "ssm:DocumentType", }, - ResourceType: "Pool*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a protect configuration", - Privilege: "UpdateProtectConfiguration", + AccessLevel: "Read", + Description: "Grants permission to retrieve an existing preview that shows the effects that running a specified Automation runbook would have on the targeted resources", + Privilege: "GetExecutionPreview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a country rule set for a protect configuration", - Privilege: "UpdateProtectConfigurationCountryRuleSet", + AccessLevel: "Read", + Description: "Grants permission to view instance inventory details per the specified criteria", + Privilege: "GetInventory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ProtectConfiguration*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a sender ID's configuration", - Privilege: "UpdateSenderId", + AccessLevel: "Read", + Description: "Grants permission to view a list of inventory types or attribute names for a specified inventory item type", + Privilege: "GetInventorySchema", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "SenderId*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to verify a destination phone number", - Privilege: "VerifyDestinationNumber", + AccessLevel: "Read", + Description: "Grants permission to view details about a specified maintenance window", + Privilege: "GetMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "VerifiedDestinationNumber*", + ResourceType: "maintenancewindow*", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:configuration-set/${ConfigurationSetName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ConfigurationSet", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:opt-out-list/${OptOutListName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "OptOutList", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:phone-number/${PhoneNumberId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "PhoneNumber", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:pool/${PoolId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Pool", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:protect-configuration/${ProtectConfigurationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "ProtectConfiguration", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:sender-id/${SenderId}/${IsoCountryCode}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "SenderId", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:registration/${RegistrationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Registration", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:registration-attachment/${RegistrationAttachmentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "RegistrationAttachment", - }, - { - Arn: "arn:${Partition}:sms-voice:${Region}:${Account}:verified-destination-number/${VerifiedDestinationNumberId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "VerifiedDestinationNumber", - }, - }, - ServiceName: "Amazon Pinpoint SMS Voice V2", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access based on the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access based on tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access based on the presence of tag keys in the request", - Type: "String", - }, - }, - Prefix: "snow-device-management", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to cancel tasks on remote devices", - Privilege: "CancelTask", + AccessLevel: "Read", + Description: "Grants permission to view details about a specified maintenance window execution", + Privilege: "GetMaintenanceWindowExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create tasks on remote devices", - Privilege: "CreateTask", + AccessLevel: "Read", + Description: "Grants permission to view details about a specified maintenance window execution task", + Privilege: "GetMaintenanceWindowExecutionTask", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -260525,32 +306769,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a remotely-managed device", - Privilege: "DescribeDevice", + Description: "Grants permission to view details about a specific maintenance window task running on a specific target", + Privilege: "GetMaintenanceWindowExecutionTaskInvocation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-device*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a remotely-managed device's EC2 instances", - Privilege: "DescribeDeviceEc2Instances", + Description: "Grants permission to view details about tasks registered with a specified maintenance window", + Privilege: "GetMaintenanceWindowTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-device*", + ResourceType: "maintenancewindow*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe task executions", - Privilege: "DescribeExecution", + Description: "Grants permission to Systems Manager and SSM Agent to determine package installation requirements for an instance (internal Systems Manager call)", + Privilege: "GetManifest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260561,61 +306805,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a task", - Privilege: "DescribeTask", + Description: "Grants permission to view information about a specified OpsItem", + Privilege: "GetOpsItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task*", + ResourceType: "opsitem*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list a remotely-managed device's resources", - Privilege: "ListDeviceResources", + AccessLevel: "Read", + Description: "Grants permission to retrieve an OpsMetadata object", + Privilege: "GetOpsMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-device*", + ResourceType: "opsmetadata*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list remotely-managed devices", - Privilege: "ListDevices", + AccessLevel: "Read", + Description: "Grants permission to view summary information about OpsItems based on specified filters and aggregators", + Privilege: "GetOpsSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourcedatasync*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list task executions", - Privilege: "ListExecutions", + AccessLevel: "Read", + Description: "Grants permission to view information about a specified parameter", + Privilege: "GetParameter", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parameter*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to list the tags for a resource (device or task)", - Privilege: "ListTagsForResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -260623,36 +306859,37 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list tasks", - Privilege: "ListTasks", + AccessLevel: "Read", + Description: "Grants permission to view details and changes for a specified parameter", + Privilege: "GetParameterHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "parameter*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to view information about multiple specified parameters", + Privilege: "GetParameters", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-device", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "task", + ResourceType: "parameter*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -260660,69 +306897,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to view information about parameters in a specified hierarchy", + Privilege: "GetParametersByPath", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-device", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "task", + ResourceType: "parameter*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ssm:Recursive", }, DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:snow-device-management:${Region}:${Account}:managed-device/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "managed-device", - }, - { - Arn: "arn:${Partition}:snow-device-management:${Region}:${Account}:task/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "task", - }, - }, - ServiceName: "AWS Snow Device Management", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "snowball", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to cancel a cluster job", - Privilege: "CancelCluster", + AccessLevel: "Read", + Description: "Grants permission to view information about a specified patch baseline", + Privilege: "GetPatchBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "patchbaseline*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel the specified job", - Privilege: "CancelJob", + AccessLevel: "Read", + Description: "Grants permission to view the ID of the current patch baseline for a specified patch group", + Privilege: "GetPatchBaselineForPatchGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260732,69 +306940,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an address for a Snowball to be shipped to", - Privilege: "CreateAddress", + AccessLevel: "List", + Description: "Grants permission to retrieve lists of Systems Manager resource policies", + Privilege: "GetResourcePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an empty cluster", - Privilege: "CreateCluster", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "opsitemgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parameter", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to creates a job to import or export data between Amazon S3 and your on-premises data center", - Privilege: "CreateJob", + AccessLevel: "Read", + Description: "Grants permission to view the account-level setting for an AWS service", + Privilege: "GetServiceSetting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "servicesetting*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to creates a LongTermPricingListEntry for allowing customers to add an upfront billing contract for a job", - Privilege: "CreateLongTermPricing", + Description: "Grants permission to apply an identifying label to a specified version of a parameter", + Privilege: "LabelParameterVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "parameter*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a shipping label that will be used to return the Snow device to AWS", - Privilege: "CreateReturnShippingLabel", + AccessLevel: "List", + Description: "Grants permission to list versions of the specified association", + Privilege: "ListAssociationVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "association*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get specific details about that address in the form of an Address object", - Privilege: "DescribeAddress", + AccessLevel: "List", + Description: "Grants permission to list the associations for a specified SSM document or managed instance", + Privilege: "ListAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260805,8 +307025,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to describe a specified number of ADDRESS objects", - Privilege: "DescribeAddresses", + Description: "Grants permission to list information about command invocations sent to a specified instance", + Privilege: "ListCommandInvocations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260816,9 +307036,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe information about a specific cluster including shipping information, cluster status, and other important metadata", - Privilege: "DescribeCluster", + AccessLevel: "List", + Description: "Grants permission to list the commands sent to a specified instance", + Privilege: "ListCommands", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260828,9 +307048,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe information about a specific job including shipping information, job status, and other important metadata", - Privilege: "DescribeJob", + AccessLevel: "List", + Description: "Grants permission to list compliance status for specified resource types on a specified resource", + Privilege: "ListComplianceItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260840,9 +307060,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe information on the shipping label of a Snow device that is being returned to AWS", - Privilege: "DescribeReturnShippingLabel", + AccessLevel: "List", + Description: "Grants permission to list a summary count of compliant and noncompliant resources for a specified compliance type", + Privilege: "ListComplianceSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260852,33 +307072,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a link to an Amazon S3 presigned URL for the manifest file associated with the specified JobId value", - Privilege: "GetJobManifest", + AccessLevel: "List", + Description: "Grants permission to view metadata history about a specified SSM document", + Privilege: "ListDocumentMetadataHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the UnlockCode code value for the specified job", - Privilege: "GetJobUnlockCode", + AccessLevel: "List", + Description: "Grants permission to list all versions of a specified document", + Privilege: "ListDocumentVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentType", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get information about the Snowball service limit for your account, and also the number of Snowballs your account has in use", - Privilege: "GetSnowballUsage", + AccessLevel: "List", + Description: "Grants permission to view information about a specified SSM document", + Privilege: "ListDocuments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260888,21 +307122,33 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to return an Amazon S3 presigned URL for an update file associated with a specified JobId", - Privilege: "GetSoftwareUpdates", + AccessLevel: "List", + Description: "Grants permission to SSM Agent to check for new State Manager associations (internal Systems Manager call)", + Privilege: "ListInstanceAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list JobListEntry objects of the specified length", - Privilege: "ListClusterJobs", + Description: "Grants permission to view a list of specified inventory types for a specified instance", + Privilege: "ListInventoryEntries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260913,32 +307159,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list ClusterListEntry objects of the specified length", - Privilege: "ListClusters", + Description: "Grants permission to view details about managed nodes based on specified filters", + Privilege: "ListNodes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourcedatasync*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to return a list of the different Amazon EC2 Amazon Machine Images (AMIs) that are owned by your AWS account that would be supported for use on a Snow device", - Privilege: "ListCompatibleImages", + Description: "Grants permission to view summary information about managed nodes based on specified filters and aggregators", + Privilege: "ListNodesSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "resourcedatasync*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list JobListEntry objects of the specified length", - Privilege: "ListJobs", + Description: "Grants permission to view details about OpsItemEvents", + Privilege: "ListOpsItemEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260948,9 +307194,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list LongTermPricingListEntry objects for the account making the request", - Privilege: "ListLongTermPricing", + AccessLevel: "List", + Description: "Grants permission to view details about OpsItem RelatedItems", + Privilege: "ListOpsItemRelatedItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260961,8 +307207,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list Address objects where pickup is available, of the specified length", - Privilege: "ListPickupLocations", + Description: "Grants permission to view a list of OpsMetadata objects", + Privilege: "ListOpsMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260973,8 +307219,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all supported versions for Snow on-device services", - Privilege: "ListServiceVersions", + Description: "Grants permission to list resource-level summary count", + Privilege: "ListResourceComplianceSummaries", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -260984,106 +307230,92 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update while a cluster's ClusterState value is in the AwaitingQuorum state, you can update some of the information associated with a cluster", - Privilege: "UpdateCluster", + AccessLevel: "List", + Description: "Grants permission to list information about resource data sync configurations in an account", + Privilege: "ListResourceDataSync", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ssm:SyncType", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update while a job's JobState value is New, you can update some of the information associated with a job", - Privilege: "UpdateJob", + AccessLevel: "List", + Description: "Grants permission to view a list of resource tags for a specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "association", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the state when a the shipment states changes to a different state", - Privilege: "UpdateJobShipmentState", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "automation-execution", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "maintenancewindow", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "opsitem", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "opsmetadata", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parameter", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a specific upfront billing contract for a job", - Privilege: "UpdateLongTermPricing", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "patchbaseline", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Snowball", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by tags from request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by tag keys from request", - Type: "ArrayOfString", - }, - { - Condition: "sns:Endpoint", - Description: "Filters access by the URL, email address, or ARN from a Subscribe request or a previously confirmed subscription", - Type: "String", - }, - { - Condition: "sns:Protocol", - Description: "Filters access by the protocol value from a Subscribe request or a previously confirmed subscription", - Type: "String", - }, - }, - Prefix: "sns", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Permissions management", - Description: "Grants permission to add a statement to a topic's access control policy, granting access for the specified AWS accounts to the specified actions", - Privilege: "AddPermission", + Description: "Grants permission to share a custom SSM document publicly or privately with specified AWS accounts", + Privilege: "ModifyDocumentPermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "document*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to accept a phone number and indicate whether the phone holder has opted out of receiving SMS messages from your account", - Privilege: "CheckIfPhoneNumberIsOptedOut", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ssm:DocumentType", + }, DependentActions: []string{}, ResourceType: "", }, @@ -261091,34 +307323,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to verify an endpoint owner's intent to receive messages by validating the token sent to the endpoint by an earlier Subscribe action", - Privilege: "ConfirmSubscription", + Description: "Grants permission to create/edit a specific calendar", + Privilege: "PutCalendar", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "document*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a platform application object for one of the supported push notification services, such as APNS and GCM, to which devices and mobile apps may register", - Privilege: "CreatePlatformApplication", + Description: "Grants permission to register a compliance type and other compliance details on a specified resource", + Privilege: "PutComplianceItems", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an endpoint for a device and mobile app on one of the supported push notification services, such as GCM and APNS", - Privilege: "CreatePlatformEndpoint", + AccessLevel: "Read", + Description: "Grants permission to SSM Agent to generate a report of the results of specific agent requests (internal Systems Manager call)", + Privilege: "PutConfigurePackageResult", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -261129,8 +307372,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add a destination phone number and send a one-time password (OTP) to that phone number for an AWS account", - Privilege: "CreateSMSSandboxPhoneNumber", + Description: "Grants permission to add or update inventory items on multiple specified managed instances", + Privilege: "PutInventory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -261141,20 +307384,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a topic to which notifications can be published", - Privilege: "CreateTopic", + Description: "Grants permission to create an SSM parameter", + Privilege: "PutParameter", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "topic*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parameter*", }, { ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:TagKeys", + "ssm:Overwrite", + "ssm:Policies", }, DependentActions: []string{}, ResourceType: "", @@ -261162,36 +307405,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete the endpoint for a device and mobile app from Amazon SNS", - Privilege: "DeleteEndpoint", + AccessLevel: "Permissions management", + Description: "Grants permission to create or update a Systems Manager resource policy", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "opsitemgroup", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parameter", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a platform application object for one of the supported push notification services, such as APNS and GCM", - Privilege: "DeletePlatformApplication", + Description: "Grants permission to specify the default patch baseline for an operating system type", + Privilege: "RegisterDefaultPatchBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "patchbaseline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an AWS account's verified or pending phone number", - Privilege: "DeleteSMSSandboxPhoneNumber", + Description: "Grants permission to register a Systems Manager Agent", + Privilege: "RegisterManagedInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -261199,203 +307455,137 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a topic and all its subscriptions", - Privilege: "DeleteTopic", + Description: "Grants permission to specify the default patch baseline for a specified patch group", + Privilege: "RegisterPatchBaselineForPatchGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "patchbaseline*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the data protection policy of the topic", - Privilege: "GetDataProtectionPolicy", + AccessLevel: "Write", + Description: "Grants permission to register a target with a specified maintenance window", + Privilege: "RegisterTargetWithMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "maintenancewindow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the endpoint attributes for a device on one of the supported push notification services, such as GCM and APNS", - Privilege: "GetEndpointAttributes", + AccessLevel: "Write", + Description: "Grants permission to register a task with a specified maintenance window", + Privilege: "RegisterTaskWithMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "maintenancewindow*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the attributes of the platform application object for the supported push notification services, such as APNS and GCM", - Privilege: "GetPlatformApplicationAttributes", + AccessLevel: "Tagging", + Description: "Grants permission to remove a specified tag key from a specified resource", + Privilege: "RemoveTagsFromResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "association", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return the settings for sending SMS messages from your account", - Privilege: "GetSMSAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "automation-execution", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to retrieve the sandbox status for the calling account in the target region", - Privilege: "GetSMSSandboxAccountStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "document", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return all of the properties of a subscription", - Privilege: "GetSubscriptionAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "instance", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return all of the properties of a topic", - Privilege: "GetTopicAttributes", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "maintenancewindow", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the endpoints and endpoint attributes for devices in a supported push notification service, such as GCM and APNS", - Privilege: "ListEndpointsByPlatformApplication", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "managed-instance", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list all origination numbers, and their metadata", - Privilege: "ListOriginationNumbers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "opsitem", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return a list of phone numbers that are opted out, meaning you cannot send SMS messages to them", - Privilege: "ListPhoneNumbersOptedOut", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "opsmetadata", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the platform application objects for the supported push notification services, such as APNS and GCM", - Privilege: "ListPlatformApplications", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "parameter", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the calling account's current pending and verified destination phone numbers", - Privilege: "ListSMSSandboxPhoneNumbers", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "patchbaseline", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return a list of the requester's subscriptions", - Privilege: "ListSubscriptions", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to return a list of the subscriptions to a specific topic", - Privilege: "ListSubscriptionsByTopic", + AccessLevel: "Write", + Description: "Grants permission to reset the service setting for an AWS account to the default value", + Privilege: "ResetServiceSetting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "servicesetting*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list all tags added to the specified Amazon SNS topic", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to reconnect a Session Manager session to a managed instance", + Privilege: "ResumeSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "session*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to return a list of the requester's topics", - Privilege: "ListTopics", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ssm:resourceTag/aws:ssmmessages:session-id", + "ssm:resourceTag/aws:ssmmessages:target-id", + }, DependentActions: []string{}, ResourceType: "", }, @@ -261403,94 +307593,157 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to opt in a phone number that is currently opted out, which enables you to resume sending SMS messages to the number", - Privilege: "OptInPhoneNumber", + Description: "Grants permission to send a signal to change the current behavior or status of a specified Automation execution", + Privilege: "SendAutomationSignal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "automation-execution*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to send a message to all of a topic's subscribed endpoints", - Privilege: "Publish", + Description: "Grants permission to run commands on one or more specified managed instances", + Privilege: "SendCommand", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "document*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "bucket", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to allow a topic owner to set the data protection policy", - Privilege: "PutDataProtectionPolicy", + Description: "Grants permission to start the workflow for just-in-time node access sessions", + Privilege: "StartAccessRequest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "instance", }, - }, - }, - { - AccessLevel: "Permissions management", - Description: "Grants permission to remove a statement from a topic's access control policy", - Privilege: "RemovePermission", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the attributes for an endpoint for a device on one of the supported push notification services, such as GCM and APNS", - Privilege: "SetEndpointAttributes", + Description: "Grants permission to run a specified association manually", + Privilege: "StartAssociationsOnce", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "association*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the attributes of the platform application object for the supported push notification services, such as APNS and GCM", - Privilege: "SetPlatformApplicationAttributes", + Description: "Grants permission to initiate the execution of an Automation document", + Privilege: "StartAutomationExecution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "automation-definition*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set the default settings for sending SMS messages and receiving daily SMS usage reports", - Privilege: "SetSMSAttributes", + Description: "Grants permission to initiate the execution of an Automation Change Template document", + Privilege: "StartChangeRequestExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "automation-definition*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "ssm:AutoApprove", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to allow a subscription owner to set an attribute of the topic to a new value", - Privilege: "SetSubscriptionAttributes", + AccessLevel: "Read", + Description: "Grants permission to create a preview showing the effects that running a specified Automation runbook would have on the targeted resources", + Privilege: "StartExecutionPreview", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -261500,33 +307753,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to allow a topic owner to set an attribute of the topic to a new value", - Privilege: "SetTopicAttributes", + AccessLevel: "Write", + Description: "Grants permission to initiate a connection to a specified target for a Session Manager session", + Privilege: "StartSession", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "task", + }, + { + ConditionKeys: []string{ + "ssm:resourceTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "ssm:AccessRequestId", }, - ResourceType: "topic*", + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to prepare to subscribe an endpoint by sending the endpoint a confirmation message", - Privilege: "Subscribe", + Description: "Grants permission to stop a specified Automation execution that is already in progress", + Privilege: "StopAutomationExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic*", + ResourceType: "automation-execution*", }, { ConditionKeys: []string{ - "sns:Endpoint", - "sns:Protocol", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -261534,19 +307808,19 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the specified Amazon SNS topic", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to permanently end a Session Manager connection to an instance", + Privilege: "TerminateSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "session*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "ssm:resourceTag/aws:ssmmessages:session-id", + "ssm:resourceTag/aws:ssmmessages:target-id", }, DependentActions: []string{}, ResourceType: "", @@ -261555,30 +307829,51 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a subscription", - Privilege: "Unsubscribe", + Description: "Grants permission to remove an identifying label from a specified version of a parameter", + Privilege: "UnlabelParameterVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "parameter*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified Amazon SNS topic", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to update an association and immediately run the association on the specified targets", + Privilege: "UpdateAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "topic", + ResourceType: "association*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "document", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -261587,171 +307882,212 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to verify a destination phone number with a one-time password (OTP) for an AWS account", - Privilege: "VerifySMSSandboxPhoneNumber", + Description: "Grants permission to update the status of the SSM document associated with a specified instance", + Privilege: "UpdateAssociationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "document*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sns:${Region}:${Account}:${TopicName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "topic", - }, - }, - ServiceName: "Amazon SNS", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags that are associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "sqlworkbench", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to associate connection to a chart", - Privilege: "AssociateConnectionWithChart", + Description: "Grants permission to update one or more values for an SSM document", + Privilege: "UpdateDocument", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart*", + ResourceType: "document*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "ssm:DocumentType", + }, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate connection to a tab", - Privilege: "AssociateConnectionWithTab", + Description: "Grants permission to change the default version of an SSM document", + Privilege: "UpdateDocumentDefaultVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate notebook to a tab", - Privilege: "AssociateNotebookWithTab", + Description: "Grants permission to update the metadata of an SSM document", + Privilege: "UpdateDocumentMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "document*", + }, + { + ConditionKeys: []string{ + "ssm:DocumentType", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate query to a tab", - Privilege: "AssociateQueryWithTab", + Description: "Grants permission to SSM Agent to update the status of the association that it is currently running (internal Systems Manager call)", + Privilege: "UpdateInstanceAssociationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query*", + ResourceType: "association*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete folders on your account", - Privilege: "BatchDeleteFolder", + Description: "Grants permission to SSM Agent to send a heartbeat signal to the Systems Manager service in the cloud", + Privilege: "UpdateInstanceInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance", + }, + { + ConditionKeys: []string{ + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get notebook cells content on your account", - Privilege: "BatchGetNotebookCell", + AccessLevel: "Write", + Description: "Grants permission to update a specified maintenance window", + Privilege: "UpdateMaintenanceWindow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "maintenancewindow*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create SQLWorkbench account", - Privilege: "CreateAccount", + Description: "Grants permission to update a specified maintenance window target", + Privilege: "UpdateMaintenanceWindowTarget", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "maintenancewindow*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "windowtarget*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create new saved chart on your account", - Privilege: "CreateChart", + Description: "Grants permission to update a specified maintenance window task", + Privilege: "UpdateMaintenanceWindowTask", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart*", + ResourceType: "maintenancewindow*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "windowtask*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new connection on your account", - Privilege: "CreateConnection", + Description: "Grants permission to assign or change the IAM role assigned to a specified managed instance", + Privilege: "UpdateManagedInstanceRole", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "iam-role*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "managed-instance*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ssm:resourceTag/tag-key", }, DependentActions: []string{}, ResourceType: "", @@ -261760,70 +308096,53 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create folder on your account", - Privilege: "CreateFolder", + Description: "Grants permission to edit or change an OpsItem", + Privilege: "UpdateOpsItem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "opsitem*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new notebook on your account", - Privilege: "CreateNotebook", + Description: "Grants permission to update an OpsMetadata object", + Privilege: "UpdateOpsMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "opsmetadata*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a notebook cell on your account", - Privilege: "CreateNotebookCell", + Description: "Grants permission to update a specified patch baseline", + Privilege: "UpdatePatchBaseline", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "patchbaseline*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new notebook from a notebook version on your account", - Privilege: "CreateNotebookFromVersion", + Description: "Grants permission to update a resource data sync", + Privilege: "UpdateResourceDataSync", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "resourcedatasync*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "ssm:SyncType", }, DependentActions: []string{}, ResourceType: "", @@ -261832,149 +308151,234 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a notebook version on your account", - Privilege: "CreateNotebookVersion", + Description: "Grants permission to update the service setting for an AWS account", + Privilege: "UpdateServiceSetting", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "servicesetting*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:association/${AssociationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "association", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:automation-execution/${AutomationExecutionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", + }, + Resource: "automation-execution", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:automation-definition/${AutomationDefinitionName}:${VersionId}", + ConditionKeys: []string{}, + Resource: "automation-definition", + }, + { + Arn: "arn:${Partition}:s3:::${BucketName}", + ConditionKeys: []string{}, + Resource: "bucket", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:document/${DocumentName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:DocumentCategories", + "ssm:DocumentType", + "ssm:resourceTag/${TagKey}", + }, + Resource: "document", + }, + { + Arn: "arn:${Partition}:iam::${Account}:role/${RoleName}", + ConditionKeys: []string{}, + Resource: "iam-role", + }, + { + Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/${TagKey}", + }, + Resource: "instance", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:maintenancewindow/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", + }, + Resource: "maintenancewindow", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:managed-instance/${InstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", + }, + Resource: "managed-instance", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:managed-instance-inventory/${InstanceId}", + ConditionKeys: []string{}, + Resource: "managed-instance-inventory", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:opsitem/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "opsitem", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:opsitemgroup/default", + ConditionKeys: []string{}, + Resource: "opsitemgroup", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:opsmetadata/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/${TagKey}", + }, + Resource: "opsmetadata", + }, { - AccessLevel: "Write", - Description: "Grants permission to create a new saved query on your account", - Privilege: "CreateSavedQuery", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "query*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:ssm:${Region}:${Account}:parameter/${ParameterNameWithoutLeadingSlash}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", }, + Resource: "parameter", }, { - AccessLevel: "Write", - Description: "Grants permission to remove charts on your account", - Privilege: "DeleteChart", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "chart*", - }, + Arn: "arn:${Partition}:ssm:${Region}:${Account}:patchbaseline/${PatchBaselineIdResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", }, + Resource: "patchbaseline", }, { - AccessLevel: "Write", - Description: "Grants permission to remove connections on your account", - Privilege: "DeleteConnection", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection*", - }, + Arn: "arn:${Partition}:ssm:${Region}:${Account}:session/${SessionId}", + ConditionKeys: []string{ + "ssm:resourceTag/aws:ssmmessages:session-id", + "ssm:resourceTag/aws:ssmmessages:target-id", }, + Resource: "session", }, { - AccessLevel: "Write", - Description: "Grants permission to remove notebooks on your account", - Privilege: "DeleteNotebook", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook*", - }, + Arn: "arn:${Partition}:ssm:${Region}:${Account}:resource-data-sync/${SyncName}", + ConditionKeys: []string{}, + Resource: "resourcedatasync", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:servicesetting/${ResourceId}", + ConditionKeys: []string{}, + Resource: "servicesetting", + }, + { + Arn: "arn:${Partition}:ssm:${Region}:${Account}:windowtarget/${WindowTargetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", }, + Resource: "windowtarget", }, { - AccessLevel: "Write", - Description: "Grants permission to remove notebooks cells on your account", - Privilege: "DeleteNotebookCell", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook*", - }, + Arn: "arn:${Partition}:ssm:${Region}:${Account}:windowtask/${WindowTaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "ssm:resourceTag/tag-key", }, + Resource: "windowtask", }, { - AccessLevel: "Write", - Description: "Grants permission to remove notebooks cells on your account", - Privilege: "DeleteNotebookVersion", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook*", - }, + Arn: "arn:${Partition}:ecs:${Region}:${Account}:task/${TaskId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "task", + }, + }, + ServiceName: "AWS Systems Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", }, + }, + Prefix: "ssm-contacts", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to remove saved queries on your account", - Privilege: "DeleteSavedQuery", + Description: "Grants permission to accept a page", + Privilege: "AcceptPage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query*", + ResourceType: "page*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to remove a tab on your account", - Privilege: "DeleteTab", + Description: "Grants permission to activate a contact's contact channel", + Privilege: "ActivateContactChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contactchannel*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to execute a query in your redshift cluster", - Privilege: "DriverExecute", + AccessLevel: "Permissions management", + Description: "Grants permission to use a contact in an escalation plan", + Privilege: "AssociateContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "contact*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new notebook by duplicating an existing one on your account", - Privilege: "DuplicateNotebook", + Description: "Grants permission to create a contact", + Privilege: "CreateContact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ssm-contacts:AssociateContact", + }, + ResourceType: "contact*", }, { ConditionKeys: []string{ @@ -261987,233 +308391,209 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to export a notebook on your account", - Privilege: "ExportNotebook", + AccessLevel: "Write", + Description: "Grants permission to create a contact channel for a contact", + Privilege: "CreateContactChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "contact*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to generate a new session on your account", - Privilege: "GenerateSession", + Description: "Grants permission to create a rotation in an on-call schedule", + Privilege: "CreateRotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rotation*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to get account info", - Privilege: "GetAccountInfo", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get account settings", - Privilege: "GetAccountSettings", + AccessLevel: "Write", + Description: "Grants permission to create an override for a rotation in an on-call schedule", + Privilege: "CreateRotationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rotation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get database structure metadata for auto-completion", - Privilege: "GetAutocompletionMetadata", + AccessLevel: "Write", + Description: "Grants permission to deactivate a contact's contact channel", + Privilege: "DeactivateContactChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contactchannel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get database structure information for auto-completion", - Privilege: "GetAutocompletionResource", + AccessLevel: "Write", + Description: "Grants permission to delete a contact", + Privilege: "DeleteContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get charts on your account", - Privilege: "GetChart", + AccessLevel: "Write", + Description: "Grants permission to delete a contact's contact channel", + Privilege: "DeleteContactChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart*", + ResourceType: "contactchannel*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get connections on your account", - Privilege: "GetConnection", + AccessLevel: "Write", + Description: "Grants permission to delete a rotation", + Privilege: "DeleteRotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", + ResourceType: "rotation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get notebook metadata on your account", - Privilege: "GetNotebook", + AccessLevel: "Write", + Description: "Grants permission to delete a rotation's rotation override", + Privilege: "DeleteRotationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "rotation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the content of a notebook version on your account", - Privilege: "GetNotebookVersion", + Description: "Grants permission to describe an engagement", + Privilege: "DescribeEngagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "engagement*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get text to SQL recommendations", - Privilege: "GetQSqlRecommendations", + Description: "Grants permission to describe a page", + Privilege: "DescribePage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "page*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the query execution history on your account", - Privilege: "GetQueryExecutionHistory", + Description: "Grants permission to get a contact", + Privilege: "GetContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get saved query on your account", - Privilege: "GetSavedQuery", + Description: "Grants permission to get a contact's contact channel", + Privilege: "GetContactChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query*", + ResourceType: "contactchannel*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the columns and data types inferred from a file", - Privilege: "GetSchemaInference", + Description: "Grants permission to get a contact's resource policy", + Privilege: "GetContactPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get user info", - Privilege: "GetUserInfo", + Description: "Grants permission to retrieve information about an on-call rotation", + Privilege: "GetRotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rotation*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get workspace settings on your account", - Privilege: "GetUserWorkspaceSettings", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to import a notebook on your account", - Privilege: "ImportNotebook", + Description: "Grants permission to retrieve information about an override in an on-call rotation", + Privilege: "GetRotationOverride", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "rotation*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the connections on your account", - Privilege: "ListConnections", + Description: "Grants permission to list all of a contact's contact channels", + Privilege: "ListContactChannels", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list databases of your redshift cluster", - Privilege: "ListDatabases", + Description: "Grants permission to list all contacts", + Privilege: "ListContacts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -262224,8 +308604,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list files and folders", - Privilege: "ListFiles", + Description: "Grants permission to list all engagements", + Privilege: "ListEngagements", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -262236,56 +308616,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to get notebook versions metadata on your account", - Privilege: "ListNotebookVersions", + Description: "Grants permission to list all receipts of a page", + Privilege: "ListPageReceipts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", + ResourceType: "page*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the notebooks on your account", - Privilege: "ListNotebooks", + Description: "Grants permission to list the resolution path of an engagement", + Privilege: "ListPageResolutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "page*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the query execution history on your account", - Privilege: "ListQueryExecutionHistory", + Description: "Grants permission to list all pages sent to a contact", + Privilege: "ListPagesByContact", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list redshift clusters on your account", - Privilege: "ListRedshiftClusters", + Description: "Grants permission to list all pages created in an engagement", + Privilege: "ListPagesByEngagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "engagement*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list sample databases", - Privilege: "ListSampleDatabases", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of shifts based on rotation configuration parameters", + Privilege: "ListPreviewRotationShifts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -262296,32 +308676,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list versions of saved query on your account", - Privilege: "ListSavedQueryVersions", + Description: "Grants permission to retrieve a list of overrides currently specified for an on-call rotation", + Privilege: "ListRotationOverrides", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query*", + ResourceType: "rotation*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list tabs on your account", - Privilege: "ListTabs", + Description: "Grants permission to retrieve a list of rotation shifts in an on-call schedule", + Privilege: "ListRotationShifts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rotation*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tagged resources", - Privilege: "ListTaggedResources", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of on-call rotations", + Privilege: "ListRotations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -262332,99 +308712,83 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list the tags of an sqlworkbench resource", + Description: "Grants permission to view a list of resource tags for a specified resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection", + ResourceType: "contact", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook", + ResourceType: "rotation", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to add a resource policy to a contact", + Privilege: "PutContactPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query", + ResourceType: "contact*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create or update a tab on your account", - Privilege: "PutTab", + Description: "Grants permission to send the activation code of a contact's contact channel", + Privilege: "SendActivationCode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contactchannel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update workspace settings on your account", - Privilege: "PutUserWorkspaceSettings", + Description: "Grants permission to start an engagement", + Privilege: "StartEngagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contact*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to restore a notebook on your account to a version", - Privilege: "RestoreNotebookVersion", + Description: "Grants permission to stop an engagement", + Privilege: "StopEngagement", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "engagement*", }, }, }, { AccessLevel: "Tagging", - Description: "Grants permission to tag an sqlworkbench resource", + Description: "Grants permission to add tags to the specified resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook", + ResourceType: "contact", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query", + ResourceType: "rotation", }, { ConditionKeys: []string{ @@ -262438,28 +308802,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Tagging", - Description: "Grants permission to untag an sqlworkbench resource", + Description: "Grants permission to remove tags from the specified resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "connection", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "notebook", + ResourceType: "contact", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query", + ResourceType: "rotation", }, { ConditionKeys: []string{ @@ -262472,113 +308826,108 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update account-wide connection settings", - Privilege: "UpdateAccountConnectionSettings", + Description: "Grants permission to update a contact", + Privilege: "UpdateContact", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "ssm-contacts:AssociateContact", + }, + ResourceType: "contact*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update account-wide export settings", - Privilege: "UpdateAccountExportSettings", + Description: "Grants permission to update a contact's contact channel", + Privilege: "UpdateContactChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "contactchannel*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update account-wide general settings", - Privilege: "UpdateAccountGeneralSettings", + Description: "Grants permission to update the information specified for an on-call rotation", + Privilege: "UpdateRotation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "rotation*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Write", - Description: "Grants permission to update account-wide text to SQL settings", - Privilege: "UpdateAccountQSqlSettings", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:contact/${ContactAlias}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "contact", }, { - AccessLevel: "Write", - Description: "Grants permission to update a chart on your account", - Privilege: "UpdateChart", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "chart*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", - }, + Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:contactchannel/${ContactAlias}/${ContactChannelId}", + ConditionKeys: []string{}, + Resource: "contactchannel", + }, + { + Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:engagement/${ContactAlias}/${EngagementId}", + ConditionKeys: []string{}, + Resource: "engagement", + }, + { + Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:page/${ContactAlias}/${PageId}", + ConditionKeys: []string{}, + Resource: "page", + }, + { + Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:rotation/${RotationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "rotation", }, + }, + ServiceName: "AWS Systems Manager Incident Manager Contacts", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "ssm-guiconnect", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to update a connection on your account", - Privilege: "UpdateConnection", + Description: "Grants permission to terminate a GUI Connect connection", + Privilege: "CancelConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "connection*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to move files on your account", - Privilege: "UpdateFileFolder", + Description: "Grants permission to remove GUI Connect connection recording preferences", + Privilege: "DeleteConnectionRecordingPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "chart", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "query", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a folder's name and details on your account", - Privilege: "UpdateFolder", + AccessLevel: "Read", + Description: "Grants permission to get the metadata for a GUI Connect connection", + Privilege: "GetConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -262588,117 +308937,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a notebook metadata on your account", - Privilege: "UpdateNotebook", + AccessLevel: "Read", + Description: "Grants permission to get GUI Connect connection recording preferences", + Privilege: "GetConnectionRecordingPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a notebook cell content on your account", - Privilege: "UpdateNotebookCellContent", + AccessLevel: "List", + Description: "Grants permission to list the metadata for GUI Connect connections", + Privilege: "ListConnections", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a notebook cell layout on your account", - Privilege: "UpdateNotebookCellLayout", + Description: "Grants permission to start a GUI Connect connection", + Privilege: "StartConnection", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "notebook*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a saved query on your account", - Privilege: "UpdateSavedQuery", + Description: "Grants permission to update GUI Connect connection recording preferences", + Privilege: "UpdateConnectionRecordingPreferences", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "query*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:connection/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "connection", - }, - { - Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:query/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "query", - }, - { - Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:chart/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "chart", - }, - { - Arn: "arn:${Partition}:sqlworkbench:${Region}:${Account}:notebook/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "notebook", - }, - }, - ServiceName: "AWS SQL Workbench", + Resources: []ParliamentResource{}, + ServiceName: "AWS Systems Manager GUI Connect", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -262718,516 +309006,365 @@ func getParliamentIamPermissions() ParliamentPermissions { Type: "ArrayOfString", }, }, - Prefix: "sqs", + Prefix: "ssm-incidents", Privileges: []ParliamentPrivilege{ { - AccessLevel: "Permissions management", - Description: "Grants permission to a queue for a specific principal", - Privilege: "AddPermission", + AccessLevel: "Read", + Description: "Grants permission to retrieve details about specified findings for an incident record", + Privilege: "BatchGetIncidentFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "incident-record*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel an in progress message move task", - Privilege: "CancelMessageMoveTask", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to change the visibility timeout of a specified message in a queue to a new value", - Privilege: "ChangeMessageVisibility", + Description: "Grants permission to create a replication set", + Privilege: "CreateReplicationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "queue*", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "ssm-incidents:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a new queue, or returns the URL of an existing one", - Privilege: "CreateQueue", + Description: "Grants permission to create a response plan", + Privilege: "CreateResponsePlan", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "queue*", - }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, - DependentActions: []string{}, - ResourceType: "", + DependentActions: []string{ + "iam:PassRole", + "ssm-incidents:TagResource", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the specified message from the specified queue", - Privilege: "DeleteMessage", + Description: "Grants permission to create a timeline event for an incident record", + Privilege: "CreateTimelineEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "incident-record*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the queue specified by the queue URL, regardless of whether the queue is empty", - Privilege: "DeleteQueue", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to get attributes for the specified queue", - Privilege: "GetQueueAttributes", + AccessLevel: "Write", + Description: "Grants permission to delete an incident record", + Privilege: "DeleteIncidentRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "incident-record*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return the URL of an existing queue", - Privilege: "GetQueueUrl", + AccessLevel: "Write", + Description: "Grants permission to delete a replication set", + Privilege: "DeleteReplicationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "replication-set*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to return a list of your queues that have the RedrivePolicy queue attribute configured with a dead letter queue", - Privilege: "ListDeadLetterSourceQueues", + AccessLevel: "Permissions management", + Description: "Grants permission to delete resource policy from a response plan", + Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list message move tasks", - Privilege: "ListMessageMoveTasks", + AccessLevel: "Write", + Description: "Grants permission to delete a response plan", + Privilege: "DeleteResponsePlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags added to an SQS queue", - Privilege: "ListQueueTags", + AccessLevel: "Write", + Description: "Grants permission to delete a timeline event", + Privilege: "DeleteTimelineEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "incident-record*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to return a list of your queues", - Privilege: "ListQueues", + Description: "Grants permission to view the contents of an incident record", + Privilege: "GetIncidentRecord", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "incident-record*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete the messages in a queue specified by the queue URL", - Privilege: "PurgeQueue", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve one or more messages, with a maximum limit of 10 messages, from the specified queue", - Privilege: "ReceiveMessage", + Description: "Grants permission to view the replication set", + Privilege: "GetReplicationSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "replication-set*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to revoke any permissions in the queue policy that matches the specified Label parameter", - Privilege: "RemovePermission", + AccessLevel: "Read", + Description: "Grants permission to view resource policies of a response plan", + Privilege: "GetResourcePolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deliver a message to the specified queue", - Privilege: "SendMessage", + AccessLevel: "Read", + Description: "Grants permission to view the contents of a specified response plan", + Privilege: "GetResponsePlan", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to set the value of one or more queue attributes", - Privilege: "SetQueueAttributes", + AccessLevel: "Read", + Description: "Grants permission to view a timeline event", + Privilege: "GetTimelineEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "incident-record*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to start a message move task", - Privilege: "StartMessageMoveTask", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the specified SQS queue", - Privilege: "TagQueue", + AccessLevel: "List", + Description: "Grants permission to list findings for an incident record", + Privilege: "ListIncidentFindings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", + ResourceType: "incident-record*", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified SQS queue", - Privilege: "UntagQueue", + AccessLevel: "List", + Description: "Grants permission to list the contents of all incident records", + Privilege: "ListIncidentRecords", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "queue*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sqs:${Region}:${Account}:${QueueName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "queue", - }, - }, - ServiceName: "Amazon SQS", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by 'Create' requests based on the allowed set of values for a specified tags", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by based on a tag key-value pair assigned to the AWS resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by 'Create' requests based on whether mandatory tags are included in the request", - Type: "ArrayOfString", - }, - { - Condition: "ec2:SourceInstanceARN", - Description: "Filters access by the ARN of the instance from which the request originated", - Type: "ARN", - }, - { - Condition: "ssm:AutoApprove", - Description: "Filters access by verifying that a user has permission to start Change Manager workflows without a review step (with the exception of change freeze events)", - Type: "Bool", - }, - { - Condition: "ssm:DocumentCategories", - Description: "Filters access by verifying that a user has permission to access a document belonging to a specific category enum", - Type: "ArrayOfString", - }, - { - Condition: "ssm:Overwrite", - Description: "Filters access by controling whether Systems Manager parameters can be overwritten", - Type: "String", - }, - { - Condition: "ssm:Recursive", - Description: "Filters access by Systems Manager parameters created in a hierarchical structure", - Type: "String", - }, - { - Condition: "ssm:SessionDocumentAccessCheck", - Description: "Filters access by verifying that a user has permission to access either the default Session Manager configuration document or the custom configuration document specified in a request", - Type: "Bool", - }, - { - Condition: "ssm:SourceInstanceARN", - Description: "Filters access by verifying the Amazon Resource Name (ARN) of the AWS Systems Manager's managed instance from which the request is made. This key is not present when the request comes from the managed instance authenticated with an IAM role associated with EC2 instance profile", - Type: "ARN", - }, - { - Condition: "ssm:SyncType", - Description: "Filters access by verifying that a user also has access to the ResourceDataSync SyncType specified in the request", - Type: "String", - }, - { - Condition: "ssm:resourceTag/${TagKey}", - Description: "Filters access by a tag key-value pair assigned to the Systems Manager resource", - Type: "String", - }, - { - Condition: "ssm:resourceTag/aws:ssmmessages:session-id", - Description: "Filters access by based on a tag key-value pair assigned to the Systems Manager session resource", - Type: "String", - }, - { - Condition: "ssm:resourceTag/aws:ssmmessages:target-id", - Description: "Filters access by based on a tag key-value pair assigned to the Systems Manager session resource", - Type: "String", - }, - { - Condition: "ssm:resourceTag/tag-key", - Description: "Filters access by based on a tag key-value pair assigned to the Systems Manager resource", - Type: "String", - }, - }, - Prefix: "ssm", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Tagging", - Description: "Grants permission to add or overwrite one or more tags for a specified AWS resource", - Privilege: "AddTagsToResource", + AccessLevel: "List", + Description: "Grants permission to list related items of an incident record", + Privilege: "ListRelatedItems", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "automation-execution", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "maintenancewindow", + ResourceType: "incident-record*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "response-plan*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all replication sets", + Privilege: "ListReplicationSets", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsitem", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all response plans", + Privilege: "ListResponsePlans", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsmetadata", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a list of resource tags for a specified resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter", + ResourceType: "incident-record", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline", + ResourceType: "replication-set", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "response-plan", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to associate RelatedItem to an OpsItem", - Privilege: "AssociateOpsItemRelatedItem", + AccessLevel: "List", + Description: "Grants permission to list all timeline events for an incident record", + Privilege: "ListTimelineEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsitem*", + ResourceType: "incident-record*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to cancel a specified Run Command command", - Privilege: "CancelCommand", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "response-plan*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to cancel an in-progress maintenance window execution", - Privilege: "CancelMaintenanceWindowExecution", + AccessLevel: "Permissions management", + Description: "Grants permission to put resource policy on a response plan", + Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an activation that is used to register on-premises servers and virtual machines (VMs) with Systems Manager", - Privilege: "CreateActivation", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "response-plan*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to associate a specified Systems Manager document with specified instances or other targets", - Privilege: "CreateAssociation", + Description: "Grants permission to start a new incident using a response plan", + Privilege: "StartIncident", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", + ResourceType: "response-plan*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a response plan", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "incident-record", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "replication-set", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "response-plan", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -263235,29 +309372,27 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to combine entries for multiple CreateAssociation operations in a single command", - Privilege: "CreateAssociationBatch", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a response plan", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "incident-record", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "replication-set", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "response-plan", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -263267,80 +309402,79 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a Systems Manager SSM document", - Privilege: "CreateDocument", + Description: "Grants permission to update replication set deletion protection", + Privilege: "UpdateDeletionProtection", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - }, - ResourceType: "document*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "replication-set*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a maintenance window", - Privilege: "CreateMaintenanceWindow", + Description: "Grants permission to update the contents of an incident record", + Privilege: "UpdateIncidentRecord", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "incident-record*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "response-plan*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an OpsItem in OpsCenter", - Privilege: "CreateOpsItem", + Description: "Grants permission to update related items of an incident record", + Privilege: "UpdateRelatedItems", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "incident-record*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "response-plan*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an OpsMetadata object for an AWS resource", - Privilege: "CreateOpsMetadata", + Description: "Grants permission to update a replication set", + Privilege: "UpdateReplicationSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "replication-set*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a patch baseline", - Privilege: "CreatePatchBaseline", + Description: "Grants permission to update the contents of a response plan", + Privilege: "UpdateResponsePlan", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "ssm-incidents:TagResource", + }, + ResourceType: "response-plan*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -263349,85 +309483,135 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a resource data sync configuration, which regularly collects inventory data from managed instances and updates the data in an Amazon S3 bucket", - Privilege: "CreateResourceDataSync", + Description: "Grants permission to update a timeline event", + Privilege: "UpdateTimelineEvent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcedatasync*", + ResourceType: "incident-record*", }, { - ConditionKeys: []string{ - "ssm:SyncType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "response-plan*", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ssm-incidents::${Account}:response-plan/${ResponsePlan}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "response-plan", + }, + { + Arn: "arn:${Partition}:ssm-incidents::${Account}:incident-record/${ResponsePlan}/${IncidentRecord}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "incident-record", + }, + { + Arn: "arn:${Partition}:ssm-incidents::${Account}:replication-set/${ReplicationSet}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "replication-set", + }, + }, + ServiceName: "AWS Systems Manager Incident Manager", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the presence of tag key-value pairs in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of tag keys in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "ssm-quicksetup", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete a specified activation for managed instances", - Privilege: "DeleteActivation", + Description: "Grants permission to create a Quick Setup configuration manager resource", + Privilege: "CreateConfigurationManager", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-manager*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a specified SSM document from a specified instance", - Privilege: "DeleteAssociation", + Description: "Grants permission to delete a configuration manager", + Privilege: "DeleteConfigurationManager", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document", + ResourceType: "configuration-manager*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get Quick Setup configuration", + Privilege: "GetConfiguration", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "configuration-manager", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get a configuration manager", + Privilege: "GetConfigurationManager", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "configuration-manager*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specified SSM document and its instance associations", - Privilege: "DeleteDocument", + AccessLevel: "Read", + Description: "Grants permission to get settings configured for Quick Setup in the requesting AWS account and AWS Region", + Privilege: "GetServiceSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specified custom inventory type, or the data associated with a custom inventory type", - Privilege: "DeleteInventory", + AccessLevel: "List", + Description: "Grants permission to list Quick Setup configuration managers", + Privilege: "ListConfigurationManagers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263437,54 +309621,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specified maintenance window", - Privilege: "DeleteMaintenanceWindow", + AccessLevel: "List", + Description: "Grants permission to list Quick Setup configurations", + Privilege: "ListConfigurations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "configuration-manager", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an OpsItem", - Privilege: "DeleteOpsItem", + AccessLevel: "Read", + Description: "Grants permission to list the available Quick Setup types", + Privilege: "ListQuickSetupTypes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsitem*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an OpsMetadata object", - Privilege: "DeleteOpsMetadata", + AccessLevel: "Read", + Description: "Grants permission to list tags assigned to the resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsmetadata*", + ResourceType: "configuration-manager*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a specified SSM parameter", - Privilege: "DeleteParameter", + AccessLevel: "Tagging", + Description: "Grants permission to Assign key-value pairs of metadata to AWS resources", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", + ResourceType: "configuration-manager*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -263492,18 +309677,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete multiple specified SSM parameters", - Privilege: "DeleteParameters", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", + ResourceType: "configuration-manager*", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -263512,106 +309697,136 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified patch baseline", - Privilege: "DeletePatchBaseline", + Description: "Grants permission to update a Quick Setup configuration definition", + Privilege: "UpdateConfigurationDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "configuration-manager*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a specified resource data sync", - Privilege: "DeleteResourceDataSync", + Description: "Grants permission to update a Quick Setup configuration manager", + Privilege: "UpdateConfigurationManager", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcedatasync*", + ResourceType: "configuration-manager*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update settings configured for Quick Setup", + Privilege: "UpdateServiceSettings", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ssm:SyncType", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Permissions management", - Description: "Grants permission to delete a Systems Manager resource policy", - Privilege: "DeleteResourcePolicy", + Arn: "arn:${Partition}:ssm-quicksetup:${Region}:${Account}:configuration-manager/${ConfigurationManagerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "configuration-manager", + }, + }, + ServiceName: "AWS Systems Manager Quick Setup", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "ssm-sap", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to perform backup operation on a specified database", + Privilege: "BackupDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcearn*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a specified on-premises server or virtual machine (VM) from Systems Manager", - Privilege: "DeregisterManagedInstance", + Description: "Grants permission to delete the SSM for SAP level resource permissions associated with a SSM for SAP database resource", + Privilege: "DeleteResourcePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance*", - }, - { - ConditionKeys: []string{ - "ssm:resourceTag/tag-key", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to deregister a specified patch baseline from being the default patch baseline for a specified patch group", - Privilege: "DeregisterPatchBaselineForPatchGroup", + Description: "Grants permission to deregister an SAP application with SSM for SAP", + Privilege: "DeregisterApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "application", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister a specified target from a maintenance window", - Privilege: "DeregisterTargetFromMaintenanceWindow", + AccessLevel: "Read", + Description: "Grants permission to access information about an application registered with SSM for SAP by providing the application ID or application ARN", + Privilege: "GetApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deregister a specified task from a maintenance window", - Privilege: "DeregisterTaskFromMaintenanceWindow", + AccessLevel: "Read", + Description: "Grants permission to access information about a component registered with SSM for SAP by providing the application ID and component ID", + Privilege: "GetComponent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "component", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a specified managed instance activation, such as when it was created and the number of instances registered using the activation", - Privilege: "DescribeActivations", + Description: "Grants permission to access information about a database registered with SSM for SAP by providing the application ID, component ID, and database ID", + Privilege: "GetDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263622,52 +309837,83 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view details about the specified association for a specified instance or target", - Privilege: "DescribeAssociation", + Description: "Grants permission to access information about an operation by providing its operation ID", + Privilege: "GetOperation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get the SSM for SAP level resource permissions associated with a SSM for SAP database resource", + Privilege: "GetResourcePermission", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all applications registered with SSM for SAP under the customer AWS account", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all components in the account of customer, or a specific application", + Privilege: "ListComponents", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "application", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all databases in the account of customer, or a specific application", + Privilege: "ListDatabases", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about a specified association execution", - Privilege: "DescribeAssociationExecutionTargets", + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all operation events in a specified operation", + Privilege: "ListOperationEvents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of all operations in the account of customer, additional filters can be applied", + Privilege: "ListOperations", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -263675,27 +309921,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view all executions for a specified association", - Privilege: "DescribeAssociationExecutions", + Description: "Grants permission to list the tags on a specified resource ARN", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about all active and terminated Automation executions", - Privilege: "DescribeAutomationExecutions", + AccessLevel: "Write", + Description: "Grants permission to add the SSM for SAP level resource permissions associated with a SSM for SAP database resource", + Privilege: "PutResourcePermission", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263705,21 +309944,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view information about all active and terminated step executions in an Automation workflow", - Privilege: "DescribeAutomationStepExecutions", + AccessLevel: "Write", + Description: "Grants permission to registers an SAP application with SSM for SAP", + Privilege: "RegisterApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "automation-execution*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view all patches eligible to include in a patch baseline", - Privilege: "DescribeAvailablePatches", + AccessLevel: "Write", + Description: "Grants permission to restore a database from another database", + Privilege: "RestoreDatabase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263729,59 +309971,65 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a specified SSM document", - Privilege: "DescribeDocument", + AccessLevel: "Write", + Description: "Grants permission to start a registered SSM for SAP application", + Privilege: "StartApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "application", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to display information about SSM document parameters in the Systems Manager console (internal Systems Manager action)", - Privilege: "DescribeDocumentParameters", + AccessLevel: "Write", + Description: "Grants permission to start an on-demand discovery of a registered SSM for SAP application", + Privilege: "StartApplicationRefresh", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "application", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the permissions for a specified SSM document", - Privilege: "DescribeDocumentPermission", + AccessLevel: "Write", + Description: "Grants permission to stop a registered SSM for SAP application", + Privilege: "StopApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "application", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view all current associations for a specified instance", - Privilege: "DescribeEffectiveInstanceAssociations", + AccessLevel: "Tagging", + Description: "Grants permission to tag a specified resource ARN", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance*", + ResourceType: "component", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "database", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -263789,35 +310037,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about the patches currently associated with the specified patch baseline (Windows only)", - Privilege: "DescribeEffectivePatchesForPatchBaseline", + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from a specified resource ARN", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "application", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view the status of the associations for a specified instance", - Privilege: "DescribeInstanceAssociationsStatus", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "component", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance*", + ResourceType: "database", }, { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -263825,36 +310066,79 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a specified instance", - Privilege: "DescribeInstanceInformation", + AccessLevel: "Write", + Description: "Grants permission to update settings of a registered SSM for SAP application", + Privilege: "UpdateApplicationSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "application", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view status details about patches on a specified instance", - Privilege: "DescribeInstancePatchStates", + AccessLevel: "Write", + Description: "Grants permission to update the HANA backup settings of a specified database", + Privilege: "UpdateHANABackupSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managed-instance*", + ResourceType: "", }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:ssm-sap:${Region}:${Account}:${ApplicationType}/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "application", + }, + { + Arn: "arn:${Partition}:ssm-sap:${Region}:${Account}:${ApplicationType}/${ApplicationId}/COMPONENT/${ComponentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "component", + }, + { + Arn: "arn:${Partition}:ssm-sap:${Region}:${Account}:${ApplicationType}/${ApplicationId}/DB/${DatabaseId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "database", + }, + }, + ServiceName: "AWS Systems Manager for SAP", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "ec2:SourceInstanceARN", + Description: "Filters access by the ARN of the instance from which the request originated", + Type: "ARN", + }, + { + Condition: "ssm:SourceInstanceARN", + Description: "Filters access by verifying the Amazon Resource Name (ARN) of the AWS Systems Manager's managed instance from which the request is made. This key is not present when the request comes from the managed instance authenticated with an IAM role associated with EC2 instance profile", + Type: "ARN", + }, + }, + Prefix: "ssmmessages", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to register a control channel for an instance to send control messages to Systems Manager service", + Privilege: "CreateControlChannel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/${TagKey}", + "ssm:SourceInstanceARN", + "ec2:SourceInstanceARN", }, DependentActions: []string{}, ResourceType: "", @@ -263862,9 +310146,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the high-level patch state for the instances in the specified patch group", - Privilege: "DescribeInstancePatchStatesForPatchGroup", + AccessLevel: "Write", + Description: "Grants permission to register a data channel for an instance to send data messages to Systems Manager service", + Privilege: "CreateDataChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263874,34 +310158,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view general details about the patches on a specified instance", - Privilege: "DescribeInstancePatches", + AccessLevel: "Write", + Description: "Grants permission to open a websocket connection for a registered control channel stream from an instance to Systems Manager service", + Privilege: "OpenControlChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to open a websocket connection for a registered data channel stream from an instance to Systems Manager service", + Privilege: "OpenDataChannel", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Message Gateway Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "ssmmessages", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to user's Amazon EC2 console to render managed instances' nodes", - Privilege: "DescribeInstanceProperties", + AccessLevel: "Write", + Description: "Grants permission to register a control channel for an instance to send control messages to Systems Manager service", + Privilege: "CreateControlChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263911,9 +310202,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a specified inventory deletion", - Privilege: "DescribeInventoryDeletions", + AccessLevel: "Write", + Description: "Grants permission to register a data channel for an instance to send data messages to Systems Manager service", + Privilege: "CreateDataChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263923,9 +310214,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view details of a specified task execution for a maintenance window", - Privilege: "DescribeMaintenanceWindowExecutionTaskInvocations", + AccessLevel: "Write", + Description: "Grants permission to open a websocket connection for a registered control channel stream from an instance to Systems Manager service", + Privilege: "OpenControlChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263935,33 +310226,59 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view details about the tasks that ran during a specified maintenance window execution", - Privilege: "DescribeMaintenanceWindowExecutionTasks", + AccessLevel: "Write", + Description: "Grants permission to open a websocket connection for a registered data channel stream from an instance to Systems Manager service", + Privilege: "OpenDataChannel", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "Amazon Session Manager Message Gateway Service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "List", - Description: "Grants permission to view the executions of a specified maintenance window", - Privilege: "DescribeMaintenanceWindowExecutions", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "sso", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to connect a directory to be used by AWS Single Sign-On", + Privilege: "AssociateDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AuthorizeApplication", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view details about upcoming executions of a specified maintenance window", - Privilege: "DescribeMaintenanceWindowSchedule", + AccessLevel: "Write", + Description: "Grants permission to create an association between a directory user or group and a profile", + Privilege: "AssociateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -263971,33 +310288,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of the targets associated with a specified maintenance window", - Privilege: "DescribeMaintenanceWindowTargets", + AccessLevel: "Permissions management", + Description: "Grants permission to attach an AWS managed policy to a permission set", + Privilege: "AttachManagedPolicyToPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of the tasks associated with a specified maintenance window", - Privilege: "DescribeMaintenanceWindowTasks", + AccessLevel: "Write", + Description: "Grants permission to assign access to a Principal for a specified AWS account using a specified permission set", + Privilege: "CreateAccountAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "Account*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view information about all or specified maintenance windows", - Privilege: "DescribeMaintenanceWindows", + AccessLevel: "Write", + Description: "Grants permission to add an application instance to AWS Single Sign-On", + Privilege: "CreateApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264007,9 +310339,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view information about the maintenance window targets and tasks associated with a specified instance", - Privilege: "DescribeMaintenanceWindowsForTarget", + AccessLevel: "Write", + Description: "Grants permission to add a new certificate for an application instance", + Privilege: "CreateApplicationInstanceCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264019,21 +310351,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about specified OpsItems", - Privilege: "DescribeOpsItems", + AccessLevel: "Write", + Description: "Grants permission to enable the instance for ABAC and specify the attributes", + Privilege: "CreateInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view details about a specified SSM parameter", - Privilege: "DescribeParameters", + AccessLevel: "Write", + Description: "Grants permission to add a managed application instance to AWS Single Sign-On", + Privilege: "CreateManagedApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264043,21 +310375,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view information about patch baselines that meet the specified criteria", - Privilege: "DescribePatchBaselines", + AccessLevel: "Write", + Description: "Grants permission to create a permission set", + Privilege: "CreatePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view aggregated status details for patches for a specified patch group", - Privilege: "DescribePatchGroupState", + AccessLevel: "Write", + Description: "Grants permission to create a profile for an application instance", + Privilege: "CreateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264067,9 +310407,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view information about the patch baseline for a specified patch group", - Privilege: "DescribePatchGroups", + AccessLevel: "Write", + Description: "Grants permission to create a federation trust in a target account", + Privilege: "CreateTrust", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264079,21 +310419,31 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to view details of available patches for a specified operating system and patch property", - Privilege: "DescribePatchProperties", + AccessLevel: "Write", + Description: "Grants permission to delete a Principal's access from a specified AWS account using a specified permission set", + Privilege: "DeleteAccountAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Account*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of recent Session Manager sessions that meet the specified search criteria", - Privilege: "DescribeSessions", + AccessLevel: "Write", + Description: "Grants permission to delete the application instance", + Privilege: "DeleteApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264104,56 +310454,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to disassociate RelatedItem from an OpsItem", - Privilege: "DisassociateOpsItemRelatedItem", + Description: "Grants permission to delete an inactive or expired certificate from the application instance", + Privilege: "DeleteApplicationInstanceCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsitem*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details of a specified Automation execution", - Privilege: "GetAutomationExecution", + AccessLevel: "Write", + Description: "Grants permission to delete the inline policy from a specified permission set", + Privilege: "DeleteInlinePolicyFromPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-execution*", + ResourceType: "Instance*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to view details of a specific calendar", - Privilege: "GetCalendar", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the calendar state for a change calendar or a list of change calendars", - Privilege: "GetCalendarState", + AccessLevel: "Write", + Description: "Grants permission to disable ABAC and remove the attributes list for the instance", + Privilege: "DeleteInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about the command execution of a specified invocation or plugin", - Privilege: "GetCommandInvocation", + AccessLevel: "Write", + Description: "Grants permission to delete the managed application instance", + Privilege: "DeleteManagedApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264163,118 +310506,115 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the Session Manager connection status for a specified managed instance", - Privilege: "GetConnectionStatus", + AccessLevel: "Write", + Description: "Grants permission to delete a permission set", + Privilege: "DeletePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "PermissionSet*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to delete the permission policy associated with a permission set", + Privilege: "DeletePermissionsPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", - }, - { - ConditionKeys: []string{ - "ssm:resourceTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the current default patch baseline for a specified operating system type", - Privilege: "GetDefaultPatchBaseline", + AccessLevel: "Write", + Description: "Grants permission to delete the profile for an application instance", + Privilege: "DeleteProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the current patch baseline snapshot for a specified instance", - Privilege: "GetDeployablePatchSnapshotForInstance", + Description: "Grants permission to describe the status of the assignment creation request", + Privilege: "DescribeAccountAssignmentCreationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the contents of a specified SSM document", - Privilege: "GetDocument", + Description: "Grants permission to describe the status of an assignment deletion request", + Privilege: "DescribeAccountAssignmentDeletionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", - }, - { - ConditionKeys: []string{ - "ssm:DocumentCategories", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view instance inventory details per the specified criteria", - Privilege: "GetInventory", + Description: "Grants permission to get the list of attributes used by the instance for ABAC", + Privilege: "DescribeInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view a list of inventory types or attribute names for a specified inventory item type", - Privilege: "GetInventorySchema", + Description: "Grants permission to describe a permission set", + Privilege: "DescribePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a specified maintenance window", - Privilege: "GetMaintenanceWindow", + Description: "Grants permission to describe the status for the given Permission Set Provisioning request", + Privilege: "DescribePermissionSetProvisioningStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details about a specified maintenance window execution", - Privilege: "GetMaintenanceWindowExecution", + Description: "Grants permission to retrieve all the permissions policies associated with a permission set", + Privilege: "DescribePermissionsPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264285,8 +310625,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view details about a specified maintenance window execution task", - Privilege: "GetMaintenanceWindowExecutionTask", + Description: "Grants permission to obtain the regions where your organization has enabled AWS Single Sign-on", + Privilege: "DescribeRegisteredRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264296,33 +310636,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about a specific maintenance window task running on a specific target", - Privilege: "GetMaintenanceWindowExecutionTaskInvocation", + AccessLevel: "Permissions management", + Description: "Grants permission to detach the attached AWS managed policy from the specified permission set", + Privilege: "DetachManagedPolicyFromPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view details about tasks registered with a specified maintenance window", - Privilege: "GetMaintenanceWindowTask", + AccessLevel: "Write", + Description: "Grants permission to disassociate a directory to be used by AWS Single Sign-On", + Privilege: "DisassociateDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:UnauthorizeApplication", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to Systems Manager and SSM Agent to determine package installation requirements for an instance (internal Systems Manager call)", - Privilege: "GetManifest", + AccessLevel: "Write", + Description: "Grants permission to disassociate a directory user or group from a profile", + Privilege: "DisassociateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264333,132 +310680,123 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to view information about a specified OpsItem", - Privilege: "GetOpsItem", + Description: "Grants permission to retrieve details for an application instance", + Privilege: "GetApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsitem*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an OpsMetadata object", - Privilege: "GetOpsMetadata", + Description: "Grants permission to retrieve application template details", + Privilege: "GetApplicationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsmetadata*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view summary information about OpsItems based on specified filters and aggregators", - Privilege: "GetOpsSummary", + Description: "Grants permission to obtain the inline policy assigned to the permission set", + Privilege: "GetInlinePolicyForPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcedatasync*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about a specified parameter", - Privilege: "GetParameter", + Description: "Grants permission to retrieve details for an application instance", + Privilege: "GetManagedApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view details and changes for a specified parameter", - Privilege: "GetParameterHistory", + Description: "Grants permission to retrieve Mfa Device Management settings for the directory", + Privilege: "GetMfaDeviceManagementForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about multiple specified parameters", - Privilege: "GetParameters", + Description: "Grants permission to retrieve details of a permission set", + Privilege: "GetPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all permission policies associated with a permission set", + Privilege: "GetPermissionsPolicy", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:DescribePermissionsPolicies", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about parameters in a specified hierarchy", - Privilege: "GetParametersByPath", + Description: "Grants permission to retrieve a profile for an application instance", + Privilege: "GetProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", - }, - { - ConditionKeys: []string{ - "ssm:Recursive", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view information about a specified patch baseline", - Privilege: "GetPatchBaseline", + Description: "Grants permission to check if AWS Single Sign-On is enabled", + Privilege: "GetSSOStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the ID of the current patch baseline for a specified patch group", - Privilege: "GetPatchBaselineForPatchGroup", + Description: "Grants permission to retrieve shared configuration for the current SSO instance", + Privilege: "GetSharedSsoConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264468,107 +310806,108 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve lists of Systems Manager resource policies", - Privilege: "GetResourcePolicies", + AccessLevel: "Read", + Description: "Grants permission to retrieve configuration for the current SSO instance", + Privilege: "GetSsoConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcearn*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view the account-level setting for an AWS service", - Privilege: "GetServiceSetting", + Description: "Grants permission to retrieve the federation trust in a target account", + Privilege: "GetTrust", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "servicesetting*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to apply an identifying label to a specified version of a parameter", - Privilege: "LabelParameterVersion", + Description: "Grants permission to update the application instance by uploading an application SAML metadata file provided by the service provider", + Privilege: "ImportApplicationInstanceServiceProviderMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list versions of the specified association", - Privilege: "ListAssociationVersions", + Description: "Grants permission to list the status of the AWS account assignment creation requests for a specified SSO instance", + Privilege: "ListAccountAssignmentCreationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the associations for a specified SSM document or managed instance", - Privilege: "ListAssociations", + Description: "Grants permission to list the status of the AWS account assignment deletion requests for a specified SSO instance", + Privilege: "ListAccountAssignmentDeletionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list information about command invocations sent to a specified instance", - Privilege: "ListCommandInvocations", + Description: "Grants permission to list the assignee of the specified AWS account with the specified permission set", + Privilege: "ListAccountAssignments", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Account*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the commands sent to a specified instance", - Privilege: "ListCommands", + Description: "Grants permission to list all the AWS accounts where the specified permission set is provisioned", + Privilege: "ListAccountsForProvisionedPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list compliance status for specified resource types on a specified resource", - Privilege: "ListComplianceItems", + AccessLevel: "Read", + Description: "Grants permission to retrieve all of the certificates for a given application instance", + Privilege: "ListApplicationInstanceCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264579,44 +310918,48 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list a summary count of compliant and noncompliant resources for a specified compliance type", - Privilege: "ListComplianceSummaries", + Description: "Grants permission to retrieve all application instances", + Privilege: "ListApplicationInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetApplicationInstance", + }, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view metadata history about a specified SSM document", - Privilege: "ListDocumentMetadataHistory", + Description: "Grants permission to retrieve all supported application templates", + Privilege: "ListApplicationTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetApplicationTemplate", + }, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all versions of a specified document", - Privilege: "ListDocumentVersions", + Description: "Grants permission to retrieve all supported applications", + Privilege: "ListApplications", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view information about a specified SSM document", - Privilege: "ListDocuments", + AccessLevel: "Read", + Description: "Grants permission to retrieve details about the directory connected to AWS Single Sign-On", + Privilege: "ListDirectoryAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264627,80 +310970,78 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to SSM Agent to check for new State Manager associations (internal Systems Manager call)", - Privilege: "ListInstanceAssociations", + Description: "Grants permission to list the SSO Instances that the caller has access to", + Privilege: "ListInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the AWS managed policies that are attached to a specified permission set", + Privilege: "ListManagedPoliciesInPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view a list of specified inventory types for a specified instance", - Privilege: "ListInventoryEntries", + Description: "Grants permission to list the status of the Permission Set Provisioning requests for a specified SSO instance", + Privilege: "ListPermissionSetProvisioningStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view details about OpsItemEvents", - Privilege: "ListOpsItemEvents", + Description: "Grants permission to retrieve all permission sets", + Privilege: "ListPermissionSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to view details about OpsItem RelatedItems", - Privilege: "ListOpsItemRelatedItems", + Description: "Grants permission to list all the permission sets that are provisioned to a specified AWS account", + Privilege: "ListPermissionSetsProvisionedToAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Account*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to view a list of OpsMetadata objects", - Privilege: "ListOpsMetadata", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list resource-level summary count", - Privilege: "ListResourceComplianceSummaries", + AccessLevel: "Read", + Description: "Grants permission to retrieve the directory user or group associated with the profile", + Privilege: "ListProfileAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264711,120 +311052,160 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list information about resource data sync configurations in an account", - Privilege: "ListResourceDataSync", + Description: "Grants permission to retrieve all profiles for an application instance", + Privilege: "ListProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ssm:SyncType", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetProfile", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to view a list of resource tags for a specified resource", + AccessLevel: "Read", + Description: "Grants permission to list the tags that are attached to a specified resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-execution", + ResourceType: "PermissionSet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to provision a specified permission set to the specified target", + Privilege: "ProvisionPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document", + ResourceType: "Account*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "PermissionSet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach an IAM inline policy to a permission set", + Privilege: "PutInlinePolicyToPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsitem", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsmetadata", + ResourceType: "PermissionSet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to put Mfa Device Management settings for the directory", + Privilege: "PutMfaDeviceManagementForDirectory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to add a policy to a permission set", + Privilege: "PutPermissionsPolicy", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to search for groups within the associated directory", + Privilege: "SearchGroups", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to share a custom SSM document publicly or privately with specified AWS accounts", - Privilege: "ModifyDocumentPermission", + AccessLevel: "Read", + Description: "Grants permission to search for users within the associated directory", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create/edit a specific calendar", - Privilege: "PutCalendar", + Description: "Grants permission to initialize AWS Single Sign-On", + Privilege: "StartSSO", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document*", + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to register a compliance type and other compliance details on a specified resource", - Privilege: "PutComplianceItems", + AccessLevel: "Tagging", + Description: "Grants permission to associate a set of tags with a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "PermissionSet*", }, { ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -264832,21 +311213,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to SSM Agent to generate a report of the results of specific agent requests (internal Systems Manager call)", - Privilege: "PutConfigurePackageResult", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate a set of tags from a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add or update inventory items on multiple specified managed instances", - Privilege: "PutInventory", + Description: "Grants permission to set a certificate as the active one for this application instance", + Privilege: "UpdateApplicationInstanceActiveCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -264857,59 +311251,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an SSM parameter", - Privilege: "PutParameter", + Description: "Grants permission to update display data of an application instance", + Privilege: "UpdateApplicationInstanceDisplayData", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ssm:Overwrite", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to create or update a Systems Manager resource policy", - Privilege: "PutResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to update federation response configuration for the application instance", + Privilege: "UpdateApplicationInstanceResponseConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcearn*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to specify the default patch baseline for an operating system type", - Privilege: "RegisterDefaultPatchBaseline", + Description: "Grants permission to update federation response schema configuration for the application instance", + Privilege: "UpdateApplicationInstanceResponseSchemaConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a Systems Manager Agent", - Privilege: "RegisterManagedInstance", + Description: "Grants permission to update security details for the application instance", + Privilege: "UpdateApplicationInstanceSecurityConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -264917,217 +311299,260 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to specify the default patch baseline for a specified patch group", - Privilege: "RegisterPatchBaselineForPatchGroup", + Description: "Grants permission to update service provider related configuration for the application instance", + Privilege: "UpdateApplicationInstanceServiceProviderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a target with a specified maintenance window", - Privilege: "RegisterTargetWithMaintenanceWindow", + Description: "Grants permission to update the status of an application instance", + Privilege: "UpdateApplicationInstanceStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to register a task with a specified maintenance window", - Privilege: "RegisterTaskWithMaintenanceWindow", + Description: "Grants permission to update the user attribute mappings for your connected directory", + Privilege: "UpdateDirectoryAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove a specified tag key from a specified resource", - Privilege: "RemoveTagsFromResource", + AccessLevel: "Write", + Description: "Grants permission to update the attributes to use with the instance for ABAC", + Privilege: "UpdateInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "automation-execution", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "maintenancewindow", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managed-instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "opsitem", + ResourceType: "Instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the status of a managed application instance", + Privilege: "UpdateManagedApplicationInstanceStatus", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsmetadata", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to update the permission set", + Privilege: "UpdatePermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "parameter", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "patchbaseline", + ResourceType: "PermissionSet*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the profile for an application instance", + Privilege: "UpdateProfile", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "task", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reset the service setting for an AWS account to the default value", - Privilege: "ResetServiceSetting", + Description: "Grants permission to update the configuration for the current SSO instance", + Privilege: "UpdateSSOConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "servicesetting*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to reconnect a Session Manager session to a managed instance", - Privilege: "ResumeSession", + Description: "Grants permission to update the federation trust in a target account", + Privilege: "UpdateTrust", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "session*", - }, - { - ConditionKeys: []string{ - "ssm:resourceTag/aws:ssmmessages:session-id", - "ssm:resourceTag/aws:ssmmessages:target-id", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sso:::permissionSet/${InstanceId}/${PermissionSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "PermissionSet", + }, + { + Arn: "arn:${Partition}:sso:::account/${AccountId}", + ConditionKeys: []string{}, + Resource: "Account", + }, + { + Arn: "arn:${Partition}:sso:::instance/${InstanceId}", + ConditionKeys: []string{}, + Resource: "Instance", + }, + }, + ServiceName: "AWS SSO", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "sso:ApplicationAccount", + Description: "Filters access by the account which creates the application. This condition key is not supported for customer managed SAML applications", + Type: "String", + }, + }, + Prefix: "sso", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to send a signal to change the current behavior or status of a specified Automation execution", - Privilege: "SendAutomationSignal", + Description: "Grants permission to connect a directory to be used by AWS IAM Identity Center", + Privilege: "AssociateDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "automation-execution*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:AuthorizeApplication", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run commands on one or more specified managed instances", - Privilege: "SendCommand", + Description: "Grants permission to create an association between a directory user or group and a profile", + Privilege: "AssociateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to attach a customer managed policy reference to a permission set", + Privilege: "AttachCustomerManagedPolicyReferenceToPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "bucket", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "PermissionSet*", }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to attach an AWS managed policy to a permission set", + Privilege: "AttachManagedPolicyToPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to run a specified association manually", - Privilege: "StartAssociationsOnce", + Description: "Grants permission to assign access to a Principal for a specified AWS account using a specified permission set", + Privilege: "CreateAccountAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", + ResourceType: "Account*", }, { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to initiate the execution of an Automation document", - Privilege: "StartAutomationExecution", + Description: "Grants permission to create an application", + Privilege: "CreateApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-definition*", + ResourceType: "ApplicationProvider*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", }, { ConditionKeys: []string{ @@ -265141,19 +311566,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to initiate the execution of an Automation Change Template document", - Privilege: "StartChangeRequestExecution", + Description: "Grants permission to create an application assignment", + Privilege: "CreateApplicationAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-definition*", + ResourceType: "Application*", }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - "ssm:AutoApprove", + "sso:ApplicationAccount", }, DependentActions: []string{}, ResourceType: "", @@ -265162,66 +311585,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to initiate a connection to a specified target for a Session Manager session", - Privilege: "StartSession", + Description: "Grants permission to add an application instance to AWS IAM Identity Center", + Privilege: "CreateApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managed-instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "task", - }, - { - ConditionKeys: []string{ - "ssm:SessionDocumentAccessCheck", - "ssm:resourceTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop a specified Automation execution that is already in progress", - Privilege: "StopAutomationExecution", + Description: "Grants permission to add a new certificate for an application instance", + Privilege: "CreateApplicationInstanceCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "automation-execution*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to permanently end a Session Manager connection to an instance", - Privilege: "TerminateSession", + Description: "Grants permission to create an identity center instance", + Privilege: "CreateInstance", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "session*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + }, + ResourceType: "Instance*", }, { ConditionKeys: []string{ - "ssm:resourceTag/aws:ssmmessages:session-id", - "ssm:resourceTag/aws:ssmmessages:target-id", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -265230,82 +311632,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to remove an identifying label from a specified version of a parameter", - Privilege: "UnlabelParameterVersion", + Description: "Grants permission to enable the instance for ABAC and specify the attributes", + Privilege: "CreateInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "parameter*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:AttachRolePolicy", + "iam:CreateRole", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "iam:DetachRolePolicy", + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:ListRolePolicies", + "iam:PutRolePolicy", + "iam:UpdateAssumeRolePolicy", }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an association and immediately run the association on the specified targets", - Privilege: "UpdateAssociation", + Description: "Grants permission to add a managed application instance to AWS IAM Identity Center", + Privilege: "CreateManagedApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managed-instance", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of the SSM document associated with a specified instance", - Privilege: "UpdateAssociationStatus", + Description: "Grants permission to create a permission set", + Privilege: "CreatePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "PermissionSet*", }, { ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -265314,65 +311692,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update one or more values for an SSM document", - Privilege: "UpdateDocument", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "document*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to change the default version of an SSM document", - Privilege: "UpdateDocumentDefaultVersion", + Description: "Grants permission to create a profile for an application instance", + Privilege: "CreateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the metadata of an SSM document", - Privilege: "UpdateDocumentMetadata", + Description: "Grants permission to create a federation trust in a target account", + Privilege: "CreateTrust", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "document*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to SSM Agent to update the status of the association that it is currently running (internal Systems Manager call)", - Privilege: "UpdateInstanceAssociationStatus", + Description: "Grants permission to create a trusted token issuer for an instance", + Privilege: "CreateTrustedTokenIssuer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "association*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "instance", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "managed-instance", + ResourceType: "Instance*", }, { ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", - "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -265381,88 +311736,77 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to SSM Agent to send a heartbeat signal to the Systems Manager service in the cloud", - Privilege: "UpdateInstanceInformation", + Description: "Grants permission to delete a Principal's access from a specified AWS account using a specified permission set", + Privilege: "DeleteAccountAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "instance", + ResourceType: "Account*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance", - }, - { - ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a specified maintenance window", - Privilege: "UpdateMaintenanceWindow", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a specified maintenance window target", - Privilege: "UpdateMaintenanceWindowTarget", + Description: "Grants permission to delete an application", + Privilege: "DeleteApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "Application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "windowtarget*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a specified maintenance window task", - Privilege: "UpdateMaintenanceWindowTask", + Description: "Grants permission to delete an access scope to an application", + Privilege: "DeleteApplicationAccessScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maintenancewindow*", + ResourceType: "Application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "windowtask*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to assign or change the IAM role assigned to a specified managed instance", - Privilege: "UpdateManagedInstanceRole", + Description: "Grants permission to delete an application assignment", + Privilege: "DeleteApplicationAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "managed-instance*", + ResourceType: "Application*", }, { ConditionKeys: []string{ - "ssm:resourceTag/tag-key", + "sso:ApplicationAccount", }, DependentActions: []string{}, ResourceType: "", @@ -265471,53 +311815,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to edit or change an OpsItem", - Privilege: "UpdateOpsItem", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "opsitem*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an OpsMetadata object", - Privilege: "UpdateOpsMetadata", + Description: "Grants permission to delete an authentication method to an application", + Privilege: "DeleteApplicationAuthenticationMethod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "opsmetadata*", + ResourceType: "Application*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update a specified patch baseline", - Privilege: "UpdatePatchBaseline", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "patchbaseline*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a resource data sync", - Privilege: "UpdateResourceDataSync", + Description: "Grants permission to delete a grant from an application", + Privilege: "DeleteApplicationGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "resourcedatasync*", + ResourceType: "Application*", }, { ConditionKeys: []string{ - "ssm:SyncType", + "sso:ApplicationAccount", }, DependentActions: []string{}, ResourceType: "", @@ -265526,443 +311853,294 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the service setting for an AWS account", - Privilege: "UpdateServiceSetting", + Description: "Grants permission to delete the application instance", + Privilege: "DeleteApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "servicesetting*", - }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:association/${AssociationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "association", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:automation-execution/${AutomationExecutionId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "automation-execution", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:automation-definition/${AutomationDefinitionName}:${VersionId}", - ConditionKeys: []string{}, - Resource: "automation-definition", - }, - { - Arn: "arn:${Partition}:s3:::${BucketName}", - ConditionKeys: []string{}, - Resource: "bucket", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:document/${DocumentName}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:DocumentCategories", - "ssm:resourceTag/${TagKey}", - }, - Resource: "document", - }, - { - Arn: "arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/${TagKey}", - }, - Resource: "instance", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:maintenancewindow/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "maintenancewindow", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:managed-instance/${InstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "managed-instance", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:managed-instance-inventory/${InstanceId}", - ConditionKeys: []string{}, - Resource: "managed-instance-inventory", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:opsitem/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "opsitem", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:opsmetadata/${ResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/${TagKey}", - }, - Resource: "opsmetadata", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:parameter/${ParameterNameWithoutLeadingSlash}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "parameter", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:patchbaseline/${PatchBaselineIdResourceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "patchbaseline", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:opsitemgroup/default", - ConditionKeys: []string{}, - Resource: "resourcearn", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:session/${SessionId}", - ConditionKeys: []string{ - "ssm:resourceTag/aws:ssmmessages:session-id", - "ssm:resourceTag/aws:ssmmessages:target-id", - }, - Resource: "session", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:resource-data-sync/${SyncName}", - ConditionKeys: []string{}, - Resource: "resourcedatasync", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:servicesetting/${ResourceId}", - ConditionKeys: []string{}, - Resource: "servicesetting", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:windowtarget/${WindowTargetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "windowtarget", - }, - { - Arn: "arn:${Partition}:ssm:${Region}:${Account}:windowtask/${WindowTaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "ssm:resourceTag/tag-key", - }, - Resource: "windowtask", - }, - { - Arn: "arn:${Partition}:ecs:${Region}:${Account}:task/${TaskId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "task", - }, - }, - ServiceName: "AWS Systems Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + ResourceType: "", + }, + }, }, - }, - Prefix: "ssm-contacts", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to accept a page", - Privilege: "AcceptPage", + Description: "Grants permission to delete an inactive or expired certificate from the application instance", + Privilege: "DeleteApplicationInstanceCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "page*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to activate a contact's contact channel", - Privilege: "ActivateContactChannel", + Description: "Grants permission to delete the inline policy from a specified permission set", + Privilege: "DeleteInlinePolicyFromPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contactchannel*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to use a contact in an escalation plan", - Privilege: "AssociateContact", + AccessLevel: "Write", + Description: "Grants permission to delete an identity center instance", + Privilege: "DeleteInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a contact", - Privilege: "CreateContact", + Description: "Grants permission to disable ABAC and remove the attributes list for the instance", + Privilege: "DeleteInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ssm-contacts:AssociateContact", - }, - ResourceType: "contact*", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a contact channel for a contact", - Privilege: "CreateContactChannel", + Description: "Grants permission to delete the managed application instance", + Privilege: "DeleteManagedApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a rotation in an on-call schedule", - Privilege: "CreateRotation", + Description: "Grants permission to delete a permission set", + Privilege: "DeletePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an override for a rotation in an on-call schedule", - Privilege: "CreateRotationOverride", + AccessLevel: "Permissions management", + Description: "Grants permission to remove permissions boundary from a permission set", + Privilege: "DeletePermissionsBoundaryFromPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate a contact's contact channel", - Privilege: "DeactivateContactChannel", + AccessLevel: "Permissions management", + Description: "Grants permission to delete the permission policy associated with a permission set", + Privilege: "DeletePermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contactchannel*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a contact", - Privilege: "DeleteContact", + Description: "Grants permission to delete the profile for an application instance", + Privilege: "DeleteProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a contact's contact channel", - Privilege: "DeleteContactChannel", + Description: "Grants permission to delete a trusted token issuer for an instance", + Privilege: "DeleteTrustedTokenIssuer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contactchannel*", + ResourceType: "TrustedTokenIssuer*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a rotation", - Privilege: "DeleteRotation", + AccessLevel: "Read", + Description: "Grants permission to describe the status of the assignment creation request", + Privilege: "DescribeAccountAssignmentCreationStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a rotation's rotation override", - Privilege: "DeleteRotationOverride", + AccessLevel: "Read", + Description: "Grants permission to describe the status of an assignment deletion request", + Privilege: "DescribeAccountAssignmentDeletionStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an engagement", - Privilege: "DescribeEngagement", + Description: "Grants permission to obtain information about an application", + Privilege: "DescribeApplication", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "engagement*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a page", - Privilege: "DescribePage", + Description: "Grants permission to retrieve an application assignment", + Privilege: "DescribeApplicationAssignment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "page*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a contact", - Privilege: "GetContact", + Description: "Grants permission to describe an application provider", + Privilege: "DescribeApplicationProvider", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "ApplicationProvider*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a contact's contact channel", - Privilege: "GetContactChannel", + Description: "Grants permission to obtain information about the directories for this account", + Privilege: "DescribeDirectories", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contactchannel*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get a contact's resource policy", - Privilege: "GetContactPolicy", + Description: "Grants permission to obtain information about an identity center instance", + Privilege: "DescribeInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an on-call rotation", - Privilege: "GetRotation", + Description: "Grants permission to get the list of attributes used by the instance for ABAC", + Privilege: "DescribeInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about an override in an on-call rotation", - Privilege: "GetRotationOverride", + Description: "Grants permission to describe a permission set", + Privilege: "DescribePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all of a contact's contact channels", - Privilege: "ListContactChannels", + AccessLevel: "Read", + Description: "Grants permission to describe the status for the given Permission Set Provisioning request", + Privilege: "DescribePermissionSetProvisioningStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all contacts", - Privilege: "ListContacts", + AccessLevel: "Read", + Description: "Grants permission to retrieve all the permissions policies associated with a permission set", + Privilege: "DescribePermissionsPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -265972,9 +312150,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all engagements", - Privilege: "ListEngagements", + AccessLevel: "Read", + Description: "Grants permission to obtain the regions where your organization has enabled AWS IAM Identity Center", + Privilege: "DescribeRegisteredRegions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -265984,295 +312162,313 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list all receipts of a page", - Privilege: "ListPageReceipts", + AccessLevel: "Read", + Description: "Grants permission to describe a trusted token issuer for an instance", + Privilege: "DescribeTrustedTokenIssuer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "page*", + ResourceType: "TrustedTokenIssuer*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the resolution path of an engagement", - Privilege: "ListPageResolutions", + AccessLevel: "Read", + Description: "Grants permission to obtain information about the trust relationships for this account", + Privilege: "DescribeTrusts", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "page*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all pages sent to a contact", - Privilege: "ListPagesByContact", + AccessLevel: "Permissions management", + Description: "Grants permission to detach a customer managed policy reference from a permission set", + Privilege: "DetachCustomerManagedPolicyReferenceFromPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all pages created in an engagement", - Privilege: "ListPagesByEngagement", + AccessLevel: "Permissions management", + Description: "Grants permission to detach the attached AWS managed policy from the specified permission set", + Privilege: "DetachManagedPolicyFromPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "engagement*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of shifts based on rotation configuration parameters", - Privilege: "ListPreviewRotationShifts", + AccessLevel: "Write", + Description: "Grants permission to disassociate a directory to be used by AWS IAM Identity Center", + Privilege: "DisassociateDirectory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rotation*", + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:UnauthorizeApplication", + }, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of overrides currently specified for an on-call rotation", - Privilege: "ListRotationOverrides", + AccessLevel: "Write", + Description: "Grants permission to disassociate a directory user or group from a profile", + Privilege: "DisassociateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of rotation shifts in an on-call schedule", - Privilege: "ListRotationShifts", + AccessLevel: "Read", + Description: "Grants permission to get an access scope to an application", + Privilege: "GetApplicationAccessScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of on-call rotations", - Privilege: "ListRotations", + AccessLevel: "Read", + Description: "Grants permission to read assignment configurations for an application", + Privilege: "GetApplicationAssignmentConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view a list of resource tags for a specified resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to get an authentication method to an application", + Privilege: "GetApplicationAuthenticationMethod", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact", + ResourceType: "Application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "rotation", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a resource policy to a contact", - Privilege: "PutContactPolicy", + AccessLevel: "Read", + Description: "Grants permission to obtain details about a grant belonging to an application", + Privilege: "GetApplicationGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to send the activation code of a contact's contact channel", - Privilege: "SendActivationCode", + AccessLevel: "Read", + Description: "Grants permission to retrieve details for an application instance", + Privilege: "GetApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contactchannel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an engagement", - Privilege: "StartEngagement", + AccessLevel: "Read", + Description: "Grants permission to retrieve application template details", + Privilege: "GetApplicationTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop an engagement", - Privilege: "StopEngagement", + AccessLevel: "Read", + Description: "Grants permission to obtain the inline policy assigned to the permission set", + Privilege: "GetInlinePolicyForPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "engagement*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to the specified resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve details for an application instance", + Privilege: "GetManagedApplicationInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve Mfa Device Management settings for the directory", + Privilege: "GetMfaDeviceManagementForDirectory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve details of a permission set", + Privilege: "GetPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contact", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get permissions boundary for a permission set", + Privilege: "GetPermissionsBoundaryForPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a contact", - Privilege: "UpdateContact", + AccessLevel: "Read", + Description: "Grants permission to retrieve all permission policies associated with a permission set", + Privilege: "GetPermissionsPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{ - "ssm-contacts:AssociateContact", + "sso:DescribePermissionsPolicies", }, - ResourceType: "contact*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a contact's contact channel", - Privilege: "UpdateContactChannel", + AccessLevel: "Read", + Description: "Grants permission to retrieve a profile for an application instance", + Privilege: "GetProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "contactchannel*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the information specified for an on-call rotation", - Privilege: "UpdateRotation", + AccessLevel: "Read", + Description: "Grants permission to check if AWS IAM Identity Center is enabled", + Privilege: "GetSSOStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "rotation*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:contact/${ContactAlias}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "contact", - }, - { - Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:contactchannel/${ContactAlias}/${ContactChannelId}", - ConditionKeys: []string{}, - Resource: "contactchannel", - }, { - Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:engagement/${ContactAlias}/${EngagementId}", - ConditionKeys: []string{}, - Resource: "engagement", - }, - { - Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:page/${ContactAlias}/${PageId}", - ConditionKeys: []string{}, - Resource: "page", - }, - { - Arn: "arn:${Partition}:ssm-contacts:${Region}:${Account}:rotation/${RotationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Read", + Description: "Grants permission to retrieve shared configuration for the current SSO instance", + Privilege: "GetSharedSsoConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "rotation", }, - }, - ServiceName: "AWS Systems Manager Incident Manager Contacts", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "ssm-guiconnect", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to terminate a GUI Connect connection", - Privilege: "CancelConnection", + AccessLevel: "Read", + Description: "Grants permission to retrieve configuration for the current SSO instance", + Privilege: "GetSsoConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266283,8 +312479,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get the metadata for a GUI Connect connection", - Privilege: "GetConnection", + Description: "Grants permission to retrieve the federation trust in a target account", + Privilege: "GetTrust", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266295,8 +312491,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to start a GUI Connect connection", - Privilege: "StartConnection", + Description: "Grants permission to update the application instance by uploading an application SAML metadata file provided by the service provider", + Privilege: "ImportApplicationInstanceServiceProviderMetadata", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266305,280 +312501,343 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS Systems Manager GUI Connect", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", + AccessLevel: "List", + Description: "Grants permission to list the status of the AWS account assignment creation requests for a specified SSO instance", + Privilege: "ListAccountAssignmentCreationStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + }, }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", + AccessLevel: "List", + Description: "Grants permission to list the status of the AWS account assignment deletion requests for a specified SSO instance", + Privilege: "ListAccountAssignmentDeletionStatus", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + }, }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + AccessLevel: "List", + Description: "Grants permission to list the assignee of the specified AWS account with the specified permission set", + Privilege: "ListAccountAssignments", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Account*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", + }, + }, }, - }, - Prefix: "ssm-incidents", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Read", - Description: "Grants permission to retrieve details about specified findings for an incident record", - Privilege: "BatchGetIncidentFindings", + AccessLevel: "List", + Description: "Grants permission to list accounts assigned to user or group", + Privilege: "ListAccountAssignmentsForPrincipal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Instance*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all the AWS accounts where the specified permission set is provisioned", + Privilege: "ListAccountsForProvisionedPermissionSet", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "PermissionSet*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a replication set", - Privilege: "CreateReplicationSet", + AccessLevel: "List", + Description: "Grants permission to list access scopes to an application", + Privilege: "ListApplicationAccessScopes", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Application*", + }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "ssm-incidents:TagResource", + "sso:ApplicationAccount", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a response plan", - Privilege: "CreateResponsePlan", + AccessLevel: "List", + Description: "Grants permission to list application assignments", + Privilege: "ListApplicationAssignments", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Application*", + }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{ - "iam:PassRole", - "ssm-incidents:TagResource", + "sso:ApplicationAccount", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a timeline event for an incident record", - Privilege: "CreateTimelineEvent", + AccessLevel: "List", + Description: "Grants permission to list applications assigned to user or group", + Privilege: "ListApplicationAssignmentsForPrincipal", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Instance*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an incident record", - Privilege: "DeleteIncidentRecord", + AccessLevel: "List", + Description: "Grants permission to list authentication methods to an application", + Privilege: "ListApplicationAuthenticationMethods", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a replication set", - Privilege: "DeleteReplicationSet", + AccessLevel: "List", + Description: "Grants permission to list grants from an application", + Privilege: "ListApplicationGrants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replication-set*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete resource policy from a response plan", - Privilege: "DeleteResourcePolicy", + AccessLevel: "Read", + Description: "Grants permission to retrieve all of the certificates for a given application instance", + Privilege: "ListApplicationInstanceCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a response plan", - Privilege: "DeleteResponsePlan", + AccessLevel: "List", + Description: "Grants permission to retrieve all application instances", + Privilege: "ListApplicationInstances", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "response-plan*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetApplicationInstance", + }, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a timeline event", - Privilege: "DeleteTimelineEvent", + AccessLevel: "List", + Description: "Grants permission to list application providers", + Privilege: "ListApplicationProviders", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "ApplicationProvider*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the contents of an incident record", - Privilege: "GetIncidentRecord", + AccessLevel: "List", + Description: "Grants permission to retrieve all supported application templates", + Privilege: "ListApplicationTemplates", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "incident-record*", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetApplicationTemplate", + }, + ResourceType: "", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve all applications associated with the instance of IAM Identity Center", + Privilege: "ListApplications", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the replication set", - Privilege: "GetReplicationSet", + AccessLevel: "List", + Description: "Grants permission to list the customer managed policy references that are attached to a permission set", + Privilege: "ListCustomerManagedPolicyReferencesInPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replication-set*", + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view resource policies of a response plan", - Privilege: "GetResourcePolicies", + Description: "Grants permission to retrieve details about the directory connected to AWS IAM Identity Center", + Privilege: "ListDirectoryAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view the contents of a specified response plan", - Privilege: "GetResponsePlan", + AccessLevel: "List", + Description: "Grants permission to list the SSO Instances that the caller has access to", + Privilege: "ListInstances", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to view a timeline event", - Privilege: "GetTimelineEvent", + AccessLevel: "List", + Description: "Grants permission to list the AWS managed policies that are attached to a specified permission set", + Privilege: "ListManagedPoliciesInPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list findings for an incident record", - Privilege: "ListIncidentFindings", + Description: "Grants permission to list the status of the Permission Set Provisioning requests for a specified SSO instance", + Privilege: "ListPermissionSetProvisioningStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "Instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the contents of all incident records", - Privilege: "ListIncidentRecords", + Description: "Grants permission to retrieve all permission sets", + Privilege: "ListPermissionSets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Instance*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list related items of an incident record", - Privilege: "ListRelatedItems", + Description: "Grants permission to list all the permission sets that are provisioned to a specified AWS account", + Privilege: "ListPermissionSetsProvisionedToAccount", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Account*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all replication sets", - Privilege: "ListReplicationSets", + AccessLevel: "Read", + Description: "Grants permission to retrieve the directory user or group associated with the profile", + Privilege: "ListProfileAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266589,103 +312848,130 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list all response plans", - Privilege: "ListResponsePlans", + Description: "Grants permission to retrieve all profiles for an application instance", + Privilege: "ListProfiles", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "sso:GetProfile", + }, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to view a list of resource tags for a specified resource", + Description: "Grants permission to list the tags that are attached to a specified resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record", + ResourceType: "Application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replication-set", + ResourceType: "Instance", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan", + ResourceType: "PermissionSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TrustedTokenIssuer", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all timeline events for an incident record", - Privilege: "ListTimelineEvents", + Description: "Grants permission to list trusted token issuers for an instance", + Privilege: "ListTrustedTokenIssuers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to put resource policy on a response plan", - Privilege: "PutResourcePolicy", + AccessLevel: "Write", + Description: "Grants permission to provision a specified permission set to the specified target", + Privilege: "ProvisionPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "Account*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a new incident using a response plan", - Privilege: "StartIncident", + Description: "Grants permission to create/update an access scope to an application", + Privilege: "PutApplicationAccessScope", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "Application*", + }, + { + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a response plan", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to add assignment configurations to an application", + Privilege: "PutApplicationAssignmentConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record", + ResourceType: "Application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "replication-set", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create/update an authentication method to an application", + Privilege: "PutApplicationAuthenticationMethod", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan", + ResourceType: "Application*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "sso:ApplicationAccount", }, DependentActions: []string{}, ResourceType: "", @@ -266693,109 +312979,207 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a response plan", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create/update a grant to an application", + Privilege: "PutApplicationGrant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record", + ResourceType: "Application*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "sso:ApplicationAccount", + }, DependentActions: []string{}, - ResourceType: "replication-set", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to attach an IAM inline policy to a permission set", + Privilege: "PutInlinePolicyToPermissionSet", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update replication set deletion protection", - Privilege: "UpdateDeletionProtection", + Description: "Grants permission to put Mfa Device Management settings for the directory", + Privilege: "PutMfaDeviceManagementForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replication-set*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update the contents of an incident record", - Privilege: "UpdateIncidentRecord", + AccessLevel: "Permissions management", + Description: "Grants permission to add permissions boundary to a permission set", + Privilege: "PutPermissionsBoundaryToPermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Instance*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "PermissionSet*", + }, + }, + }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to add a policy to a permission set", + Privilege: "PutPermissionsPolicy", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to search for groups within the associated directory", + Privilege: "SearchGroups", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to search for users within the associated directory", + Privilege: "SearchUsers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + }, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update related items of an incident record", - Privilege: "UpdateRelatedItems", + Description: "Grants permission to initialize AWS IAM Identity Center", + Privilege: "StartSSO", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "organizations:DescribeOrganization", + "organizations:EnableAWSServiceAccess", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to associate a set of tags with a specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "Application", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "Instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TrustedTokenIssuer", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a replication set", - Privilege: "UpdateReplicationSet", + AccessLevel: "Tagging", + Description: "Grants permission to disassociate a set of tags from a specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "replication-set*", + ResourceType: "Application", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "PermissionSet", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TrustedTokenIssuer", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the contents of a response plan", - Privilege: "UpdateResponsePlan", + Description: "Grants permission to update an application", + Privilege: "UpdateApplication", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "ssm-incidents:TagResource", - }, - ResourceType: "response-plan*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Application*", }, { ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", + "sso:ApplicationAccount", }, DependentActions: []string{}, ResourceType: "", @@ -266804,87 +313188,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a timeline event", - Privilege: "UpdateTimelineEvent", + Description: "Grants permission to set a certificate as the active one for this application instance", + Privilege: "UpdateApplicationInstanceActiveCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "incident-record*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update display data of an application instance", + Privilege: "UpdateApplicationInstanceDisplayData", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "response-plan*", + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ssm-incidents::${Account}:response-plan/${ResponsePlan}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "response-plan", - }, - { - Arn: "arn:${Partition}:ssm-incidents::${Account}:incident-record/${ResponsePlan}/${IncidentRecord}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "incident-record", - }, - { - Arn: "arn:${Partition}:ssm-incidents::${Account}:replication-set/${ReplicationSet}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "replication-set", - }, - }, - ServiceName: "AWS Systems Manager Incident Manager", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the presence of tag key-value pairs in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by tag key-value pairs attached to the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the presence of tag keys in the request", - Type: "ArrayOfString", - }, - }, - Prefix: "ssm-quicksetup", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create a Quick Setup configuration manager resource", - Privilege: "CreateConfigurationManager", + Description: "Grants permission to update federation response configuration for the application instance", + Privilege: "UpdateApplicationInstanceResponseConfiguration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-manager*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a configuration manager", - Privilege: "DeleteConfigurationManager", + Description: "Grants permission to update federation response schema configuration for the application instance", + Privilege: "UpdateApplicationInstanceResponseSchemaConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266894,9 +313235,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get a configuration manager", - Privilege: "GetConfigurationManager", + AccessLevel: "Write", + Description: "Grants permission to update security details for the application instance", + Privilege: "UpdateApplicationInstanceSecurityConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266906,9 +313247,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get settings configured for Quick Setup in the requesting AWS account and AWS Region", - Privilege: "GetServiceSettings", + AccessLevel: "Write", + Description: "Grants permission to update service provider related configuration for the application instance", + Privilege: "UpdateApplicationInstanceServiceProviderConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266918,9 +313259,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list Quick Setup configuration managers", - Privilege: "ListConfigurationManagers", + AccessLevel: "Write", + Description: "Grants permission to update the status of an application instance", + Privilege: "UpdateApplicationInstanceStatus", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266930,9 +313271,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the available Quick Setup types", - Privilege: "ListQuickSetupTypes", + AccessLevel: "Write", + Description: "Grants permission to update the user attribute mappings for your connected directory", + Privilege: "UpdateDirectoryAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -266942,60 +313283,62 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list tags assigned to the resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update an identity center instance", + Privilege: "UpdateInstance", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-manager*", + ResourceType: "Instance*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to Assign key-value pairs of metadata to AWS resources", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update the attributes to use with the instance for ABAC", + Privilege: "UpdateInstanceAccessControlAttributeConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-manager*", + ResourceType: "Instance*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the status of a managed application instance", + Privilege: "UpdateManagedApplicationInstanceStatus", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from the specified resource", - Privilege: "UntagResource", + AccessLevel: "Permissions management", + Description: "Grants permission to update the permission set", + Privilege: "UpdatePermissionSet", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "configuration-manager*", + ResourceType: "Instance*", }, { - ConditionKeys: []string{ - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "PermissionSet*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a Quick Setup configuration definition", - Privilege: "UpdateConfigurationDefinition", + Description: "Grants permission to update the profile for an application instance", + Privilege: "UpdateProfile", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267006,8 +313349,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a Quick Setup configuration manager", - Privilege: "UpdateConfigurationManager", + Description: "Grants permission to update the configuration for the current SSO instance", + Privilege: "UpdateSSOConfiguration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267018,8 +313361,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update settings configured for Quick Setup", - Privilege: "UpdateServiceSettings", + Description: "Grants permission to update the federation trust in a target account", + Privilege: "UpdateTrust", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267028,42 +313371,70 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update a trusted token issuer for an instance", + Privilege: "UpdateTrustedTokenIssuer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "TrustedTokenIssuer*", + }, + }, + }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:ssm-quicksetup::${Account}:configuration-manager/${ConfigurationManagerId}", + Arn: "arn:${Partition}:sso:::permissionSet/${InstanceId}/${PermissionSetId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "configuration-manager", + Resource: "PermissionSet", }, - }, - ServiceName: "AWS Systems Manager Quick Setup", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", + Arn: "arn:${Partition}:sso:::account/${AccountId}", + ConditionKeys: []string{}, + Resource: "Account", }, { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", + Arn: "arn:${Partition}:sso:::instance/${InstanceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Instance", }, { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", + Arn: "arn:${Partition}:sso::${AccountId}:application/${InstanceId}/${ApplicationId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "sso:ApplicationAccount", + }, + Resource: "Application", + }, + { + Arn: "arn:${Partition}:sso::${AccountId}:trustedTokenIssuer/${InstanceId}/${TrustedTokenIssuerId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "TrustedTokenIssuer", + }, + { + Arn: "arn:${Partition}:sso::aws:applicationProvider/${ApplicationProviderId}", + ConditionKeys: []string{}, + Resource: "ApplicationProvider", }, }, - Prefix: "ssm-sap", + ServiceName: "AWS IAM Identity Center (successor to AWS Single Sign-On)", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sso-directory", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to perform backup operation on a specified database", - Privilege: "BackupDatabase", + Description: "Grants permission to add a member to a group in the directory that AWS SSO provides by default", + Privilege: "AddMemberToGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267074,8 +313445,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the SSM for SAP level resource permissions associated with a SSM for SAP database resource", - Privilege: "DeleteResourcePermission", + Description: "Grants permission to complete the creation process of a virtual MFA device", + Privilege: "CompleteVirtualMfaDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267086,20 +313457,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to deregister an SAP application with SSM for SAP", - Privilege: "DeregisterApplication", + Description: "Grants permission to complete the registration process of a WebAuthn device", + Privilege: "CompleteWebAuthnDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about an application registered with SSM for SAP by providing the application ID or application ARN", - Privilege: "GetApplication", + AccessLevel: "Write", + Description: "Grants permission to create an alias for the directory that AWS SSO provides by default", + Privilege: "CreateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267109,21 +313480,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about a component registered with SSM for SAP by providing the application ID and component ID", - Privilege: "GetComponent", + AccessLevel: "Write", + Description: "Grants permission to create a bearer token for a given provisioning tenant", + Privilege: "CreateBearerToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "component", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about a database registered with SSM for SAP by providing the application ID, component ID, and database ID", - Privilege: "GetDatabase", + AccessLevel: "Write", + Description: "Grants permission to create an External Identity Provider configuration for the directory", + Privilege: "CreateExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267133,9 +313504,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to access information about an operation by providing its operation ID", - Privilege: "GetOperation", + AccessLevel: "Write", + Description: "Grants permission to create a group in the directory that AWS SSO provides by default", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267145,9 +313516,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to get the SSM for SAP level resource permissions associated with a SSM for SAP database resource", - Privilege: "GetResourcePermission", + AccessLevel: "Write", + Description: "Grants permission to create a provisioning tenant for a given directory", + Privilege: "CreateProvisioningTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267157,9 +313528,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all applications registered with SSM for SAP under the customer AWS account", - Privilege: "ListApplications", + AccessLevel: "Write", + Description: "Grants permission to create a user in the directory that AWS SSO provides by default", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267169,21 +313540,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all components in the account of customer, or a specific application", - Privilege: "ListComponents", + AccessLevel: "Write", + Description: "Grants permission to delete a bearer token", + Privilege: "DeleteBearerToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all databases in the account of customer, or a specific application", - Privilege: "ListDatabases", + AccessLevel: "Write", + Description: "Grants permission to delete the given external IdP certificate", + Privilege: "DeleteExternalIdPCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267193,9 +313564,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all operation events in a specified operation", - Privilege: "ListOperationEvents", + AccessLevel: "Write", + Description: "Grants permission to delete an External Identity Provider configuration associated with the directory", + Privilege: "DeleteExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267205,9 +313576,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve a list of all operations in the account of customer, additional filters can be applied", - Privilege: "ListOperations", + AccessLevel: "Write", + Description: "Grants permission to delete a group from the directory that AWS SSO provides by default", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267217,9 +313588,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags on a specified resource ARN", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to delete a MFA device by device name for a given user", + Privilege: "DeleteMfaDeviceForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267230,8 +313601,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add the SSM for SAP level resource permissions associated with a SSM for SAP database resource", - Privilege: "PutResourcePermission", + Description: "Grants permission to delete the provisioning tenant", + Privilege: "DeleteProvisioningTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267242,23 +313613,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to registers an SAP application with SSM for SAP", - Privilege: "RegisterApplication", + Description: "Grants permission to delete a user from the directory that AWS SSO provides by default", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to restore a database from another database", - Privilege: "RestoreDatabase", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the directory that AWS SSO provides by default", + Privilege: "DescribeDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267268,116 +313636,81 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to start a registered SSM for SAP application", - Privilege: "StartApplication", + AccessLevel: "Read", + Description: "Grants permission to query the group data, not including user and group members", + Privilege: "DescribeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to start an on-demand discovery of a registered SSM for SAP application", - Privilege: "StartApplicationRefresh", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about groups from the directory that AWS SSO provides by default", + Privilege: "DescribeGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to stop a registered SSM for SAP application", - Privilege: "StopApplication", + AccessLevel: "Read", + Description: "Grants permission to describes the provisioning tenant", + Privilege: "DescribeProvisioningTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a specified resource ARN", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about a user from the directory that AWS SSO provides by default", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to remove tags from a specified resource ARN", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to describe user with a valid unique attribute represented for the user", + Privilege: "DescribeUserByUniqueAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "component", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "database", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update settings of a registered SSM for SAP application", - Privilege: "UpdateApplicationSettings", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about user from the directory that AWS SSO provides by default", + Privilege: "DescribeUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "application", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the HANA backup settings of a specified database", - Privilege: "UpdateHANABackupSettings", + Description: "Grants permission to disable authentication of end users with an External Identity Provider", + Privilege: "DisableExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267386,57 +313719,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:ssm-sap:${Region}:${Account}:${ApplicationType}/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "application", - }, - { - Arn: "arn:${Partition}:ssm-sap:${Region}:${Account}:${ApplicationType}/${ApplicationId}/COMPONENT/${ComponentId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "component", - }, - { - Arn: "arn:${Partition}:ssm-sap:${Region}:${Account}:${ApplicationType}/${ApplicationId}/DB/${DatabaseId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "database", - }, - }, - ServiceName: "AWS Systems Manager for SAP", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "ec2:SourceInstanceARN", - Description: "Filters access by the ARN of the instance from which the request originated", - Type: "ARN", - }, - { - Condition: "ssm:SourceInstanceARN", - Description: "Filters access by verifying the Amazon Resource Name (ARN) of the AWS Systems Manager's managed instance from which the request is made. This key is not present when the request comes from the managed instance authenticated with an IAM role associated with EC2 instance profile", - Type: "ARN", - }, - }, - Prefix: "ssmmessages", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to register a control channel for an instance to send control messages to Systems Manager service", - Privilege: "CreateControlChannel", + Description: "Grants permission to deactivate a user in the directory that AWS SSO provides by default", + Privilege: "DisableUser", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "ssm:SourceInstanceARN", - "ec2:SourceInstanceARN", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -267444,8 +313733,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to register a data channel for an instance to send data messages to Systems Manager service", - Privilege: "CreateDataChannel", + Description: "Grants permission to enable authentication of end users with an External Identity Provider", + Privilege: "EnableExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267456,8 +313745,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to open a websocket connection for a registered control channel stream from an instance to Systems Manager service", - Privilege: "OpenControlChannel", + Description: "Grants permission to activate user in the directory that AWS SSO provides by default", + Privilege: "EnableUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267467,9 +313756,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to open a websocket connection for a registered data channel stream from an instance to Systems Manager service", - Privilege: "OpenDataChannel", + AccessLevel: "Read", + Description: "Grants permission to retrieve the AWS SSO Service Provider configurations for the directory", + Privilege: "GetAWSSPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267478,53 +313767,22 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, - }, - Resources: []ParliamentResource{}, - ServiceName: "Amazon Message Gateway Service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "sso:ApplicationAccount", - Description: "Filters access by the account which creates the application", - Type: "String", - }, - }, - Prefix: "sso", - Privileges: []ParliamentPrivilege{ { - AccessLevel: "Write", - Description: "Grants permission to connect a directory to be used by AWS IAM Identity Center", - Privilege: "AssociateDirectory", + AccessLevel: "Read", + Description: "(Deprecated) Grants permission to get UserPool Info", + Privilege: "GetUserPoolInfo", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:AuthorizeApplication", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an association between a directory user or group and a profile", - Privilege: "AssociateProfile", + Description: "Grants permission to import the IdP certificate used for verifying external IdP responses", + Privilege: "ImportExternalIdPCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267534,109 +313792,129 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach a customer managed policy reference to a permission set", - Privilege: "AttachCustomerManagedPolicyReferenceToPermissionSet", + AccessLevel: "Read", + Description: "Grants permission to check if a member is a part of the group in the directory that AWS SSO provides by default", + Privilege: "IsMemberInGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list bearer tokens for a given provisioning tenant", + Privilege: "ListBearerTokens", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to attach an AWS managed policy to a permission set", - Privilege: "AttachManagedPolicyToPermissionSet", + AccessLevel: "Read", + Description: "Grants permission to list the external IdP certificates of a given directory and IdP", + Privilege: "ListExternalIdPCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list all the External Identity Provider configurations created for the directory", + Privilege: "ListExternalIdPConfigurationsForDirectory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to assign access to a Principal for a specified AWS account using a specified permission set", - Privilege: "CreateAccountAssignment", + AccessLevel: "Read", + Description: "Grants permission to list groups of the target member", + Privilege: "ListGroupsForMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Account*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list groups for a user from the directory that AWS SSO provides by default", + Privilege: "ListGroupsForUser", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all members that are part of a group in the directory that AWS SSO provides by default", + Privilege: "ListMembersInGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create an application", - Privilege: "CreateApplication", + AccessLevel: "Read", + Description: "Grants permission to list all active MFA devices and their MFA device metadata for a user", + Privilege: "ListMfaDevicesForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationProvider*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list provisioning tenants for a given directory", + Privilege: "ListProvisioningTenants", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create an application assignment", - Privilege: "CreateApplicationAssignment", + Description: "Grants permission to remove a member that is part of a group in the directory that AWS SSO provides by default", + Privilege: "RemoveMemberFromGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to add an application instance to AWS IAM Identity Center", - Privilege: "CreateApplicationInstance", + AccessLevel: "Read", + Description: "Grants permission to search for groups within the associated directory", + Privilege: "SearchGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267646,9 +313924,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to add a new certificate for an application instance", - Privilege: "CreateApplicationInstanceCertificate", + AccessLevel: "Read", + Description: "Grants permission to search for users within the associated directory", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267659,22 +313937,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an identity center instance", - Privilege: "CreateInstance", + Description: "Grants permission to begin the creation process of virtual mfa device", + Privilege: "StartVirtualMfaDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:CreateServiceLinkedRole", - "organizations:DescribeOrganization", - }, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, @@ -267682,31 +313949,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to enable the instance for ABAC and specify the attributes", - Privilege: "CreateInstanceAccessControlAttributeConfiguration", + Description: "Grants permission to begin the registration process of a WebAuthn device", + Privilege: "StartWebAuthnDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:AttachRolePolicy", - "iam:CreateRole", - "iam:DeleteRole", - "iam:DeleteRolePolicy", - "iam:DetachRolePolicy", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:ListRolePolicies", - "iam:PutRolePolicy", - "iam:UpdateAssumeRolePolicy", - }, - ResourceType: "Instance*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to add a managed application instance to AWS IAM Identity Center", - Privilege: "CreateManagedApplicationInstance", + Description: "Grants permission to update an External Identity Provider configuration associated with the directory", + Privilege: "UpdateExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267717,33 +313973,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a permission set", - Privilege: "CreatePermissionSet", + Description: "Grants permission to update information about a group in the directory that AWS SSO provides by default", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a profile for an application instance", - Privilege: "CreateProfile", + Description: "Grants permission to update group display name update group display name response", + Privilege: "UpdateGroupDisplayName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267754,8 +313997,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a federation trust in a target account", - Privilege: "CreateTrust", + Description: "Grants permission to update MFA device information", + Privilege: "UpdateMfaDeviceForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267766,145 +314009,100 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a trusted token issuer for an instance", - Privilege: "CreateTrustedTokenIssuer", + Description: "Grants permission to update a password by sending password reset link via email or generating one time password for a user in the directory that AWS SSO provides by default", + Privilege: "UpdatePassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a Principal's access from a specified AWS account using a specified permission set", - Privilege: "DeleteAccountAssignment", + Description: "Grants permission to update user information in the directory that AWS SSO provides by default", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Account*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an application", - Privilege: "DeleteApplication", + Description: "Grants permission to update user name update user name response", + Privilege: "UpdateUserName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an access scope to an application", - Privilege: "DeleteApplicationAccessScope", + Description: "Grants permission to verify an email address of an User", + Privilege: "VerifyEmail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS SSO Directory", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sso-directory", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to delete an application assignment", - Privilege: "DeleteApplicationAssignment", + Description: "Grants permission to add a member to a group in the directory that AWS IAM Identity Center provides by default", + Privilege: "AddMemberToGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an authentication method to an application", - Privilege: "DeleteApplicationAuthenticationMethod", + Description: "Grants permission to complete the creation process of a virtual MFA device", + Privilege: "CompleteVirtualMfaDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a grant from an application", - Privilege: "DeleteApplicationGrant", + Description: "Grants permission to complete the registration process of a WebAuthn device", + Privilege: "CompleteWebAuthnDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the application instance", - Privilege: "DeleteApplicationInstance", + Description: "Grants permission to create an alias for the directory that AWS IAM Identity Center provides by default", + Privilege: "CreateAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267915,8 +314113,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete an inactive or expired certificate from the application instance", - Privilege: "DeleteApplicationInstanceCertificate", + Description: "Grants permission to create a bearer token for a given provisioning tenant", + Privilege: "CreateBearerToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267927,49 +314125,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the inline policy from a specified permission set", - Privilege: "DeleteInlinePolicyFromPermissionSet", + Description: "Grants permission to create an External Identity Provider configuration for the directory", + Privilege: "CreateExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an identity center instance", - Privilege: "DeleteInstance", + Description: "Grants permission to create a group in the directory that AWS IAM Identity Center provides by default", + Privilege: "CreateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disable ABAC and remove the attributes list for the instance", - Privilege: "DeleteInstanceAccessControlAttributeConfiguration", + Description: "Grants permission to create a provisioning tenant for a given directory", + Privilege: "CreateProvisioningTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the managed application instance", - Privilege: "DeleteManagedApplicationInstance", + Description: "Grants permission to create a user in the directory that AWS IAM Identity Center provides by default", + Privilege: "CreateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -267980,42 +314173,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a permission set", - Privilege: "DeletePermissionSet", + Description: "Grants permission to delete a bearer token", + Privilege: "DeleteBearerToken", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to remove permissions boundary from a permission set", - Privilege: "DeletePermissionsBoundaryFromPermissionSet", + AccessLevel: "Write", + Description: "Grants permission to delete the given external IdP certificate", + Privilege: "DeleteExternalIdPCertificate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to delete the permission policy associated with a permission set", - Privilege: "DeletePermissionsPolicy", + AccessLevel: "Write", + Description: "Grants permission to delete an External Identity Provider configuration associated with the directory", + Privilege: "DeleteExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268026,8 +314209,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete the profile for an application instance", - Privilege: "DeleteProfile", + Description: "Grants permission to delete a group from the directory that AWS IAM Identity Center provides by default", + Privilege: "DeleteGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268038,94 +314221,80 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to delete a trusted token issuer for an instance", - Privilege: "DeleteTrustedTokenIssuer", + Description: "Grants permission to delete a MFA device by device name for a given user", + Privilege: "DeleteMfaDeviceForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TrustedTokenIssuer*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the status of the assignment creation request", - Privilege: "DescribeAccountAssignmentCreationStatus", + AccessLevel: "Write", + Description: "Grants permission to delete the provisioning tenant", + Privilege: "DeleteProvisioningTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the status of an assignment deletion request", - Privilege: "DescribeAccountAssignmentDeletionStatus", + AccessLevel: "Write", + Description: "Grants permission to delete a user from the directory that AWS IAM Identity Center provides by default", + Privilege: "DeleteUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain information about an application", - Privilege: "DescribeApplication", + Description: "Grants permission to retrieve information about the directory that AWS IAM Identity Center provides by default", + Privilege: "DescribeDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve an application assignment", - Privilege: "DescribeApplicationAssignment", + Description: "Grants permission to query the group data, not including user and group members", + Privilege: "DescribeGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe an application provider", - Privilege: "DescribeApplicationProvider", + Description: "Grants permission to retrieve information about groups from the directory that AWS IAM Identity Center provides by default", + Privilege: "DescribeGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationProvider*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain information about the directories for this account", - Privilege: "DescribeDirectories", + Description: "Grants permission to describes the provisioning tenant", + Privilege: "DescribeProvisioningTenant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268136,61 +314305,68 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to obtain information about an identity center instance", - Privilege: "DescribeInstance", + Description: "Grants permission to retrieve information about a user from the directory that AWS IAM Identity Center provides by default", + Privilege: "DescribeUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get the list of attributes used by the instance for ABAC", - Privilege: "DescribeInstanceAccessControlAttributeConfiguration", + Description: "Grants permission to describe user with a valid unique attribute represented for the user", + Privilege: "DescribeUserByUniqueAttribute", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe a permission set", - Privilege: "DescribePermissionSet", + Description: "Grants permission to retrieve information about user from the directory that AWS IAM Identity Center provides by default", + Privilege: "DescribeUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disable authentication of end users with an External Identity Provider", + Privilege: "DisableExternalIdPConfigurationForDirectory", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the status for the given Permission Set Provisioning request", - Privilege: "DescribePermissionSetProvisioningStatus", + AccessLevel: "Write", + Description: "Grants permission to deactivate a user in the directory that AWS IAM Identity Center provides by default", + Privilege: "DisableUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve all the permissions policies associated with a permission set", - Privilege: "DescribePermissionsPolicies", + AccessLevel: "Write", + Description: "Grants permission to enable authentication of end users with an External Identity Provider", + Privilege: "EnableExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268200,9 +314376,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to obtain the regions where your organization has enabled AWS IAM Identity Center", - Privilege: "DescribeRegisteredRegions", + AccessLevel: "Write", + Description: "Grants permission to activate user in the directory that AWS IAM Identity Center provides by default", + Privilege: "EnableUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268213,20 +314389,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to describe a trusted token issuer for an instance", - Privilege: "DescribeTrustedTokenIssuer", + Description: "Grants permission to retrieve the AWS IAM Identity Center Service Provider configurations for the directory", + Privilege: "GetAWSSPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TrustedTokenIssuer*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain information about the trust relationships for this account", - Privilege: "DescribeTrusts", + Description: "Grants permission to retrieve ID information about group from the directory that AWS IAM Identity Center provides by default", + Privilege: "GetGroupId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268236,57 +314412,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to detach a customer managed policy reference from a permission set", - Privilege: "DetachCustomerManagedPolicyReferenceFromPermissionSet", + AccessLevel: "Read", + Description: "Grants permission to retrieve ID information about user from the directory that AWS IAM Identity Center provides by default", + Privilege: "GetUserId", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to detach the attached AWS managed policy from the specified permission set", - Privilege: "DetachManagedPolicyFromPermissionSet", + AccessLevel: "Read", + Description: "(Deprecated) Grants permission to get UserPool Info", + Privilege: "GetUserPoolInfo", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to disassociate a directory to be used by AWS IAM Identity Center", - Privilege: "DisassociateDirectory", + Description: "Grants permission to import the IdP certificate used for verifying external IdP responses", + Privilege: "ImportExternalIdPCertificate", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:UnauthorizeApplication", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disassociate a directory user or group from a profile", - Privilege: "DisassociateProfile", + AccessLevel: "Read", + Description: "Grants permission to check if a member is a part of the group in the directory that AWS IAM Identity Center provides by default", + Privilege: "IsMemberInGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268297,84 +314461,56 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get an access scope to an application", - Privilege: "GetApplicationAccessScope", + Description: "Grants permission to check if a member is a part of multiple groups in the directory that AWS IAM Identity Center provides by default", + Privilege: "IsMemberInGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to read assignment configurations for an application", - Privilege: "GetApplicationAssignmentConfiguration", + Description: "Grants permission to list bearer tokens for a given provisioning tenant", + Privilege: "ListBearerTokens", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get an authentication method to an application", - Privilege: "GetApplicationAuthenticationMethod", + Description: "Grants permission to list the external IdP certificates of a given directory and IdP", + Privilege: "ListExternalIdPCertificates", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to obtain details about a grant belonging to an application", - Privilege: "GetApplicationGrant", + Description: "Grants permission to list all the External Identity Provider configurations created for the directory", + Privilege: "ListExternalIdPConfigurationsForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details for an application instance", - Privilege: "GetApplicationInstance", + Description: "Grants permission to list groups from the directory that AWS IAM Identity Center provides by default", + Privilege: "ListGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268385,8 +314521,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve application template details", - Privilege: "GetApplicationTemplate", + Description: "Grants permission to list groups of the target member", + Privilege: "ListGroupsForMember", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268397,25 +314533,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to obtain the inline policy assigned to the permission set", - Privilege: "GetInlinePolicyForPermissionSet", + Description: "Grants permission to list groups for a user from the directory that AWS IAM Identity Center provides by default", + Privilege: "ListGroupsForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details for an application instance", - Privilege: "GetManagedApplicationInstance", + Description: "Grants permission to retrieve all members that are part of a group in the directory that AWS IAM Identity Center provides by default", + Privilege: "ListMembersInGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268426,8 +314557,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve Mfa Device Management settings for the directory", - Privilege: "GetMfaDeviceManagementForDirectory", + Description: "Grants permission to list all active MFA devices and their MFA device metadata for a user", + Privilege: "ListMfaDevicesForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268438,8 +314569,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details of a permission set", - Privilege: "GetPermissionSet", + Description: "Grants permission to list provisioning tenants for a given directory", + Privilege: "ListProvisioningTenants", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268450,39 +314581,44 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to get permissions boundary for a permission set", - Privilege: "GetPermissionsBoundaryForPermissionSet", + Description: "Grants permission to list users from the directory that AWS IAM Identity Center provides by default", + Privilege: "ListUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to remove a member that is part of a group in the directory that AWS IAM Identity Center provides by default", + Privilege: "RemoveMemberFromGroup", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all permission policies associated with a permission set", - Privilege: "GetPermissionsPolicy", + Description: "Grants permission to search for groups within the associated directory", + Privilege: "SearchGroups", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:DescribePermissionsPolicies", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve a profile for an application instance", - Privilege: "GetProfile", + Description: "Grants permission to search for users within the associated directory", + Privilege: "SearchUsers", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268492,9 +314628,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to check if AWS IAM Identity Center is enabled", - Privilege: "GetSSOStatus", + AccessLevel: "Write", + Description: "Grants permission to begin the creation process of virtual mfa device", + Privilege: "StartVirtualMfaDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268504,9 +314640,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve shared configuration for the current SSO instance", - Privilege: "GetSharedSsoConfiguration", + AccessLevel: "Write", + Description: "Grants permission to begin the registration process of a WebAuthn device", + Privilege: "StartWebAuthnDeviceRegistration", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268516,9 +314652,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve configuration for the current SSO instance", - Privilege: "GetSsoConfiguration", + AccessLevel: "Write", + Description: "Grants permission to update an External Identity Provider configuration associated with the directory", + Privilege: "UpdateExternalIdPConfigurationForDirectory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268528,9 +314664,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the federation trust in a target account", - Privilege: "GetTrust", + AccessLevel: "Write", + Description: "Grants permission to update information about a group in the directory that AWS IAM Identity Center provides by default", + Privilege: "UpdateGroup", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268541,8 +314677,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the application instance by uploading an application SAML metadata file provided by the service provider", - Privilege: "ImportApplicationInstanceServiceProviderMetadata", + Description: "Grants permission to update group display name update group display name response", + Privilege: "UpdateGroupDisplayName", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268552,93 +314688,167 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the status of the AWS account assignment creation requests for a specified SSO instance", - Privilege: "ListAccountAssignmentCreationStatus", + AccessLevel: "Write", + Description: "Grants permission to update MFA device information", + Privilege: "UpdateMfaDeviceForUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the status of the AWS account assignment deletion requests for a specified SSO instance", - Privilege: "ListAccountAssignmentDeletionStatus", + AccessLevel: "Write", + Description: "Grants permission to update a password by sending password reset link via email or generating one time password for a user in the directory that AWS IAM Identity Center provides by default", + Privilege: "UpdatePassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the assignee of the specified AWS account with the specified permission set", - Privilege: "ListAccountAssignments", + AccessLevel: "Write", + Description: "Grants permission to update user information in the directory that AWS IAM Identity Center provides by default", + Privilege: "UpdateUser", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Account*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update user name update user name response", + Privilege: "UpdateUserName", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to verify an email address of an User", + Privilege: "VerifyEmail", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS IAM Identity Center (successor to AWS Single Sign-On) directory", + }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sso-oauth", + Privileges: []ParliamentPrivilege{ { - AccessLevel: "List", - Description: "Grants permission to list accounts assigned to user or group", - Privilege: "ListAccountAssignmentsForPrincipal", + AccessLevel: "Write", + Description: "Grants permission to create OAuth/OIDC tokens to access IAM Identity Center integrated applications", + Privilege: "CreateTokenWithIAM", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "Application*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list all the AWS accounts where the specified permission set is provisioned", - Privilege: "ListAccountsForProvisionedPermissionSet", + Arn: "arn:${Partition}:sso::${AccountId}:application/${InstanceId}/${ApplicationId}", + ConditionKeys: []string{}, + Resource: "Application", + }, + }, + ServiceName: "AWS IAM Identity Center OIDC service", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + { + Condition: "states:HTTPEndpoint", + Description: "Filters access by the endpoint that the HTTP Task state allows in the request", + Type: "String", + }, + { + Condition: "states:HTTPMethod", + Description: "Filters access by the method that the HTTP Task state allows in the request", + Type: "String", + }, + { + Condition: "states:StateMachineQualifier", + Description: "Filters access by the qualifier of a state machine ARN", + Type: "ArrayOfString", + }, + }, + Prefix: "states", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an activity", + Privilege: "CreateActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "activity*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list access scopes to an application", - Privilege: "ListApplicationAccessScopes", + AccessLevel: "Write", + Description: "Grants permission to create a state machine", + Privilege: "CreateStateMachine", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "Application*", + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "states:PublishStateMachineVersion", + }, + ResourceType: "statemachine*", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -268646,18 +314856,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list application assignments", - Privilege: "ListApplicationAssignments", + AccessLevel: "Write", + Description: "Grants permission to create a state machine alias", + Privilege: "CreateStateMachineAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "statemachine*", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "states:StateMachineQualifier", }, DependentActions: []string{}, ResourceType: "", @@ -268665,37 +314875,42 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list applications assigned to user or group", - Privilege: "ListApplicationAssignmentsForPrincipal", + AccessLevel: "Write", + Description: "Grants permission to delete an activity", + Privilege: "DeleteActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "activity*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a state machine", + Privilege: "DeleteStateMachine", + ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "statemachine*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list authentication methods to an application", - Privilege: "ListApplicationAuthenticationMethods", + AccessLevel: "Write", + Description: "Grants permission to delete a state machine alias", + Privilege: "DeleteStateMachineAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "statemachine*", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "states:StateMachineQualifier", }, DependentActions: []string{}, ResourceType: "", @@ -268703,18 +314918,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list grants from an application", - Privilege: "ListApplicationGrants", + AccessLevel: "Write", + Description: "Grants permission to delete a state machine version", + Privilege: "DeleteStateMachineVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "statemachine*", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "states:StateMachineQualifier", }, DependentActions: []string{}, ResourceType: "", @@ -268723,101 +314938,123 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all of the certificates for a given application instance", - Privilege: "ListApplicationInstanceCertificates", + Description: "Grants permission to describe an activity", + Privilege: "DescribeActivity", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "activity*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all application instances", - Privilege: "ListApplicationInstances", + AccessLevel: "Read", + Description: "Grants permission to describe an execution", + Privilege: "DescribeExecution", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:GetApplicationInstance", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "execution*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "express*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list application providers", - Privilege: "ListApplicationProviders", + AccessLevel: "Read", + Description: "Grants permission to describe a map run", + Privilege: "DescribeMapRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "ApplicationProvider*", + ResourceType: "maprun*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all supported application templates", - Privilege: "ListApplicationTemplates", + AccessLevel: "Read", + Description: "Grants permission to describe a state machine", + Privilege: "DescribeStateMachine", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:GetApplicationTemplate", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "statemachine*", + }, + { + ConditionKeys: []string{ + "states:StateMachineQualifier", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to retrieve all applications associated with the instance of IAM Identity Center", - Privilege: "ListApplications", + AccessLevel: "Read", + Description: "Grants permission to describe a state machine alias", + Privilege: "DescribeStateMachineAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "statemachine*", + }, + { + ConditionKeys: []string{ + "states:StateMachineQualifier", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the customer managed policy references that are attached to a permission set", - Privilege: "ListCustomerManagedPolicyReferencesInPermissionSet", + AccessLevel: "Read", + Description: "Grants permission to describe the state machine for an execution", + Privilege: "DescribeStateMachineForExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "execution*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to be used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine", + Privilege: "GetActivityTask", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "activity*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve details about the directory connected to AWS IAM Identity Center", - Privilege: "ListDirectoryAssociations", + Description: "Grants permission to return the history of the specified execution as a list of events", + Privilege: "GetExecutionHistory", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "execution*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the SSO Instances that the caller has access to", - Privilege: "ListInstances", + AccessLevel: "Write", + Description: "Grants permission to invoke the HTTP Task state", + Privilege: "InvokeHTTPEndpoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -268828,162 +315065,197 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the AWS managed policies that are attached to a specified permission set", - Privilege: "ListManagedPoliciesInPermissionSet", + Description: "Grants permission to list the existing activities", + Privilege: "ListActivities", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list the status of the Permission Set Provisioning requests for a specified SSO instance", - Privilege: "ListPermissionSetProvisioningStatus", + Description: "Grants permission to list the executions of a state machine", + Privilege: "ListExecutions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "maprun*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "statemachine*", + }, + { + ConditionKeys: []string{ + "states:StateMachineQualifier", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve all permission sets", - Privilege: "ListPermissionSets", + Description: "Grants permission to list the map runs of an execution", + Privilege: "ListMapRuns", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "execution*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to list all the permission sets that are provisioned to a specified AWS account", - Privilege: "ListPermissionSetsProvisionedToAccount", + Description: "Grants permission to list the aliases of a state machine", + Privilege: "ListStateMachineAliases", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Account*", + ResourceType: "statemachine*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "states:StateMachineQualifier", + }, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the directory user or group associated with the profile", - Privilege: "ListProfileAssociations", + AccessLevel: "List", + Description: "Grants permission to list the versions of a state machine", + Privilege: "ListStateMachineVersions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "statemachine*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to retrieve all profiles for an application instance", - Privilege: "ListProfiles", + Description: "Grants permission to lists the existing state machines", + Privilege: "ListStateMachines", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "sso:GetProfile", - }, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags that are attached to a specified resource", + AccessLevel: "List", + Description: "Grants permission to list tags for an AWS Step Functions resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", + ResourceType: "activity", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "statemachine", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to publish a state machine version", + Privilege: "PublishStateMachineVersion", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet", + ResourceType: "statemachine*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to redrive an execution", + Privilege: "RedriveExecution", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TrustedTokenIssuer", + ResourceType: "execution*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list trusted token issuers for an instance", - Privilege: "ListTrustedTokenIssuers", + AccessLevel: "Read", + Description: "Grants permission to reveal sensitive data from an execution", + Privilege: "RevealSecrets", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to provision a specified permission set to the specified target", - Privilege: "ProvisionPermissionSet", + Description: "Grants permission to report that the task identified by the taskToken failed", + Privilege: "SendTaskFailure", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Account*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to report to the service that the task represented by the specified taskToken is still making progress", + Privilege: "SendTaskHeartbeat", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to report that the task identified by the taskToken completed successfully", + Privilege: "SendTaskSuccess", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create/update an access scope to an application", - Privilege: "PutApplicationAccessScope", + Description: "Grants permission to start a state machine execution", + Privilege: "StartExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "statemachine*", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "states:StateMachineQualifier", }, DependentActions: []string{}, ResourceType: "", @@ -268992,17 +315264,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to add assignment configurations to an application", - Privilege: "PutApplicationAssignmentConfiguration", + Description: "Grants permission to start a Synchronous Express state machine execution", + Privilege: "StartSyncExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "statemachine*", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "states:StateMachineQualifier", }, DependentActions: []string{}, ResourceType: "", @@ -269011,17 +315283,35 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create/update an authentication method to an application", - Privilege: "PutApplicationAuthenticationMethod", + Description: "Grants permission to stop an execution", + Privilege: "StopExecution", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "execution*", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag an AWS Step Functions resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "activity", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "statemachine", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -269030,17 +315320,36 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create/update a grant to an application", - Privilege: "PutApplicationGrant", + Description: "Grants permission to test a state machine definition", + Privilege: "TestState", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "states:RevealSecrets", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove a tag from an AWS Step Functions resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "activity", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "statemachine", }, { ConditionKeys: []string{ - "sso:ApplicationAccount", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -269049,54 +315358,62 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to attach an IAM inline policy to a permission set", - Privilege: "PutInlinePolicyToPermissionSet", + Description: "Grants permission to update a map run", + Privilege: "UpdateMapRun", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "maprun*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to put Mfa Device Management settings for the directory", - Privilege: "PutMfaDeviceManagementForDirectory", + Description: "Grants permission to update a state machine", + Privilege: "UpdateStateMachine", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + "states:PublishStateMachineVersion", + }, + ResourceType: "statemachine*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add permissions boundary to a permission set", - Privilege: "PutPermissionsBoundaryToPermissionSet", + AccessLevel: "Write", + Description: "Grants permission to update a state machine alias", + Privilege: "UpdateStateMachineAlias", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "statemachine*", }, { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "states:StateMachineQualifier", + }, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to add a policy to a permission set", - Privilege: "PutPermissionsPolicy", + AccessLevel: "Read", + Description: "Grants permission to validate a state machine definition", + Privilege: "ValidateStateMachineDefinition", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -269105,111 +315422,156 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "Read", - Description: "Grants permission to search for groups within the associated directory", - Privilege: "SearchGroups", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DescribeDirectories", - }, - ResourceType: "", - }, + Arn: "arn:${Partition}:states:${Region}:${Account}:activity:${ActivityName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "activity", }, { - AccessLevel: "Read", - Description: "Grants permission to search for users within the associated directory", - Privilege: "SearchUsers", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DescribeDirectories", - }, - ResourceType: "", - }, + Arn: "arn:${Partition}:states:${Region}:${Account}:execution:${StateMachineName}:${ExecutionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "execution", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:express:${StateMachineName}:${ExecutionId}:${ExpressId}", + ConditionKeys: []string{}, + Resource: "express", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:stateMachine:${StateMachineName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "statemachine", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:stateMachine:${StateMachineName}:${StateMachineVersionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "statemachineversion", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:stateMachine:${StateMachineName}:${StateMachineAliasName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "statemachinealias", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:mapRun:${StateMachineName}/${MapRunLabel}:${MapRunId}", + ConditionKeys: []string{}, + Resource: "maprun", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:execution:${StateMachineName}/${MapRunLabel}:${ExecutionId}", + ConditionKeys: []string{}, + Resource: "labelled execution", + }, + { + Arn: "arn:${Partition}:states:${Region}:${Account}:express:${StateMachineName}/${MapRunLabel}:${ExecutionId}:${ExpressId}", + ConditionKeys: []string{}, + Resource: "labelled express", + }, + }, + ServiceName: "AWS Step Functions", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the allowed set of values for each of the tags", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by tag-value associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the presence of mandatory tags in the request", + Type: "ArrayOfString", }, + }, + Prefix: "storagegateway", + Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to initialize AWS IAM Identity Center", - Privilege: "StartSSO", + Description: "Grants permission to activate the gateway you previously deployed on your host", + Privilege: "ActivateGateway", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "organizations:DescribeOrganization", - "organizations:EnableAWSServiceAccess", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, - ResourceType: "", + DependentActions: []string{}, + ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to associate a set of tags with a specified resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to configure one or more gateway local disks as cache for a cached-volume gateway", + Privilege: "AddCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", + ResourceType: "gateway*", }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to the specified resource", + Privilege: "AddTagsToResource", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "cache-report", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet", + ResourceType: "fs-association", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TrustedTokenIssuer", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway", }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to disassociate a set of tags from a specified resource", - Privilege: "UntagResource", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application", + ResourceType: "share", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance", + ResourceType: "tape", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet", + ResourceType: "tapepool", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TrustedTokenIssuer", + ResourceType: "volume", }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -269219,66 +315581,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update an application", - Privilege: "UpdateApplication", + Description: "Grants permission to configure one or more gateway local disks as upload buffer for a specified gateway", + Privilege: "AddUploadBuffer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", - }, - { - ConditionKeys: []string{ - "sso:ApplicationAccount", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to set a certificate as the active one for this application instance", - Privilege: "UpdateApplicationInstanceActiveCertificate", + Description: "Grants permission to configure one or more gateway local disks as working storage for a gateway", + Privilege: "AddWorkingStorage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update display data of an application instance", - Privilege: "UpdateApplicationInstanceDisplayData", + Description: "Grants permission to move a tape to the target pool specified", + Privilege: "AssignTapePool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tape*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update federation response configuration for the application instance", - Privilege: "UpdateApplicationInstanceResponseConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tapepool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update federation response schema configuration for the application instance", - Privilege: "UpdateApplicationInstanceResponseSchemaConfiguration", + Description: "Grants permission to associate an Amazon FSx file system with the Amazon FSx file gateway", + Privilege: "AssociateFileSystem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "ds:DescribeDirectories", + "ec2:DescribeNetworkInterfaces", + "fsx:DescribeFileSystems", + "iam:CreateServiceLinkedRole", + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:UpdateLogDelivery", + }, + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -269286,112 +315651,99 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update security details for the application instance", - Privilege: "UpdateApplicationInstanceSecurityConfiguration", + Description: "Grants permission to connect a volume to an iSCSI connection and then attaches the volume to the specified gateway", + Privilege: "AttachVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update service provider related configuration for the application instance", - Privilege: "UpdateApplicationInstanceServiceProviderConfiguration", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of an application instance", - Privilege: "UpdateApplicationInstanceStatus", + Description: "Grants permission to allow the governance retention lock on a pool to be bypassed", + Privilege: "BypassGovernanceRetention", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tapepool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the user attribute mappings for your connected directory", - Privilege: "UpdateDirectoryAssociation", + Description: "Grants permission to cancel archiving of a virtual tape to the virtual tape shelf (VTS) after the archiving process is initiated", + Privilege: "CancelArchival", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update an identity center instance", - Privilege: "UpdateInstance", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "tape*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the attributes to use with the instance for ABAC", - Privilege: "UpdateInstanceAccessControlAttributeConfiguration", + Description: "Grants permission to cancel a cache report", + Privilege: "CancelCacheReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "cache-report*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the status of a managed application instance", - Privilege: "UpdateManagedApplicationInstanceStatus", + Description: "Grants permission to cancel retrieval of a virtual tape from the virtual tape shelf (VTS) to a gateway after the retrieval process is initiated", + Privilege: "CancelRetrieval", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tape*", }, }, }, { - AccessLevel: "Permissions management", - Description: "Grants permission to update the permission set", - Privilege: "UpdatePermissionSet", + AccessLevel: "Write", + Description: "Grants permission to create a cached volume on a specified cached gateway. This operation is supported only for the gateway-cached volume architecture", + Privilege: "CreateCachediSCSIVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Instance*", + ResourceType: "gateway*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "PermissionSet*", + ResourceType: "volume*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to update the profile for an application instance", - Privilege: "UpdateProfile", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -269399,119 +315751,114 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update the configuration for the current SSO instance", - Privilege: "UpdateSSOConfiguration", + Description: "Grants permission to create a NFS file share on an existing file gateway", + Privilege: "CreateNFSFileShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update the federation trust in a target account", - Privilege: "UpdateTrust", + Description: "Grants permission to create a SMB file share on an existing file gateway", + Privilege: "CreateSMBFileShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a trusted token issuer for an instance", - Privilege: "UpdateTrustedTokenIssuer", + Description: "Grants permission to initiate a snapshot of a volume", + Privilege: "CreateSnapshot", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "TrustedTokenIssuer*", + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sso:::permissionSet/${InstanceId}/${PermissionSetId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "PermissionSet", - }, - { - Arn: "arn:${Partition}:sso:::account/${AccountId}", - ConditionKeys: []string{}, - Resource: "Account", - }, - { - Arn: "arn:${Partition}:sso:::instance/${InstanceId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "Instance", - }, - { - Arn: "arn:${Partition}:sso::${AccountId}:application/${InstanceId}/${ApplicationId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - "sso:ApplicationAccount", - }, - Resource: "Application", - }, - { - Arn: "arn:${Partition}:sso::${AccountId}:trustedTokenIssuer/${InstanceId}/${TrustedTokenIssuerId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - Resource: "TrustedTokenIssuer", - }, - { - Arn: "arn:${Partition}:sso::aws:applicationProvider/${ApplicationProviderId}", - ConditionKeys: []string{}, - Resource: "ApplicationProvider", - }, - }, - ServiceName: "AWS IAM Identity Center (successor to AWS Single Sign-On)", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sso-directory", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to add a member to a group in the directory that AWS IAM Identity Center provides by default", - Privilege: "AddMemberToGroup", + Description: "Grants permission to initiate a snapshot of a gateway from a volume recovery point", + Privilege: "CreateSnapshotFromVolumeRecoveryPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "volume*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to complete the creation process of a virtual MFA device", - Privilege: "CompleteVirtualMfaDeviceRegistration", + Description: "Grants permission to create a volume on a specified gateway", + Privilege: "CreateStorediSCSIVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to complete the registration process of a WebAuthn device", - Privilege: "CompleteWebAuthnDeviceRegistration", + Description: "Grants permission to create a tape pool", + Privilege: "CreateTapePool", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -269519,47 +315866,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create an alias for the directory that AWS IAM Identity Center provides by default", - Privilege: "CreateAlias", + Description: "Grants permission to create a virtual tape by using your own barcode", + Privilege: "CreateTapeWithBarcode", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tapepool*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a bearer token for a given provisioning tenant", - Privilege: "CreateBearerToken", + Description: "Grants permission to create one or more virtual tapes. You write data to the virtual tapes and then archive the tapes", + Privilege: "CreateTapes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create an External Identity Provider configuration for the directory", - Privilege: "CreateExternalIdPConfigurationForDirectory", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tapepool*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to create a group in the directory that AWS IAM Identity Center provides by default", - Privilege: "CreateGroup", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -269567,116 +315916,109 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a provisioning tenant for a given directory", - Privilege: "CreateProvisioningTenant", + Description: "Grants permission to delete the automatic tape creation policy configured on a gateway-VTL", + Privilege: "DeleteAutomaticTapeCreationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to create a user in the directory that AWS IAM Identity Center provides by default", - Privilege: "CreateUser", + Description: "Grants permission to delete the bandwidth rate limits of a gateway", + Privilege: "DeleteBandwidthRateLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a bearer token", - Privilege: "DeleteBearerToken", + Description: "Grants permission to delete the metadata associated with a cache report", + Privilege: "DeleteCacheReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cache-report*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the given external IdP certificate", - Privilege: "DeleteExternalIdPCertificate", + Description: "Grants permission to delete Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target and initiator pair", + Privilege: "DeleteChapCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "target*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete an External Identity Provider configuration associated with the directory", - Privilege: "DeleteExternalIdPConfigurationForDirectory", + Description: "Grants permission to delete a file share from a file gateway", + Privilege: "DeleteFileShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "share*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a group from the directory that AWS IAM Identity Center provides by default", - Privilege: "DeleteGroup", + Description: "Grants permission to delete a gateway", + Privilege: "DeleteGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a MFA device by device name for a given user", - Privilege: "DeleteMfaDeviceForUser", + Description: "Grants permission to delete a snapshot of a volume", + Privilege: "DeleteSnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete the provisioning tenant", - Privilege: "DeleteProvisioningTenant", + Description: "Grants permission to delete the specified virtual tape", + Privilege: "DeleteTape", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to delete a user from the directory that AWS IAM Identity Center provides by default", - Privilege: "DeleteUser", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tape*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about the directory that AWS IAM Identity Center provides by default", - Privilege: "DescribeDirectory", + AccessLevel: "Write", + Description: "Grants permission to delete the specified virtual tape from the virtual tape shelf (VTS)", + Privilege: "DeleteTapeArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -269686,213 +316028,213 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to query the group data, not including user and group members", - Privilege: "DescribeGroup", + AccessLevel: "Write", + Description: "Grants permission to delete the specified tape pool", + Privilege: "DeleteTapePool", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tapepool*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve information about groups from the directory that AWS IAM Identity Center provides by default", - Privilege: "DescribeGroups", + AccessLevel: "Write", + Description: "Grants permission to delete the specified gateway volume that you previously created using the CreateCachediSCSIVolume or CreateStorediSCSIVolume API", + Privilege: "DeleteVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describes the provisioning tenant", - Privilege: "DescribeProvisioningTenant", + Description: "Grants permission to get the information about the most recent high availability monitoring test that was performed on the gateway", + Privilege: "DescribeAvailabilityMonitorTest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about a user from the directory that AWS IAM Identity Center provides by default", - Privilege: "DescribeUser", + Description: "Grants permission to get the bandwidth rate limits of a gateway", + Privilege: "DescribeBandwidthRateLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to describe user with a valid unique attribute represented for the user", - Privilege: "DescribeUserByUniqueAttribute", + Description: "Grants permission to get the bandwidth rate limit schedule of a gateway", + Privilege: "DescribeBandwidthRateLimitSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve information about user from the directory that AWS IAM Identity Center provides by default", - Privilege: "DescribeUsers", + Description: "Grants permission to get information about the cache of a gateway. This operation is supported only for the gateway-cached volume architecture", + Privilege: "DescribeCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to disable authentication of end users with an External Identity Provider", - Privilege: "DisableExternalIdPConfigurationForDirectory", + AccessLevel: "Read", + Description: "Grants permission to get a description of a cache report", + Privilege: "DescribeCacheReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "cache-report*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to deactivate a user in the directory that AWS IAM Identity Center provides by default", - Privilege: "DisableUser", + AccessLevel: "Read", + Description: "Grants permission to get a description of the gateway volumes specified in the request. This operation is supported only for the gateway-cached volume architecture", + Privilege: "DescribeCachediSCSIVolumes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to enable authentication of end users with an External Identity Provider", - Privilege: "EnableExternalIdPConfigurationForDirectory", + AccessLevel: "Read", + Description: "Grants permission to get an array of Challenge-Handshake Authentication Protocol (CHAP) credentials information for a specified iSCSI target, one for each target-initiator pair", + Privilege: "DescribeChapCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "target*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to activate user in the directory that AWS IAM Identity Center provides by default", - Privilege: "EnableUser", + AccessLevel: "Read", + Description: "Grants permission to get a description for one or more file system associations", + Privilege: "DescribeFileSystemAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fs-association*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the AWS IAM Identity Center Service Provider configurations for the directory", - Privilege: "GetAWSSPConfigurationForDirectory", + Description: "Grants permission to get metadata about a gateway such as its name, network interfaces, configured time zone, and the state (whether the gateway is running or not)", + Privilege: "DescribeGatewayInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "(Deprecated) Grants permission to get UserPool Info", - Privilege: "GetUserPoolInfo", + Description: "Grants permission to get your gateway's weekly maintenance start time including the day and time of the week", + Privilege: "DescribeMaintenanceStartTime", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to import the IdP certificate used for verifying external IdP responses", - Privilege: "ImportExternalIdPCertificate", + AccessLevel: "Read", + Description: "Grants permission to get a description for one or more file shares from a file gateway", + Privilege: "DescribeNFSFileShares", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "share*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to check if a member is a part of the group in the directory that AWS IAM Identity Center provides by default", - Privilege: "IsMemberInGroup", + Description: "Grants permission to get a description for one or more file shares from a file gateway", + Privilege: "DescribeSMBFileShares", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "share*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list bearer tokens for a given provisioning tenant", - Privilege: "ListBearerTokens", + Description: "Grants permission to get a description of a Server Message Block (SMB) file share settings from a file gateway", + Privilege: "DescribeSMBSettings", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list the external IdP certificates of a given directory and IdP", - Privilege: "ListExternalIdPCertificates", + Description: "Grants permission to describe the snapshot schedule for the specified gateway volume", + Privilege: "DescribeSnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all the External Identity Provider configurations created for the directory", - Privilege: "ListExternalIdPConfigurationsForDirectory", + Description: "Grants permission to get the description of the gateway volumes specified in the request", + Privilege: "DescribeStorediSCSIVolumes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list groups of the target member", - Privilege: "ListGroupsForMember", + Description: "Grants permission to get a description of specified virtual tapes in the virtual tape shelf (VTS)", + Privilege: "DescribeTapeArchives", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -269903,128 +316245,128 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Read", - Description: "Grants permission to list groups for a user from the directory that AWS IAM Identity Center provides by default", - Privilege: "ListGroupsForUser", + Description: "Grants permission to get a list of virtual tape recovery points that are available for the specified gateway-VTL", + Privilege: "DescribeTapeRecoveryPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve all members that are part of a group in the directory that AWS IAM Identity Center provides by default", - Privilege: "ListMembersInGroup", + Description: "Grants permission to get a description of the specified Amazon Resource Name (ARN) of virtual tapes", + Privilege: "DescribeTapes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list all active MFA devices and their MFA device metadata for a user", - Privilege: "ListMfaDevicesForUser", + Description: "Grants permission to get information about the upload buffer of a gateway", + Privilege: "DescribeUploadBuffer", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list provisioning tenants for a given directory", - Privilege: "ListProvisioningTenants", + Description: "Grants permission to get a description of virtual tape library (VTL) devices for the specified gateway", + Privilege: "DescribeVTLDevices", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to remove a member that is part of a group in the directory that AWS IAM Identity Center provides by default", - Privilege: "RemoveMemberFromGroup", + AccessLevel: "Read", + Description: "Grants permission to get information about the working storage of a gateway", + Privilege: "DescribeWorkingStorage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for groups within the associated directory", - Privilege: "SearchGroups", + AccessLevel: "Write", + Description: "Grants permission to disconnect a volume from an iSCSI connection and then detaches the volume from the specified gateway", + Privilege: "DetachVolume", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to search for users within the associated directory", - Privilege: "SearchUsers", + AccessLevel: "Write", + Description: "Grants permission to disable a gateway when the gateway is no longer functioning", + Privilege: "DisableGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to begin the creation process of virtual mfa device", - Privilege: "StartVirtualMfaDeviceRegistration", + Description: "Grants permission to disassociate an Amazon FSx file system from an Amazon FSx file gateway", + Privilege: "DisassociateFileSystem", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "fs-association*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to begin the registration process of a WebAuthn device", - Privilege: "StartWebAuthnDeviceRegistration", + Description: "Grants permission to clean a share's cache of file entries that are failing upload to Amazon S3", + Privilege: "EvictFilesFailingUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "share*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update an External Identity Provider configuration associated with the directory", - Privilege: "UpdateExternalIdPConfigurationForDirectory", + Description: "Grants permission to enable you to join an Active Directory Domain", + Privilege: "JoinDomain", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update information about a group in the directory that AWS IAM Identity Center provides by default", - Privilege: "UpdateGroup", + AccessLevel: "List", + Description: "Grants permission to list the automatic tape creation policies configured on the specified gateway-VTL or all gateway-VTLs owned by your AWS account", + Privilege: "ListAutomaticTapeCreationPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -270034,9 +316376,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update group display name update group display name response", - Privilege: "UpdateGroupDisplayName", + AccessLevel: "List", + Description: "Grants permission to get a list of the cache reports owned by your AWS account", + Privilege: "ListCacheReports", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -270046,9 +316388,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update MFA device information", - Privilege: "UpdateMfaDeviceForUser", + AccessLevel: "List", + Description: "Grants permission to get a list of the file shares for a specific file gateway, or the list of file shares owned by your AWS account", + Privilege: "ListFileShares", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -270058,9 +316400,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update a password by sending password reset link via email or generating one time password for a user in the directory that AWS IAM Identity Center provides by default", - Privilege: "UpdatePassword", + AccessLevel: "List", + Description: "Grants permission to get a list of the file system associations for the specified gateway", + Privilege: "ListFileSystemAssociations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -270070,9 +316412,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update user information in the directory that AWS IAM Identity Center provides by default", - Privilege: "UpdateUser", + AccessLevel: "List", + Description: "Grants permission to list gateways owned by an AWS account in a region specified in the request. The returned list is ordered by gateway Amazon Resource Name (ARN)", + Privilege: "ListGateways", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -270082,291 +316424,171 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update user name update user name response", - Privilege: "UpdateUserName", + AccessLevel: "List", + Description: "Grants permission to get a list of the gateway's local disks", + Privilege: "ListLocalDisks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to verify an email address of an User", - Privilege: "VerifyEmail", + AccessLevel: "List", + Description: "Grants permission to get the tags that have been added to the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway", }, - }, - }, - }, - Resources: []ParliamentResource{}, - ServiceName: "AWS IAM Identity Center (successor to AWS Single Sign-On) directory", - }, - ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "sso-oauth", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create OAuth/OIDC tokens to access IAM Identity Center integrated applications", - Privilege: "CreateTokenWithIAM", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Application*", + ResourceType: "share", }, - }, - }, - }, - Resources: []ParliamentResource{ - { - Arn: "arn:${Partition}:sso::${AccountId}:application/${InstanceId}/${ApplicationId}", - ConditionKeys: []string{}, - Resource: "Application", - }, - }, - ServiceName: "AWS IAM Identity Center OIDC service", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag key and value pair that is allowed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by a tag key and value pair of a resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by a list of tag keys that are allowed in the request", - Type: "ArrayOfString", - }, - { - Condition: "states:HTTPEndpoint", - Description: "Filters access by the endpoint that the HTTP Task state allows in the request", - Type: "String", - }, - { - Condition: "states:HTTPMethod", - Description: "Filters access by the method that the HTTP Task state allows in the request", - Type: "String", - }, - { - Condition: "states:StateMachineQualifier", - Description: "Filters access by the qualifier of a state machine ARN", - Type: "String", - }, - }, - Prefix: "states", - Privileges: []ParliamentPrivilege{ - { - AccessLevel: "Write", - Description: "Grants permission to create an activity", - Privilege: "CreateActivity", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity*", + ResourceType: "tape", }, { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "volume", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a state machine", - Privilege: "CreateStateMachine", + AccessLevel: "List", + Description: "Grants permission to list tape pools owned by your AWS account", + Privilege: "ListTapePools", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "states:PublishStateMachineVersion", - }, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a state machine alias", - Privilege: "CreateStateMachineAlias", + AccessLevel: "List", + Description: "Grants permission to list virtual tapes in your virtual tape library (VTL) and your virtual tape shelf (VTS)", + Privilege: "ListTapes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete an activity", - Privilege: "DeleteActivity", + AccessLevel: "List", + Description: "Grants permission to list iSCSI initiators that are connected to a volume", + Privilege: "ListVolumeInitiators", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity*", + ResourceType: "volume*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a state machine", - Privilege: "DeleteStateMachine", + AccessLevel: "List", + Description: "Grants permission to list the recovery points for a specified gateway", + Privilege: "ListVolumeRecoveryPoints", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to delete a state machine alias", - Privilege: "DeleteStateMachineAlias", + AccessLevel: "List", + Description: "Grants permission to list the iSCSI stored volumes of a gateway", + Privilege: "ListVolumes", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to delete a state machine version", - Privilege: "DeleteStateMachineVersion", + Description: "Grants permission to send you a notification through CloudWatch Events when all files written to your NFS file share have been uploaded to Amazon S3", + Privilege: "NotifyWhenUploaded", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "share*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an activity", - Privilege: "DescribeActivity", + AccessLevel: "Write", + Description: "Grants permission to refresh the cache for the specified file share", + Privilege: "RefreshCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity*", + ResourceType: "share*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe an execution", - Privilege: "DescribeExecution", + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from the specified resource", + Privilege: "RemoveTagsFromResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execution*", + ResourceType: "cache-report", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "express*", + ResourceType: "fs-association", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a map run", - Privilege: "DescribeMapRun", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maprun*", + ResourceType: "gateway", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a state machine", - Privilege: "DescribeStateMachine", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", + ResourceType: "share", }, { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, + ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tape", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to describe a state machine alias", - Privilege: "DescribeStateMachineAlias", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", + ResourceType: "tapepool", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume", }, { ConditionKeys: []string{ - "states:StateMachineQualifier", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -270374,114 +316596,113 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to describe the state machine for an execution", - Privilege: "DescribeStateMachineForExecution", + AccessLevel: "Write", + Description: "Grants permission to reset all cache disks that have encountered a error and makes the disks available for reconfiguration as cache storage", + Privilege: "ResetCache", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execution*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to be used by workers to retrieve a task (with the specified activity ARN) which has been scheduled for execution by a running state machine", - Privilege: "GetActivityTask", + Description: "Grants permission to retrieve an archived virtual tape from the virtual tape shelf (VTS) to a gateway-VTL", + Privilege: "RetrieveTapeArchive", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity*", + ResourceType: "gateway*", }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to return the history of the specified execution as a list of events", - Privilege: "GetExecutionHistory", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execution*", + ResourceType: "tape*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to invoke the HTTP Task state", - Privilege: "InvokeHTTPEndpoint", + Description: "Grants permission to retrieve the recovery point for the specified virtual tape", + Privilege: "RetrieveTapeRecoveryPoint", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "tape*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the existing activities", - Privilege: "ListActivities", + AccessLevel: "Write", + Description: "Grants permission to set the password for your VM local console", + Privilege: "SetLocalConsolePassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the executions of a state machine", - Privilege: "ListExecutions", + AccessLevel: "Write", + Description: "Grants permission to set the password for SMB Guest user", + Privilege: "SetSMBGuestPassword", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maprun*", + ResourceType: "gateway*", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to shut down a gateway", + Privilege: "ShutdownGateway", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the map runs of an execution", - Privilege: "ListMapRuns", + AccessLevel: "Write", + Description: "Grants permission to start a test that verifies that the specified gateway is configured for High Availability monitoring in your host environment", + Privilege: "StartAvailabilityMonitorTest", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execution*", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the aliases of a state machine", - Privilege: "ListStateMachineAliases", + AccessLevel: "Write", + Description: "Grants permission to start a cache report for an existing file share", + Privilege: "StartCacheReport", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", + ResourceType: "share*", }, { ConditionKeys: []string{ - "states:StateMachineQualifier", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -270489,255 +316710,193 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the versions of a state machine", - Privilege: "ListStateMachineVersions", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "statemachine*", - }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to lists the existing state machines", - Privilege: "ListStateMachines", + AccessLevel: "Write", + Description: "Grants permission to start a gateway that you previously shut down", + Privilege: "StartGateway", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list tags for an AWS Step Functions resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to update the automatic tape creation policy configured on a gateway-VTL", + Privilege: "UpdateAutomaticTapeCreationPolicy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity", + ResourceType: "gateway*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine", + ResourceType: "tapepool*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to publish a state machine version", - Privilege: "PublishStateMachineVersion", + Description: "Grants permission to update the bandwidth rate limits of a gateway", + Privilege: "UpdateBandwidthRateLimit", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to redrive an execution", - Privilege: "RedriveExecution", + Description: "Grants permission to update the bandwidth rate limit schedule of a gateway", + Privilege: "UpdateBandwidthRateLimitSchedule", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execution*", + ResourceType: "gateway*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to reveal sensitive data from an execution", - Privilege: "RevealSecrets", + AccessLevel: "Write", + Description: "Grants permission to update the Challenge-Handshake Authentication Protocol (CHAP) credentials for a specified iSCSI target", + Privilege: "UpdateChapCredentials", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "target*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to report that the task identified by the taskToken failed", - Privilege: "SendTaskFailure", + Description: "Grants permission to update a file system association", + Privilege: "UpdateFileSystemAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{}, + DependentActions: []string{ + "logs:CreateLogDelivery", + "logs:DeleteLogDelivery", + "logs:GetLogDelivery", + "logs:ListLogDeliveries", + "logs:UpdateLogDelivery", + }, + ResourceType: "fs-association*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to report to the service that the task represented by the specified taskToken is still making progress", - Privilege: "SendTaskHeartbeat", + Description: "Grants permission to update a gateway's metadata, which includes the gateway's name and time zone", + Privilege: "UpdateGatewayInformation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to report that the task identified by the taskToken completed successfully", - Privilege: "SendTaskSuccess", + Description: "Grants permission to update the gateway virtual machine (VM) software", + Privilege: "UpdateGatewaySoftwareNow", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a state machine execution", - Privilege: "StartExecution", + Description: "Grants permission to update a gateway's weekly maintenance start time information, including day and time of the week. The maintenance time is the time in your gateway's time zone", + Privilege: "UpdateMaintenanceStartTime", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to start a Synchronous Express state machine execution", - Privilege: "StartSyncExecution", + Description: "Grants permission to update a NFS file share", + Privilege: "UpdateNFSFileShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "share*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to stop an execution", - Privilege: "StopExecution", + Description: "Grants permission to update a SMB file share", + Privilege: "UpdateSMBFileShare", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "execution*", + ResourceType: "share*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag an AWS Step Functions resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to update whether the shares on a gateway are visible in a net view or browse list", + Privilege: "UpdateSMBFileShareVisibility", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "statemachine", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to test a state machine definition", - Privilege: "TestState", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{ - "states:RevealSecrets", - }, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Tagging", - Description: "Grants permission to remove a tag from an AWS Step Functions resource", - Privilege: "UntagResource", + Description: "Grants permission to update the list of Active Directory users and groups that have special permissions for SMB file shares on the gateway", + Privilege: "UpdateSMBLocalGroups", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "activity", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "statemachine", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a map run", - Privilege: "UpdateMapRun", + Description: "Grants permission to update the SMB security strategy on a file gateway", + Privilege: "UpdateSMBSecurityStrategy", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "maprun*", + ResourceType: "gateway*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update a state machine", - Privilege: "UpdateStateMachine", + Description: "Grants permission to update a snapshot schedule configured for a gateway volume", + Privilege: "UpdateSnapshotSchedule", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "iam:PassRole", - "states:PublishStateMachineVersion", - }, - ResourceType: "statemachine*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "volume*", }, { ConditionKeys: []string{ @@ -270751,90 +316910,79 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update a state machine alias", - Privilege: "UpdateStateMachineAlias", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "statemachine*", - }, - { - ConditionKeys: []string{ - "states:StateMachineQualifier", - }, - DependentActions: []string{}, - ResourceType: "", - }, - }, - }, - { - AccessLevel: "Read", - Description: "Grants permission to validate a state machine definition", - Privilege: "ValidateStateMachineDefinition", + Description: "Grants permission to update the type of medium changer in a gateway-VTL", + Privilege: "UpdateVTLDeviceType", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "device*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:states:${Region}:${Account}:activity:${ActivityName}", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:share/${ShareId}/cache-report/${CacheReportId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "activity", + Resource: "cache-report", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:execution:${StateMachineName}:${ExecutionId}", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:gateway/${GatewayId}/device/${Vtldevice}", + ConditionKeys: []string{}, + Resource: "device", + }, + { + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:fs-association/${FsaId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "execution", - }, - { - Arn: "arn:${Partition}:states:${Region}:${Account}:express:${StateMachineName}:${ExecutionId}:${ExpressId}", - ConditionKeys: []string{}, - Resource: "express", + Resource: "fs-association", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:stateMachine:${StateMachineName}", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:gateway/${GatewayId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "statemachine", + Resource: "gateway", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:stateMachine:${StateMachineName}:${StateMachineVersionId}", - ConditionKeys: []string{}, - Resource: "statemachineversion", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:share/${ShareId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "share", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:stateMachine:${StateMachineName}:${StateMachineAliasName}", - ConditionKeys: []string{}, - Resource: "statemachinealias", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:tape/${TapeBarcode}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "tape", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:mapRun:${StateMachineName}/${MapRunLabel}:${MapRunId}", - ConditionKeys: []string{}, - Resource: "maprun", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:tapepool/${PoolId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "tapepool", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:execution:${StateMachineName}/${MapRunLabel}:${ExecutionId}", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:gateway/${GatewayId}/target/${IscsiTarget}", ConditionKeys: []string{}, - Resource: "labelled execution", + Resource: "target", }, { - Arn: "arn:${Partition}:states:${Region}:${Account}:express:${StateMachineName}/${MapRunLabel}:${ExecutionId}:${ExpressId}", - ConditionKeys: []string{}, - Resource: "labelled express", + Arn: "arn:${Partition}:storagegateway:${Region}:${Account}:gateway/${GatewayId}/volume/${VolumeId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "volume", }, }, - ServiceName: "AWS Step Functions", + ServiceName: "AWS Storage Gateway", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -270965,18 +317113,9 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "AssociateFileSystem", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "ds:DescribeDirectories", - "ec2:DescribeNetworkInterfaces", - "fsx:DescribeFileSystems", - "iam:CreateServiceLinkedRole", - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:UpdateLogDelivery", - }, - ResourceType: "gateway*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "gateway*", }, { ConditionKeys: []string{ @@ -271126,14 +317265,6 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "volume*", }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, }, }, { @@ -271146,14 +317277,6 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "volume*", }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, }, }, { @@ -271656,25 +317779,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "List", - Description: "Grants permission to list the automatic tape creation policies configured on the specified gateway-VTL or all gateway-VTLs owned by your AWS account", + Description: "Grants permission to list the automatic tape creation policies configured on the specified gateway-VTL or all gateway-VTLs owned by your account", Privilege: "ListAutomaticTapeCreationPolicies", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, { AccessLevel: "List", - Description: "Grants permission to get a list of the file shares for a specific file gateway, or the list of file shares owned by your AWS account", + Description: "Grants permission to get a list of the file shares for a specific file gateway, or the list of file shares that belong to the calling user account", Privilege: "ListFileShares", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, @@ -271686,7 +317809,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, @@ -271749,7 +317872,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tapepool*", }, }, }, @@ -271761,7 +317884,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "tape*", }, }, }, @@ -271797,7 +317920,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "gateway*", }, }, }, @@ -272024,15 +318147,9 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "UpdateFileSystemAssociation", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{ - "logs:CreateLogDelivery", - "logs:DeleteLogDelivery", - "logs:GetLogDelivery", - "logs:ListLogDeliveries", - "logs:UpdateLogDelivery", - }, - ResourceType: "fs-association*", + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "fs-association*", }, }, }, @@ -272142,14 +318259,6 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "volume*", }, - { - ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", - "aws:TagKeys", - }, - DependentActions: []string{}, - ResourceType: "", - }, }, }, { @@ -272219,7 +318328,7 @@ func getParliamentIamPermissions() ParliamentPermissions { Resource: "volume", }, }, - ServiceName: "AWS Storage Gateway", + ServiceName: "Amazon Storage Gateway", }, ParliamentService{ Conditions: []ParliamentCondition{ @@ -272478,6 +318587,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the source identity that is passed in the request", Type: "String", }, + { + Condition: "sts:TaskPolicyArn", + Description: "Filters access by TaskPolicyARN", + Type: "String", + }, { Condition: "sts:TransitiveTagKeys", Description: "Filters access by the transitive tag keys that are passed in the request", @@ -272621,6 +318735,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to obtain a set of temporary security credentials that you can use to perform privileged tasks in member accounts in your organization", + Privilege: "AssumeRoot", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "root-user*", + }, + { + ConditionKeys: []string{ + "sts:TaskPolicyArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to decode additional information about the authorization status of a request from an encoded message returned in response to an AWS request", @@ -272795,14 +318928,62 @@ func getParliamentIamPermissions() ParliamentPermissions { ConditionKeys: []string{}, Resource: "user", }, + { + Arn: "arn:${Partition}:iam::${Account}:root", + ConditionKeys: []string{}, + Resource: "root-user", + }, { Arn: "arn:${Partition}:sts::${Account}:self", ConditionKeys: []string{}, Resource: "self-session", }, + { + Arn: "arn:${Partition}:iam::aws:contextProvider/${ContextProviderName}", + ConditionKeys: []string{}, + Resource: "context-provider", + }, }, ServiceName: "AWS Security Token Service", }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "sumerian", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to log into the Sumerian console", + Privilege: "Login", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to view a project release", + Privilege: "ViewRelease", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "project*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:sumerian:${Region}:${Account}:project:${ProjectName}", + ConditionKeys: []string{}, + Resource: "project", + }, + }, + ServiceName: "Amazon Sumerian", + }, ParliamentService{ Conditions: []ParliamentCondition{}, Prefix: "support", @@ -273023,6 +319204,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve personalized troubleshooting assistance for account and technical issues for a specific interaction", + Privilege: "GetInteraction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to initiate a call on AWS Support Center. This is an internally managed function", @@ -273107,6 +319300,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to start a specific interaction to receive personalized troubleshooting assistance for account and technical issues", + Privilege: "StartInteraction", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, }, Resources: []ParliamentResource{}, ServiceName: "AWS Support", @@ -273315,6 +319520,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to view a list of all support plan modifiers for this AWS account", + Privilege: "ListSupportPlanModifiers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update the support plan for this AWS account", @@ -274866,6 +321083,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete supplemental tax registration data", + Privilege: "DeleteSupplementalTaxRegistration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete tax registration data", @@ -274950,6 +321179,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to view supplemental tax registrations", + Privilege: "ListSupplementalTaxRegistrations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to view tax registrations", @@ -274962,6 +321203,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update supplemental tax registrations data", + Privilege: "PutSupplementalTaxRegistration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to set tax inheritance", @@ -275436,9 +321689,18 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "", + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{ + "appstream:DescribeStacks", + "workspaces-web:GetPortal", + "workspaces-web:GetUserSettings", + "workspaces:DescribeWorkspaceDirectories", + }, + ResourceType: "", }, }, }, @@ -275452,6 +321714,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "device*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -275464,6 +321733,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "environment*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -275476,11 +321752,18 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "device*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { AccessLevel: "Read", - Description: "Grants permission to get details of devices", + Description: "Grants permission to get devices", Privilege: "GetDevice", ResourceTypes: []ParliamentResourceType{ { @@ -275488,6 +321771,32 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "device*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details of devices", + Privilege: "GetDeviceDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "device*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -275500,6 +321809,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "environment*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -275512,6 +321828,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "softwareset*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -275522,6 +321845,13 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "device*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, @@ -275570,6 +321900,23 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "device", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "environment", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "softwareset", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, @@ -275589,10 +321936,16 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "environment", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "softwareset", + }, { ConditionKeys: []string{ "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -275614,9 +321967,15 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "environment", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "softwareset", + }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -275633,6 +321992,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "device*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -275641,9 +322007,21 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "UpdateEnvironment", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{}, + DependentActions: []string{ + "appstream:DescribeStacks", + "workspaces-web:GetPortal", + "workspaces-web:GetUserSettings", + "workspaces:DescribeWorkspaceDirectories", + }, + ResourceType: "environment*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "environment*", + ResourceType: "", }, }, }, @@ -275657,6 +322035,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "softwareset*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, }, @@ -275676,9 +322061,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Resource: "device", }, { - Arn: "arn:${Partition}:thinclient:${Region}:${Account}:softwareset/${SoftwareSetId}", - ConditionKeys: []string{}, - Resource: "softwareset", + Arn: "arn:${Partition}:thinclient:${Region}:${Account}:softwareset/${SoftwareSetId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "softwareset", }, }, ServiceName: "Amazon WorkSpaces Thin Client", @@ -276337,6 +322724,28 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Prefix: "timestream-influxdb", Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create a new Timestream InfluxDB Cluster", + Privilege: "CreateDbCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "timestream-influxdb:CreateDbInstance", + }, + ResourceType: "db-parameter-group", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a new Timestream InfluxDB instance", @@ -276372,6 +322781,20 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a Timestream InfluxDB Cluster", + Privilege: "DeleteDbCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "timestream-influxdb:DeleteDbInstance", + }, + ResourceType: "db-cluster*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete a Timestream InfluxDB instance", @@ -276384,6 +322807,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a Timestream InfluxDB Cluster", + Privilege: "GetDbCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-cluster*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get information about a Timestream InfluxDB instance", @@ -276408,6 +322843,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list information about all Timestream InfluxDB clusters in the account", + Privilege: "ListDbClusters", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list information about all Timestream InfluxDB instances in the account", @@ -276420,6 +322867,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to list information about all Timestream InfluxDB Instances belonging to a cluster", + Privilege: "ListDbInstancesForCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-cluster*", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list information about all Timestream InfluxDB parameter groups", @@ -276437,6 +322896,21 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to list tags for a Timestream InfluxDB resource", Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-cluster", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-instance", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-parameter-group", + }, { ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", @@ -276451,6 +322925,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to tag a Timestream InfluxDB resource", Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-cluster", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -276477,6 +322956,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to untag a Timestream InfluxDB resource", Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-cluster", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -276497,6 +322981,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update a Timestream InfluxDB Cluster", + Privilege: "UpdateDbCluster", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "timestream-influxdb:UpdateDbInstance", + }, + ResourceType: "db-cluster*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "db-parameter-group", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update a Timestream InfluxDB instance", @@ -276516,6 +323019,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:timestream-influxdb:${Region}:${Account}:db-cluster/${DbClusterId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "db-cluster", + }, { Arn: "arn:${Partition}:timestream-influxdb:${Region}:${Account}:db-instance/${DbInstanceIdentifier}", ConditionKeys: []string{ @@ -277314,7 +323824,10 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateCallAnalyticsCategory", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -277397,7 +323910,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "callanalyticscategory*", }, }, }, @@ -277409,7 +323922,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "callanalyticsjob*", }, }, }, @@ -277517,7 +324030,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "callanalyticscategory*", }, }, }, @@ -277529,7 +324042,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "callanalyticsjob*", }, }, }, @@ -277545,6 +324058,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about the specified AWS HealthScribe streaming session", + Privilege: "GetMedicalScribeStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to return information about a medical transcription job", @@ -277734,6 +324259,8 @@ func getParliamentIamPermissions() ParliamentPermissions { ConditionKeys: []string{ "transcribe:OutputEncryptionKMSKeyId", "transcribe:OutputLocation", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{ "s3:GetObject", @@ -277785,6 +324312,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to start a bidirectional HTTP2 stream where audio is streamed to AWS HealthScribe and the transcription results are streamed to your application", + Privilege: "StartMedicalScribeStream", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to start a protocol where audio is streamed to Transcribe Medical and the transcription results are streamed to your application", @@ -277910,7 +324449,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "callanalyticscategory*", }, }, }, @@ -278001,14 +324540,18 @@ func getParliamentIamPermissions() ParliamentPermissions { Resource: "medicalvocabulary", }, { - Arn: "arn:${Partition}:transcribe:${Region}:${Account}:analytics-job/${JobName}", - ConditionKeys: []string{}, - Resource: "callanalyticsjob", + Arn: "arn:${Partition}:transcribe:${Region}:${Account}:analytics/${JobName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "callanalyticsjob", }, { - Arn: "arn:${Partition}:transcribe:${Region}:${Account}:analytics-category/${CategoryName}", - ConditionKeys: []string{}, - Resource: "callanalyticscategory", + Arn: "arn:${Partition}:transcribe:${Region}:${Account}:analytics-category/${CategoryName}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "callanalyticscategory", }, { Arn: "arn:${Partition}:transcribe:${Region}:${Account}:medical-scribe-job/${JobName}", @@ -278147,6 +324690,23 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to create a webapp", + Privilege: "CreateWebApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a workflow", @@ -278270,6 +324830,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete webapp", + Privilege: "DeleteWebApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webapp*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete webapp customization", + Privilege: "DeleteWebAppCustomization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webapp*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete a workflow", @@ -278402,6 +324986,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a webapp", + Privilege: "DescribeWebApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webapp*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to describe a webapp customization", + Privilege: "DescribeWebAppCustomization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webapp*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to describe a workflow", @@ -278521,6 +325129,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to list file transfer statuses for connectors", + Privilege: "ListFileTransferResults", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connector*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list host keys associated with a server", @@ -278628,6 +325248,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list webapps", + Privilege: "ListWebApps", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list workflows", @@ -278676,6 +325308,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate a connector delete operation on remote server", + Privilege: "StartRemoteDelete", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connector*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to initiate a connector move operation on remote server", + Privilege: "StartRemoteMove", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "connector*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to start a server", @@ -278740,6 +325396,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "user", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webapp", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -278819,6 +325480,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "user", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "webapp", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -278939,6 +325605,34 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of a webapp", + Privilege: "UpdateWebApp", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "webapp*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update the configuration of a webapp cutomization", + Privilege: "UpdateWebAppCustomization", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "iam:PassRole", + }, + ResourceType: "webapp*", + }, + }, + }, }, Resources: []ParliamentResource{ { @@ -278984,7 +325678,7 @@ func getParliamentIamPermissions() ParliamentPermissions { Resource: "profile", }, { - Arn: "arn:${Partition}:transfer:${Region}:${Account}:agreement/${AgreementId}", + Arn: "arn:${Partition}:transfer:${Region}:${Account}:agreement/${ServerId}/${AgreementId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, @@ -278997,6 +325691,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resource: "host-key", }, + { + Arn: "arn:${Partition}:transfer:${Region}:${Account}:webapp/${WebAppId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "webapp", + }, }, ServiceName: "AWS Transfer Family", }, @@ -279256,6 +325957,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to translate text from a source language to a target language", Privilege: "TranslateText", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "parallel-data", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -280130,8 +326836,14 @@ func getParliamentIamPermissions() ParliamentPermissions { ServiceName: "AWS Diagnostic tools", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "user-subscriptions", + Conditions: []ParliamentCondition{ + { + Condition: "user-subscriptions:CreateForSelf", + Description: "Filters access by only allowing creation of User subscription Claims for the caller", + Type: "Bool", + }, + }, + Prefix: "user-subscriptions", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", @@ -280139,7 +326851,9 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateClaim", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "user-subscriptions:CreateForSelf", + }, DependentActions: []string{}, ResourceType: "", }, @@ -280707,8 +327421,24 @@ func getParliamentIamPermissions() ParliamentPermissions { ServiceName: "AWS Verified Access", }, ParliamentService{ - Conditions: []ParliamentCondition{}, - Prefix: "verifiedpermissions", + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag key and value pair that is allowed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by a tag key and value pair of a resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by a list of tag keys that are allowed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "verifiedpermissions", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", @@ -280740,7 +327470,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreatePolicyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, DependentActions: []string{}, ResourceType: "", }, @@ -280836,9 +327570,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "GetPolicyStore", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "policy-store*", + ConditionKeys: []string{}, + DependentActions: []string{ + "verifiedpermissions:ListTagsForResource", + }, + ResourceType: "policy-store*", }, }, }, @@ -280938,6 +327674,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to view a list of resource tags for the specified policy store", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy-store*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create or update the policy schema in the specified policy store", @@ -280950,6 +327698,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add tags to the specified policy store", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy-store*", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove tags from the specified policy store", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "policy-store*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update the specified identity source to use a new identity provider (IdP) source, or to change the mapping of identities from the IdP to a different principal entity type", @@ -281001,9 +327788,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:verifiedpermissions::${Account}:policy-store/${PolicyStoreId}", - ConditionKeys: []string{}, - Resource: "policy-store", + Arn: "arn:${Partition}:verifiedpermissions::${Account}:policy-store/${PolicyStoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "policy-store", }, }, ServiceName: "Amazon Verified Permissions", @@ -281457,6 +328246,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the protocol specified in the request", Type: "String", }, + { + Condition: "vpc-lattice:ResourceConfigurationArn", + Description: "Filters access by the ARN of a resource configuration", + Type: "ARN", + }, { Condition: "vpc-lattice:SecurityGroupIds", Description: "Filters access by the IDs of security groups", @@ -281477,6 +328271,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Filters access by the ARNs of target groups", Type: "ArrayOfARN", }, + { + Condition: "vpc-lattice:VpcEndpointId", + Description: "Filters access by the ID of a VPC endpoint", + Type: "String", + }, { Condition: "vpc-lattice:VpcId", Description: "Filters access by the ID of a virtual private cloud (VPC)", @@ -281485,6 +328284,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Prefix: "vpc-lattice", Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Permissions management", + Description: "Grants permission to associate a resource configuration through Amazon EventBridge and AWS Step Functions service networks", + Privilege: "AssociateViaAWSService-EventsAndStates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create an access log subscription", @@ -281498,10 +328309,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ResourceType: "AccessLogSubscription*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Service", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetwork", + }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -281520,10 +328346,60 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", "vpc-lattice:Protocol", "vpc-lattice:TargetGroupArns", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a resource configuration", + Privilege: "CreateResourceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceGateway", + }, + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a resource gateway", + Privilege: "CreateResourceGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + }, + ResourceType: "ResourceGateway*", + }, + { + ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", @@ -281542,9 +328418,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:TargetGroupArns", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:TargetGroupArns", }, DependentActions: []string{}, ResourceType: "", @@ -281565,9 +328441,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:AuthType", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:AuthType", }, DependentActions: []string{}, ResourceType: "", @@ -281588,9 +328464,41 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:AuthType", + "aws:RequestTag/${TagKey}", "aws:TagKeys", + "vpc-lattice:AuthType", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create an association between a service network and a resource", + Privilege: "CreateServiceNetworkResourceAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetwork*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetworkResourceAssociation*", + }, + { + ConditionKeys: []string{ "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:ResourceConfigurationArn", + "vpc-lattice:ServiceNetworkArn", }, DependentActions: []string{}, ResourceType: "", @@ -281619,10 +328527,10 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:ServiceNetworkArn", - "vpc-lattice:ServiceArn", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:ServiceArn", + "vpc-lattice:ServiceNetworkArn", }, DependentActions: []string{}, ResourceType: "", @@ -281648,17 +328556,29 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:VpcId", - "vpc-lattice:ServiceNetworkArn", - "vpc-lattice:SecurityGroupIds", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:SecurityGroupIds", + "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "Permissions management", + Description: "Grants permission to create an association between a service network and VPC endpoint", + Privilege: "CreateServiceNetworkVpcEndpointAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a target group", @@ -281673,9 +328593,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:VpcId", - "aws:TagKeys", "aws:RequestTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", @@ -281740,11 +328660,73 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a resource configuration", + Privilege: "DeleteResourceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a resource endpoint association", + Privilege: "DeleteResourceEndpointAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceEndpointAssociation*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a resource gateway", + Privilege: "DeleteResourceGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceGateway*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete a resource policy", Privilege: "DeleteResourcePolicy", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -281814,6 +328796,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the association between a service network and resource", + Privilege: "DeleteServiceNetworkResourceAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetworkResourceAssociation*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete a service network service association", @@ -281826,9 +328827,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:ServiceNetworkArn", - "vpc-lattice:ServiceArn", "aws:ResourceTag/${TagKey}", + "vpc-lattice:ServiceArn", + "vpc-lattice:ServiceNetworkArn", }, DependentActions: []string{}, ResourceType: "", @@ -281847,9 +328848,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:VpcId", - "vpc-lattice:ServiceNetworkArn", "aws:ResourceTag/${TagKey}", + "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", @@ -281944,11 +328945,54 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a resource configuration", + Privilege: "GetResourceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a resource gateway", + Privilege: "GetResourceGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceGateway*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get information about a resource policy", Privilege: "GetResourcePolicy", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -282018,6 +329062,25 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about an association between a service network and resource configuration", + Privilege: "GetServiceNetworkResourceAssociation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetworkResourceAssociation*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get information about a service network and service association", @@ -282030,9 +329093,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:ServiceNetworkArn", - "vpc-lattice:ServiceArn", "aws:ResourceTag/${TagKey}", + "vpc-lattice:ServiceArn", + "vpc-lattice:ServiceNetworkArn", }, DependentActions: []string{}, ResourceType: "", @@ -282051,9 +329114,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:VpcId", - "vpc-lattice:ServiceNetworkArn", "aws:ResourceTag/${TagKey}", + "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", @@ -282103,6 +329166,45 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list some or all resource configurations", + Privilege: "ListResourceConfigurations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list some or all associations between a resource configuration and VPC endpoint", + Privilege: "ListResourceEndpointAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "vpc-lattice:ResourceConfigurationArn", + "vpc-lattice:VpcEndpointId", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list some or all resource gateways", + Privilege: "ListResourceGateways", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list some or all rules", @@ -282115,6 +329217,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list some or all associations between a service network and resource configuration", + Privilege: "ListServiceNetworkResourceAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list some or all service network and service associations", @@ -282122,8 +329236,8 @@ func getParliamentIamPermissions() ParliamentPermissions { ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "vpc-lattice:ServiceNetworkArn", "vpc-lattice:ServiceArn", + "vpc-lattice:ServiceNetworkArn", }, DependentActions: []string{}, ResourceType: "", @@ -282137,14 +329251,26 @@ func getParliamentIamPermissions() ParliamentPermissions { ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ - "vpc-lattice:VpcId", "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list some or all associations between a service network and VPC endpoint", + Privilege: "ListServiceNetworkVpcEndpointAssociations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list the service networks owned by a caller account or shared with the caller account", @@ -282224,9 +329350,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a resource policy for a service network or a service", + Description: "Grants permission to create a resource policy for a resource configuration, service, or service network", Privilege: "PutResourcePolicy", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -282266,6 +329397,21 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Listener", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceEndpointAssociation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceGateway", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -282281,6 +329427,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "ServiceNetwork", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetworkResourceAssociation", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -282298,9 +329449,9 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "aws:TagKeys", "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", }, DependentActions: []string{}, ResourceType: "", @@ -282322,6 +329473,21 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "Listener", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceEndpointAssociation", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceGateway", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -282337,6 +329503,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "ServiceNetwork", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ServiceNetworkResourceAssociation", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -282395,8 +329566,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", "vpc-lattice:TargetGroupArns", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a resource configuration", + Privilege: "UpdateResourceConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceConfiguration*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update a resource gateway", + Privilege: "UpdateResourceGateway", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "ResourceGateway*", + }, + { + ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", + "vpc-lattice:SecurityGroupIds", }, DependentActions: []string{}, ResourceType: "", @@ -282415,8 +329625,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:TargetGroupArns", "aws:ResourceTag/${TagKey}", + "vpc-lattice:TargetGroupArns", }, DependentActions: []string{}, ResourceType: "", @@ -282435,8 +329645,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:AuthType", "aws:ResourceTag/${TagKey}", + "vpc-lattice:AuthType", }, DependentActions: []string{}, ResourceType: "", @@ -282455,8 +329665,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:AuthType", "aws:ResourceTag/${TagKey}", + "vpc-lattice:AuthType", }, DependentActions: []string{}, ResourceType: "", @@ -282478,10 +329688,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { ConditionKeys: []string{ - "vpc-lattice:VpcId", - "vpc-lattice:ServiceNetworkArn", - "vpc-lattice:SecurityGroupIds", "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:SecurityGroupIds", + "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:VpcId", }, DependentActions: []string{}, ResourceType: "", @@ -282510,87 +329721,128 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetwork/${ServiceNetworkId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:accesslogsubscription/${AccessLogSubscriptionId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "vpc-lattice:AuthType", }, - Resource: "ServiceNetwork", + Resource: "AccessLogSubscription", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:service/${ServiceId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:service/${ServiceId}/listener/${ListenerId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "vpc-lattice:AuthType", + "vpc-lattice:Protocol", + "vpc-lattice:TargetGroupArns", }, - Resource: "Service", + Resource: "Listener", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetworkvpcassociation/${ServiceNetworkVpcAssociationId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:resourceconfiguration/${ResourceConfigurationId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "vpc-lattice:SecurityGroupIds", - "vpc-lattice:ServiceNetworkArn", - "vpc-lattice:VpcId", }, - Resource: "ServiceNetworkVpcAssociation", + Resource: "ResourceConfiguration", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetworkserviceassociation/${ServiceNetworkServiceAssociationId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:resourceendpointassociation/${ResourceEndpointAssociationId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "vpc-lattice:ServiceArn", - "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:ResourceConfigurationArn", + "vpc-lattice:VpcEndpointId", }, - Resource: "ServiceNetworkServiceAssociation", + Resource: "ResourceEndpointAssociation", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:targetgroup/${TargetGroupId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:resourcegateway/${ResourceGatewayId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", "vpc-lattice:VpcId", }, - Resource: "TargetGroup", + Resource: "ResourceGateway", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:service/${ServiceId}/listener/${ListenerId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:service/${ServiceId}/listener/${ListenerId}/rule/${RuleId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "vpc-lattice:Protocol", "vpc-lattice:TargetGroupArns", }, - Resource: "Listener", + Resource: "Rule", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:service/${ServiceId}/listener/${ListenerId}/rule/${RuleId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:service/${ServiceId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", - "vpc-lattice:TargetGroupArns", + "vpc-lattice:AuthType", }, - Resource: "Rule", + Resource: "Service", }, { - Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:accesslogsubscription/${AccessLogSubscriptionId}", + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetwork/${ServiceNetworkId}", ConditionKeys: []string{ "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", "aws:TagKeys", + "vpc-lattice:AuthType", }, - Resource: "AccessLogSubscription", + Resource: "ServiceNetwork", + }, + { + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetworkresourceassociation/${ServiceNetworkResourceAssociationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:ResourceConfigurationArn", + "vpc-lattice:ServiceNetworkArn", + }, + Resource: "ServiceNetworkResourceAssociation", + }, + { + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetworkserviceassociation/${ServiceNetworkServiceAssociationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:ServiceArn", + "vpc-lattice:ServiceNetworkArn", + }, + Resource: "ServiceNetworkServiceAssociation", + }, + { + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:servicenetworkvpcassociation/${ServiceNetworkVpcAssociationId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:SecurityGroupIds", + "vpc-lattice:ServiceNetworkArn", + "vpc-lattice:VpcId", + }, + Resource: "ServiceNetworkVpcAssociation", + }, + { + Arn: "arn:${Partition}:vpc-lattice:${Region}:${Account}:targetgroup/${TargetGroupId}", + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:ResourceTag/${TagKey}", + "aws:TagKeys", + "vpc-lattice:VpcId", + }, + Resource: "TargetGroup", }, }, ServiceName: "Amazon VPC Lattice", @@ -282703,6 +329955,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ServiceName: "Amazon VPC Lattice Services", }, + ParliamentService{ + Conditions: []ParliamentCondition{}, + Prefix: "vpce", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to manage multi-region VPC endpoints and VPC endpoint service configurations", + Privilege: "AllowMultiRegion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{}, + ServiceName: "AWS PrivateLink", + }, ParliamentService{ Conditions: []ParliamentCondition{ { @@ -285025,15 +332297,23 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{ + "amplify:AssociateWebACL", "apigateway:SetWebACL", "apprunner:AssociateWebAcl", "appsync:SetWebACL", "cognito-idp:AssociateWebACL", "ec2:AssociateVerifiedAccessInstanceWebAcl", "elasticloadbalancing:SetWebAcl", + "wafv2:GetPermissionPolicy", + "wafv2:PutPermissionPolicy", }, ResourceType: "webacl*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "amplify-app", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -285096,9 +332376,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateIPSet", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "ipset*", + ConditionKeys: []string{}, + DependentActions: []string{ + "wafv2:TagResource", + }, + ResourceType: "ipset*", }, { ConditionKeys: []string{ @@ -285115,10 +332397,12 @@ func getParliamentIamPermissions() ParliamentPermissions { Description: "Grants permission to create a RegexPatternSet", Privilege: "CreateRegexPatternSet", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "regexpatternset*", + { + ConditionKeys: []string{}, + DependentActions: []string{ + "wafv2:TagResource", + }, + ResourceType: "regexpatternset*", }, { ConditionKeys: []string{ @@ -285136,9 +332420,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateRuleGroup", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "rulegroup*", + ConditionKeys: []string{}, + DependentActions: []string{ + "wafv2:TagResource", + }, + ResourceType: "rulegroup*", }, { ConditionKeys: []string{}, @@ -285166,9 +332452,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Privilege: "CreateWebACL", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "webacl*", + ConditionKeys: []string{}, + DependentActions: []string{ + "wafv2:TagResource", + }, + ResourceType: "webacl*", }, { ConditionKeys: []string{}, @@ -285359,14 +332647,21 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{ + "amplify:DisassociateWebACL", "apigateway:SetWebACL", "apprunner:DisassociateWebAcl", "appsync:SetWebACL", "cognito-idp:DisassociateWebACL", "ec2:DisassociateVerifiedAccessInstanceWebAcl", "elasticloadbalancing:SetWebAcl", + "wafv2:PutPermissionPolicy", }, - ResourceType: "apigateway", + ResourceType: "amplify-app", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "apigateway", }, { ConditionKeys: []string{}, @@ -285590,6 +332885,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{ + "amplify:GetWebACLForResource", "apprunner:DescribeWebAclForService", "cognito-idp:GetWebACLForResource", "ec2:GetVerifiedAccessInstanceWebAcl", @@ -285597,6 +332893,11 @@ func getParliamentIamPermissions() ParliamentPermissions { }, ResourceType: "webacl*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "amplify-app", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -285735,12 +333036,18 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{ + "amplify:ListResourcesForWebACL", "apprunner:ListAssociatedServicesForWebAcl", "cognito-idp:ListResourcesForWebACL", "ec2:DescribeVerifiedAccessInstanceWebAclAssociations", }, ResourceType: "webacl*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "amplify-app", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -286132,6 +333439,11 @@ func getParliamentIamPermissions() ParliamentPermissions { ConditionKeys: []string{}, Resource: "verified-access-instance", }, + { + Arn: "arn:${Partition}:amplify:${Region}:${Account}:apps/${AppId}", + ConditionKeys: []string{}, + Resource: "amplify-app", + }, }, ServiceName: "AWS WAF V2", }, @@ -286190,6 +333502,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286202,6 +333521,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286226,6 +333552,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "lens*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286238,6 +333571,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "lens*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286250,6 +333590,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286277,6 +333624,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "profile*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286304,6 +333658,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "review-template*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286332,6 +333693,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286344,6 +333712,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "lens*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286356,6 +333731,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "lens*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286368,6 +333750,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "profile*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286380,6 +333769,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "profile*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286392,6 +333788,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "review-template*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286404,6 +333807,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "review-template*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286416,6 +333826,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286428,6 +333845,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286440,6 +333864,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286452,6 +333883,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286464,6 +333902,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "lens*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286476,6 +333921,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286531,6 +333983,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286543,6 +334002,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286555,6 +334021,13 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "lens*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -286567,31 +334040,862 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "workload*", }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified profile", + Privilege: "GetProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified profile template", + Privilege: "GetProfileTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified review template", + Privilege: "GetReviewTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified answer from the specified review template lens review", + Privilege: "GetReviewTemplateAnswer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified lens review of the specified review template", + Privilege: "GetReviewTemplateLensReview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the specified workload", + Privilege: "GetWorkload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to import a new lens", + Privilege: "ImportLens", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:RequestTag/${TagKey}", + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the answers from the specified lens review", + Privilege: "ListAnswers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the check-details for the workload", + Privilege: "ListCheckDetails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the check-summaries for the workload", + Privilege: "ListCheckSummaries", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the improvements of the specified lens review", + Privilege: "ListLensReviewImprovements", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the lens reviews of the specified workload", + Privilege: "ListLensReviews", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all shares created for a lens", + Privilege: "ListLensShares", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "lens*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the lenses available to this account", + Privilege: "ListLenses", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the milestones of the specified workload", + Privilege: "ListMilestones", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list notifications related to the account or specified resource", + Privilege: "ListNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list profile notifications related to specified resource", + Privilege: "ListProfileNotifications", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all shares created for a profile", + Privilege: "ListProfileShares", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the profiles available to this account", + Privilege: "ListProfiles", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the answers from the specified review template lens review", + Privilege: "ListReviewTemplateAnswers", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the review templates available to this account", + Privilege: "ListReviewTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the workload share invitations of the specified account or user", + Privilege: "ListShareInvitations", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a Well-Architected resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "lens", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list all shares created for a review template", + Privilege: "ListTemplateShares", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the workload shares of the specified workload", + Privilege: "ListWorkloadShares", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the workloads in this account", + Privilege: "ListWorkloads", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to tag a Well-Architected resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "lens", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to untag a Well-Architected resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "lens", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified answer", + Privilege: "UpdateAnswer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to manage all settings for the account", + Privilege: "UpdateGlobalSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "wellarchitected:JiraProjectKey", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the integration", + Privilege: "UpdateIntegration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified lens review", + Privilege: "UpdateLensReview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified profile", + Privilege: "UpdateProfile", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified review template", + Privilege: "UpdateReviewTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified review template answer", + Privilege: "UpdateReviewTemplateAnswer", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified review template lens review", + Privilege: "UpdateReviewTemplateLensReview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update status of the specified workload share invitation", + Privilege: "UpdateShareInvitation", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified workload", + Privilege: "UpdateWorkload", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "wellarchitected:JiraProjectKey", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update properties of the specified workload share", + Privilege: "UpdateWorkloadShare", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upgrade the specified lens review to use the latest version of the associated lens", + Privilege: "UpgradeLensReview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upgrade the specified workload to use the latest version of the associated profile", + Privilege: "UpgradeProfileVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "profile*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "workload*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified profile", - Privilege: "GetProfile", + AccessLevel: "Write", + Description: "Grants permission to upgrade the specified lens review of the specified review template", + Privilege: "UpgradeReviewTemplateLensReview", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "review-template*", + }, + { + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:workload/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "workload", + }, + { + Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:lens/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "lens", + }, + { + Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:profile/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "profile", + }, + { + Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:review-template/${ResourceId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "review-template", + }, + }, + ServiceName: "AWS Well-Architected Tool", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by a tag's key and value in a request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tag key-value pairs attached to the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys in a request", + Type: "ArrayOfString", + }, + }, + Prefix: "wickr", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create and manage Wickr networks", + Privilege: "CreateAdminSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "network*", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified profile template", - Privilege: "GetProfileTemplate", + AccessLevel: "Write", + Description: "Grants permission to create a new wickr network", + Privilege: "CreateNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -286601,60 +334905,55 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified review template", - Privilege: "GetReviewTemplate", + AccessLevel: "Write", + Description: "Grants permission to create a delete Wickr networks", + Privilege: "DeleteNetwork", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified answer from the specified review template lens review", - Privilege: "GetReviewTemplateAnswer", + AccessLevel: "Write", + Description: "Grants permission to view Wickr networks", + Privilege: "ListNetworks", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to retrieve the specified lens review of the specified review template", - Privilege: "GetReviewTemplateLensReview", + Description: "Grants permission to list the tags applied to a Wickr resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to retrieve the specified workload", - Privilege: "GetWorkload", + AccessLevel: "Tagging", + Description: "Grants permission to add tags to a specified wickr resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "network*", }, { ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, @@ -286663,13 +334962,17 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to import a new lens", - Privilege: "ImportLens", + AccessLevel: "Tagging", + Description: "Grants permission to untag the specified tags from the specified wickr resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "network*", + }, { ConditionKeys: []string{ - "aws:RequestTag/${TagKey}", "aws:TagKeys", }, DependentActions: []string{}, @@ -286678,447 +334981,442 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "List", - Description: "Grants permission to list the answers from the specified lens review", - Privilege: "ListAnswers", + AccessLevel: "Write", + Description: "Grants permission to update Wickr network details", + Privilege: "UpdateNetworkDetails", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "network*", }, }, }, + }, + Resources: []ParliamentResource{ { - AccessLevel: "List", - Description: "Grants permission to list the check-details for the workload", - Privilege: "ListCheckDetails", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workload*", - }, + Arn: "arn:${Partition}:wickr:${Region}:${Account}:network/${NetworkId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", }, + Resource: "network", }, + }, + ServiceName: "AWS Wickr", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ { - AccessLevel: "List", - Description: "Grants permission to list the check-summaries for the workload", - Privilege: "ListCheckSummaries", + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters actions based on the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters actions based on the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters actions based on the tag keys that are passed in the request", + Type: "String", + }, + }, + Prefix: "wisdom", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to create an assistant", + Privilege: "CreateAssistant", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the improvements of the specified lens review", - Privilege: "ListLensReviewImprovements", + AccessLevel: "Write", + Description: "Grants permission to create an association between an assistant and another resource", + Privilege: "CreateAssistantAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "Assistant*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the lens reviews of the specified workload", - Privilege: "ListLensReviews", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all shares created for a lens", - Privilege: "ListLensShares", + AccessLevel: "Write", + Description: "Grants permission to create content", + Privilege: "CreateContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lens*", + ResourceType: "KnowledgeBase*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the lenses available to this account", - Privilege: "ListLenses", - ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the milestones of the specified workload", - Privilege: "ListMilestones", + AccessLevel: "Write", + Description: "Grants permission to create a knowledge base", + Privilege: "CreateKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list notifications related to the account or specified resource", - Privilege: "ListNotifications", + AccessLevel: "Write", + Description: "Grants permission to create a session", + Privilege: "CreateSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list profile notifications related to specified resource", - Privilege: "ListProfileNotifications", + AccessLevel: "Write", + Description: "Grants permission to delete an assistant", + Privilege: "DeleteAssistant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Assistant*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all shares created for a profile", - Privilege: "ListProfileShares", + AccessLevel: "Write", + Description: "Grants permission to delete an assistant association", + Privilege: "DeleteAssistantAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "Assistant*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the profiles available to this account", - Privilege: "ListProfiles", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "AssistantAssociation*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the answers from the specified review template lens review", - Privilege: "ListReviewTemplateAnswers", + AccessLevel: "Write", + Description: "Grants permission to delete content", + Privilege: "DeleteContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "Content*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the review templates available to this account", - Privilege: "ListReviewTemplates", + AccessLevel: "Write", + Description: "Grants permission to delete a knowledge base", + Privilege: "DeleteKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the workload share invitations of the specified account or user", - Privilege: "ListShareInvitations", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an assistant", + Privilege: "GetAssistant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Assistant*", }, }, }, { AccessLevel: "Read", - Description: "Grants permission to list tags for a Well-Architected resource", - Privilege: "ListTagsForResource", + Description: "Grants permission to retrieve information about an assistant association", + Privilege: "GetAssistantAssociation", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lens", + ResourceType: "Assistant*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", + ResourceType: "AssistantAssociation*", }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve content, including a pre-signed URL to download the content", + Privilege: "GetContent", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template", + ResourceType: "Content*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload", - }, - { - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list all shares created for a review template", - Privilege: "ListTemplateShares", + AccessLevel: "Read", + Description: "Grants permission to retrieve summary information about the content", + Privilege: "GetContentSummary", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "Content*", }, - }, - }, - { - AccessLevel: "List", - Description: "Grants permission to list the workload shares of the specified workload", - Privilege: "ListWorkloadShares", - ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "List", - Description: "Grants permission to list the workloads in this account", - Privilege: "ListWorkloads", + AccessLevel: "Read", + Description: "Grants permission to retrieve information about the knowledge base", + Privilege: "GetKnowledgeBase", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to tag a Well-Architected resource", - Privilege: "TagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve recommendations for the specified session", + Privilege: "GetRecommendations", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lens", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "profile", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "review-template", - }, - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workload", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - "aws:RequestTag/${TagKey}", - }, - DependentActions: []string{}, - ResourceType: "", + ResourceType: "Assistant*", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag a Well-Architected resource", - Privilege: "UntagResource", + AccessLevel: "Read", + Description: "Grants permission to retrieve information for a specified session", + Privilege: "GetSession", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "lens", + ResourceType: "Assistant*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile", + ResourceType: "Session*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about assistant associations", + Privilege: "ListAssistantAssociations", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template", + ResourceType: "Assistant*", }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about assistants", + Privilege: "ListAssistants", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload", - }, - { - ConditionKeys: []string{ - "aws:TagKeys", - }, - DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the specified answer", - Privilege: "UpdateAnswer", + AccessLevel: "List", + Description: "Grants permission to list the content with a knowledge base", + Privilege: "ListContents", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to manage all settings for the account", - Privilege: "UpdateGlobalSettings", + AccessLevel: "List", + Description: "Grants permission to list information about knowledge bases", + Privilege: "ListKnowledgeBases", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{ - "wellarchitected:JiraProjectKey", - }, + ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the integration", - Privilege: "UpdateIntegration", + AccessLevel: "Read", + Description: "Grants permission to list the tags for the specified resource", + Privilege: "ListTagsForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update properties of the specified lens review", - Privilege: "UpdateLensReview", + Description: "Grants permission to remove the specified recommendations from the specified assistant's queue of newly available recommendations", + Privilege: "NotifyRecommendationsReceived", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "Assistant*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the specified profile", - Privilege: "UpdateProfile", + AccessLevel: "Read", + Description: "Grants permission to perform a manual search against the specified assistant", + Privilege: "QueryAssistant", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "Assistant*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update properties of the specified review template", - Privilege: "UpdateReviewTemplate", + Description: "Grants permission to remove a URI template from a knowledge base", + Privilege: "RemoveKnowledgeBaseTemplateUri", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the specified review template answer", - Privilege: "UpdateReviewTemplateAnswer", + AccessLevel: "Read", + Description: "Grants permission to search for content referencing a specified knowledge base. Can be used to get a specific content resource by its name", + Privilege: "SearchContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the specified review template lens review", - Privilege: "UpdateReviewTemplateLensReview", + AccessLevel: "Read", + Description: "Grants permission to search for sessions referencing a specified assistant. Can be used to et a specific session resource by its name", + Privilege: "SearchSessions", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "Assistant*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to update status of the specified workload share invitation", - Privilege: "UpdateShareInvitation", + Description: "Grants permission to get a URL to upload content to a knowledge base", + Privilege: "StartContentUpload", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "KnowledgeBase*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the specified workload", - Privilege: "UpdateWorkload", + AccessLevel: "Tagging", + Description: "Grants permission to add the specified tags to the specified resource", + Privilege: "TagResource", ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workload*", - }, { ConditionKeys: []string{ - "wellarchitected:JiraProjectKey", + "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -287126,174 +335424,211 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Write", - Description: "Grants permission to update properties of the specified workload share", - Privilege: "UpdateWorkloadShare", - ResourceTypes: []ParliamentResourceType{ - { - ConditionKeys: []string{}, - DependentActions: []string{}, - ResourceType: "workload*", - }, - }, - }, - { - AccessLevel: "Write", - Description: "Grants permission to upgrade the specified lens review to use the latest version of the associated lens", - Privilege: "UpgradeLensReview", + AccessLevel: "Tagging", + Description: "Grants permission to remove the specified tags from the specified resource", + Privilege: "UntagResource", ResourceTypes: []ParliamentResourceType{ { - ConditionKeys: []string{}, + ConditionKeys: []string{ + "aws:TagKeys", + }, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upgrade the specified workload to use the latest version of the associated profile", - Privilege: "UpgradeProfileVersion", + Description: "Grants permission to update information about the content", + Privilege: "UpdateContent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "profile*", + ResourceType: "Content*", }, { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "workload*", + ResourceType: "KnowledgeBase*", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to upgrade the specified lens review of the specified review template", - Privilege: "UpgradeReviewTemplateLensReview", + Description: "Grants permission to update the template URI of a knowledge base", + Privilege: "UpdateKnowledgeBaseTemplateUri", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "review-template*", + ResourceType: "KnowledgeBase*", }, }, }, }, Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:workload/${ResourceId}", + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:assistant/${AssistantId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "workload", + Resource: "Assistant", }, { - Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:lens/${ResourceId}", + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:association/${AssistantId}/${AssistantAssociationId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "lens", + Resource: "AssistantAssociation", }, { - Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:profile/${ResourceId}", + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:content/${KnowledgeBaseId}/${ContentId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "profile", + Resource: "Content", }, { - Arn: "arn:${Partition}:wellarchitected:${Region}:${Account}:review-template/${ResourceId}", + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:knowledge-base/${KnowledgeBaseId}", ConditionKeys: []string{ "aws:ResourceTag/${TagKey}", }, - Resource: "review-template", + Resource: "KnowledgeBase", + }, + { + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:session/${AssistantId}/${SessionId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "Session", }, }, - ServiceName: "AWS Well-Architected Tool", + ServiceName: "Amazon Connect Wisdom", }, ParliamentService{ Conditions: []ParliamentCondition{ { Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by a tag's key and value in a request", + Description: "Filters access by the tags that are passed in the request", Type: "String", }, { Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tag key-value pairs attached to the resource", + Description: "Filters access by the tags associated with the resource", Type: "String", }, { Condition: "aws:TagKeys", - Description: "Filters access by the tag keys in a request", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + { + Condition: "wisdom:MessageTemplate/RoutingProfileArn", + Description: "Filters access by the connect routing profile arns associated with the resource", + Type: "ArrayOfARN", + }, + { + Condition: "wisdom:SearchFilter/Qualifier", + Description: "Filters access by the qualifiers that are passed in the request", Type: "ArrayOfString", }, + { + Condition: "wisdom:SearchFilter/RoutingProfileArn", + Description: "Filters access by the connect routing profile arn that is passed in the request", + Type: "ARN", + }, }, - Prefix: "wickr", + Prefix: "wisdom", Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", - Description: "Grants permission to create and manage Wickr networks", - Privilege: "CreateAdminSession", + Description: "Grants permission to activate a message template", + Privilege: "ActivateMessageTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", }, }, }, { - AccessLevel: "Write", - Description: "Grants permission to create a new wickr network", - Privilege: "CreateNetwork", + AccessLevel: "Permissions management", + Description: "Grants permission to configure vended log delivery for an assistant", + Privilege: "AllowVendedLogDeliveryForResource", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "", + ResourceType: "Assistant", }, }, }, { AccessLevel: "Write", - Description: "Grants permission to view Wickr networks", - Privilege: "ListNetworks", + Description: "Grants permission to create an ai agent", + Privilege: "CreateAIAgent", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Read", - Description: "Grants permission to list the tags applied to a Wickr resource", - Privilege: "ListTagsForResource", + AccessLevel: "Write", + Description: "Grants permission to create an ai agent version", + Privilege: "CreateAIAgentVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, + ResourceType: "AIAgent*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, ResourceType: "", }, }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to add tags to a specified wickr resource", - Privilege: "TagResource", + AccessLevel: "Write", + Description: "Grants permission to create an ai guardrail", + Privilege: "CreateAIGuardrail", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "Assistant*", }, { ConditionKeys: []string{ "aws:TagKeys", "aws:RequestTag/${TagKey}", - "aws:ResourceTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -287301,18 +335636,24 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, { - AccessLevel: "Tagging", - Description: "Grants permission to untag the specified tags from the specified wickr resource", - Privilege: "UntagResource", + AccessLevel: "Write", + Description: "Grants permission to create an ai guardrail version", + Privilege: "CreateAIGuardrailVersion", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "AIGuardrail*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", }, { ConditionKeys: []string{ "aws:TagKeys", + "aws:RequestTag/${TagKey}", }, DependentActions: []string{}, ResourceType: "", @@ -287321,53 +335662,49 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to update Wickr network details", - Privilege: "UpdateNetworkDetails", + Description: "Grants permission to create an ai prompt", + Privilege: "CreateAIPrompt", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "network*", + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, }, }, - }, - Resources: []ParliamentResource{ { - Arn: "arn:${Partition}:wickr:${Region}:${Account}:network/${NetworkId}", - ConditionKeys: []string{ - "aws:ResourceTag/${TagKey}", + AccessLevel: "Write", + Description: "Grants permission to create an ai prompt version", + Privilege: "CreateAIPromptVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIPrompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, - Resource: "network", - }, - }, - ServiceName: "AWS Wickr", - }, - ParliamentService{ - Conditions: []ParliamentCondition{ - { - Condition: "aws:RequestTag/${TagKey}", - Description: "Filters access by the tags that are passed in the request", - Type: "String", - }, - { - Condition: "aws:ResourceTag/${TagKey}", - Description: "Filters access by the tags associated with the resource", - Type: "String", - }, - { - Condition: "aws:TagKeys", - Description: "Filters access by the tag keys that are passed in the request", - Type: "ArrayOfString", - }, - { - Condition: "wisdom:SearchFilter/RoutingProfileArn", - Description: "Filters access by the connect routing profile arn that is passed in the request", - Type: "ARN", }, - }, - Prefix: "wisdom", - Privileges: []ParliamentPrivilege{ { AccessLevel: "Write", Description: "Grants permission to create an assistant", @@ -287465,8 +335802,8 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create quick response", - Privilege: "CreateQuickResponse", + Description: "Grants permission to create a message template", + Privilege: "CreateMessageTemplate", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, @@ -287485,14 +335822,58 @@ func getParliamentIamPermissions() ParliamentPermissions { }, { AccessLevel: "Write", - Description: "Grants permission to create a session", - Privilege: "CreateSession", + Description: "Grants permission to create an attachment to a message template", + Privilege: "CreateMessageTemplateAttachment", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Assistant*", + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a version of a message template", + Privilege: "CreateMessageTemplateVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create quick response", + Privilege: "CreateQuickResponse", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create a session", + Privilege: "CreateSession", + ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{ "aws:TagKeys", @@ -287503,6 +335884,125 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to deactivate a message template", + Privilege: "DeactivateMessageTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ai agent", + Privilege: "DeleteAIAgent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIAgent*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ai agent version", + Privilege: "DeleteAIAgentVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIAgent*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ai guardrail", + Privilege: "DeleteAIGuardrail", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIGuardrail*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ai guardrail version", + Privilege: "DeleteAIGuardrailVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIGuardrail*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ai prompt", + Privilege: "DeleteAIPrompt", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIPrompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an ai prompt version", + Privilege: "DeleteAIPromptVersion", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIPrompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete an assistant", @@ -287595,6 +336095,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a message template", + Privilege: "DeleteMessageTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an attachment from a message template", + Privilege: "DeleteMessageTemplateAttachment", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete quick response", @@ -287612,6 +336146,57 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an ai agent", + Privilege: "GetAIAgent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIAgent*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an ai guardrail", + Privilege: "GetAIGuardrail", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIGuardrail*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve information about an ai prompt", + Privilege: "GetAIPrompt", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIPrompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve information about an assistant", @@ -287721,6 +336306,47 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a message template", + Privilege: "GetMessageTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + { + ConditionKeys: []string{ + "wisdom:MessageTemplate/RoutingProfileArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve for next message in a session", + Privilege: "GetNextMessage", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Session*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve content", @@ -287767,6 +336393,93 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list information about ai agent versions", + Privilege: "ListAIAgentVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIAgent*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about ai agents", + Privilege: "ListAIAgents", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about ai guardrail versions", + Privilege: "ListAIGuardrailVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIGuardrail*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about ai guardrails", + Privilege: "ListAIGuardrails", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about ai prompt versions", + Privilege: "ListAIPromptVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIPrompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list information about ai prompts", + Privilege: "ListAIPrompts", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list information about assistant associations", @@ -287775,7 +336488,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Assistant*", + ResourceType: "", }, }, }, @@ -287844,6 +336557,52 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list message template versions for the specified message template", + Privilege: "ListMessageTemplateVersions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list the message templates for a knowledge base", + Privilege: "ListMessageTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + }, + }, + { + AccessLevel: "List", + Description: "Grants permission to list messages in a session", + Privilege: "ListMessages", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Session*", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list the quick response with a knowledge base", @@ -287876,7 +336635,7 @@ func getParliamentIamPermissions() ParliamentPermissions { { ConditionKeys: []string{}, DependentActions: []string{}, - ResourceType: "Assistant*", + ResourceType: "", }, }, }, @@ -287904,6 +336663,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to remove an ai agent from an assistant", + Privilege: "RemoveAssistantAIAgent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to remove a URI template from a knowledge base", @@ -287916,6 +336687,32 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to render a message template", + Privilege: "RenderMessageTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "wisdom:GetMessageTemplate", + }, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + { + ConditionKeys: []string{ + "wisdom:MessageTemplate/RoutingProfileArn", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to search for content referencing a specified knowledge base. Can be used to get a specific content resource by its name", @@ -287928,6 +336725,26 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to search for message templates referencing a specified knowledge base", + Privilege: "SearchMessageTemplates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{ + "wisdom:SearchFilter/RoutingProfileArn", + "wisdom:SearchFilter/Qualifier", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to search for quick response referencing a specified knowledge base", @@ -287953,12 +336770,29 @@ func getParliamentIamPermissions() ParliamentPermissions { AccessLevel: "Read", Description: "Grants permission to search for sessions referencing a specified assistant. Can be used to et a specific session resource by its name", Privilege: "SearchSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to send a message", + Privilege: "SendMessage", ResourceTypes: []ParliamentResourceType{ { ConditionKeys: []string{}, DependentActions: []string{}, ResourceType: "Assistant*", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Session*", + }, }, }, { @@ -288023,6 +336857,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "KnowledgeBase", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -288074,6 +336913,11 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "KnowledgeBase", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -288094,6 +336938,69 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update information about an ai agent", + Privilege: "UpdateAIAgent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIAgent*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update information about an ai guardrail", + Privilege: "UpdateAIGuardrail", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIGuardrail*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update information about an ai prompt", + Privilege: "UpdateAIPrompt", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "AIPrompt*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update assistant information about an ai agent", + Privilege: "UpdateAssistantAIAgent", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update information about the content", @@ -288123,6 +337030,40 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update content of the message template", + Privilege: "UpdateMessageTemplate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update metadata of the message template", + Privilege: "UpdateMessageTemplateMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "KnowledgeBase*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "MessageTemplate*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update information or content of the quick response", @@ -288157,8 +337098,46 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update data stored in a session", + Privilege: "UpdateSessionData", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Assistant*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "Session*", + }, + }, + }, }, Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:ai-agent/${AssistantId}/${AIAgentId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AIAgent", + }, + { + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:ai-prompt/${AssistantId}/${AIPromptId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AIPrompt", + }, + { + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:ai-guardrail/${AssistantId}/${AIGuardrailId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "AIGuardrail", + }, { Arn: "arn:${Partition}:wisdom:${Region}:${Account}:assistant/${AssistantId}", ConditionKeys: []string{ @@ -288194,6 +337173,14 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resource: "KnowledgeBase", }, + { + Arn: "arn:${Partition}:wisdom:${Region}:${Account}:message-template/${KnowledgeBaseId}/${MessageTemplateId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + "wisdom:MessageTemplate/RoutingProfileArn", + }, + Resource: "MessageTemplate", + }, { Arn: "arn:${Partition}:wisdom:${Region}:${Account}:session/${AssistantId}/${SessionId}", ConditionKeys: []string{ @@ -289547,6 +338534,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to create an Identity Center application for WorkMail", + Privilege: "CreateIdentityCenterApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create an impersonation role for the given Amazon WorkMail organization", @@ -289715,6 +338714,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete an Identity Center application for WorkMail", + Privilege: "DeleteIdentityCenterApplication", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete the identity provider configuration for the organization", + Privilege: "DeleteIdentityProviderConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete an impersonation role for the given Amazon WorkMail organization", @@ -289823,6 +338846,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete a personal access token", + Privilege: "DeletePersonalAccessToken", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete the specified resource", @@ -289871,6 +338906,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to deliver emails to a WorkMail organization via the SES MailManager DeliverToMailbox action", + Privilege: "DeliverToMailbox", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to mark a user, group, or resource as no longer used in WorkMail", @@ -289931,6 +338978,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to read the identity provider configuration for the organization", + Privilege: "DescribeIdentityProviderConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to read the settings in a DMARC policy for a specified organization", @@ -290231,6 +339290,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to read metadata for a personal access token", + Privilege: "GetPersonalAccessTokenMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list the access control rules", @@ -290411,6 +339482,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to list metadata for personal access tokens", + Privilege: "ListPersonalAccessTokens", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list the delegates associated with a resource", @@ -290503,6 +339586,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to add or update the identity provider configuration for the organization", + Privilege: "PutIdentityProviderConfiguration", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "organization*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to enable or disable a DMARC policy for a given organization", @@ -291883,6 +340978,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to configure the specified directory between Standard TLS and FIPS 140-2 validated mode", + Privilege: "ModifyEndpointEncryptionMode", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "directoryid*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to modify the SAML properties of a directory", @@ -292330,6 +341437,672 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to associate network settings to web portals", + Privilege: "AssociateNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{ + "ec2:CreateNetworkInterface", + "ec2:CreateNetworkInterfacePermission", + "ec2:CreateTags", + "ec2:DeleteNetworkInterface", + "ec2:DeleteNetworkInterfacePermission", + "ec2:ModifyNetworkInterfaceAttribute", + }, + ResourceType: "networkSettings*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate trust stores with web portals", + Privilege: "AssociateTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trustStore*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate user settings with web portals", + Privilege: "AssociateUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userSettings*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create browser settings", + Privilege: "CreateBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create identity providers", + Privilege: "CreateIdentityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create network settings", + Privilege: "CreateNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create web portals", + Privilege: "CreatePortal", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{ + "iam:CreateServiceLinkedRole", + "kms:CreateGrant", + "kms:Decrypt", + "kms:DescribeKey", + "kms:GenerateDataKey", + }, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create trust stores", + Privilege: "CreateTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to create user settings", + Privilege: "CreateUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete browser settings", + Privilege: "DeleteBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "browserSettings*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete identity providers", + Privilege: "DeleteIdentityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete network settings", + Privilege: "DeleteNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "networkSettings*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete web portals", + Privilege: "DeletePortal", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete trust stores", + Privilege: "DeleteTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trustStore*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to delete user settings", + Privilege: "DeleteUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userSettings*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate browser settings from web portals", + Privilege: "DisassociateBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate network settings from web portals", + Privilege: "DisassociateNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate trust stores from web portals", + Privilege: "DisassociateTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate user settings from web portals", + Privilege: "DisassociateUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on browser settings", + Privilege: "GetBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "browserSettings*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on identity providers", + Privilege: "GetIdentityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on network settings", + Privilege: "GetNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "networkSettings*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on web portals", + Privilege: "GetPortal", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get service provider metadata information for web portals", + Privilege: "GetPortalServiceProviderMetadata", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on trust stores", + Privilege: "GetTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trustStore*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get certificates from trust stores", + Privilege: "GetTrustStoreCertificate", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trustStore*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on user settings", + Privilege: "GetUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userSettings*", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list browser settings", + Privilege: "ListBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list identity providers", + Privilege: "ListIdentityProviders", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list network settings", + Privilege: "ListNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list web portals", + Privilege: "ListPortals", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list tags for a resource", + Privilege: "ListTagsForResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list certificates in a trust store", + Privilege: "ListTrustStoreCertificates", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list trust stores", + Privilege: "ListTrustStores", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Read", + Description: "Grants permission to list user settings", + Privilege: "ListUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to add one or more tags to a resource", + Privilege: "TagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Tagging", + Description: "Grants permission to remove one or more tags from a resource", + Privilege: "UntagResource", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update browser settings", + Privilege: "UpdateBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "browserSettings*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update identity provider", + Privilege: "UpdateIdentityProvider", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update network settings", + Privilege: "UpdateNetworkSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "networkSettings*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update web portals", + Privilege: "UpdatePortal", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update trust stores", + Privilege: "UpdateTrustStore", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "trustStore*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to update user settings", + Privilege: "UpdateUserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "userSettings*", + }, + }, + }, + }, + Resources: []ParliamentResource{ + { + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:browserSettings/${BrowserSettingsId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "browserSettings", + }, + { + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:networkSettings/${NetworkSettingsId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "networkSettings", + }, + { + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:portal/${PortalId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "portal", + }, + { + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:trustStore/${TrustStoreId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "trustStore", + }, + { + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:userSettings/${UserSettingsId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "userSettings", + }, + }, + ServiceName: "Amazon WorkSpaces Web", + }, + ParliamentService{ + Conditions: []ParliamentCondition{ + { + Condition: "aws:RequestTag/${TagKey}", + Description: "Filters access by the tags that are passed in the request", + Type: "String", + }, + { + Condition: "aws:ResourceTag/${TagKey}", + Description: "Filters access by the tags associated with the resource", + Type: "String", + }, + { + Condition: "aws:TagKeys", + Description: "Filters access by the tag keys that are passed in the request", + Type: "ArrayOfString", + }, + }, + Prefix: "workspaces-web", + Privileges: []ParliamentPrivilege{ + { + AccessLevel: "Write", + Description: "Grants permission to associate browser settings to web portals", + Privilege: "AssociateBrowserSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "browserSettings*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to associate data protection settings with web portals", + Privilege: "AssociateDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataProtectionSettings*", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to associate ip access settings with web portals", @@ -292445,6 +342218,21 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to create data protection settings", + Privilege: "CreateDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create identity providers", @@ -292460,6 +342248,14 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "portal*", }, + { + ConditionKeys: []string{ + "aws:TagKeys", + "aws:RequestTag/${TagKey}", + }, + DependentActions: []string{}, + ResourceType: "", + }, }, }, { @@ -292572,6 +342368,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to delete data protection settings", + Privilege: "DeleteDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataProtectionSettings*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to delete identity providers", @@ -292673,6 +342481,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to disassociate data protection logging from web portals", + Privilege: "DisassociateDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to disassociate ip access logging from web portals", @@ -292733,6 +342553,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to expire a session from a specific portal", + Privilege: "ExpireSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get details on browser settings", @@ -292745,6 +342577,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get details on data protection settings", + Privilege: "GetDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataProtectionSettings*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get details on identity providers", @@ -292805,6 +342649,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to get information about a particular session for a portal", + Privilege: "GetSession", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to get details on trust stores", @@ -292865,6 +342721,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to list data protection settings", + Privilege: "ListDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list identity providers", @@ -292913,6 +342781,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to list sessions for a Portal using optional filters", + Privilege: "ListSessions", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "portal*", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to list tags for a resource", @@ -292983,6 +342863,16 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "browserSettings", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataProtectionSettings", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityProvider", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -293033,6 +342923,16 @@ func getParliamentIamPermissions() ParliamentPermissions { DependentActions: []string{}, ResourceType: "browserSettings", }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataProtectionSettings", + }, + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "identityProvider", + }, { ConditionKeys: []string{}, DependentActions: []string{}, @@ -293084,6 +342984,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to update data protection settings", + Privilege: "UpdateDataProtectionSettings", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "dataProtectionSettings*", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to update identity provider", @@ -293193,9 +343105,11 @@ func getParliamentIamPermissions() ParliamentPermissions { Resource: "browserSettings", }, { - Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:identityProvider/${PortalId}/${IdentityProviderId}", - ConditionKeys: []string{}, - Resource: "identityProvider", + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:identityProvider/${PortalId}/${IdentityProviderId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "identityProvider", }, { Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:networkSettings/${NetworkSettingsId}", @@ -293239,6 +343153,13 @@ func getParliamentIamPermissions() ParliamentPermissions { }, Resource: "ipAccessSettings", }, + { + Arn: "arn:${Partition}:workspaces-web:${Region}:${Account}:dataProtectionSettings/${DataProtectionSettingsId}", + ConditionKeys: []string{ + "aws:ResourceTag/${TagKey}", + }, + Resource: "dataProtectionSettings", + }, }, ServiceName: "Amazon WorkSpaces Secure Browser", }, @@ -293286,6 +343207,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to cancel an ongoing trace retrieval job initiated by StartTraceRetrieval using the provided RetrievalToken. A successful cancellation will return an HTTP 200 response", + Privilege: "CancelTraceRetrieval", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to create a group resource with a name and a filter expression", @@ -293431,6 +343364,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve all indexing rules. Indexing rules are used to determine the server-side sampling rate for spans ingested through the CloudWatchLogs destination and indexed by X-Ray", + Privilege: "GetIndexingRules", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve the details of a specific insight", @@ -293479,6 +343424,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve a service graph for traces based on the specified RetrievalToken from the Transaction Search CloudWatch log group", + Privilege: "GetRetrievedTracesGraph", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve all sampling rules", @@ -293551,6 +343508,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to retrieve the current destination of data sent to PutTraceSegments and OpenTelemetry API", + Privilege: "GetTraceSegmentDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Read", Description: "Grants permission to retrieve IDs and metadata for traces available for a specified time frame using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces", @@ -293587,6 +343556,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "List", + Description: "Grants permission to retrieve a list of traces for a given RetrievalToken from the Transaction Search CloudWatch log group", + Privilege: "ListRetrievedTraces", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "List", Description: "Grants permission to list tags for an X-Ray resource", @@ -293628,6 +343609,30 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to upload OpenTelemetry spans to AWS X-Ray", + Privilege: "PutSpans", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, + { + AccessLevel: "Write", + Description: "Grants permission to upload spans to AWS X-Ray to be indexed", + Privilege: "PutSpansForIndexing", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to send AWS X-Ray daemon telemetry to the service", @@ -293652,6 +343657,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Read", + Description: "Grants permission to initiate a trace retrieval process using the specified time range and for the given trace IDs on the Transaction Search CloudWatch log group", + Privilege: "StartTraceRetrieval", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Tagging", Description: "Grants permission to add tags to an X-Ray resource", @@ -293720,6 +343737,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to modify an indexing rule's configuration", + Privilege: "UpdateIndexingRule", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, { AccessLevel: "Write", Description: "Grants permission to modify a sampling rule's configuration", @@ -293739,6 +343768,18 @@ func getParliamentIamPermissions() ParliamentPermissions { }, }, }, + { + AccessLevel: "Write", + Description: "Grants permission to modify the destination of data sent to PutTraceSegments and OpenTelemetry API", + Privilege: "UpdateTraceSegmentDestination", + ResourceTypes: []ParliamentResourceType{ + { + ConditionKeys: []string{}, + DependentActions: []string{}, + ResourceType: "", + }, + }, + }, }, Resources: []ParliamentResource{ { diff --git a/aws/parliament_iam_permissions_dev.go b/aws/parliament_iam_permissions_dev.go new file mode 100644 index 000000000..0f4c0487d --- /dev/null +++ b/aws/parliament_iam_permissions_dev.go @@ -0,0 +1,7 @@ +//go:build dev + +package aws + +func getParliamentIamPermissions() ParliamentPermissions { + return ParliamentPermissions{} +} diff --git a/aws/parliament_iam_permissions_types.go b/aws/parliament_iam_permissions_types.go new file mode 100644 index 000000000..df2b8cf59 --- /dev/null +++ b/aws/parliament_iam_permissions_types.go @@ -0,0 +1,36 @@ +package aws + +type ParliamentCondition struct { + Condition string + Description string + Type string +} + +type ParliamentResourceType struct { + ConditionKeys []string + DependentActions []string + ResourceType string +} + +type ParliamentPrivilege struct { + AccessLevel string + Description string + Privilege string + ResourceTypes []ParliamentResourceType +} + +type ParliamentResource struct { + Arn string + ConditionKeys []string + Resource string +} + +type ParliamentService struct { + Conditions []ParliamentCondition + Prefix string + Privileges []ParliamentPrivilege + Resources []ParliamentResource + ServiceName string +} + +type ParliamentPermissions []ParliamentService diff --git a/aws/plugin.go b/aws/plugin.go index 5a138dd0e..4862320bd 100644 --- a/aws/plugin.go +++ b/aws/plugin.go @@ -73,16 +73,163 @@ func Plugin(ctx context.Context) *plugin.Plugin { Scope: []string{"connection", "region", "service", "action"}, Where: "service = 'servicequotas' and action = 'ListTagsForResource'", }, + // Not documented + // https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html + { + Name: "aws_cloudfront", + MaxConcurrency: 10, + FillRate: 5, + BucketSize: 10, + Scope: []string{"connection", "service"}, + Where: "service = 'cloudfront'", + }, + // For these Amazon KDS Control Plane APIs, five requests per second per account. + // https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html#kds-api-limits + { + Name: "aws_kinesis_list_streams_list_stream_consumers_list_tags_for_stream", + MaxConcurrency: 5, + FillRate: 5, + BucketSize: 5, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'kinesis' and action in ('ListStreamConsumers', 'ListStreams', 'ListTagsForStream')", + }, + // For these Amazon KDS Control Plane APIs, ten requests per second per account. + // https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html#kds-api-limits + { + Name: "aws_kinesis_describe_stream", + MaxConcurrency: 10, + FillRate: 10, + BucketSize: 10, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'kinesis' and action in ('DescribeStream')", + }, + // For these Amazon KDS Control Plane APIs, twenty requests per second per account. + // https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html#kds-api-limits + { + Name: "aws_kinesis_describe_stream_summary", + MaxConcurrency: 20, + FillRate: 20, + BucketSize: 20, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'kinesis' and action in ('DescribeStreamSummary')", + }, + // For the Amazon Route 53 APIs five requests per second per AWS account. + // https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests + { + Name: "aws_route53", + MaxConcurrency: 10, + FillRate: 5, + BucketSize: 10, + Scope: []string{"connection", "service"}, + Where: "service = 'route53'", + }, + // AWS WAF Classic has the following fixed quotas on calls per account per Region + // Maximum number of calls to any individual List action, if no other quota is defined for it: 5 requests per second + // https://docs.aws.amazon.com/waf/latest/developerguide/classic-limits.html + { + Name: "aws_waf", + MaxConcurrency: 10, + FillRate: 5, + BucketSize: 10, + Scope: []string{"connection", "region", "service"}, + Where: "service = 'waf'", + }, + // AWS WAF has the following fixed quotas on calls per account per Region + // Maximum number of calls to any individual Get or List action, if no other quota is defined for it: Five requests per second + // https://docs.aws.amazon.com/waf/latest/developerguide/limits.html + { + Name: "aws_wafv2", + MaxConcurrency: 10, + FillRate: 5, + BucketSize: 10, + Scope: []string{"connection", "region", "service"}, + Where: "service = 'wafv2'", + }, + // AWS IAM Policy / Policy Attachment / Role - Limits to reduce throttling errors + { + Name: "aws_iam_policy_get_policy", + BucketSize: 35, + FillRate: 35, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'GetPolicy'", + }, + { + Name: "aws_iam_policy_get_policy_version", + BucketSize: 35, + FillRate: 35, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'GetPolicyVersion'", + }, + { + Name: "aws_iam_policy_list_entities_for_policy", + BucketSize: 40, + FillRate: 40, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'ListEntitiesForPolicy'", + }, + { + Name: "aws_iam_role_get_role", + BucketSize: 15, + FillRate: 15, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'GetRole'", + }, + { + Name: "aws_iam_role_list_instance_profiles_for_role", + BucketSize: 15, + FillRate: 15, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'ListInstanceProfilesForRole'", + }, + { + Name: "aws_iam_role_list_attached_role_policies", + BucketSize: 15, + FillRate: 15, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'ListAttachedRolePolicies'", + }, + { + Name: "aws_iam_role_list_role_policies", + BucketSize: 15, + FillRate: 15, + Scope: []string{"connection", "service", "action"}, + Where: "service = 'iam' and action = 'ListRolePolicies'", + }, + { + // GetFunction API has a limit of 100 requests per second + Name: "aws_lambda_get_function", + FillRate: 100, + BucketSize: 100, + Scope: []string{"connection", "region", "service", "action"}, + Where: "service = 'lambda' and action = 'GetFunction'", + }, + { + // GetPolicy API has a limit of 15 requests per second + Name: "aws_lambda_get_policy", + FillRate: 15, + BucketSize: 15, + Scope: []string{"connection", "region", "service", "action"}, + Where: "service = 'lambda' and action = 'GetPolicy'", + }, + { + // All other control plane APIs (including ListFunctions) share a limit of 15 requests per second + Name: "aws_lambda_list_functions_and_get_function_url_config", + FillRate: 10, + BucketSize: 10, + Scope: []string{"connection", "region", "service", "action"}, + Where: "service = 'lambda' and action in ('ListFunctions', 'GetFunctionUrlConfig')", + }, }, TableMap: map[string]*plugin.Table{ "aws_accessanalyzer_analyzer": tableAwsAccessAnalyzer(ctx), "aws_accessanalyzer_finding": tableAwsAccessAnalyzerFinding(ctx), - "aws_account": tableAwsAccount(ctx), "aws_account_alternate_contact": tableAwsAccountAlternateContact(ctx), "aws_account_contact": tableAwsAccountContact(ctx), + "aws_account": tableAwsAccount(ctx), "aws_acm_certificate": tableAwsAcmCertificate(ctx), "aws_acmpca_certificate_authority": tableAwsAcmPcaCertificateAuthority(ctx), "aws_amplify_app": tableAwsAmplifyApp(ctx), + "aws_api_gateway_account": tableAwsAPIGatewayAccount(ctx), "aws_api_gateway_api_key": tableAwsAPIGatewayAPIKey(ctx), "aws_api_gateway_authorizer": tableAwsAPIGatewayAuthorizer(ctx), "aws_api_gateway_domain_name": tableAwsAPIGatewayDomainName(ctx), @@ -101,16 +248,18 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_appconfig_application": tableAwsAppConfigApplication(ctx), "aws_appstream_fleet": tableAwsAppStreamFleet(ctx), "aws_appstream_image": tableAwsAppStreamImage(ctx), + "aws_appsync_api": tableAwsAppsyncApi(ctx), "aws_appsync_graphql_api": tableAwsAppsyncGraphQLApi(ctx), "aws_athena_query_execution": tableAwsAthenaQueryExecution(ctx), "aws_athena_workgroup": tableAwsAthenaWorkGroup(ctx), "aws_auditmanager_assessment": tableAwsAuditManagerAssessment(ctx), "aws_auditmanager_control": tableAwsAuditManagerControl(ctx), - "aws_auditmanager_evidence": tableAwsAuditManagerEvidence(ctx), "aws_auditmanager_evidence_folder": tableAwsAuditManagerEvidenceFolder(ctx), + "aws_auditmanager_evidence": tableAwsAuditManagerEvidence(ctx), "aws_auditmanager_framework": tableAwsAuditManagerFramework(ctx), "aws_availability_zone": tableAwsAvailabilityZone(ctx), "aws_backup_framework": tableAwsBackupFramework(ctx), + "aws_backup_job": tableAwsBackupJob(ctx), "aws_backup_legal_hold": tableAwsBackupLegalHold(ctx), "aws_backup_plan": tableAwsBackupPlan(ctx), "aws_backup_protected_resource": tableAwsBackupProtectedResource(ctx), @@ -118,11 +267,20 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_backup_report_plan": tableAwsBackupReportPlan(ctx), "aws_backup_selection": tableAwsBackupSelection(ctx), "aws_backup_vault": tableAwsBackupVault(ctx), - "aws_backup_job": tableAwsBackupJob(ctx), + "aws_batch_queue": tableAwsBatchQueue(ctx), + "aws_bedrock_agent": tableAwsBedrockAgent(ctx), + "aws_bedrock_knowledge_base": tableAwsBedrockKnowledgeBase(ctx), + "aws_bedrock_custom_model": tableAwsBedrockCustomModel(ctx), + "aws_bedrock_foundation_model": tableAwsBedrockFoundationModel(ctx), + "aws_bedrock_imported_model": tableAwsBedrockImportedModel(ctx), + "aws_bedrock_guardrail": tableAwsBedrockGuardrail(ctx), + "aws_budgets_budget": tableAwsBudgetsBudget(ctx), + "aws_ce_anomaly_monitor": tableAwsCEAnomalyMonitor(ctx), + "aws_ce_cost_allocation_tags": tableAwsCECostAllocationTags(ctx), "aws_cloudcontrol_resource": tableAwsCloudControlResource(ctx), - "aws_cloudformation_stack": tableAwsCloudFormationStack(ctx), "aws_cloudformation_stack_resource": tableAwsCloudFormationStackResource(ctx), "aws_cloudformation_stack_set": tableAwsCloudFormationStackSet(ctx), + "aws_cloudformation_stack": tableAwsCloudFormationStack(ctx), "aws_cloudfront_cache_policy": tableAwsCloudFrontCachePolicy(ctx), "aws_cloudfront_distribution": tableAwsCloudFrontDistribution(ctx), "aws_cloudfront_function": tableAwsCloudFrontFunction(ctx), @@ -135,9 +293,10 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_cloudtrail_import": tableAwsCloudtrailImport(ctx), "aws_cloudtrail_lookup_event": tableAwsCloudtrailLookupEvent(ctx), "aws_cloudtrail_query": tableAwsCloudTrailQuery(ctx), - "aws_cloudtrail_trail": tableAwsCloudtrailTrail(ctx), "aws_cloudtrail_trail_event": tableAwsCloudtrailTrailEvent(ctx), + "aws_cloudtrail_trail": tableAwsCloudtrailTrail(ctx), "aws_cloudwatch_alarm": tableAwsCloudWatchAlarm(ctx), + "aws_cloudwatch_event_rule": tableAwsCloudwatchEventRule(ctx), "aws_cloudwatch_log_delivery_destination": tableAwsCloudWatchLogDeliveryDestination(ctx), "aws_cloudwatch_log_delivery_source": tableAwsCloudWatchLogDeliverySource(ctx), "aws_cloudwatch_log_delivery": tableAwsCloudWatchLogDelivery(ctx), @@ -148,13 +307,17 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_cloudwatch_log_resource_policy": tableAwsCloudwatchLogResourcePolicy(ctx), "aws_cloudwatch_log_stream": tableAwsCloudwatchLogStream(ctx), "aws_cloudwatch_log_subscription_filter": tableAwsCloudwatchLogSubscriptionFilter(ctx), - "aws_cloudwatch_metric": tableAwsCloudWatchMetric(ctx), "aws_cloudwatch_metric_data_point": tableAwsCloudWatchMetricDataPoint(ctx), "aws_cloudwatch_metric_statistic_data_point": tableAwsCloudWatchMetricStatisticDataPoint(ctx), + "aws_cloudwatch_metric": tableAwsCloudWatchMetric(ctx), + "aws_connect_instance_attribute": tableAwsConnectInstanceAttribute(ctx), + "aws_connect_instance": tableAwsConnectInstance(ctx), "aws_codeartifact_domain": tableAwsCodeArtifactDomain(ctx), "aws_codeartifact_repository": tableAwsCodeArtifactRepository(ctx), "aws_codebuild_build": tableAwsCodeBuildBuild(ctx), + "aws_codebuild_fleet": tableAwsCodeBuildFleet(ctx), "aws_codebuild_project": tableAwsCodeBuildProject(ctx), + "aws_codebuild_report_group": tableAwsCodeBuildReportGroup(ctx), "aws_codebuild_source_credential": tableAwsCodeBuildSourceCredential(ctx), "aws_codecommit_repository": tableAwsCodeCommitRepository(ctx), "aws_codedeploy_app": tableAwsCodeDeployApplication(ctx), @@ -164,6 +327,7 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_codestar_notification_rule": tableAwsCodestarNotificationRule(ctx), "aws_cognito_identity_pool": tableAwsCognitoIdentityPool(ctx), "aws_cognito_identity_provider": tableAwsCognitoIdentityProvider(ctx), + "aws_cognito_user_group": tableAwsCognitoUserGroup(ctx), "aws_cognito_user_pool": tableAwsCognitoUserPool(ctx), "aws_config_aggregate_authorization": tableAwsConfigAggregateAuthorization(ctx), "aws_config_configuration_recorder": tableAwsConfigConfigurationRecorder(ctx), @@ -171,11 +335,15 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_config_delivery_channel": tableAwsConfigDeliveryChannel(ctx), "aws_config_retention_configuration": tableAwsConfigRetentionConfiguration(ctx), "aws_config_rule": tableAwsConfigRule(ctx), + "aws_config_rule_compliance_detail": tableAwsConfigRuleComplianceDetail(ctx), "aws_cost_by_account_daily": tableAwsCostByLinkedAccountDaily(ctx), "aws_cost_by_account_monthly": tableAwsCostByLinkedAccountMonthly(ctx), "aws_cost_by_record_type_daily": tableAwsCostByRecordTypeDaily(ctx), "aws_cost_by_record_type_monthly": tableAwsCostByRecordTypeMonthly(ctx), "aws_cost_by_region_monthly": tableAwsCostByRegionMonthly(ctx), + "aws_cost_by_resource_daily": tableAwsCostByResourceDaily(ctx), + "aws_cost_by_resource_hourly": tableAwsCostByResourceHourly(ctx), + "aws_cost_by_resource_monthly": tableAwsCostByResourceMonthly(ctx), "aws_cost_by_service_daily": tableAwsCostByServiceDaily(ctx), "aws_cost_by_service_monthly": tableAwsCostByServiceMonthly(ctx), "aws_cost_by_service_usage_type_daily": tableAwsCostByServiceUsageTypeDaily(ctx), @@ -183,23 +351,24 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_cost_by_tag": tableAwsCostByTag(ctx), "aws_cost_forecast_daily": tableAwsCostForecastDaily(ctx), "aws_cost_forecast_monthly": tableAwsCostForecastMonthly(ctx), - "aws_costoptimizationhub_recommendation": tableAwsCostOptimizationHubRecommendation(ctx), "aws_cost_usage": tableAwsCostAndUsage(ctx), + "aws_costoptimizationhub_recommendation": tableAwsCostOptimizationHubRecommendation(ctx), + "aws_datasync_task": tableAwsDataSyncTask(ctx), "aws_dax_cluster": tableAwsDaxCluster(ctx), - "aws_dax_parameter": tableAwsDaxParameter(ctx), "aws_dax_parameter_group": tableAwsDaxParameterGroup(ctx), + "aws_dax_parameter": tableAwsDaxParameter(ctx), "aws_dax_subnet_group": tableAwsDaxSubnetGroup(ctx), "aws_directory_service_certificate": tableAwsDirectoryServiceCertificate(ctx), "aws_directory_service_directory": tableAwsDirectoryServiceDirectory(ctx), "aws_directory_service_log_subscription": tableAwsDirectoryServiceLogSubscription(ctx), - "aws_dms_endpoint": tableAwsDmsEndpoint(ctx), "aws_dlm_lifecycle_policy": tableAwsDLMLifecyclePolicy(ctx), "aws_dms_certificate": tableAwsDmsCertificate(ctx), + "aws_dms_endpoint": tableAwsDmsEndpoint(ctx), "aws_dms_replication_instance": tableAwsDmsReplicationInstance(ctx), "aws_dms_replication_task": tableAwsDmsReplicationTask(ctx), - "aws_docdb_cluster": tableAwsDocDBCluster(ctx), "aws_docdb_cluster_instance": tableAwsDocDBClusterInstance(ctx), "aws_docdb_cluster_snapshot": tableAwsDocDBClusterSnapshot(ctx), + "aws_docdb_cluster": tableAwsDocDBCluster(ctx), "aws_drs_job": tableAwsDRSJob(ctx), "aws_drs_recovery_instance": tableAwsDRSRecoveryInstance(ctx), "aws_drs_recovery_snapshot": tableAwsDRSRecoverySnapshot(ctx), @@ -208,77 +377,82 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_dynamodb_global_table": tableAwsDynamoDBGlobalTable(ctx), "aws_dynamodb_metric_account_provisioned_read_capacity_util": tableAwsDynamoDBMetricAccountProvisionedReadCapacityUtilization(ctx), "aws_dynamodb_metric_account_provisioned_write_capacity_util": tableAwsDynamoDBMetricAccountProvisionedWriteCapacityUtilization(ctx), - "aws_dynamodb_table": tableAwsDynamoDBTable(ctx), "aws_dynamodb_table_export": tableAwsDynamoDBTableExport(ctx), + "aws_dynamodb_table": tableAwsDynamoDBTable(ctx), "aws_ebs_snapshot": tableAwsEBSSnapshot(ctx), - "aws_ebs_volume": tableAwsEBSVolume(ctx), - "aws_ebs_volume_metric_read_ops": tableAwsEbsVolumeMetricReadOps(ctx), "aws_ebs_volume_metric_read_ops_daily": tableAwsEbsVolumeMetricReadOpsDaily(ctx), "aws_ebs_volume_metric_read_ops_hourly": tableAwsEbsVolumeMetricReadOpsHourly(ctx), - "aws_ebs_volume_metric_write_ops": tableAwsEbsVolumeMetricWriteOps(ctx), + "aws_ebs_volume_metric_read_ops": tableAwsEbsVolumeMetricReadOps(ctx), "aws_ebs_volume_metric_write_ops_daily": tableAwsEbsVolumeMetricWriteOpsDaily(ctx), "aws_ebs_volume_metric_write_ops_hourly": tableAwsEbsVolumeMetricWriteOpsHourly(ctx), - "aws_ec2_ami": tableAwsEc2Ami(ctx), + "aws_ebs_volume_metric_write_ops": tableAwsEbsVolumeMetricWriteOps(ctx), + "aws_ebs_volume": tableAwsEBSVolume(ctx), "aws_ec2_ami_shared": tableAwsEc2AmiShared(ctx), - "aws_ec2_application_load_balancer": tableAwsEc2ApplicationLoadBalancer(ctx), - "aws_ec2_application_load_balancer_metric_request_count": tableAwsEc2ApplicationLoadBalancerMetricRequestCount(ctx), + "aws_ec2_ami": tableAwsEc2Ami(ctx), "aws_ec2_application_load_balancer_metric_request_count_daily": tableAwsEc2ApplicationLoadBalancerMetricRequestCountDaily(ctx), + "aws_ec2_application_load_balancer_metric_request_count": tableAwsEc2ApplicationLoadBalancerMetricRequestCount(ctx), + "aws_ec2_application_load_balancer": tableAwsEc2ApplicationLoadBalancer(ctx), "aws_ec2_autoscaling_group": tableAwsEc2ASG(ctx), "aws_ec2_capacity_reservation": tableAwsEc2CapacityReservation(ctx), "aws_ec2_classic_load_balancer": tableAwsEc2ClassicLoadBalancer(ctx), "aws_ec2_client_vpn_endpoint": tableAwsEC2ClientVPNEndpoint(ctx), + "aws_ec2_fleet": tableAwsEc2Fleet(ctx), "aws_ec2_gateway_load_balancer": tableAwsEc2GatewayLoadBalancer(ctx), - "aws_ec2_load_balancer_listener_rule": tableAwsEc2ApplicationLoadBalancerListenerRule(ctx), - "aws_ec2_instance": tableAwsEc2Instance(ctx), "aws_ec2_instance_availability": tableAwsInstanceAvailability(ctx), - "aws_ec2_instance_metric_cpu_utilization": tableAwsEc2InstanceMetricCpuUtilization(ctx), "aws_ec2_instance_metric_cpu_utilization_daily": tableAwsEc2InstanceMetricCpuUtilizationDaily(ctx), "aws_ec2_instance_metric_cpu_utilization_hourly": tableAwsEc2InstanceMetricCpuUtilizationHourly(ctx), + "aws_ec2_instance_metric_cpu_utilization": tableAwsEc2InstanceMetricCpuUtilization(ctx), "aws_ec2_instance_type": tableAwsInstanceType(ctx), + "aws_ec2_instance": tableAwsEc2Instance(ctx), "aws_ec2_key_pair": tableAwsEc2KeyPair(ctx), "aws_ec2_launch_configuration": tableAwsEc2LaunchConfiguration(ctx), - "aws_ec2_launch_template": tableAwsEc2LaunchTemplate(ctx), "aws_ec2_launch_template_version": tableAwsEc2LaunchTemplateVersion(ctx), + "aws_ec2_launch_template": tableAwsEc2LaunchTemplate(ctx), + "aws_ec2_load_balancer_listener_rule": tableAwsEc2ApplicationLoadBalancerListenerRule(ctx), "aws_ec2_load_balancer_listener": tableAwsEc2ApplicationLoadBalancerListener(ctx), - "aws_ec2_managed_prefix_list": tableAwsEc2ManagedPrefixList(ctx), "aws_ec2_managed_prefix_list_entry": tableAwsEc2ManagedPrefixListEntry(ctx), + "aws_ec2_managed_prefix_list": tableAwsEc2ManagedPrefixList(ctx), "aws_ec2_network_interface": tableAwsEc2NetworkInterface(ctx), - "aws_ec2_network_load_balancer": tableAwsEc2NetworkLoadBalancer(ctx), - "aws_ec2_network_load_balancer_metric_net_flow_count": tableAwsEc2NetworkLoadBalancerMetricNetFlowCount(ctx), "aws_ec2_network_load_balancer_metric_net_flow_count_daily": tableAwsEc2NetworkLoadBalancerMetricNetFlowCountDaily(ctx), + "aws_ec2_network_load_balancer_metric_net_flow_count": tableAwsEc2NetworkLoadBalancerMetricNetFlowCount(ctx), + "aws_ec2_network_load_balancer": tableAwsEc2NetworkLoadBalancer(ctx), + "aws_ec2_placement_group": tableAwsEc2PlacementGroup(ctx), "aws_ec2_regional_settings": tableAwsEc2RegionalSettings(ctx), "aws_ec2_reserved_instance": tableAwsEc2ReservedInstance(ctx), + "aws_ec2_spot_fleet_request": tableAwsEc2SpotFleetRequest(ctx), "aws_ec2_spot_price": tableAwsEc2SpotPrice(ctx), "aws_ec2_ssl_policy": tableAwsEc2SslPolicy(ctx), "aws_ec2_target_group": tableAwsEc2TargetGroup(ctx), - "aws_ec2_transit_gateway": tableAwsEc2TransitGateway(ctx), - "aws_ec2_transit_gateway_route": tableAwsEc2TransitGatewayRoute(ctx), "aws_ec2_transit_gateway_route_table": tableAwsEc2TransitGatewayRouteTable(ctx), + "aws_ec2_transit_gateway_route": tableAwsEc2TransitGatewayRoute(ctx), "aws_ec2_transit_gateway_vpc_attachment": tableAwsEc2TransitGatewayVpcAttachment(ctx), - "aws_ecr_image": tableAwsEcrImage(ctx), + "aws_ec2_transit_gateway": tableAwsEc2TransitGateway(ctx), "aws_ecr_image_scan_finding": tableAwsEcrImageScanFinding(ctx), + "aws_ecr_image": tableAwsEcrImage(ctx), "aws_ecr_registry_scanning_configuration": tableAwsEcrRegistryScanningConfiguration(ctx), "aws_ecr_repository": tableAwsEcrRepository(ctx), "aws_ecrpublic_repository": tableAwsEcrpublicRepository(ctx), - "aws_ecs_cluster": tableAwsEcsCluster(ctx), - "aws_ecs_cluster_metric_cpu_utilization": tableAwsEcsClusterMetricCpuUtilization(ctx), "aws_ecs_cluster_metric_cpu_utilization_daily": tableAwsEcsClusterMetricCpuUtilizationDaily(ctx), "aws_ecs_cluster_metric_cpu_utilization_hourly": tableAwsEcsClusterMetricCpuUtilizationHourly(ctx), + "aws_ecs_cluster_metric_cpu_utilization": tableAwsEcsClusterMetricCpuUtilization(ctx), + "aws_ecs_cluster": tableAwsEcsCluster(ctx), "aws_ecs_container_instance": tableAwsEcsContainerInstance(ctx), "aws_ecs_service": tableAwsEcsService(ctx), - "aws_ecs_task": tableAwsEcsTask(ctx), "aws_ecs_task_definition": tableAwsEcsTaskDefinition(ctx), + "aws_ecs_task": tableAwsEcsTask(ctx), "aws_efs_access_point": tableAwsEfsAccessPoint(ctx), "aws_efs_file_system": tableAwsElasticFileSystem(ctx), "aws_efs_mount_target": tableAwsEfsMountTarget(ctx), - "aws_eks_addon": tableAwsEksAddon(ctx), + "aws_eks_access_entry": tableAwsEksAccessEntry(ctx), + "aws_eks_access_policy_association": tableAwsEksAccessPolicyAssociation(ctx), "aws_eks_addon_version": tableAwsEksAddonVersion(ctx), + "aws_eks_addon": tableAwsEksAddon(ctx), "aws_eks_cluster": tableAwsEksCluster(ctx), "aws_eks_fargate_profile": tableAwsEksFargateProfile(ctx), "aws_eks_identity_provider_config": tableAwsEksIdentityProviderConfig(ctx), "aws_eks_node_group": tableAwsEksNodeGroup(ctx), - "aws_elastic_beanstalk_application": tableAwsElasticBeanstalkApplication(ctx), "aws_elastic_beanstalk_application_version": tableAwsElasticBeanstalkApplicationVersion(ctx), + "aws_elastic_beanstalk_application": tableAwsElasticBeanstalkApplication(ctx), "aws_elastic_beanstalk_environment": tableAwsElasticBeanstalkEnvironment(ctx), "aws_elasticache_cluster": tableAwsElastiCacheCluster(ctx), "aws_elasticache_parameter_group": tableAwsElastiCacheParameterGroup(ctx), @@ -291,16 +465,18 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_elasticache_redis_metric_new_connections_hourly": tableAwsElasticacheRedisMetricNewConnectionsHourly(ctx), "aws_elasticache_replication_group": tableAwsElastiCacheReplicationGroup(ctx), "aws_elasticache_reserved_cache_node": tableAwsElastiCacheReservedCacheNode(ctx), + "aws_elasticache_serverless_cache": tableAwsElastiCacheServerlessCache(ctx), "aws_elasticache_subnet_group": tableAwsElastiCacheSubnetGroup(ctx), "aws_elasticache_update_action": tableAwsElastiCacheUpdateAction(ctx), "aws_elasticsearch_domain": tableAwsElasticsearchDomain(ctx), "aws_emr_block_public_access_configuration": tableAwsEmrBlockPublicAccessConfiguration(ctx), - "aws_emr_cluster": tableAwsEmrCluster(ctx), "aws_emr_cluster_metric_is_idle": tableAwsEmrClusterMetricIsIdle(ctx), - "aws_emr_instance": tableAwsEmrInstance(ctx), + "aws_emr_cluster": tableAwsEmrCluster(ctx), "aws_emr_instance_fleet": tableAwsEmrInstanceFleet(ctx), "aws_emr_instance_group": tableAwsEmrInstanceGroup(ctx), + "aws_emr_instance": tableAwsEmrInstance(ctx), "aws_emr_security_configuration": tableAwsEmrSecurityConfiguration(ctx), + "aws_emr_studio": tableAwsEmrStudio(ctx), "aws_eventbridge_bus": tableAwsEventBridgeBus(ctx), "aws_eventbridge_rule": tableAwsEventBridgeRule(ctx), "aws_fms_app_list": tableAwsFMSAppList(ctx), @@ -318,6 +494,7 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_glue_data_quality_ruleset": tableAwsGlueDataQualityRuleset(ctx), "aws_glue_dev_endpoint": tableAwsGlueDevEndpoint(ctx), "aws_glue_job": tableAwsGlueJob(ctx), + "aws_glue_ml_transform": tableAwsGlueMLTransform(ctx), "aws_glue_security_configuration": tableAwsGlueSecurityConfiguration(ctx), "aws_guardduty_detector": tableAwsGuardDutyDetector(ctx), "aws_guardduty_filter": tableAwsGuardDutyFilter(ctx), @@ -335,32 +512,34 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_iam_action": tableAwsIamAction(ctx), "aws_iam_credential_report": tableAwsIamCredentialReport(ctx), "aws_iam_group": tableAwsIamGroup(ctx), + "aws_iam_instance_profile": tableAwsIamInstanceProfile(ctx), "aws_iam_open_id_connect_provider": tableAwsIamOpenIdConnectProvider(ctx), - "aws_iam_policy": tableAwsIamPolicy(ctx), "aws_iam_policy_attachment": tableAwsIamPolicyAttachment(ctx), "aws_iam_policy_simulator": tableAwsIamPolicySimulator(ctx), + "aws_iam_policy": tableAwsIamPolicy(ctx), "aws_iam_role": tableAwsIamRole(ctx), "aws_iam_saml_provider": tableAwsIamSamlProvider(ctx), "aws_iam_server_certificate": tableAwsIamServerCertificate(ctx), "aws_iam_service_specific_credential": tableAwsIamUserServiceSpecificCredential(ctx), "aws_iam_user": tableAwsIamUser(ctx), "aws_iam_virtual_mfa_device": tableAwsIamVirtualMfaDevice(ctx), - "aws_identitystore_group": tableAwsIdentityStoreGroup(ctx), "aws_identitystore_group_membership": tableAwsIdentityStoreGroupMembership(ctx), + "aws_identitystore_group": tableAwsIdentityStoreGroup(ctx), "aws_identitystore_user": tableAwsIdentityStoreUser(ctx), - "aws_inspector2_coverage": tableAwsInspector2Coverage(ctx), - "aws_inspector2_coverage_statistics": tableAwsInspector2CoverageStatistics(ctx), - "aws_inspector2_finding": tableAwsInspector2Finding(ctx), - "aws_inspector2_member": tableAwsInspector2Member(ctx), "aws_inspector_assessment_run": tableAwsInspectorAssessmentRun(ctx), "aws_inspector_assessment_target": tableAwsInspectorAssessmentTarget(ctx), "aws_inspector_assessment_template": tableAwsInspectorAssessmentTemplate(ctx), "aws_inspector_exclusion": tableAwsInspectorExclusion(ctx), "aws_inspector_finding": tableAwsInspectorFinding(ctx), + "aws_inspector2_coverage_statistics": tableAwsInspector2CoverageStatistics(ctx), + "aws_inspector2_coverage": tableAwsInspector2Coverage(ctx), + "aws_inspector2_finding": tableAwsInspector2Finding(ctx), + "aws_inspector2_member": tableAwsInspector2Member(ctx), + "aws_inspector2_organization_configuration": tableAwsInspector2OrganizationConfiguration(ctx), "aws_iot_fleet_metric": tableAwsIoTFleetMetric(ctx), - "aws_iot_thing": tableAwsIoTThing(ctx), "aws_iot_thing_group": tableAwsIoTThingGroup(ctx), "aws_iot_thing_type": tableAwsIoTThingType(ctx), + "aws_iot_thing": tableAwsIoTThing(ctx), "aws_keyspaces_keyspace": tableAwsKeyspacesKeyspace(ctx), "aws_keyspaces_table": tableAwsKeyspacesTable(ctx), "aws_kinesis_consumer": tableAwsKinesisConsumer(ctx), @@ -369,41 +548,46 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_kinesis_video_stream": tableAwsKinesisVideoStream(ctx), "aws_kinesisanalyticsv2_application": tableAwsKinesisAnalyticsV2Application(ctx), "aws_kms_alias": tableAwsKmsAlias(ctx), - "aws_kms_key": tableAwsKmsKey(ctx), "aws_kms_key_rotation": tableAwsKmsKeyRotation(ctx), + "aws_kms_key": tableAwsKmsKey(ctx), "aws_lakeformation_permission": tableAwsLakeformationPermission(ctx), "aws_lakeformation_resource": tableAwsLakeformationResource(ctx), "aws_lakeformation_tag": tableAwsLakeformationTag(ctx), "aws_lambda_alias": tableAwsLambdaAlias(ctx), "aws_lambda_event_source_mapping": tableAwsLambdaEventSourceMapping(ctx), - "aws_lambda_function": tableAwsLambdaFunction(ctx), "aws_lambda_function_metric_duration_daily": tableAwsLambdaFunctionMetricDurationDaily(ctx), "aws_lambda_function_metric_errors_daily": tableAwsLambdaFunctionMetricErrorsDaily(ctx), "aws_lambda_function_metric_invocations_daily": tableAwsLambdaFunctionMetricInvocationsDaily(ctx), - "aws_lambda_layer": tableAwsLambdaLayer(ctx), + "aws_lambda_function": tableAwsLambdaFunction(ctx), "aws_lambda_layer_version": tableAwsLambdaLayerVersion(ctx), + "aws_lambda_layer": tableAwsLambdaLayer(ctx), "aws_lambda_version": tableAwsLambdaVersion(ctx), "aws_lightsail_bucket": tableAwsLightsailBucket(ctx), "aws_lightsail_instance": tableAwsLightsailInstance(ctx), "aws_macie2_classification_job": tableAwsMacie2ClassificationJob(ctx), + "aws_macie2_finding": tableAwsMacie2Finding(ctx), "aws_media_store_container": tableAwsMediaStoreContainer(ctx), "aws_memorydb_cluster": tableAwsMemoryDBCluster(ctx), "aws_mgn_application": tableAwsMGNApplication(ctx), "aws_mq_broker": tableAwsMQBroker(ctx), "aws_msk_cluster": tableAwsMSKCluster(ctx), "aws_msk_serverless_cluster": tableAwsMSKServerlessCluster(ctx), - "aws_neptune_db_cluster": tableAwsNeptuneDBCluster(ctx), + "aws_mskconnect_connector": tableAwsMSKConnectConnector(ctx), "aws_neptune_db_cluster_snapshot": tableAwsNeptuneDBClusterSnapshot(ctx), - "aws_networkfirewall_firewall": tableAwsNetworkFirewallFirewall(ctx), + "aws_neptune_db_cluster": tableAwsNeptuneDBCluster(ctx), "aws_networkfirewall_firewall_policy": tableAwsNetworkFirewallPolicy(ctx), + "aws_networkfirewall_firewall": tableAwsNetworkFirewallFirewall(ctx), "aws_networkfirewall_rule_group": tableAwsNetworkFirewallRuleGroup(ctx), "aws_oam_link": tableAwsOAMLink(ctx), "aws_oam_sink": tableAwsOAMSink(ctx), "aws_opensearch_domain": tableAwsOpenSearchDomain(ctx), + "aws_opensearch_reserved_instance": tableAwsOpenSearchReservedInstance(ctx), "aws_organizations_account": tableAwsOrganizationsAccount(ctx), + "aws_organizations_delegated_administrator": tableAwsOrganizationsDelegatedAdministrator(ctx), + "aws_organizations_delegated_services_for_account": tableAwsOrganizationsDelegatedServicesForAccount(ctx), "aws_organizations_organizational_unit": tableAwsOrganizationsOrganizationalUnit(ctx), - "aws_organizations_policy": tableAwsOrganizationsPolicy(ctx), "aws_organizations_policy_target": tableAwsOrganizationsPolicyTarget(ctx), + "aws_organizations_policy": tableAwsOrganizationsPolicy(ctx), "aws_organizations_root": tableAwsOrganizationsRoot(ctx), "aws_pinpoint_app": tableAwsPinpointApp(ctx), "aws_pipes_pipe": tableAwsPipes(ctx), @@ -418,35 +602,35 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_quicksight_vpc_connection": tableAwsQuickSightVpcConnection(ctx), "aws_ram_principal_association": tableAwsRAMPrincipalAssociation(ctx), "aws_ram_resource_association": tableAwsRAMResourceAssociation(ctx), - "aws_rds_db_cluster": tableAwsRDSDBCluster(ctx), "aws_rds_db_cluster_parameter_group": tableAwsRDSDBClusterParameterGroup(ctx), "aws_rds_db_cluster_snapshot": tableAwsRDSDBClusterSnapshot(ctx), + "aws_rds_db_cluster": tableAwsRDSDBCluster(ctx), "aws_rds_db_engine_version": tableAwsRDSDBEngineVersion(ctx), "aws_rds_db_event_subscription": tableAwsRDSDBEventSubscription(ctx), - "aws_rds_db_instance": tableAwsRDSDBInstance(ctx), "aws_rds_db_instance_automated_backup": tableAwsRDSDBInstanceAutomatedBackup(ctx), - "aws_rds_db_instance_metric_connections": tableAwsRdsInstanceMetricConnections(ctx), "aws_rds_db_instance_metric_connections_daily": tableAwsRdsInstanceMetricConnectionsDaily(ctx), "aws_rds_db_instance_metric_connections_hourly": tableAwsRdsInstanceMetricConnectionsHourly(ctx), - "aws_rds_db_instance_metric_cpu_utilization": tableAwsRdsInstanceMetricCpuUtilization(ctx), + "aws_rds_db_instance_metric_connections": tableAwsRdsInstanceMetricConnections(ctx), "aws_rds_db_instance_metric_cpu_utilization_daily": tableAwsRdsInstanceMetricCpuUtilizationDaily(ctx), "aws_rds_db_instance_metric_cpu_utilization_hourly": tableAwsRdsInstanceMetricCpuUtilizationHourly(ctx), - "aws_rds_db_instance_metric_read_iops": tableAwsRdsInstanceMetricReadIops(ctx), + "aws_rds_db_instance_metric_cpu_utilization": tableAwsRdsInstanceMetricCpuUtilization(ctx), "aws_rds_db_instance_metric_read_iops_daily": tableAwsRdsInstanceMetricReadIopsDaily(ctx), "aws_rds_db_instance_metric_read_iops_hourly": tableAwsRdsInstanceMetricReadIopsHourly(ctx), - "aws_rds_db_instance_metric_write_iops": tableAwsRdsInstanceMetricWriteIops(ctx), + "aws_rds_db_instance_metric_read_iops": tableAwsRdsInstanceMetricReadIops(ctx), "aws_rds_db_instance_metric_write_iops_daily": tableAwsRdsInstanceMetricWriteIopsDaily(ctx), "aws_rds_db_instance_metric_write_iops_hourly": tableAwsRdsInstanceMetricWriteIopsHourly(ctx), + "aws_rds_db_instance_metric_write_iops": tableAwsRdsInstanceMetricWriteIops(ctx), + "aws_rds_db_instance": tableAwsRDSDBInstance(ctx), "aws_rds_db_option_group": tableAwsRDSDBOptionGroup(ctx), "aws_rds_db_parameter_group": tableAwsRDSDBParameterGroup(ctx), "aws_rds_db_proxy": tableAwsRDSDBProxy(ctx), "aws_rds_db_recommendation": tableAwsRDSDBRecommendation(ctx), "aws_rds_db_snapshot": tableAwsRDSDBSnapshot(ctx), "aws_rds_db_subnet_group": tableAwsRDSDBSubnetGroup(ctx), - "aws_rds_reserved_db_instance": tableAwsRDSReservedDBInstance(ctx), "aws_rds_pending_maintenance_action": tableAwsRDSPendingMaintenanceAction(ctx), - "aws_redshift_cluster": tableAwsRedshiftCluster(ctx), + "aws_rds_reserved_db_instance": tableAwsRDSReservedDBInstance(ctx), "aws_redshift_cluster_metric_cpu_utilization_daily": tableAwsRedshiftClusterMetricCpuUtilizationDaily(ctx), + "aws_redshift_cluster": tableAwsRedshiftCluster(ctx), "aws_redshift_event_subscription": tableAwsRedshiftEventSubscription(ctx), "aws_redshift_parameter_group": tableAwsRedshiftParameterGroup(ctx), "aws_redshift_snapshot": tableAwsRedshiftSnapshot(ctx), @@ -455,8 +639,11 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_redshiftserverless_workgroup": tableAwsRedshiftServerlessWorkgroup(ctx), "aws_region": tableAwsRegion(ctx), "aws_resource_explorer_index": tableAWSResourceExplorerIndex(ctx), + "aws_resource_explorer_resource": tableAwsResourceExplorerResource(ctx), "aws_resource_explorer_search": tableAWSResourceExplorerSearch(ctx), "aws_resource_explorer_supported_resource_type": tableAWSResourceExplorerSupportedResourceType(ctx), + "aws_rolesanywhere_profile": tableAwsRolesAnywhereProfile(ctx), + "aws_rolesanywhere_trust_anchor": tableAwsRolesAnywhereTrustAnchor(ctx), "aws_route53_domain": tableAwsRoute53Domain(ctx), "aws_route53_health_check": tableAwsRoute53HealthCheck(ctx), "aws_route53_query_log": tableAwsRoute53QueryLog(ctx), @@ -464,79 +651,90 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_route53_resolver_endpoint": tableAwsRoute53ResolverEndpoint(ctx), "aws_route53_resolver_query_log_config": tableAwsRoute53ResolverQueryLogConfig(ctx), "aws_route53_resolver_rule": tableAwsRoute53ResolverRule(ctx), - "aws_route53_traffic_policy": tableAwsRoute53TrafficPolicy(ctx), "aws_route53_traffic_policy_instance": tableAwsRoute53TrafficPolicyInstance(ctx), + "aws_route53_traffic_policy": tableAwsRoute53TrafficPolicy(ctx), "aws_route53_vpc_association_authorization": tableAwsRoute53VPCAssociationAuthorization(ctx), "aws_route53_zone": tableAwsRoute53Zone(ctx), "aws_s3_access_point": tableAwsS3AccessPoint(ctx), "aws_s3_account_settings": tableAwsS3AccountSettings(ctx), - "aws_s3_bucket": tableAwsS3Bucket(ctx), "aws_s3_bucket_intelligent_tiering_configuration": tableAwsS3BucketIntelligentTieringConfiguration(ctx), + "aws_s3_bucket": tableAwsS3Bucket(ctx), + "aws_s3_directory_bucket": tableAwsS3DirectoryBucket(ctx), "aws_s3_multi_region_access_point": tableAwsS3MultiRegionAccessPoint(ctx), "aws_s3_multipart_upload": tableAwsS3MultipartUpload(ctx), - "aws_s3_object": tableAwsS3Object(ctx), "aws_s3_object_version": tableAwsS3ObjectVersion(ctx), + "aws_s3_object": tableAwsS3Object(ctx), + "aws_s3tables_namespace": tableAwsS3tablesNamespace(ctx), + "aws_s3tables_table_bucket": tableAwsS3tablesTableBucket(ctx), + "aws_s3tables_table": tableAwsS3tablesTable(ctx), "aws_sagemaker_app": tableAwsSageMakerApp(ctx), "aws_sagemaker_domain": tableAwsSageMakerDomain(ctx), "aws_sagemaker_endpoint_configuration": tableAwsSageMakerEndpointConfiguration(ctx), "aws_sagemaker_model": tableAwsSageMakerModel(ctx), "aws_sagemaker_notebook_instance": tableAwsSageMakerNotebookInstance(ctx), "aws_sagemaker_training_job": tableAwsSageMakerTrainingJob(ctx), + "aws_savingsplans_savings_plan": tableAwsSavingsPlan(ctx), "aws_scheduler_schedule": tableAwsSchedulerSchedule(ctx), "aws_secretsmanager_secret": tableAwsSecretsManagerSecret(ctx), "aws_securityhub_action_target": tableAwsSecurityHubActionTarget(ctx), - "aws_securityhub_finding": tableAwsSecurityHubFinding(ctx), + "aws_securityhub_enabled_product_subscription": tableAwsSecurityhubEnabledProductSubscription(ctx), "aws_securityhub_finding_aggregator": tableAwsSecurityHubFindingAggregator(ctx), + "aws_securityhub_finding": tableAwsSecurityHubFinding(ctx), "aws_securityhub_hub": tableAwsSecurityHub(ctx), "aws_securityhub_insight": tableAwsSecurityHubInsight(ctx), "aws_securityhub_member": tableAwsSecurityHubMember(ctx), - "aws_securityhub_enabled_product_subscription": tableAwsSecurityhubEnabledProductSubscription(ctx), "aws_securityhub_product": tableAwsSecurityhubProduct(ctx), "aws_securityhub_standards_control": tableAwsSecurityHubStandardsControl(ctx), "aws_securityhub_standards_subscription": tableAwsSecurityHubStandardsSubscription(ctx), "aws_securitylake_data_lake": tableAwsSecurityLakeDataLake(ctx), "aws_securitylake_subscriber": tableAwsSecurityLakeSubscriber(ctx), "aws_serverlessapplicationrepository_application": tableAwsServerlessApplicationRepositoryApplication(ctx), - "aws_servicecatalog_portfolio": tableAwsServicecatalogPortfolio(ctx), - "aws_servicecatalog_product": tableAwsServicecatalogProduct(ctx), - "aws_servicecatalog_provisioned_product": tableAwsServicecatalogProvisionedProduct(ctx), "aws_service_discovery_instance": tableAwsServiceDiscoveryInstance(ctx), "aws_service_discovery_namespace": tableAwsServiceDiscoveryNamespace(ctx), "aws_service_discovery_service": tableAwsServiceDiscoveryService(ctx), + "aws_servicecatalog_portfolio": tableAwsServicecatalogPortfolio(ctx), + "aws_servicecatalog_portfolio_share": tableAwsServicecatalogPortfolioShare(ctx), + "aws_servicecatalog_product": tableAwsServicecatalogProduct(ctx), + "aws_servicecatalog_provisioned_product": tableAwsServicecatalogProvisionedProduct(ctx), + "aws_servicequotas_auto_management_configuration": tableAwsServiceQuotasAutoManagementConfiguration(ctx), "aws_servicequotas_default_service_quota": tableAwsServiceQuotasDefaultServiceQuota(ctx), - "aws_servicequotas_service": tableAwsServiceQuotasService(ctx), - "aws_servicequotas_service_quota": tableAwsServiceQuotasServiceQuota(ctx), "aws_servicequotas_service_quota_change_request": tableAwsServiceQuotasServiceQuotaChangeRequest(ctx), + "aws_servicequotas_service_quota": tableAwsServiceQuotasServiceQuota(ctx), + "aws_servicequotas_service": tableAwsServiceQuotasService(ctx), "aws_ses_domain_identity": tableAwsSESDomainIdentity(ctx), "aws_ses_email_identity": tableAwsSESEmailIdentity(ctx), - "aws_sfn_state_machine": tableAwsStepFunctionsStateMachine(ctx), - "aws_sfn_state_machine_execution": tableAwsStepFunctionsStateMachineExecution(ctx), + "aws_ses_template": tableAwsSESTemplate(ctx), + "aws_sesv2_suppressed_destination": tableAwsSesV2SuppressedDestination(ctx), "aws_sfn_state_machine_execution_history": tableAwsStepFunctionsStateMachineExecutionHistory(ctx), - "aws_shield_attack": tableAwsShieldAttack(ctx), + "aws_sfn_state_machine_execution": tableAwsStepFunctionsStateMachineExecution(ctx), + "aws_sfn_state_machine": tableAwsStepFunctionsStateMachine(ctx), "aws_shield_attack_statistic": tableAwsShieldAttackStatistic(ctx), + "aws_shield_attack": tableAwsShieldAttack(ctx), "aws_shield_drt_access": tableAwsShieldDRTAccess(ctx), "aws_shield_emergency_contact": tableAwsShieldEmergencyContact(ctx), - "aws_shield_protection": tableAwsShieldProtection(ctx), "aws_shield_protection_group": tableAwsShieldProtectionGroup(ctx), + "aws_shield_protection": tableAwsShieldProtection(ctx), "aws_shield_subscription": tableAwsShieldSubscription(ctx), "aws_simspaceweaver_simulation": tableAwsSimSpaceWeaverSimulation(ctx), "aws_sns_subscription": tableAwsSnsSubscription(ctx), - "aws_sns_topic": tableAwsSnsTopic(ctx), "aws_sns_topic_subscription": tableAwsSnsTopicSubscription(ctx), + "aws_sns_topic": tableAwsSnsTopic(ctx), "aws_sqs_queue": tableAwsSqsQueue(ctx), "aws_ssm_association": tableAwsSSMAssociation(ctx), - "aws_ssm_document": tableAwsSSMDocument(ctx), "aws_ssm_document_permission": tableAwsSSMDocumentPermission(ctx), - "aws_ssm_inventory": tableAwsSSMInventory(ctx), + "aws_ssm_document": tableAwsSSMDocument(ctx), "aws_ssm_inventory_entry": tableAwsSSMInventoryEntry(ctx), + "aws_ssm_inventory": tableAwsSSMInventory(ctx), "aws_ssm_maintenance_window": tableAwsSSMMaintenanceWindow(ctx), - "aws_ssm_managed_instance": tableAwsSSMManagedInstance(ctx), "aws_ssm_managed_instance_compliance": tableAwsSSMManagedInstanceCompliance(ctx), "aws_ssm_managed_instance_patch_state": tableAwsSSMManagedInstancePatchState(ctx), + "aws_ssm_managed_instance": tableAwsSSMManagedInstance(ctx), "aws_ssm_parameter": tableAwsSSMParameter(ctx), "aws_ssm_patch_baseline": tableAwsSSMPatchBaseline(ctx), + "aws_ssm_service_setting": tableAwsSSMServiceSetting(ctx), "aws_ssmincidents_response_plan": tableAwsSSMIncidentsResponseaPlan(ctx), "aws_ssoadmin_account_assignment": tableAwsSsoAdminAccountAssignment(ctx), + "aws_ssoadmin_customer_policy_attachment": tableAwsSsoAdminCustomerPolicyAttachment(ctx), "aws_ssoadmin_instance": tableAwsSsoAdminInstance(ctx), "aws_ssoadmin_managed_policy_attachment": tableAwsSsoAdminManagedPolicyAttachment(ctx), "aws_ssoadmin_permission_set": tableAwsSsoAdminPermissionSet(ctx), @@ -544,28 +742,31 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_tagging_resource": tableAwsTaggingResource(ctx), "aws_timestreamwrite_database": tableAwsTimestreamwriteDatabase(ctx), "aws_timestreamwrite_table": tableAwsTimestreamwriteTable(ctx), + "aws_transfer_connector": tableAwsTransferConnector(ctx), "aws_transfer_server": tableAwsTransferServer(ctx), "aws_transfer_user": tableAwsTransferUser(ctx), + "aws_trusted_advisor_check_result": tableAwsTrustedAdvisorCheckResult(ctx), "aws_trusted_advisor_check_summary": tableAwsTrustedAdvisorCheckSummary(ctx), - "aws_vpc": tableAwsVpc(ctx), + "aws_vpc_block_public_access_options": tableAwsVpcBlockPublicAccessOptions(ctx), "aws_vpc_customer_gateway": tableAwsVpcCustomerGateway(ctx), "aws_vpc_dhcp_options": tableAwsVpcDhcpOptions(ctx), "aws_vpc_egress_only_internet_gateway": tableAwsVpcEgressOnlyIGW(ctx), - "aws_vpc_eip": tableAwsVpcEip(ctx), "aws_vpc_eip_address_transfer": tableAwsVpcEipAddressTransfer(ctx), - "aws_vpc_endpoint": tableAwsVpcEndpoint(ctx), + "aws_vpc_eip": tableAwsVpcEip(ctx), "aws_vpc_endpoint_service": tableAwsVpcEndpointService(ctx), - "aws_vpc_flow_log": tableAwsVpcFlowlog(ctx), + "aws_vpc_endpoint": tableAwsVpcEndpoint(ctx), "aws_vpc_flow_log_event": tableAwsVpcFlowLogEvent(ctx), + "aws_vpc_flow_log": tableAwsVpcFlowlog(ctx), "aws_vpc_internet_gateway": tableAwsVpcInternetGateway(ctx), - "aws_vpc_nat_gateway": tableAwsVpcNatGateway(ctx), "aws_vpc_nat_gateway_metric_bytes_out_to_destination": tableAwsVpcNatGatewayMetricBytesOutToDestination(ctx), + "aws_vpc_nat_gateway": tableAwsVpcNatGateway(ctx), "aws_vpc_network_acl": tableAwsVpcNetworkACL(ctx), "aws_vpc_peering_connection": tableAwsVpcPeeringConnection(ctx), - "aws_vpc_route": tableAwsVpcRoute(ctx), "aws_vpc_route_table": tableAwsVpcRouteTable(ctx), - "aws_vpc_security_group": tableAwsVpcSecurityGroup(ctx), + "aws_vpc_route": tableAwsVpcRoute(ctx), "aws_vpc_security_group_rule": tableAwsVpcSecurityGroupRule(ctx), + "aws_vpc_security_group": tableAwsVpcSecurityGroup(ctx), + "aws_vpc_security_group_vpc_association": tableAwsVpcSecurityGroupVpcAssociation(ctx), "aws_vpc_subnet": tableAwsVpcSubnet(ctx), "aws_vpc_verified_access_endpoint": tableAwsVpcVerifiedAccessEndpoint(ctx), "aws_vpc_verified_access_group": tableAwsVpcVerifiedAccessGroup(ctx), @@ -573,12 +774,13 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_vpc_verified_access_trust_provider": tableAwsVpcVerifiedAccessTrustProvider(ctx), "aws_vpc_vpn_connection": tableAwsVpcVpnConnection(ctx), "aws_vpc_vpn_gateway": tableAwsVpcVpnGateway(ctx), + "aws_vpc": tableAwsVpc(ctx), "aws_waf_rate_based_rule": tableAwsWafRateBasedRule(ctx), - "aws_waf_rule": tableAwsWAFRule(ctx), "aws_waf_rule_group": tableAwsWafRuleGroup(ctx), + "aws_waf_rule": tableAwsWAFRule(ctx), "aws_waf_web_acl": tableAwsWafWebAcl(ctx), - "aws_wafregional_rule": tableAwsWAFRegionalRule(ctx), "aws_wafregional_rule_group": tableAwsWafRegionalRuleGroup(ctx), + "aws_wafregional_rule": tableAwsWAFRegionalRule(ctx), "aws_wafregional_web_acl": tableAwsWafRegionalWebAcl(ctx), "aws_wafv2_ip_set": tableAwsWafv2IpSet(ctx), "aws_wafv2_regex_pattern_set": tableAwsWafv2RegexPatternSet(ctx), @@ -588,16 +790,16 @@ func Plugin(ctx context.Context) *plugin.Plugin { "aws_wellarchitected_check_detail": tableAwsWellArchitectedCheckDetail(ctx), "aws_wellarchitected_check_summary": tableAwsWellArchitectedCheckSummary(ctx), "aws_wellarchitected_consolidated_report": tableAwsWellArchitectedConsolidatedReport(ctx), - "aws_wellarchitected_lens": tableAwsWellArchitectedLens(ctx), - "aws_wellarchitected_lens_review": tableAwsWellArchitectedLensReview(ctx), "aws_wellarchitected_lens_review_improvement": tableAwsWellArchitectedLensReviewImprovement(ctx), "aws_wellarchitected_lens_review_report": tableAwsWellArchitectedLensReviewReport(ctx), + "aws_wellarchitected_lens_review": tableAwsWellArchitectedLensReview(ctx), "aws_wellarchitected_lens_share": tableAwsWellArchitectedLensShare(ctx), + "aws_wellarchitected_lens": tableAwsWellArchitectedLens(ctx), "aws_wellarchitected_milestone": tableAwsWellArchitectedMilestone(ctx), "aws_wellarchitected_notification": tableAwsWellArchitectedNotification(ctx), "aws_wellarchitected_share_invitation": tableAwsWellArchitectedShareInvitation(ctx), - "aws_wellarchitected_workload": tableAwsWellArchitectedWorkload(ctx), "aws_wellarchitected_workload_share": tableAwsWellArchitectedWorkloadShare(ctx), + "aws_wellarchitected_workload": tableAwsWellArchitectedWorkload(ctx), "aws_workspaces_directory": tableAwsWorkspacesDirectory(ctx), "aws_workspaces_workspace": tableAwsWorkspace(ctx), }, diff --git a/aws/service.go b/aws/service.go index ec55169b5..a8cefeae8 100644 --- a/aws/service.go +++ b/aws/service.go @@ -34,6 +34,10 @@ import ( "github.com/aws/aws-sdk-go-v2/service/auditmanager" "github.com/aws/aws-sdk-go-v2/service/autoscaling" "github.com/aws/aws-sdk-go-v2/service/backup" + "github.com/aws/aws-sdk-go-v2/service/batch" + "github.com/aws/aws-sdk-go-v2/service/bedrock" + "github.com/aws/aws-sdk-go-v2/service/bedrockagent" + "github.com/aws/aws-sdk-go-v2/service/budgets" "github.com/aws/aws-sdk-go-v2/service/cloudcontrol" "github.com/aws/aws-sdk-go-v2/service/cloudformation" "github.com/aws/aws-sdk-go-v2/service/cloudfront" @@ -50,9 +54,11 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cognitoidentity" "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider" "github.com/aws/aws-sdk-go-v2/service/configservice" + "github.com/aws/aws-sdk-go-v2/service/connect" "github.com/aws/aws-sdk-go-v2/service/costexplorer" "github.com/aws/aws-sdk-go-v2/service/costoptimizationhub" "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice" + "github.com/aws/aws-sdk-go-v2/service/datasync" "github.com/aws/aws-sdk-go-v2/service/dax" "github.com/aws/aws-sdk-go-v2/service/directoryservice" "github.com/aws/aws-sdk-go-v2/service/dlm" @@ -86,6 +92,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector2" "github.com/aws/aws-sdk-go-v2/service/iot" "github.com/aws/aws-sdk-go-v2/service/kafka" + "github.com/aws/aws-sdk-go-v2/service/kafkaconnect" "github.com/aws/aws-sdk-go-v2/service/keyspaces" "github.com/aws/aws-sdk-go-v2/service/kinesis" "github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2" @@ -114,12 +121,15 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshiftserverless" "github.com/aws/aws-sdk-go-v2/service/resourceexplorer2" "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi" + "github.com/aws/aws-sdk-go-v2/service/rolesanywhere" "github.com/aws/aws-sdk-go-v2/service/route53" "github.com/aws/aws-sdk-go-v2/service/route53domains" "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3control" + "github.com/aws/aws-sdk-go-v2/service/s3tables" "github.com/aws/aws-sdk-go-v2/service/sagemaker" + "github.com/aws/aws-sdk-go-v2/service/savingsplans" "github.com/aws/aws-sdk-go-v2/service/scheduler" "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/aws/aws-sdk-go-v2/service/securityhub" @@ -129,6 +139,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicediscovery" "github.com/aws/aws-sdk-go-v2/service/servicequotas" "github.com/aws/aws-sdk-go-v2/service/ses" + "github.com/aws/aws-sdk-go-v2/service/sesv2" "github.com/aws/aws-sdk-go-v2/service/sfn" "github.com/aws/aws-sdk-go-v2/service/shield" "github.com/aws/aws-sdk-go-v2/service/simspaceweaver" @@ -153,73 +164,6 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/memoize" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "golang.org/x/sync/semaphore" - - amplifyEndpoint "github.com/aws/aws-sdk-go/service/amplify" - apigatewayv2Endpoint "github.com/aws/aws-sdk-go/service/apigatewayv2" - appRunnerEndpoint "github.com/aws/aws-sdk-go/service/apprunner" - appsyncv2Endpoint "github.com/aws/aws-sdk-go/service/appsync" - auditmanagerEndpoint "github.com/aws/aws-sdk-go/service/auditmanager" - backupEndpoint "github.com/aws/aws-sdk-go/service/backup" - cloudsearchEndpoint "github.com/aws/aws-sdk-go/service/cloudsearch" - codeartifactEndpoint "github.com/aws/aws-sdk-go/service/codeartifact" - codebuildEndpoint "github.com/aws/aws-sdk-go/service/codebuild" - codecommitEndpoint "github.com/aws/aws-sdk-go/service/codecommit" - codepipelineEndpoint "github.com/aws/aws-sdk-go/service/codepipeline" - cognitoidentityEndpoint "github.com/aws/aws-sdk-go/service/cognitoidentity" - cognitoidentityproviderEndpoint "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" - daxEndpoint "github.com/aws/aws-sdk-go/service/dax" - directoryserviceEndpoint "github.com/aws/aws-sdk-go/service/directoryservice" - dlmEndpoint "github.com/aws/aws-sdk-go/service/dlm" - drsEndpoint "github.com/aws/aws-sdk-go/service/drs" - dynamodbEndpoint "github.com/aws/aws-sdk-go/service/dynamodb" - eksEndpoint "github.com/aws/aws-sdk-go/service/eks" - elasticbeanstalkEndpoint "github.com/aws/aws-sdk-go/service/elasticbeanstalk" - emrEndpoint "github.com/aws/aws-sdk-go/service/emr" - eventbridgeEndpoint "github.com/aws/aws-sdk-go/service/eventbridge" - fsxEndpoint "github.com/aws/aws-sdk-go/service/fsx" - glacierEndpoint "github.com/aws/aws-sdk-go/service/glacier" - healthEndpoint "github.com/aws/aws-sdk-go/service/health" - inspectorEndpoint "github.com/aws/aws-sdk-go/service/inspector" - inspector2Endpoint "github.com/aws/aws-sdk-go/service/inspector2" - iotEndpoint "github.com/aws/aws-sdk-go/service/iot" - kafkaEndpoint "github.com/aws/aws-sdk-go/service/kafka" - keyspacesEndpoint "github.com/aws/aws-sdk-go/service/keyspaces" - kinesisanalyticsv2Endpoint "github.com/aws/aws-sdk-go/service/kinesisanalyticsv2" - kinesisvideoEndpoint "github.com/aws/aws-sdk-go/service/kinesisvideo" - kmsEndpoint "github.com/aws/aws-sdk-go/service/kms" - lambdaEndpoint "github.com/aws/aws-sdk-go/service/lambda" - lightsailEndpoint "github.com/aws/aws-sdk-go/service/lightsail" - macie2Endpoint "github.com/aws/aws-sdk-go/service/macie2" - mediastoreEndpoint "github.com/aws/aws-sdk-go/service/mediastore" - memoryDBEndpoint "github.com/aws/aws-sdk-go/service/memorydb" - mgnEndpoint "github.com/aws/aws-sdk-go/service/mgn" - mqEndpoint "github.com/aws/aws-sdk-go/service/mq" - networkfirewallEndpoint "github.com/aws/aws-sdk-go/service/networkfirewall" - oamEndpoint "github.com/aws/aws-sdk-go/service/oam" - pinpointEndpoint "github.com/aws/aws-sdk-go/service/pinpoint" - pipesEndpoint "github.com/aws/aws-sdk-go/service/pipes" - pricingEndpoint "github.com/aws/aws-sdk-go/service/pricing" - rdsEndpoint "github.com/aws/aws-sdk-go/service/rds" - redshiftserverlessEndpoint "github.com/aws/aws-sdk-go/service/redshiftserverless" - resourceexplorer2Endpoint "github.com/aws/aws-sdk-go/service/resourceexplorer2" - route53resolverEndpoint "github.com/aws/aws-sdk-go/service/route53resolver" - sagemakerEndpoint "github.com/aws/aws-sdk-go/service/sagemaker" - schedulerEndpoint "github.com/aws/aws-sdk-go/service/scheduler" - securityhubEndpoint "github.com/aws/aws-sdk-go/service/securityhub" - securitylakeEndpoint "github.com/aws/aws-sdk-go/service/securitylake" - serverlessrepoEndpoint "github.com/aws/aws-sdk-go/service/serverlessapplicationrepository" - servicequotasEndpoint "github.com/aws/aws-sdk-go/service/servicequotas" - sesEndpoint "github.com/aws/aws-sdk-go/service/ses" - simspaceWeaverEndpoint "github.com/aws/aws-sdk-go/service/simspaceweaver" - ssmEndpoint "github.com/aws/aws-sdk-go/service/ssm" - ssmIncidentsEndpoint "github.com/aws/aws-sdk-go/service/ssmincidents" - ssoEndpoint "github.com/aws/aws-sdk-go/service/sso" - timestreamwriteEndpoint "github.com/aws/aws-sdk-go/service/timestreamwrite" - transferEndpoint "github.com/aws/aws-sdk-go/service/transfer" - wafregionalEndpoint "github.com/aws/aws-sdk-go/service/wafregional" - wafv2Endpoint "github.com/aws/aws-sdk-go/service/wafv2" - wellarchitectedEndpoint "github.com/aws/aws-sdk-go/service/wellarchitected" - workspacesEndpoint "github.com/aws/aws-sdk-go/service/workspaces" ) // https://github.com/aws/aws-sdk-go-v2/issues/543 @@ -267,7 +211,7 @@ func ACMPCAClient(ctx context.Context, d *plugin.QueryData) (*acmpca.Client, err } func AmplifyClient(ctx context.Context, d *plugin.QueryData) (*amplify.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, amplifyEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_AMPLIFY_SERVICE_ID) if err != nil { return nil, err } @@ -298,7 +242,7 @@ func APIGatewayV2Client(ctx context.Context, d *plugin.QueryData) (*apigatewayv2 "eu-south-2", // Spain "il-central-1", // Israel (Tel Aviv) } - cfg, err := getClientForQuerySupportedRegionWithExclusions(ctx, d, apigatewayv2Endpoint.EndpointsID, excludeRegions) + cfg, err := getClientForQuerySupportedRegionWithExclusions(ctx, d, AWS_APIGATEWAY_SERVICE_ID, excludeRegions) if err != nil { return nil, err } @@ -325,7 +269,7 @@ func ApplicationAutoScalingClient(ctx context.Context, d *plugin.QueryData) (*ap } func AppRunnerClient(ctx context.Context, d *plugin.QueryData) (*apprunner.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, appRunnerEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_APPRUNNER_SERVICE_ID) if err != nil { return nil, err } @@ -344,7 +288,7 @@ func AppStreamClient(ctx context.Context, d *plugin.QueryData) (*appstream.Clien } func AppSyncClient(ctx context.Context, d *plugin.QueryData) (*appsync.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, appsyncv2Endpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_APPSYNC_SERVICE_ID) if err != nil { return nil, err } @@ -363,7 +307,7 @@ func AthenaClient(ctx context.Context, d *plugin.QueryData) (*athena.Client, err } func AuditManagerClient(ctx context.Context, d *plugin.QueryData) (*auditmanager.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, auditmanagerEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_AUDITMANAGER_SERVICE_ID) if err != nil { return nil, err } @@ -382,7 +326,7 @@ func AutoScalingClient(ctx context.Context, d *plugin.QueryData) (*autoscaling.C } func BackupClient(ctx context.Context, d *plugin.QueryData) (*backup.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, backupEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_BACKUP_SERVICE_ID) if err != nil { return nil, err } @@ -392,6 +336,46 @@ func BackupClient(ctx context.Context, d *plugin.QueryData) (*backup.Client, err return backup.NewFromConfig(*cfg), nil } +func BatchClient(ctx context.Context, d *plugin.QueryData) (*batch.Client, error) { + conf, err := getClientForQuerySupportedRegion(ctx, d, AWS_BATCH_SERVICE_ID) + if err != nil { + return nil, err + } + + if conf == nil { + return nil, nil + } + + client := batch.NewFromConfig(*conf) + return client, nil +} + +// BedrockClient returns the service client for AWS Bedrock service +func BedrockClient(ctx context.Context, d *plugin.QueryData) (*bedrock.Client, error) { + // Get client config + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_BEDROCK_SERVICE_ID) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return bedrock.NewFromConfig(*cfg), nil +} + +// BedrockAgentClient returns the service client for AWS Bedrock Agent service +func BedrockAgentClient(ctx context.Context, d *plugin.QueryData) (*bedrockagent.Client, error) { + // Get client config + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_BEDROCK_SERVICE_ID) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return bedrockagent.NewFromConfig(*cfg), nil +} + func CloudControlClient(ctx context.Context, d *plugin.QueryData) (*cloudcontrol.Client, error) { // CloudControl returns GeneralServiceException in a lot of situations, which // AWS SDK treats as retryable. This is frustrating because we end up retrying @@ -409,7 +393,7 @@ func CloudControlClient(ctx context.Context, d *plugin.QueryData) (*cloudcontrol } func CodeCommitClient(ctx context.Context, d *plugin.QueryData) (*codecommit.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, codecommitEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CODECOMMIT_SERVICE_ID) if err != nil { return nil, err } @@ -441,7 +425,7 @@ func CloudFrontClient(ctx context.Context, d *plugin.QueryData) (*cloudfront.Cli } func CloudSearchClient(ctx context.Context, d *plugin.QueryData) (*cloudsearch.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, cloudsearchEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CLOUDSEARCH_SERVICE_ID) if err != nil { return nil, err } @@ -487,7 +471,7 @@ func CloudWatchLogsClient(ctx context.Context, d *plugin.QueryData) (*cloudwatch } func CodeArtifactClient(ctx context.Context, d *plugin.QueryData) (*codeartifact.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, codeartifactEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CODEARTIFACT_SERVICE_ID) if err != nil { return nil, err } @@ -498,7 +482,7 @@ func CodeArtifactClient(ctx context.Context, d *plugin.QueryData) (*codeartifact } func CodeBuildClient(ctx context.Context, d *plugin.QueryData) (*codebuild.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, codebuildEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CODEBUILD_SERVICE_ID) if err != nil { return nil, err } @@ -517,7 +501,7 @@ func CodeDeployClient(ctx context.Context, d *plugin.QueryData) (*codedeploy.Cli } func CodePipelineClient(ctx context.Context, d *plugin.QueryData) (*codepipeline.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, codepipelineEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CODEPIPELINE_SERVICE_ID) if err != nil { return nil, err } @@ -536,7 +520,7 @@ func CodeStarNotificationsClient(ctx context.Context, d *plugin.QueryData) (*cod } func CognitoIdentityClient(ctx context.Context, d *plugin.QueryData) (*cognitoidentity.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, cognitoidentityEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_COGNITO_IDENTITY_SERVICE_ID) if err != nil { return nil, err } @@ -547,7 +531,7 @@ func CognitoIdentityClient(ctx context.Context, d *plugin.QueryData) (*cognitoid } func CognitoIdentityProviderClient(ctx context.Context, d *plugin.QueryData) (*cognitoidentityprovider.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, cognitoidentityproviderEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_COGNITO_IDP_SERVICE_ID) if err != nil { return nil, err } @@ -565,6 +549,27 @@ func ConfigClient(ctx context.Context, d *plugin.QueryData) (*configservice.Clie return configservice.NewFromConfig(*cfg), nil } +func ConnectClient(ctx context.Context, d *plugin.QueryData) (*connect.Client, error) { + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CONNECT_SERVICE_ID) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return connect.NewFromConfig(*cfg), nil +} + +func BudgetsClient(ctx context.Context, d *plugin.QueryData) (*budgets.Client, error) { + // AWS Budgets is a global service. + // https://docs.aws.amazon.com/general/latest/gr/billing.html + cfg, err := getClientForDefaultRegion(ctx, d) + if err != nil { + return nil, err + } + return budgets.NewFromConfig(*cfg), nil +} + func CostExplorerClient(ctx context.Context, d *plugin.QueryData) (*costexplorer.Client, error) { // Cost Explorer is a global service that operates from a single // region (ce.us-east-1.amazonaws.com). @@ -595,7 +600,7 @@ func DatabaseMigrationClient(ctx context.Context, d *plugin.QueryData) (*databas } func DAXClient(ctx context.Context, d *plugin.QueryData) (*dax.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, daxEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_DAX_SERVICE_ID) if err != nil { return nil, err } @@ -606,7 +611,7 @@ func DAXClient(ctx context.Context, d *plugin.QueryData) (*dax.Client, error) { } func DirectoryServiceClient(ctx context.Context, d *plugin.QueryData) (*directoryservice.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, directoryserviceEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_DS_SERVICE_ID) if err != nil { return nil, err } @@ -617,7 +622,7 @@ func DirectoryServiceClient(ctx context.Context, d *plugin.QueryData) (*director } func DLMClient(ctx context.Context, d *plugin.QueryData) (*dlm.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, dlmEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_DLM_SERVICE_ID) if err != nil { return nil, err } @@ -636,7 +641,7 @@ func DocDBClient(ctx context.Context, d *plugin.QueryData) (*docdb.Client, error } func DRSClient(ctx context.Context, d *plugin.QueryData) (*drs.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, drsEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_DRS_SERVICE_ID) if err != nil { return nil, err } @@ -646,8 +651,21 @@ func DRSClient(ctx context.Context, d *plugin.QueryData) (*drs.Client, error) { return drs.NewFromConfig(*cfg), nil } +func DataSyncClient(ctx context.Context, d *plugin.QueryData) (*datasync.Client, error) { + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_DATASYNC_SERVICE_ID) + if err != nil { + return nil, err + } + + if cfg == nil { + return nil, nil + } + + return datasync.NewFromConfig(*cfg), nil +} + func DynamoDBClient(ctx context.Context, d *plugin.QueryData) (*dynamodb.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, dynamodbEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_DYNAMODB_SERVICE_ID) if err != nil { return nil, err } @@ -719,7 +737,7 @@ func EFSClient(ctx context.Context, d *plugin.QueryData) (*efs.Client, error) { } func EKSClient(ctx context.Context, d *plugin.QueryData) (*eks.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, eksEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_EKS_SERVICE_ID) if err != nil { return nil, err } @@ -738,7 +756,7 @@ func ElastiCacheClient(ctx context.Context, d *plugin.QueryData) (*elasticache.C } func ElasticBeanstalkClient(ctx context.Context, d *plugin.QueryData) (*elasticbeanstalk.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, elasticbeanstalkEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_ELASTICBEANSTALK_SERVICE_ID) if err != nil { return nil, err } @@ -773,7 +791,7 @@ func ElasticsearchClient(ctx context.Context, d *plugin.QueryData) (*elasticsear } func EMRClient(ctx context.Context, d *plugin.QueryData) (*emr.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, emrEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_ELASTICMAPREDUCE_SERVICE_ID) if err != nil { return nil, err } @@ -784,7 +802,7 @@ func EMRClient(ctx context.Context, d *plugin.QueryData) (*emr.Client, error) { } func EventBridgeClient(ctx context.Context, d *plugin.QueryData) (*eventbridge.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, eventbridgeEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_EVENTS_SERVICE_ID) if err != nil { return nil, err } @@ -811,7 +829,7 @@ func FMSClient(ctx context.Context, d *plugin.QueryData) (*fms.Client, error) { } func FSxClient(ctx context.Context, d *plugin.QueryData) (*fsx.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, fsxEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_FSX_SERVICE_ID) if err != nil { return nil, err } @@ -822,7 +840,7 @@ func FSxClient(ctx context.Context, d *plugin.QueryData) (*fsx.Client, error) { } func GlacierClient(ctx context.Context, d *plugin.QueryData) (*glacier.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, glacierEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_GLACIER_SERVICE_ID) if err != nil { return nil, err } @@ -864,7 +882,7 @@ func GuardDutyClient(ctx context.Context, d *plugin.QueryData) (*guardduty.Clien func HealthClient(ctx context.Context, d *plugin.QueryData) (*health.Client, error) { // Get Health API supported regions - healthAPISupportedRegions, err := listRegionsForService(ctx, d, healthEndpoint.EndpointsID) + healthAPISupportedRegions, err := listRegionsForService(ctx, d, AWS_HEALTH_SERVICE_ID) if err != nil { return nil, err } @@ -918,7 +936,7 @@ func IdentityStoreClient(ctx context.Context, d *plugin.QueryData) (*identitysto } func InspectorClient(ctx context.Context, d *plugin.QueryData) (*inspector.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, inspectorEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_INSPECTOR_SERVICE_ID) if err != nil { return nil, err } @@ -929,7 +947,7 @@ func InspectorClient(ctx context.Context, d *plugin.QueryData) (*inspector.Clien } func Inspector2Client(ctx context.Context, d *plugin.QueryData) (*inspector2.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, inspector2Endpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_INSPECTOR2_SERVICE_ID) if err != nil { return nil, err } @@ -940,7 +958,7 @@ func Inspector2Client(ctx context.Context, d *plugin.QueryData) (*inspector2.Cli } func IoTClient(ctx context.Context, d *plugin.QueryData) (*iot.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, iotEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_IOT_SERVICE_ID) if err != nil { return nil, err } @@ -951,7 +969,7 @@ func IoTClient(ctx context.Context, d *plugin.QueryData) (*iot.Client, error) { } func KafkaClient(ctx context.Context, d *plugin.QueryData) (*kafka.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, kafkaEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_KAFKA_SERVICE_ID) if err != nil { return nil, err } @@ -961,8 +979,19 @@ func KafkaClient(ctx context.Context, d *plugin.QueryData) (*kafka.Client, error return kafka.NewFromConfig(*cfg), nil } +func KafkaConnectClient(ctx context.Context, d *plugin.QueryData) (*kafkaconnect.Client, error) { + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_KAFKACONNECT_SERVICE_ID) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return kafkaconnect.NewFromConfig(*cfg), nil +} + func KeyspacesClient(ctx context.Context, d *plugin.QueryData) (*keyspaces.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, keyspacesEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_CASSANDRA_SERVICE_ID) if err != nil { return nil, err } @@ -981,7 +1010,7 @@ func KinesisClient(ctx context.Context, d *plugin.QueryData) (*kinesis.Client, e } func KinesisAnalyticsV2Client(ctx context.Context, d *plugin.QueryData) (*kinesisanalyticsv2.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, kinesisanalyticsv2Endpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_KINESISANALYTICS_SERVICE_ID) if err != nil { return nil, err } @@ -992,7 +1021,7 @@ func KinesisAnalyticsV2Client(ctx context.Context, d *plugin.QueryData) (*kinesi } func KinesisVideoClient(ctx context.Context, d *plugin.QueryData) (*kinesisvideo.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, kinesisvideoEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_KINESISVIDEO_SERVICE_ID) if err != nil { return nil, err } @@ -1003,7 +1032,7 @@ func KinesisVideoClient(ctx context.Context, d *plugin.QueryData) (*kinesisvideo } func KMSClient(ctx context.Context, d *plugin.QueryData) (*kms.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, kmsEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_KMS_SERVICE_ID) if err != nil { return nil, err } @@ -1014,7 +1043,7 @@ func KMSClient(ctx context.Context, d *plugin.QueryData) (*kms.Client, error) { } func LambdaClient(ctx context.Context, d *plugin.QueryData) (*lambda.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, lambdaEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_LAMBDA_SERVICE_ID) if err != nil { return nil, err } @@ -1033,7 +1062,7 @@ func LakeFormationClient(ctx context.Context, d *plugin.QueryData) (*lakeformati } func LightsailClient(ctx context.Context, d *plugin.QueryData) (*lightsail.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, lightsailEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_LIGHTSAIL_SERVICE_ID) if err != nil { return nil, err } @@ -1044,7 +1073,7 @@ func LightsailClient(ctx context.Context, d *plugin.QueryData) (*lightsail.Clien } func Macie2Client(ctx context.Context, d *plugin.QueryData) (*macie2.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, macie2Endpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_MACIE2_SERVICE_ID) if err != nil { return nil, err } @@ -1055,7 +1084,7 @@ func Macie2Client(ctx context.Context, d *plugin.QueryData) (*macie2.Client, err } func MediaStoreClient(ctx context.Context, d *plugin.QueryData) (*mediastore.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, mediastoreEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_MEDIASTORE_SERVICE_ID) if err != nil { return nil, err } @@ -1066,7 +1095,7 @@ func MediaStoreClient(ctx context.Context, d *plugin.QueryData) (*mediastore.Cli } func MemoryDBClient(ctx context.Context, d *plugin.QueryData) (*memorydb.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, memoryDBEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_MEMORY_DB_SERVICE_ID) if err != nil { return nil, err } @@ -1077,7 +1106,7 @@ func MemoryDBClient(ctx context.Context, d *plugin.QueryData) (*memorydb.Client, } func MGNClient(ctx context.Context, d *plugin.QueryData) (*mgn.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, mgnEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_MGN_SERVICE_ID) if err != nil { return nil, err } @@ -1088,7 +1117,7 @@ func MGNClient(ctx context.Context, d *plugin.QueryData) (*mgn.Client, error) { } func MQClient(ctx context.Context, d *plugin.QueryData) (*mq.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, mqEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_MQ_SERVICE_ID) if err != nil { return nil, err } @@ -1107,7 +1136,7 @@ func NeptuneClient(ctx context.Context, d *plugin.QueryData) (*neptune.Client, e } func NetworkFirewallClient(ctx context.Context, d *plugin.QueryData) (*networkfirewall.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, networkfirewallEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_NETWORK_FIREWALL_SERVICE_ID) if err != nil { return nil, err } @@ -1118,7 +1147,7 @@ func NetworkFirewallClient(ctx context.Context, d *plugin.QueryData) (*networkfi } func OAMClient(ctx context.Context, d *plugin.QueryData) (*oam.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, oamEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_OAM_SERVICE_ID) if err != nil { return nil, err } @@ -1151,7 +1180,7 @@ func OrganizationClient(ctx context.Context, d *plugin.QueryData) (*organization } func PinpointClient(ctx context.Context, d *plugin.QueryData) (*pinpoint.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, pinpointEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_PINPOINT_SERVICE_ID) if err != nil { return nil, err } @@ -1162,7 +1191,7 @@ func PinpointClient(ctx context.Context, d *plugin.QueryData) (*pinpoint.Client, } func PipesClient(ctx context.Context, d *plugin.QueryData) (*pipes.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, pipesEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_PIPES_SERVICE_ID) if err != nil { return nil, err } @@ -1184,7 +1213,7 @@ func PricingClient(ctx context.Context, d *plugin.QueryData) (*pricing.Client, e // it can and otherwise falls back to the default region us-east-1. // Get Pricing API supported regions - pricingAPISupportedRegions, err := listRegionsForService(ctx, d, pricingEndpoint.EndpointsID) + pricingAPISupportedRegions, err := listRegionsForService(ctx, d, AWS_API_PRICING_SERVICE_ID) if err != nil { return nil, err } @@ -1262,7 +1291,7 @@ func RDSDBRecommendationClient(ctx context.Context, d *plugin.QueryData) (*rds.C } excludeRegions = append(excludeRegions, getRegionByPartition("aws-cn")...) excludeRegions = append(excludeRegions, getRegionByPartition("aws-us-gov")...) - cfg, err := getClientForQuerySupportedRegionWithExclusions(ctx, d, rdsEndpoint.EndpointsID, excludeRegions) + cfg, err := getClientForQuerySupportedRegionWithExclusions(ctx, d, AWS_RDS_SERVICE_ID, excludeRegions) if err != nil { return nil, err } @@ -1287,7 +1316,7 @@ func RDSDBProxyClient(ctx context.Context, d *plugin.QueryData) (*rds.Client, er } excludeRegions = append(excludeRegions, getRegionByPartition("aws-cn")...) excludeRegions = append(excludeRegions, getRegionByPartition("aws-us-gov")...) - cfg, err := getClientForQuerySupportedRegionWithExclusions(ctx, d, rdsEndpoint.EndpointsID, excludeRegions) + cfg, err := getClientForQuerySupportedRegionWithExclusions(ctx, d, AWS_RDS_SERVICE_ID, excludeRegions) if err != nil { return nil, err } @@ -1306,7 +1335,7 @@ func RedshiftClient(ctx context.Context, d *plugin.QueryData) (*redshift.Client, } func RedshiftServerlessClient(ctx context.Context, d *plugin.QueryData) (*redshiftserverless.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, redshiftserverlessEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_REDSHIFT_SERVERLESS_SERVICE_ID) if err != nil { return nil, err } @@ -1328,7 +1357,7 @@ func ResourceExplorerClient(ctx context.Context, d *plugin.QueryData, region str } // Get the list of supported regions for the service - resourceExplorerRegions, err := listRegionsForService(ctx, d, resourceexplorer2Endpoint.EndpointsID) + resourceExplorerRegions, err := listRegionsForService(ctx, d, AWS_RESOURCE_EXPLORER_2_SERVICE_ID) if err != nil { return nil, fmt.Errorf("ResourceExplorerClient: failed to get supported regions") } @@ -1355,6 +1384,14 @@ func ResourceGroupsTaggingClient(ctx context.Context, d *plugin.QueryData) (*res return resourcegroupstaggingapi.NewFromConfig(*cfg), nil } +func RolesAnywhereClient(ctx context.Context, d *plugin.QueryData) (*rolesanywhere.Client, error) { + cfg, err := getClientForQueryRegion(ctx, d) + if err != nil { + return nil, err + } + return rolesanywhere.NewFromConfig(*cfg), nil +} + func Route53Client(ctx context.Context, d *plugin.QueryData) (*route53.Client, error) { // Route53 is a global service with a single DNS endpoint // (route53.amazonaws.com). @@ -1381,7 +1418,7 @@ func Route53DomainsClient(ctx context.Context, d *plugin.QueryData) (*route53dom } func Route53ResolverClient(ctx context.Context, d *plugin.QueryData) (*route53resolver.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, route53resolverEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_ROUTE53RESOLVER_SERVICE_ID) if err != nil { return nil, err } @@ -1413,6 +1450,23 @@ func S3Client(ctx context.Context, d *plugin.QueryData, region string) (*s3.Clie return svc, nil } +// S3TablesClient returns the service client for AWS S3 Tables service. +func S3TablesClient(ctx context.Context, d *plugin.QueryData) (*s3tables.Client, error) { + region := d.EqualsQualString(matrixKeyRegion) + cfg, err := getClientForRegion(ctx, d, region) + if err != nil { + return nil, err + } + + if cfg == nil { + return nil, nil + } + // Configure a new AWS session using the updated config with service-specific endpoint options + conn := s3tables.NewFromConfig(*cfg) + + return conn, nil +} + func S3ControlClient(ctx context.Context, d *plugin.QueryData, region string) (*s3control.Client, error) { cfg, err := getClientForRegion(ctx, d, region) if err != nil { @@ -1434,7 +1488,7 @@ func S3ControlMultiRegionAccessClient(ctx context.Context, d *plugin.QueryData) } func SageMakerClient(ctx context.Context, d *plugin.QueryData) (*sagemaker.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, sagemakerEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_API_SAGEMAKER_SERVICE_ID) if err != nil { return nil, err } @@ -1444,8 +1498,19 @@ func SageMakerClient(ctx context.Context, d *plugin.QueryData) (*sagemaker.Clien return sagemaker.NewFromConfig(*cfg), nil } +func SavingsPlansClient(ctx context.Context, d *plugin.QueryData) (*savingsplans.Client, error) { + cfg, err := getClientForDefaultRegion(ctx, d) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return savingsplans.NewFromConfig(*cfg), nil +} + func SchedulerClient(ctx context.Context, d *plugin.QueryData) (*scheduler.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, schedulerEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SCHEDULER_SERVICE_ID) if err != nil { return nil, err } @@ -1464,7 +1529,7 @@ func SecretsManagerClient(ctx context.Context, d *plugin.QueryData) (*secretsman } func SecurityHubClient(ctx context.Context, d *plugin.QueryData) (*securityhub.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, securityhubEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SECURITYHUB_SERVICE_ID) if err != nil { return nil, err } @@ -1477,7 +1542,7 @@ func SecurityHubClient(ctx context.Context, d *plugin.QueryData) (*securityhub.C // Added for using middleware for migrating table "aws_securityhub_member" // See https://github.com/aws/aws-sdk-go-v2/issues/1884#issuecomment-1278567756 for more info func SecurityHubClientConfig(ctx context.Context, d *plugin.QueryData) (*aws.Config, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, securityhubEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SECURITYHUB_SERVICE_ID) if err != nil { return nil, err } @@ -1488,7 +1553,7 @@ func SecurityHubClientConfig(ctx context.Context, d *plugin.QueryData) (*aws.Con } func SecurityLakeClient(ctx context.Context, d *plugin.QueryData) (*securitylake.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, securitylakeEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SECURITYLAKE_SERVICE_ID) if err != nil { return nil, err } @@ -1499,7 +1564,7 @@ func SecurityLakeClient(ctx context.Context, d *plugin.QueryData) (*securitylake } func SESClient(ctx context.Context, d *plugin.QueryData) (*ses.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, sesEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_EMAIL_SERVICE_ID) if err != nil { return nil, err } @@ -1509,8 +1574,19 @@ func SESClient(ctx context.Context, d *plugin.QueryData) (*ses.Client, error) { return ses.NewFromConfig(*cfg), nil } +func SESV2Client(ctx context.Context, d *plugin.QueryData) (*sesv2.Client, error) { + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_EMAIL_SERVICE_ID) + if err != nil { + return nil, err + } + if cfg == nil { + return nil, nil + } + return sesv2.NewFromConfig(*cfg), nil +} + func ServerlessApplicationRepositoryClient(ctx context.Context, d *plugin.QueryData) (*serverlessapplicationrepository.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, serverlessrepoEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SERVERLESSREPO_SERVICE_ID) if err != nil { return nil, err } @@ -1540,7 +1616,7 @@ func ServiceDiscoveryClient(ctx context.Context, d *plugin.QueryData) (*serviced } func ServiceQuotasClient(ctx context.Context, d *plugin.QueryData) (*servicequotas.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, servicequotasEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SERVICEQUOTAS_SERVICE_ID) if err != nil { return nil, err } @@ -1551,7 +1627,7 @@ func ServiceQuotasClient(ctx context.Context, d *plugin.QueryData) (*servicequot } func SimSpaceWeaverClient(ctx context.Context, d *plugin.QueryData) (*simspaceweaver.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, simspaceWeaverEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SIMSPACEWEAVER_SERVICE_ID) if err != nil { return nil, err } @@ -1590,7 +1666,7 @@ func SNSClient(ctx context.Context, d *plugin.QueryData) (*sns.Client, error) { } func SSMClient(ctx context.Context, d *plugin.QueryData) (*ssm.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, ssmEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SSM_SERVICE_ID) if err != nil { return nil, err } @@ -1601,7 +1677,7 @@ func SSMClient(ctx context.Context, d *plugin.QueryData) (*ssm.Client, error) { } func SSMIncidentsClient(ctx context.Context, d *plugin.QueryData) (*ssmincidents.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, ssmIncidentsEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_SSM_INCIDENTS_SERVICE_ID) if err != nil { return nil, err } @@ -1630,7 +1706,7 @@ func STSClient(ctx context.Context, d *plugin.QueryData) (*sts.Client, error) { } func SSOAdminClient(ctx context.Context, d *plugin.QueryData) (*ssoadmin.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, ssoEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_PORTAL_SSO_SERVICE_ID) if err != nil { return nil, err } @@ -1656,7 +1732,7 @@ func SupportClient(ctx context.Context, d *plugin.QueryData) (*support.Client, e func TransferClient(ctx context.Context, d *plugin.QueryData) (*transfer.Client, error) { // AWS Transfer Family - cfg, err := getClientForQuerySupportedRegion(ctx, d, transferEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_TRANSFER_SERVICE_ID) if err != nil { return nil, err } @@ -1667,7 +1743,7 @@ func TransferClient(ctx context.Context, d *plugin.QueryData) (*transfer.Client, } func TimestreamwriteClient(ctx context.Context, d *plugin.QueryData) (*timestreamwrite.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, timestreamwriteEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_INGEST_TIMESTREAM_SERVICE_ID) if err != nil { return nil, err } @@ -1691,7 +1767,7 @@ func WAFClient(ctx context.Context, d *plugin.QueryData) (*waf.Client, error) { } func WAFRegionalClient(ctx context.Context, d *plugin.QueryData) (*wafregional.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, wafregionalEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_WAF_REGIONAL_SERVICE_ID) if err != nil { return nil, err } @@ -1710,7 +1786,7 @@ func WAFV2Client(ctx context.Context, d *plugin.QueryData, region string) (*wafv if region == "global" { cfg, err = getClient(ctx, d, "us-east-1") } else { - cfg, err = getClientForQuerySupportedRegion(ctx, d, wafv2Endpoint.EndpointsID) + cfg, err = getClientForQuerySupportedRegion(ctx, d, AWS_WAFV2_SERVICE_ID) } if err != nil { return nil, err @@ -1722,7 +1798,7 @@ func WAFV2Client(ctx context.Context, d *plugin.QueryData, region string) (*wafv } func WellArchitectedClient(ctx context.Context, d *plugin.QueryData) (*wellarchitected.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, wellarchitectedEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_WELLARCHITECTED_SERVICE_ID) if err != nil { return nil, err } @@ -1733,7 +1809,7 @@ func WellArchitectedClient(ctx context.Context, d *plugin.QueryData) (*wellarchi } func WorkspacesClient(ctx context.Context, d *plugin.QueryData) (*workspaces.Client, error) { - cfg, err := getClientForQuerySupportedRegion(ctx, d, workspacesEndpoint.EndpointsID) + cfg, err := getClientForQuerySupportedRegion(ctx, d, AWS_WORKSPACES_SERVICE_ID) if err != nil { return nil, err } @@ -1862,7 +1938,7 @@ func getClientUncached(ctx context.Context, d *plugin.QueryData, h *plugin.Hydra // number of retries as 9 (our default). The default maximum delay will not be more than approximately 3 minutes to avoid Steampipe // waiting too long to return results maxRetries := 9 - var minRetryDelay time.Duration = 25 * time.Millisecond // Default minimum delay + var minRetryDelay = 25 * time.Millisecond // Default minimum delay // Set max retry count from config file or env variable (config file has precedence) if awsSpcConfig.MaxErrorRetryAttempts != nil { @@ -1947,6 +2023,11 @@ func getClientWithMaxRetries(ctx context.Context, d *plugin.QueryData, region st awsEndpointUrl = os.Getenv("AWS_ENDPOINT_URL") if awsSpcConfig.EndpointUrl != nil { awsEndpointUrl = *awsSpcConfig.EndpointUrl + + // The aws.EndpointResolverWithOptionsFunc() is deprecated in AWS SDK v2 (version >= v1.27.0). + // However, we are intentionally keeping it for now to maintain backward compatibility, and plan to remove it in the future. + // Since its usage currently causes a lint failure, we have added a nolint directive here to suppress the warning temporarily. + //nolint:staticcheck // using custom endpoint resolver intentionally for legacy compatibility if awsEndpointUrl != "" { customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { return aws.Endpoint{ diff --git a/aws/table_aws_accessanalyzer_analyzer.go b/aws/table_aws_accessanalyzer_analyzer.go index 987eb08bd..847d79a33 100644 --- a/aws/table_aws_accessanalyzer_analyzer.go +++ b/aws/table_aws_accessanalyzer_analyzer.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/accessanalyzer" "github.com/aws/aws-sdk-go-v2/service/accessanalyzer/types" - accessanalyzerv1 "github.com/aws/aws-sdk-go/service/accessanalyzer" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsAccessAnalyzer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "access-analyzer", "action": "ListFindings"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(accessanalyzerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ACCESS_ANALYZER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_accessanalyzer_finding.go b/aws/table_aws_accessanalyzer_finding.go index 2f99df423..a2315a399 100644 --- a/aws/table_aws_accessanalyzer_finding.go +++ b/aws/table_aws_accessanalyzer_finding.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/accessanalyzer/types" "github.com/aws/smithy-go" - accessanalyzerv1 "github.com/aws/aws-sdk-go/service/accessanalyzer" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -77,7 +75,7 @@ func tableAwsAccessAnalyzerFinding(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(accessanalyzerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ACCESS_ANALYZER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "access_analyzer_arn", diff --git a/aws/table_aws_acm_certificate.go b/aws/table_aws_acm_certificate.go index cb342adec..a1f0b1420 100644 --- a/aws/table_aws_acm_certificate.go +++ b/aws/table_aws_acm_certificate.go @@ -89,6 +89,13 @@ func tableAwsAcmCertificate(_ context.Context) *plugin.Table { Hydrate: getAwsAcmCertificateAttributes, Transform: transform.FromField("Options.CertificateTransparencyLoggingPreference"), }, + { + Name: "export", + Description: "Indicates whether certificate export is enabled. Set to 'ENABLED' to allow the certificate to be exported.", + Type: proto.ColumnType_STRING, + Hydrate: getAwsAcmCertificateAttributes, + Transform: transform.FromField("Options.Export"), + }, { Name: "created_at", Description: "The time at which the certificate was requested. This value exists only when the certificate type is AMAZON_ISSUED", diff --git a/aws/table_aws_acmpca_certificate_authority.go b/aws/table_aws_acmpca_certificate_authority.go index 17347c487..07bf10a88 100644 --- a/aws/table_aws_acmpca_certificate_authority.go +++ b/aws/table_aws_acmpca_certificate_authority.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/acmpca" "github.com/aws/aws-sdk-go-v2/service/acmpca/types" - acmpcav1 "github.com/aws/aws-sdk-go/service/acmpca" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsAcmPcaCertificateAuthority(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "acm-pca", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(acmpcav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ACM_PCA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_amplify_app.go b/aws/table_aws_amplify_app.go index df002bd19..4cfa39e95 100644 --- a/aws/table_aws_amplify_app.go +++ b/aws/table_aws_amplify_app.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/amplify" - amplifyv1 "github.com/aws/aws-sdk-go/service/amplify" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsAmplifyApp(_ context.Context) *plugin.Table { Hydrate: listAmplifyApps, Tags: map[string]string{"service": "amplify", "action": "ListApps"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(amplifyv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AMPLIFY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "app_id", diff --git a/aws/table_aws_api_gateway_account.go b/aws/table_aws_api_gateway_account.go new file mode 100644 index 000000000..b38957fa9 --- /dev/null +++ b/aws/table_aws_api_gateway_account.go @@ -0,0 +1,82 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/apigateway" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsAPIGatewayAccount(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_api_gateway_account", + Description: "AWS API Gateway Account", + List: &plugin.ListConfig{ + KeyColumns: plugin.AnyColumn([]string{}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException"}), + }, + Hydrate: getAPIGatewayAccount, + Tags: map[string]string{"service": "apigateway", "action": "GetAccount"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "cloudwatch_role_arn", + Description: "The ARN of an Amazon CloudWatch role for the current Account", + Type: proto.ColumnType_STRING, + }, + { + Name: "api_key_version", + Description: "The version of the API keys used for the account", + Type: proto.ColumnType_STRING, + }, + { + Name: "throttle_burst_limit", + Description: "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit", + Type: proto.ColumnType_INT, + Transform: transform.FromField("ThrottleSettings.BurstLimit"), + }, + { + Name: "throttle_rate_limit", + Description: "The API target request rate limit", + Type: proto.ColumnType_DOUBLE, + Transform: transform.FromField("ThrottleSettings.RateLimit"), + }, + { + Name: "features", + Description: "A list of features supported for the account. When usage plans are enabled, the features list will include an entry of 'UsagePlans'", + Type: proto.ColumnType_JSON, + }, + }), + } +} + +//// HYDRATE FUNCTIONS + +func getAPIGatewayAccount(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + + // Create service + svc, err := APIGatewayClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_api_gateway_account.getAPIGatewayAccount", "service_client_error", err) + return nil, err + } + + params := &apigateway.GetAccountInput{} + + detail, err := svc.GetAccount(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_api_gateway_account.getAPIGatewayAccount", "api_error", err) + return nil, err + } + + d.StreamListItem(ctx, detail) + + return nil, nil +} diff --git a/aws/table_aws_api_gateway_api_key.go b/aws/table_aws_api_gateway_api_key.go index b76f8c77a..27d24a83f 100644 --- a/aws/table_aws_api_gateway_api_key.go +++ b/aws/table_aws_api_gateway_api_key.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigateway/types" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigateway" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsAPIGatewayAPIKey(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_api_gateway_api_authorizer.go b/aws/table_aws_api_gateway_authorizer.go similarity index 98% rename from aws/table_aws_api_gateway_api_authorizer.go rename to aws/table_aws_api_gateway_authorizer.go index f1a68411a..72ec35cec 100644 --- a/aws/table_aws_api_gateway_api_authorizer.go +++ b/aws/table_aws_api_gateway_authorizer.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigateway/types" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigateway" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +32,7 @@ func tableAwsAPIGatewayAuthorizer(_ context.Context) *plugin.Table { Hydrate: listRestAPIAuthorizers, Tags: map[string]string{"service": "apigateway", "action": "GetAuthorizers"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_api_gateway_domain_name.go b/aws/table_aws_api_gateway_domain_name.go index ba38f1eb1..42e208234 100644 --- a/aws/table_aws_api_gateway_domain_name.go +++ b/aws/table_aws_api_gateway_domain_name.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigateway/types" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigatewayv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsAPIGatewayDomainName(_ context.Context) *plugin.Table { Hydrate: listApiGatewayDomainNames, Tags: map[string]string{"service": "apigateway", "action": "GetDomainNames"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "domain_name", diff --git a/aws/table_aws_api_gateway_method.go b/aws/table_aws_api_gateway_method.go index 83aeeb51f..4de012958 100644 --- a/aws/table_aws_api_gateway_method.go +++ b/aws/table_aws_api_gateway_method.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway/types" "github.com/mitchellh/mapstructure" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigateway" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsAPIGatewayMethod(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "apigateway", "action": "GetResources"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "rest_api_id", diff --git a/aws/table_aws_api_gateway_rest_api.go b/aws/table_aws_api_gateway_rest_api.go index 00c4def74..9df454905 100644 --- a/aws/table_aws_api_gateway_rest_api.go +++ b/aws/table_aws_api_gateway_rest_api.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigateway/types" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigateway" - go_kit_packs "github.com/turbot/go-kit/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -37,7 +35,7 @@ func tableAwsAPIGatewayRestAPI(_ context.Context) *plugin.Table { Hydrate: listRestAPI, Tags: map[string]string{"service": "apigateway", "action": "GetRestApis"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -116,6 +114,31 @@ func tableAwsAPIGatewayRestAPI(_ context.Context) *plugin.Table { Type: proto.ColumnType_JSON, Transform: transform.FromField("EndpointConfiguration.VpcEndpointIds"), }, + { + Name: "api_status", + Description: "The status of the API", + Type: proto.ColumnType_STRING, + }, + { + Name: "api_status_message", + Description: "The status message of the API", + Type: proto.ColumnType_STRING, + }, + { + Name: "disable_execute_api_endpoint", + Description: "Specifies whether clients can invoke the API by using the default execute-api endpoint", + Type: proto.ColumnType_BOOL, + }, + { + Name: "endpoint_access_mode", + Description: "The endpoint access mode of the API", + Type: proto.ColumnType_STRING, + }, + { + Name: "security_policy", + Description: "The Transport Layer Security (TLS) version and cipher suite for this RestApi", + Type: proto.ColumnType_STRING, + }, { Name: "warnings", Description: "The warning messages reported when failonwarnings is turned on during API import", diff --git a/aws/table_aws_api_gateway_stage.go b/aws/table_aws_api_gateway_stage.go index f76b29029..d989d1a17 100644 --- a/aws/table_aws_api_gateway_stage.go +++ b/aws/table_aws_api_gateway_stage.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigateway/types" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigateway" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsAPIGatewayStage(_ context.Context) *plugin.Table { Hydrate: listAPIGatewayStage, Tags: map[string]string{"service": "apigateway", "action": "GetStages"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_api_gateway_usage_plan.go b/aws/table_aws_api_gateway_usage_plan.go index 6ff9c2181..41d567892 100644 --- a/aws/table_aws_api_gateway_usage_plan.go +++ b/aws/table_aws_api_gateway_usage_plan.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigateway" "github.com/aws/aws-sdk-go-v2/service/apigateway/types" - apigatewayv1 "github.com/aws/aws-sdk-go/service/apigateway" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsAPIGatewayUsagePlan(_ context.Context) *plugin.Table { Hydrate: listUsagePlans, Tags: map[string]string{"service": "apigateway", "action": "GetUsagePlans"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_api_gatewayv2_api.go b/aws/table_aws_api_gatewayv2_api.go index 9d3651d98..57f38b9d4 100644 --- a/aws/table_aws_api_gatewayv2_api.go +++ b/aws/table_aws_api_gatewayv2_api.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" - apigatewayv2v1 "github.com/aws/aws-sdk-go/service/apigatewayv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsAPIGatewayV2Api(_ context.Context) *plugin.Table { Hydrate: listAPIGatewayV2API, Tags: map[string]string{"service": "apigateway", "action": "GetApis"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_api_gatewayv2_domain_name.go b/aws/table_aws_api_gatewayv2_domain_name.go index 6928350dc..7fdca15b4 100644 --- a/aws/table_aws_api_gatewayv2_domain_name.go +++ b/aws/table_aws_api_gatewayv2_domain_name.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" - apigatewayv2v1 "github.com/aws/aws-sdk-go/service/apigatewayv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsAPIGatewayV2DomainName(_ context.Context) *plugin.Table { Hydrate: listDomainNames, Tags: map[string]string{"service": "apigateway", "action": "GetDomainNames"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "domain_name", diff --git a/aws/table_aws_api_gatewayv2_integration.go b/aws/table_aws_api_gatewayv2_integration.go index 423e46e25..9179bbda1 100644 --- a/aws/table_aws_api_gatewayv2_integration.go +++ b/aws/table_aws_api_gatewayv2_integration.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" - apigatewayv2v1 "github.com/aws/aws-sdk-go/service/apigatewayv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsAPIGatewayV2Integration(_ context.Context) *plugin.Table { Hydrate: listAPIGatewayV2Integrations, Tags: map[string]string{"service": "apigateway", "action": "GetIntegrations"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "integration_id", diff --git a/aws/table_aws_api_gatewayv2_route.go b/aws/table_aws_api_gatewayv2_route.go index 745e7f8ba..691e0a577 100644 --- a/aws/table_aws_api_gatewayv2_route.go +++ b/aws/table_aws_api_gatewayv2_route.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" - apigatewayv2v1 "github.com/aws/aws-sdk-go/service/apigatewayv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +32,7 @@ func tableAwsAPIGatewayV2Route(_ context.Context) *plugin.Table { Hydrate: listAPIGatewayV2Routes, Tags: map[string]string{"service": "apigateway", "action": "GetRoutes"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "route_key", diff --git a/aws/table_aws_api_gatewayv2_stage.go b/aws/table_aws_api_gatewayv2_stage.go index beeb662f7..efdec6e86 100644 --- a/aws/table_aws_api_gatewayv2_stage.go +++ b/aws/table_aws_api_gatewayv2_stage.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apigatewayv2" "github.com/aws/aws-sdk-go-v2/service/apigatewayv2/types" - apigatewayv2v1 "github.com/aws/aws-sdk-go/service/apigatewayv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +32,7 @@ func tableAwsAPIGatewayV2Stage(_ context.Context) *plugin.Table { Hydrate: listAPIGatewayV2Stages, Tags: map[string]string{"service": "apigateway", "action": "GetStages"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apigatewayv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APIGATEWAY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "stage_name", diff --git a/aws/table_aws_app_runner_Service.go b/aws/table_aws_app_runner_Service.go index be04941b3..6f9371933 100644 --- a/aws/table_aws_app_runner_Service.go +++ b/aws/table_aws_app_runner_Service.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/apprunner" "github.com/aws/aws-sdk-go-v2/service/apprunner/types" - apprunnerv1 "github.com/aws/aws-sdk-go/service/apprunner" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsAppRunnerService(_ context.Context) *plugin.Table { Hydrate: listAwsAppRunnerServices, Tags: map[string]string{"service": "apprunner", "action": "ListServices"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(apprunnerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPRUNNER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "service_name", diff --git a/aws/table_aws_appautoscaling_policy.go b/aws/table_aws_appautoscaling_policy.go index 9e46cfae3..d13974de6 100644 --- a/aws/table_aws_appautoscaling_policy.go +++ b/aws/table_aws_appautoscaling_policy.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/applicationautoscaling" "github.com/aws/aws-sdk-go-v2/service/applicationautoscaling/types" - applicationautoscalingv1 "github.com/aws/aws-sdk-go/service/applicationautoscaling" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsAppAutoScalingPolicy(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(applicationautoscalingv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPLICATION_AUTOSCALING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "policy_arn", diff --git a/aws/table_aws_appautoscaling_target.go b/aws/table_aws_appautoscaling_target.go index f5b3b8994..91f1705ea 100644 --- a/aws/table_aws_appautoscaling_target.go +++ b/aws/table_aws_appautoscaling_target.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/applicationautoscaling" "github.com/aws/aws-sdk-go-v2/service/applicationautoscaling/types" - applicationautoscalingv1 "github.com/aws/aws-sdk-go/service/applicationautoscaling" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsAppAutoScalingTarget(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(applicationautoscalingv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPLICATION_AUTOSCALING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "service_namespace", diff --git a/aws/table_aws_appconfig_application.go b/aws/table_aws_appconfig_application.go index ed9ee9f80..015fc7407 100644 --- a/aws/table_aws_appconfig_application.go +++ b/aws/table_aws_appconfig_application.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/appconfig" "github.com/aws/aws-sdk-go-v2/service/appconfig/types" - appconfigv1 "github.com/aws/aws-sdk-go/service/appconfig" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsAppConfigApplication(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "appconfig", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(appconfigv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPCONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_appstream_fleet.go b/aws/table_aws_appstream_fleet.go index 6530000ee..4a4698f57 100644 --- a/aws/table_aws_appstream_fleet.go +++ b/aws/table_aws_appstream_fleet.go @@ -6,7 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/appstream" "github.com/aws/aws-sdk-go-v2/service/appstream/types" - appstreamv1 "github.com/aws/aws-sdk-go/service/appstream" "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -39,7 +38,7 @@ func tableAwsAppStreamFleet(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "appstream", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(appstreamv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPSTREAM2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_appstream_image.go b/aws/table_aws_appstream_image.go index 1768616ec..f224371d2 100644 --- a/aws/table_aws_appstream_image.go +++ b/aws/table_aws_appstream_image.go @@ -7,7 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/appstream" "github.com/aws/aws-sdk-go-v2/service/appstream/types" - appstreamv1 "github.com/aws/aws-sdk-go/service/appstream" "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -41,7 +40,7 @@ func tableAwsAppStreamImage(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "appstream", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(appstreamv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPSTREAM2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_appsync_api.go b/aws/table_aws_appsync_api.go new file mode 100644 index 000000000..de5f6e46f --- /dev/null +++ b/aws/table_aws_appsync_api.go @@ -0,0 +1,204 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/appsync" + "github.com/aws/aws-sdk-go-v2/service/appsync/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsAppsyncApi(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_appsync_api", + Description: "AWS AppSync API", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("api_id"), + Hydrate: getAppsyncApi, + Tags: map[string]string{"service": "appsync", "action": "GetApi"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException"}), + }, + }, + List: &plugin.ListConfig{ + Hydrate: listAppsyncApis, + Tags: map[string]string{"service": "appsync", "action": "ListApis"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPSYNC_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "api_id", + Description: "The API ID.", + Type: proto.ColumnType_STRING, + }, + { + Name: "name", + Description: "The name of the API.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) for the API.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ApiArn"), + }, + { + Name: "created", + Description: "The date and time that the API was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "dns", + Description: "The DNS records for the API. This will include an HTTP and a real-time endpoint.", + Type: proto.ColumnType_JSON, + }, + { + Name: "event_config", + Description: "The Event API configuration. This includes the default authorization configuration for connecting, publishing, and subscribing to an Event API.", + Type: proto.ColumnType_JSON, + }, + { + Name: "owner_contact", + Description: "The owner contact information for the API.", + Type: proto.ColumnType_STRING, + }, + { + Name: "waf_web_acl_arn", + Description: "The Amazon Resource Name (ARN) of the WAF web access control list (web ACL) associated with this API, if one exists.", + Type: proto.ColumnType_STRING, + }, + { + Name: "xray_enabled", + Description: "A flag indicating whether to use X-Ray tracing for this API.", + Type: proto.ColumnType_BOOL, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Hydrate: getAppsyncApi, + Transform: transform.FromField("Name"), + }, + { + Name: "tags", + Description: "A map with keys of TagKey objects and values of TagValue objects.", + Type: proto.ColumnType_JSON, + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getAppsyncApi, + Transform: transform.FromField("ApiArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listAppsyncApis(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := AppSyncClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_appsync_api.listAppsyncApis", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + maxResults := int32(25) + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxResults { + maxResults = int32(limit) + } + } + + // Using the actual ListApis API + input := appsync.ListApisInput{ + MaxResults: maxResults, + } + + paginator := appsync.NewListApisPaginator(svc, &input, func(o *appsync.ListApisPaginatorOptions) { + o.Limit = maxResults + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + res, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_appsync_api.listAppsyncApis", "api_error", err) + return nil, err + } + + for _, api := range res.Apis { + d.StreamListItem(ctx, api) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getAppsyncApi(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var apiId string + if h.Item != nil { + // If we have an item from the list, extract the API ID + if api, ok := h.Item.(types.Api); ok { + apiId = *api.ApiId + } + } else { + // If this is a get call, use the key column + apiId = d.EqualsQualString("api_id") + } + + if apiId == "" { + return nil, nil + } + + // Create service + svc, err := AppSyncClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_appsync_api.getAppsyncApi", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Using the actual GetApi API + params := &appsync.GetApiInput{ + ApiId: aws.String(apiId), + } + + rowData, err := svc.GetApi(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_appsync_api.getAppsyncApi", "api_error", err) + return nil, err + } + + if rowData != nil && rowData.Api != nil { + return rowData.Api, nil + } + + return nil, nil +} diff --git a/aws/table_aws_appsync_graphql_api.go b/aws/table_aws_appsync_graphql_api.go index 0ba9c58df..30e0ad98f 100644 --- a/aws/table_aws_appsync_graphql_api.go +++ b/aws/table_aws_appsync_graphql_api.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/appsync" "github.com/aws/aws-sdk-go-v2/service/appsync/types" - appsyncv1 "github.com/aws/aws-sdk-go/service/appsync" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,16 @@ func tableAwsAppsyncGraphQLApi(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(appsyncv1.EndpointsID), + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getAppsyncGraphQLApiCache, + Tags: map[string]string{"service": "appsync", "action": "GetApiCache"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException"}), + }, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_APPSYNC_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { @@ -145,6 +152,13 @@ func tableAwsAppsyncGraphQLApi(_ context.Context) *plugin.Table { Description: "The enhancedMetricsConfig object.", Type: proto.ColumnType_JSON, }, + { + Name: "api_cache", + Description: "The ApiCache object.", + Type: proto.ColumnType_JSON, + Hydrate: getAppsyncGraphQLApiCache, + Transform: transform.FromValue(), + }, { Name: "introspection_config", Description: "Sets the value of the GraphQL API to enable ( ENABLED ) or disable ( DISABLED ) introspection. If no value is provided, the introspection configuration will be set to ENABLED by default.", @@ -274,3 +288,52 @@ func getAppsyncGraphqlApi(ctx context.Context, d *plugin.QueryData, h *plugin.Hy return nil, nil } + +func getAppsyncGraphQLApiCache(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var apiId string + if h.Item != nil { + // If we have an item from the list, extract the API ID + switch api := h.Item.(type) { + case types.GraphqlApi: + apiId = *api.ApiId + case *types.GraphqlApi: + apiId = *api.ApiId + } + + } else { + // If this is a get call, use the key column + apiId = d.EqualsQualString("api_id") + } + + if apiId == "" { + return nil, nil + } + + // Create service + svc, err := AppSyncClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_appsync_graphql_api.getAppsyncGraphQLApiCache", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Using the actual GetApiCache API + input := appsync.GetApiCacheInput{ + ApiId: aws.String(apiId), + } + + res, err := svc.GetApiCache(ctx, &input) + if err != nil { + plugin.Logger(ctx).Error("aws_appsync_graphql_api.getAppsyncGraphQLApiCache", "api_error", err) + return nil, err + } + + if res != nil && res.ApiCache != nil { + return res.ApiCache, nil + } + + return res, nil +} \ No newline at end of file diff --git a/aws/table_aws_athena_query_execution.go b/aws/table_aws_athena_query_execution.go index 2fa75549f..ffbefdb2d 100644 --- a/aws/table_aws_athena_query_execution.go +++ b/aws/table_aws_athena_query_execution.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/athena" "github.com/aws/aws-sdk-go-v2/service/athena/types" - athenav1 "github.com/aws/aws-sdk-go/service/athena" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsAthenaQueryExecution(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "athena", "action": "GetQueryExecution"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(athenav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ATHENA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_athena_workgroup.go b/aws/table_aws_athena_workgroup.go index 8bbf8a0bc..a7c6ef121 100644 --- a/aws/table_aws_athena_workgroup.go +++ b/aws/table_aws_athena_workgroup.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/athena" "github.com/aws/aws-sdk-go-v2/service/athena/types" - athenav1 "github.com/aws/aws-sdk-go/service/athena" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsAthenaWorkGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "athena", "action": "GetWorkGroup"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(athenav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ATHENA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -151,6 +149,27 @@ func tableAwsAthenaWorkGroup(_ context.Context) *plugin.Table { Hydrate: getAwsAthenaWorkGroup, Transform: transform.FromField("Configuration.ResultConfiguration.OutputLocation"), }, + { + Name: "managed_query_results_enabled", + Description: "Indicates whether Athena managed query results are enabled. If set to true, allows you to store query results in Athena owned storage.", + Type: proto.ColumnType_BOOL, + Hydrate: getAwsAthenaWorkGroup, + Transform: transform.FromField("Configuration.ManagedQueryResultsConfiguration.Enabled"), + }, + { + Name: "managed_query_results_kms_key", + Description: "The KMS key ARN used to encrypt managed query results in Athena owned storage.", + Type: proto.ColumnType_STRING, + Hydrate: getAwsAthenaWorkGroup, + Transform: transform.FromField("Configuration.ManagedQueryResultsConfiguration.EncryptionConfiguration.KmsKey"), + }, + { + Name: "enable_minimum_encryption_configuration", + Description: "Enforces a minimal level of encryption for the workgroup.", + Type: proto.ColumnType_BOOL, + Hydrate: getAwsAthenaWorkGroup, + Transform: transform.FromField("Configuration.EnableMinimumEncryptionConfiguration"), + }, }), } } diff --git a/aws/table_aws_auditmanager_assessment.go b/aws/table_aws_auditmanager_assessment.go index 00d0217f0..7fe36f80b 100644 --- a/aws/table_aws_auditmanager_assessment.go +++ b/aws/table_aws_auditmanager_assessment.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/auditmanager" "github.com/aws/aws-sdk-go-v2/service/auditmanager/types" - auditmanagerv1 "github.com/aws/aws-sdk-go/service/auditmanager" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsAuditManagerAssessment(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "auditmanager", "action": "GetAssessment"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(auditmanagerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AUDITMANAGER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_auditmanager_control.go b/aws/table_aws_auditmanager_control.go index 4e83584c3..a0c7c80ed 100644 --- a/aws/table_aws_auditmanager_control.go +++ b/aws/table_aws_auditmanager_control.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/auditmanager" "github.com/aws/aws-sdk-go-v2/service/auditmanager/types" - auditmanagerv1 "github.com/aws/aws-sdk-go/service/auditmanager" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsAuditManagerControl(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "auditmanager", "action": "GetControl"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(auditmanagerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AUDITMANAGER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_auditmanager_evidence.go b/aws/table_aws_auditmanager_evidence.go index 1ad540496..5c33edf49 100644 --- a/aws/table_aws_auditmanager_evidence.go +++ b/aws/table_aws_auditmanager_evidence.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/auditmanager" "github.com/aws/aws-sdk-go-v2/service/auditmanager/types" - auditmanagerv1 "github.com/aws/aws-sdk-go/service/auditmanager" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsAuditManagerEvidence(_ context.Context) *plugin.Table { Hydrate: listAuditManagerEvidences, Tags: map[string]string{"service": "auditmanager", "action": "GetEvidenceByEvidenceFolder"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(auditmanagerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AUDITMANAGER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_auditmanager_evidence_folder.go b/aws/table_aws_auditmanager_evidence_folder.go index 3be166880..d3f0d33c6 100644 --- a/aws/table_aws_auditmanager_evidence_folder.go +++ b/aws/table_aws_auditmanager_evidence_folder.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/auditmanager" "github.com/aws/aws-sdk-go-v2/service/auditmanager/types" - auditmanagerv1 "github.com/aws/aws-sdk-go/service/auditmanager" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +32,7 @@ func tableAwsAuditManagerEvidenceFolder(_ context.Context) *plugin.Table { Hydrate: listAuditManagerEvidenceFolders, Tags: map[string]string{"service": "auditmanager", "action": "GetEvidenceFoldersByAssessment"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(auditmanagerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AUDITMANAGER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_auditmanager_framework.go b/aws/table_aws_auditmanager_framework.go index 14b1c84a2..3f8f4b7ff 100644 --- a/aws/table_aws_auditmanager_framework.go +++ b/aws/table_aws_auditmanager_framework.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/auditmanager" "github.com/aws/aws-sdk-go-v2/service/auditmanager/types" - auditmanagerv1 "github.com/aws/aws-sdk-go/service/auditmanager" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsAuditManagerFramework(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "auditmanager", "action": "GetAssessmentFramework"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(auditmanagerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AUDITMANAGER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_availability_zone.go b/aws/table_aws_availability_zone.go index 8f409fb90..39c1c42d6 100644 --- a/aws/table_aws_availability_zone.go +++ b/aws/table_aws_availability_zone.go @@ -131,6 +131,10 @@ func listAwsAvailabilityZones(ctx context.Context, d *plugin.QueryData, h *plugi // execute list call resp, err := svc.DescribeAvailabilityZones(ctx, input) if err != nil { + // Due to parent hydrate usage, the default ignore error codes configured in connection config are not respected, so we need to handle it here + if shouldIgnoreErrorPluginDefault()(ctx, d, h, err) { + return nil, nil + } plugin.Logger(ctx).Error("aws_availability_zone.listAwsAvailabilityZones", "api_error", err) return nil, err } diff --git a/aws/table_aws_backup_framework.go b/aws/table_aws_backup_framework.go index be306ff01..0755b7b81 100644 --- a/aws/table_aws_backup_framework.go +++ b/aws/table_aws_backup_framework.go @@ -3,13 +3,12 @@ package aws import ( "context" "errors" + "strings" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -44,7 +43,7 @@ func tableAwsBackupFramework(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "framework_name", @@ -178,6 +177,23 @@ func listAwsBackupFrameworks(ctx context.Context, d *plugin.QueryData, _ *plugin output, err := paginator.NextPage(ctx) if err != nil { + // AWS Backup service is not supported in all AWS regions. + // Reference for supported regions: https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ + + // Observed unsupported region errors: + // + // - In region `me-central-1`: + // Error: aws: operation error Backup: ListFrameworks, https response error StatusCode: 403, RequestID: 2674aa5d-a9c3-465e-bc96-69797f65db93 + // api error AccessDeniedException: This API is not available in current Region. (SQLSTATE HV000) + // + // - In regions `ap-southeast-5` and `ap-southeast-3`: + // Error: aws: operation error Backup: ListReportPlans, https response error StatusCode: 403, RequestID: 84d4f42e-ab18-4070-a281-a40a702a4c61 + // api error AccessDeniedException: Insufficient privileges to perform this action. (SQLSTATE HV000) + // + // These are considered **unsupported region errors** and are handled accordingly in the relevant list/get functions. + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("This API is not available in current Region")) || strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Insufficient privileges to perform this action")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_backup_framework.listAwsBackupFrameworks", "api_error", err) return nil, err } @@ -242,6 +258,23 @@ func getAwsBackupFramework(ctx context.Context, d *plugin.QueryData, h *plugin.H return nil, nil } } + // AWS Backup service is not supported in all AWS regions. + // Reference for supported regions: https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ + + // Observed unsupported region errors: + // + // - In region `me-central-1`: + // Error: aws: operation error Backup: ListFrameworks, https response error StatusCode: 403, RequestID: 2674aa5d-a9c3-465e-bc96-69797f65db93 + // api error AccessDeniedException: This API is not available in current Region. (SQLSTATE HV000) + // + // - In regions `ap-southeast-5` and `ap-southeast-3`: + // Error: aws: operation error Backup: ListReportPlans, https response error StatusCode: 403, RequestID: 84d4f42e-ab18-4070-a281-a40a702a4c61 + // api error AccessDeniedException: Insufficient privileges to perform this action. (SQLSTATE HV000) + // + // These are considered **unsupported region errors** and are handled accordingly in the relevant list/get functions. + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("This API is not available in current Region")) || strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Insufficient privileges to perform this action")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_backup_framework.getAwsBackupFramework", "api_error", err) return nil, err } diff --git a/aws/table_aws_backup_job.go b/aws/table_aws_backup_job.go index a936b45b7..5e619c216 100644 --- a/aws/table_aws_backup_job.go +++ b/aws/table_aws_backup_job.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsBackupJob(_ context.Context) *plugin.Table { Hydrate: listAwsBackupJobs, Tags: map[string]string{"service": "backup", "action": "ListBackupJobs"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "job_id", diff --git a/aws/table_aws_backup_legal_hold.go b/aws/table_aws_backup_legal_hold.go index 45326c802..8319f2c67 100644 --- a/aws/table_aws_backup_legal_hold.go +++ b/aws/table_aws_backup_legal_hold.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsBackupLegalHold(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "GetLegalHold"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "legal_hold_id", diff --git a/aws/table_aws_backup_plan.go b/aws/table_aws_backup_plan.go index 73af6e153..9d8e6971a 100644 --- a/aws/table_aws_backup_plan.go +++ b/aws/table_aws_backup_plan.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsBackupPlan(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_backup_protected_resource.go b/aws/table_aws_backup_protected_resource.go index 25b92d20c..7f8c0eeb3 100644 --- a/aws/table_aws_backup_protected_resource.go +++ b/aws/table_aws_backup_protected_resource.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsBackupProtectedResource(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "DescribeProtectedResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "resource_name", diff --git a/aws/table_aws_backup_recovery_point.go b/aws/table_aws_backup_recovery_point.go index c22ff65dd..9eda74974 100644 --- a/aws/table_aws_backup_recovery_point.go +++ b/aws/table_aws_backup_recovery_point.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -59,7 +57,7 @@ func tableAwsBackupRecoveryPoint(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "backup_vault_name", diff --git a/aws/table_aws_backup_report_plan.go b/aws/table_aws_backup_report_plan.go index 6ab450d15..da398b4c7 100644 --- a/aws/table_aws_backup_report_plan.go +++ b/aws/table_aws_backup_report_plan.go @@ -2,12 +2,11 @@ package aws import ( "context" + "strings" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/backup" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +30,7 @@ func tableAwsBackupReportPlan(_ context.Context) *plugin.Table { Hydrate: listAwsBackupReportPlans, Tags: map[string]string{"service": "backup", "action": "ListReportPlans"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", @@ -139,7 +138,25 @@ func listAwsBackupReportPlans(ctx context.Context, d *plugin.QueryData, _ *plugi output, err := paginator.NextPage(ctx) if err != nil { - plugin.Logger(ctx).Error("aws_backup_report_plan.listAwsBackupReportPlans", "api_error", err) + // AWS Backup service is not supported in all AWS regions. + // Reference for supported regions: https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ + + // Observed unsupported region errors: + // + // - In region `me-central-1`: + // Error: aws: operation error Backup: ListReportPlans, https response error StatusCode: 403, RequestID: 3144d09a-f1d9-49b0-8208-23d245bdcf3b + // api error AccessDeniedException: This API is not available in current Region. (SQLSTATE HV000) + // + // - In regions `ap-southeast-5` and `ap-southeast-3`: + // Error: aws: operation error Backup: ListReportPlans, https response error StatusCode: 403, RequestID: 84d4f42e-ab18-4070-a281-a40a702a4c61 + // api error AccessDeniedException: Insufficient privileges to perform this action. (SQLSTATE HV000) + // + // These errors indicate **unsupported region scenarios** and are handled appropriately in the related list/get functions. + + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("This API is not available in current Region")) || strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Insufficient privileges to perform this action")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_backup_report_plan.listAwsBackupReportPlans", "api_error", err, d.EqualsQualString("region")) return nil, err } @@ -183,7 +200,26 @@ func getAwsBackupReportPlan(ctx context.Context, d *plugin.QueryData, h *plugin. op, err := svc.DescribeReportPlan(ctx, params) if err != nil { + // AWS Backup service is not supported in all AWS regions. + // Reference for supported regions: https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ + + // Observed unsupported region errors: + // + // - In region `me-central-1`: + // Error: aws: operation error Backup: ListReportPlans, https response error StatusCode: 403, RequestID: 3144d09a-f1d9-49b0-8208-23d245bdcf3b + // api error AccessDeniedException: This API is not available in current Region. (SQLSTATE HV000) + // + // - In regions `ap-southeast-5` and `ap-southeast-3`: + // Error: aws: operation error Backup: ListReportPlans, https response error StatusCode: 403, RequestID: 84d4f42e-ab18-4070-a281-a40a702a4c61 + // api error AccessDeniedException: Insufficient privileges to perform this action. (SQLSTATE HV000) + // + // These errors indicate **unsupported region scenarios** and are handled appropriately in the related list/get functions. + + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("This API is not available in current Region")) || strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Insufficient privileges to perform this action")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_backup_report_plan.getAwsBackupReportPlan", "api_error", err) + return nil, err } if op != nil { diff --git a/aws/table_aws_backup_selection.go b/aws/table_aws_backup_selection.go index fe346a300..c6ad26b76 100644 --- a/aws/table_aws_backup_selection.go +++ b/aws/table_aws_backup_selection.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsBackupSelection(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "GetBackupSelection"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "selection_name", diff --git a/aws/table_aws_backup_vault.go b/aws/table_aws_backup_vault.go index aa1c1ee4e..f48811210 100644 --- a/aws/table_aws_backup_vault.go +++ b/aws/table_aws_backup_vault.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/backup" "github.com/aws/aws-sdk-go-v2/service/backup/types" - backupv1 "github.com/aws/aws-sdk-go/service/backup" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -51,7 +49,7 @@ func tableAwsBackupVault(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "backup", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(backupv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BACKUP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_batch_queue.go b/aws/table_aws_batch_queue.go new file mode 100644 index 000000000..175c8a13c --- /dev/null +++ b/aws/table_aws_batch_queue.go @@ -0,0 +1,175 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/batch" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBatchQueue(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_batch_queue", + Description: "AWS Batch Queue", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("job_queue_name"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"JobQueueNotFoundException"}), + }, + Hydrate: getBatchQueue, + Tags: map[string]string{"service": "batch", "action": "DescribeJobQueues"}, + }, + List: &plugin.ListConfig{ + Hydrate: listBatchQueues, + Tags: map[string]string{"service": "batch", "action": "DescribeJobQueues"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BATCH_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "job_queue_name", + Description: "The name of the job queue", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the job queue", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("JobQueueArn"), + }, + { + Name: "state", + Description: "The state of the job queue (ENABLED or DISABLED)", + Type: proto.ColumnType_STRING, + }, + { + Name: "status", + Description: "The status of the job queue (CREATING, UPDATING, DELETING, or DELETED)", + Type: proto.ColumnType_STRING, + }, + { + Name: "priority", + Description: "The priority of the job queue", + Type: proto.ColumnType_INT, + }, + { + Name: "compute_environment_order", + Description: "The compute environments that are attached to the job queue and the order in which job placement is preferred", + Type: proto.ColumnType_JSON, + }, + { + Name: "scheduling_policy_arn", + Description: "The ARN of the scheduling policy", + Type: proto.ColumnType_STRING, + }, + { + Name: "status_reason", + Description: "A short, human-readable string to provide additional details about the current status of the job queue", + Type: proto.ColumnType_STRING, + }, + + // Standard columns for all tables + { + Name: "tags", + Description: "The tags assigned to the job queue", + Type: proto.ColumnType_JSON, + }, + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("JobQueueName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("JobQueueArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +func listBatchQueues(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create service client + svc, err := BatchClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_batch_queue.listBatchQueues", "client_error", err) + return nil, err + } + + // Unsupported region check + if svc == nil { + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &batch.DescribeJobQueuesInput{ + MaxResults: aws.Int32(maxLimit), + } + + paginator := batch.NewDescribeJobQueuesPaginator(svc, input) + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_batch_queue.listBatchQueues", "api_error", err) + return nil, err + } + + for _, queue := range output.JobQueues { + d.StreamListItem(ctx, queue) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +func getBatchQueue(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + queueName := d.EqualsQualString("job_queue_name") + if queueName == "" { + return nil, nil + } + + // Create service client + svc, err := BatchClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_batch_queue.getBatchQueue", "client_error", err) + return nil, err + } + + // Unsupported region check + if svc == nil { + return nil, nil + } + + input := &batch.DescribeJobQueuesInput{ + JobQueues: []string{queueName}, + } + + output, err := svc.DescribeJobQueues(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_batch_queue.getBatchQueue", "api_error", err) + return nil, err + } + + if len(output.JobQueues) == 0 { + return nil, nil + } + + return output.JobQueues[0], nil +} diff --git a/aws/table_aws_bedrock_agent.go b/aws/table_aws_bedrock_agent.go new file mode 100644 index 000000000..a0ae9d424 --- /dev/null +++ b/aws/table_aws_bedrock_agent.go @@ -0,0 +1,306 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/bedrockagent" + "github.com/aws/aws-sdk-go-v2/service/bedrockagent/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBedrockAgent(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_bedrock_agent", + Description: "AWS Bedrock Agent", + Get: &plugin.GetConfig{ + KeyColumns: []*plugin.KeyColumn{ + {Name: "agent_id", Require: plugin.Required}, + }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getBedrockAgent, + Tags: map[string]string{"service": "bedrock", "action": "GetAgent"}, + }, + List: &plugin.ListConfig{ + Hydrate: listBedrockAgents, + Tags: map[string]string{"service": "bedrock", "action": "ListAgents"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getBedrockAgent, + Tags: map[string]string{"service": "bedrock", "action": "GetAgent"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BEDROCK_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + // Columns from ListAgents (AgentSummary) + { + Name: "agent_id", + Description: "The unique identifier of the agent.", + Type: proto.ColumnType_STRING, + }, + { + Name: "agent_name", + Description: "The name of the agent.", + Type: proto.ColumnType_STRING, + }, + { + Name: "agent_status", + Description: "The status of the agent and whether it is ready for use.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("AgentStatus"), + }, + { + Name: "updated_at", + Description: "The time at which the agent was last updated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "description", + Description: "The description of the agent.", + Type: proto.ColumnType_STRING, + }, + { + Name: "latest_agent_version", + Description: "The latest version of the agent.", + Type: proto.ColumnType_STRING, + }, + { + Name: "guardrail_configuration", + Description: "Details about the guardrail associated with the agent.", + Type: proto.ColumnType_JSON, + }, + + // Columns from GetAgent (Agent) + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the agent.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("AgentArn"), + Hydrate: getBedrockAgent, + }, + { + Name: "agent_resource_role_arn", + Description: "The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockAgent, + }, + { + Name: "agent_version", + Description: "The version of the agent.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockAgent, + }, + { + Name: "created_at", + Description: "The time at which the agent was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getBedrockAgent, + }, + { + Name: "prepared_at", + Description: "The time at which the agent was last prepared.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getBedrockAgent, + }, + { + Name: "idle_session_ttl_in_seconds", + Description: "The number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent.", + Type: proto.ColumnType_INT, + Transform: transform.FromField("IdleSessionTTLInSeconds"), + Hydrate: getBedrockAgent, + }, + { + Name: "foundation_model", + Description: "The foundation model used for orchestration by the agent.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockAgent, + }, + { + Name: "instruction", + Description: "Instructions that tell the agent what it should do and how it should interact with users.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockAgent, + }, + { + Name: "orchestration_type", + Description: "Specifies the orchestration strategy for the agent.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockAgent, + }, + { + Name: "customer_encryption_key_arn", + Description: "The Amazon Resource Name (ARN) of the KMS key that encrypts the agent.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockAgent, + }, + { + Name: "failure_reasons", + Description: "Contains reasons that the agent-related API that you invoked failed.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockAgent, + }, + { + Name: "agent_collaboration", + Description: "The agent's collaboration settings.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockAgent, + }, + { + Name: "recommended_actions", + Description: "Contains recommended actions to take for the agent-related API that you invoked to succeed.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockAgent, + }, + { + Name: "custom_orchestration", + Description: "Contains custom orchestration configurations for the agent.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockAgent, + }, + { + Name: "memory_configuration", + Description: "Contains memory configuration for the agent.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockAgent, + }, + { + Name: "prompt_override_configuration", + Description: "Contains configurations to override prompt templates in different parts of an agent sequence.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockAgent, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("AgentName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("AgentArn").Transform(transform.EnsureStringArray), + Hydrate: getBedrockAgent, + }, + }), + } +} + +//// LIST FUNCTION + +func listBedrockAgents(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := BedrockAgentClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_agent.listBedrockAgents", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &bedrockagent.ListAgentsInput{ + MaxResults: aws.Int32(maxLimit), + } + + paginator := bedrockagent.NewListAgentsPaginator(svc, input, func(o *bedrockagent.ListAgentsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions: ValidationException: Unknown operation + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException: Unknown operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_agent.listBedrockAgents", "api_error", err) + return nil, err + } + + for _, agent := range output.AgentSummaries { + d.StreamListItem(ctx, agent) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getBedrockAgent(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var agentId string + + if h.Item != nil { + // Retrieve agentId from the List call + agentSummary := h.Item.(types.AgentSummary) + agentId = *agentSummary.AgentId + } else { + agentId = d.EqualsQualString("agent_id") + } + + // Empty check + if agentId == "" { + return nil, nil + } + + // Create service + svc, err := BedrockAgentClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_agent.getBedrockAgent", "connection_error", err) + return nil, err + } + + // Build the params + params := &bedrockagent.GetAgentInput{ + AgentId: aws.String(agentId), + } + + // Get call + data, err := svc.GetAgent(ctx, params) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions: ValidationException: Unknown operation + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException: Unknown operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_agent.getBedrockAgent", "api_error", err) + return nil, err + } + + return data.Agent, nil +} diff --git a/aws/table_aws_bedrock_custom_model.go b/aws/table_aws_bedrock_custom_model.go new file mode 100644 index 000000000..469ae73be --- /dev/null +++ b/aws/table_aws_bedrock_custom_model.go @@ -0,0 +1,228 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/bedrock" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBedrockCustomModel(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_bedrock_custom_model", + Description: "AWS Bedrock Custom Model", + Get: &plugin.GetConfig{ + KeyColumns: []*plugin.KeyColumn{ + {Name: "arn", Require: plugin.AnyOf}, + {Name: "model_name", Require: plugin.AnyOf}, + }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getBedrockCustomModel, + Tags: map[string]string{"service": "bedrock", "action": "GetCustomModel"}, + }, + List: &plugin.ListConfig{ + Hydrate: listBedrockCustomModels, + Tags: map[string]string{"service": "bedrock", "action": "ListCustomModels"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "base_model_arn", Require: plugin.Optional}, + {Name: "creation_time", Require: plugin.Optional, Operators: []string{">", ">=", "<", "<="}}, + {Name: "model_status", Require: plugin.Optional}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BEDROCK_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "base_model_arn", + Description: "The base model Amazon Resource Name (ARN).", + Type: proto.ColumnType_STRING, + }, + { + Name: "base_model_name", + Description: "The base model name.", + Type: proto.ColumnType_STRING, + }, + { + Name: "creation_time", + Description: "Creation time of the model.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the custom model.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ModelArn"), + }, + { + Name: "model_name", + Description: "The name of the custom model.", + Type: proto.ColumnType_STRING, + }, + { + Name: "customization_type", + Description: "Specifies whether to carry out continued pre-training of a model or whether to fine-tune it.", + Type: proto.ColumnType_STRING, + }, + { + Name: "model_status", + Description: "The current status of the custom model.", + Type: proto.ColumnType_STRING, + }, + { + Name: "owner_account_id", + Description: "The unique identifier of the account that owns the model.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe standard columns + { + Name: "title", + Description: "Title of the resource.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ModelName"), + }, + { + Name: "akas", + Description: "Array of globally unique identifier strings (also known as) for the resource.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ModelArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listBedrockCustomModels(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := BedrockClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_custom_model.listBedrockCustomModels", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &bedrock.ListCustomModelsInput{ + MaxResults: &maxLimit, + } + + // Apply optional quals if provided + if d.EqualsQuals["base_model_arn"] != nil { + input.BaseModelArnEquals = aws.String(d.EqualsQuals["base_model_arn"].GetStringValue()) + } + + if d.Quals["creation_time"] != nil { + for _, q := range d.Quals["creation_time"].Quals { + timestamp := q.Value.GetTimestampValue().AsTime() + switch q.Operator { + case ">=", ">": + input.CreationTimeAfter = ×tamp + case "<=", "<": + input.CreationTimeBefore = ×tamp + } + } + } + + if d.EqualsQuals["model_status"] != nil { + input.ModelStatus = types.ModelStatus(d.EqualsQuals["model_status"].GetStringValue()) + } + + paginator := bedrock.NewListCustomModelsPaginator(svc, input, func(o *bedrock.ListCustomModelsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions: ValidationException: Unknown operation + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException: Unknown operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_custom_model.listBedrockCustomModels", "api_error", err) + return nil, err + } + + for _, model := range output.ModelSummaries { + d.StreamListItem(ctx, model) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getBedrockCustomModel(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var modelIdentifier string + + if d.EqualsQualString("arn") != "" { + modelIdentifier = d.EqualsQualString("arn") + } else { + modelIdentifier = d.EqualsQualString("model_name") + } + + // Empty check + if modelIdentifier == "" { + return nil, nil + } + + // Create service + svc, err := BedrockClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_custom_model.getBedrockCustomModel", "connection_error", err) + return nil, err + } + + // Build the params + params := &bedrock.GetCustomModelInput{ + ModelIdentifier: &modelIdentifier, + } + + // Get call + data, err := svc.GetCustomModel(ctx, params) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions: ValidationException: Unknown operation + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException: Unknown operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_custom_model.getBedrockCustomModel", "api_error", err) + return nil, err + } + + return data, nil +} diff --git a/aws/table_aws_bedrock_foundation_model.go b/aws/table_aws_bedrock_foundation_model.go new file mode 100644 index 000000000..cccf1df0b --- /dev/null +++ b/aws/table_aws_bedrock_foundation_model.go @@ -0,0 +1,160 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/bedrock" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBedrockFoundationModel(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_bedrock_foundation_model", + Description: "AWS Bedrock Foundation Model", + List: &plugin.ListConfig{ + Hydrate: listBedrockFoundationModels, + Tags: map[string]string{"service": "bedrock", "action": "ListFoundationModels"}, + }, + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("model_id"), + Hydrate: getBedrockFoundationModel, + Tags: map[string]string{"service": "bedrock", "action": "GetFoundationModel"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BEDROCK_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the foundation model.", + Transform: transform.FromField("ModelArn"), + Type: proto.ColumnType_STRING, + }, + { + Name: "model_id", + Description: "The unique identifier of the foundation model.", + Type: proto.ColumnType_STRING, + }, + { + Name: "model_name", + Description: "The name of the foundation model.", + Type: proto.ColumnType_STRING, + }, + { + Name: "provider_name", + Description: "The name of the model provider.", + Type: proto.ColumnType_STRING, + }, + { + Name: "input_modalities", + Description: "The input modalities supported by the model.", + Type: proto.ColumnType_JSON, + }, + { + Name: "output_modalities", + Description: "The output modalities supported by the model.", + Type: proto.ColumnType_JSON, + }, + { + Name: "customizations_supported", + Description: "The customizations supported by the model.", + Type: proto.ColumnType_JSON, + }, + { + Name: "inference_types_supported", + Description: "The inference types supported by the model.", + Type: proto.ColumnType_JSON, + }, + { + Name: "model_lifecycle", + Description: "The lifecycle status of the model.", + Type: proto.ColumnType_JSON, + }, + { + Name: "response_streaming_supported", + Description: "Whether the model supports response streaming.", + Type: proto.ColumnType_BOOL, + }, + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ModelName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ModelArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +func listBedrockFoundationModels(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create AWS service client + svc, err := BedrockClient(ctx, d) + + if svc == nil { + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_foundation_model.listBedrockFoundationModels", "connection_error", err) + return nil, err + } + + // Execute list call + // The API does not support pagination + resp, err := svc.ListFoundationModels(ctx, &bedrock.ListFoundationModelsInput{}) + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_foundation_model.listBedrockFoundationModels", "api_error", err) + return nil, err + } + + for _, model := range resp.ModelSummaries { + d.StreamListItem(ctx, model) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + + return nil, nil +} + +func getBedrockFoundationModel(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + modelId := d.EqualsQualString("model_id") + + if modelId == "" { + return nil, nil + } + + // Create AWS service client + svc, err := BedrockClient(ctx, d) + + if svc == nil { + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_foundation_model.getBedrockFoundationModel", "connection_error", err) + return nil, err + } + + // Execute get call + resp, err := svc.GetFoundationModel(ctx, &bedrock.GetFoundationModelInput{ + ModelIdentifier: &modelId, + }) + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_foundation_model.getBedrockFoundationModel", "api_error", err) + return nil, err + } + + return resp.ModelDetails, nil +} diff --git a/aws/table_aws_bedrock_guardrail.go b/aws/table_aws_bedrock_guardrail.go new file mode 100644 index 000000000..ef8cf882d --- /dev/null +++ b/aws/table_aws_bedrock_guardrail.go @@ -0,0 +1,194 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/bedrock" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBedrockGuardrail(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_bedrock_guardrail", + Description: "Amazon Bedrock Guardrail.", + List: &plugin.ListConfig{ + Hydrate: listBedrockGuardrails, + Tags: map[string]string{"service": "bedrock", "action": "ListGuardrails"}, + }, + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("guardrail_id"), + Hydrate: getBedrockGuardrail, + Tags: map[string]string{"service": "bedrock", "action": "GetGuardrail"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getBedrockGuardrail, + Tags: map[string]string{"service": "bedrock", "action": "GetGuardrail"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BEDROCK_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + // String columns (available in List) + {Name: "arn", Type: proto.ColumnType_STRING, Description: "ARN of the guardrail.", Transform: transform.From(guardrailArn)}, + {Name: "guardrail_id", Type: proto.ColumnType_STRING, Description: "ID of the guardrail.", Transform: transform.From(guardrailID)}, + {Name: "name", Type: proto.ColumnType_STRING, Description: "Name of the guardrail."}, + {Name: "description", Type: proto.ColumnType_STRING, Description: "Description of the guardrail."}, + {Name: "status", Type: proto.ColumnType_STRING, Description: "Status of the guardrail."}, + {Name: "version", Type: proto.ColumnType_STRING, Description: "Version (DRAFT or a number)."}, + + // Timestamp columns (available in List) + {Name: "created_at", Type: proto.ColumnType_TIMESTAMP, Description: "The time at which the guardrail was created."}, + {Name: "updated_at", Type: proto.ColumnType_TIMESTAMP, Description: "The time at which the guardrail was last updated."}, + + // Additional fields from Get call + {Name: "blocked_input_messaging", Type: proto.ColumnType_STRING, Description: "The message that the guardrail returns when it blocks a prompt.", Hydrate: getBedrockGuardrail}, + {Name: "blocked_outputs_messaging", Type: proto.ColumnType_STRING, Description: "The message that the guardrail returns when it blocks a model response.", Hydrate: getBedrockGuardrail}, + {Name: "kms_key_arn", Type: proto.ColumnType_STRING, Description: "The ARN of the KMS key that encrypts the guardrail.", Hydrate: getBedrockGuardrail}, + + // JSON columns (from Get call) + {Name: "content_policy", Type: proto.ColumnType_JSON, Description: "The content policy configuration for the guardrail.", Hydrate: getBedrockGuardrail}, + {Name: "contextual_grounding_policy", Type: proto.ColumnType_JSON, Description: "The contextual grounding policy settings.", Hydrate: getBedrockGuardrail}, + {Name: "sensitive_information_policy", Type: proto.ColumnType_JSON, Description: "The policy for handling sensitive information.", Hydrate: getBedrockGuardrail}, + {Name: "topic_policy", Type: proto.ColumnType_JSON, Description: "The topic-based policy configuration.", Hydrate: getBedrockGuardrail}, + {Name: "word_policy", Type: proto.ColumnType_JSON, Description: "The word-based policy settings.", Hydrate: getBedrockGuardrail}, + {Name: "cross_region_details", Type: proto.ColumnType_JSON, Description: "Details about system-defined guardrail profile across regions.", Hydrate: getBedrockGuardrail}, + {Name: "failure_recommendations", Type: proto.ColumnType_JSON, Description: "List of recommendations if guardrail creation/update failed.", Hydrate: getBedrockGuardrail}, + {Name: "status_reasons", Type: proto.ColumnType_JSON, Description: "Reasons for failure status if applicable.", Hydrate: getBedrockGuardrail}, + + // Steampipe standard columns + {Name: "title", Type: proto.ColumnType_STRING, Description: resourceInterfaceDescription("title"), Transform: transform.FromField("Name")}, + {Name: "akas", Type: proto.ColumnType_JSON, Description: resourceInterfaceDescription("akas"), Transform: transform.From(guardrailArn).Transform(transform.EnsureStringArray)}, + }), + } +} + +func listBedrockGuardrails(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := BedrockClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_guardrail.listBedrockGuardrails", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &bedrock.ListGuardrailsInput{ + MaxResults: aws.Int32(maxLimit), + } + + paginator := bedrock.NewListGuardrailsPaginator(svc, input, func(o *bedrock.ListGuardrailsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_guardrail.listBedrockGuardrails", "api_error", err) + return nil, err + } + + for _, guardrail := range output.Guardrails { + d.StreamListItem(ctx, guardrail) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + return nil, nil +} + +func getBedrockGuardrail(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + // Create service + svc, err := BedrockClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_guardrail.getBedrockGuardrail", "connection_error", err) + return nil, err + } + + var guardrailId string + + if h.Item != nil { + // Retrieve guardrailId from the List call + guardrail := h.Item.(types.GuardrailSummary) + guardrailId = *guardrail.Id + } else { + guardrailId = d.EqualsQuals["guardrail_id"].GetStringValue() + } + + if strings.TrimSpace(guardrailId) == "" { + return nil, nil + } + + // Build the params + params := &bedrock.GetGuardrailInput{ + GuardrailIdentifier: aws.String(guardrailId), + } + + data, err := svc.GetGuardrail(ctx, params) + + if err != nil { + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException")) { + plugin.Logger(ctx).Debug("aws_bedrock_guardrail.getBedrockGuardrail", "validation_exception", err) + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_guardrail.getBedrockGuardrail", "api_error", err) + return nil, err + } + + return data, nil +} + +// Transform functions to handle field name differences between GuardrailSummary (List) and GetGuardrailOutput (Get) +func guardrailID(ctx context.Context, d *transform.TransformData) (interface{}, error) { + switch item := d.HydrateItem.(type) { + case types.GuardrailSummary: + return item.Id, nil + case *bedrock.GetGuardrailOutput: + return item.GuardrailId, nil + } + return nil, nil +} + +func guardrailArn(ctx context.Context, d *transform.TransformData) (interface{}, error) { + switch item := d.HydrateItem.(type) { + case types.GuardrailSummary: + return item.Arn, nil + case *bedrock.GetGuardrailOutput: + return item.GuardrailArn, nil + } + return nil, nil +} diff --git a/aws/table_aws_bedrock_imported_model.go b/aws/table_aws_bedrock_imported_model.go new file mode 100644 index 000000000..9adba7e00 --- /dev/null +++ b/aws/table_aws_bedrock_imported_model.go @@ -0,0 +1,243 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/bedrock" + "github.com/aws/aws-sdk-go-v2/service/bedrock/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBedrockImportedModel(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_bedrock_imported_model", + Description: "AWS Bedrock Imported Model", + List: &plugin.ListConfig{ + Hydrate: listBedrockImportedModels, + Tags: map[string]string{"service": "bedrock", "action": "ListImportedModels"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "creation_time", Require: plugin.Optional, Operators: []string{">", ">=", "<", "<="}}, + }, + }, + Get: &plugin.GetConfig{ + KeyColumns: []*plugin.KeyColumn{ + {Name: "arn", Require: plugin.AnyOf}, + {Name: "model_name", Require: plugin.AnyOf}, + }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException", "ValidationException"}), + }, + Hydrate: getBedrockImportedModel, + Tags: map[string]string{"service": "bedrock", "action": "GetImportedModel"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getBedrockImportedModel, + Tags: map[string]string{"service": "bedrock", "action": "GetImportedModel"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BEDROCK_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "model_name", + Description: "The name of the imported model.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the imported model.", + Transform: transform.FromField("ModelArn"), + Type: proto.ColumnType_STRING, + }, + { + Name: "creation_time", + Description: "The time when the model was imported.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "instruct_supported", + Description: "Specifies if the imported model supports converse.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "model_architecture", + Description: "The architecture of the imported model.", + Type: proto.ColumnType_STRING, + }, + { + Name: "job_arn", + Description: "Job Amazon Resource Name (ARN) associated with the imported model.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockImportedModel, + }, + { + Name: "job_name", + Description: "Job name associated with the imported model.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockImportedModel, + }, + { + Name: "model_data_source", + Description: "The data source for this imported model.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockImportedModel, + }, + { + Name: "model_kms_key_arn", + Description: "The imported model is encrypted at rest using this key.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockImportedModel, + }, + { + Name: "custom_model_units", + Description: "Information about the hardware utilization for a single copy of the model.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockImportedModel, + }, + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ModelName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ModelArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listBedrockImportedModels(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create client + svc, err := BedrockClient(ctx, d) + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_imported_model.listBedrockImportedModels", "client_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &bedrock.ListImportedModelsInput{ + MaxResults: &maxLimit, + } + + // Apply creation_time qual if provided + if d.Quals["creation_time"] != nil { + for _, q := range d.Quals["creation_time"].Quals { + timestamp := q.Value.GetTimestampValue().AsTime() + switch q.Operator { + case ">=", ">": + input.CreationTimeAfter = ×tamp + case "<=", "<": + input.CreationTimeBefore = ×tamp + } + } + } + + paginator := bedrock.NewListImportedModelsPaginator(svc, input, func(o *bedrock.ListImportedModelsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions: An error occurred (AccessDeniedException) when calling the ListImportedModels operation: Your account is not authorized to invoke this API operation. + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Your account is not authorized to invoke this API operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_imported_model.listBedrockImportedModels", "api_error", err) + return nil, err + } + + for _, model := range output.ModelSummaries { + d.StreamListItem(ctx, model) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getBedrockImportedModel(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var modelIdentifier string + + if h.Item != nil { + modelIdentifier = *h.Item.(types.ImportedModelSummary).ModelArn + } else { + if d.EqualsQualString("arn") != "" { + modelIdentifier = d.EqualsQualString("arn") + } else { + modelIdentifier = d.EqualsQualString("model_name") + } + } + + // Empty check + if modelIdentifier == "" { + return nil, nil + } + + // Create client + svc, err := BedrockClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_imported_model.getBedrockImportedModel", "client_error", err) + return nil, err + } + + // Build the params + params := &bedrock.GetImportedModelInput{ + ModelIdentifier: &modelIdentifier, + } + + // Get call + data, err := svc.GetImportedModel(ctx, params) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException")) || + strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Your account is not authorized to invoke this API operation")) { + return nil, nil + } + + plugin.Logger(ctx).Error("aws_bedrock_imported_model.getBedrockImportedModel", "api_error", err) + return nil, err + } + + return data, nil +} diff --git a/aws/table_aws_bedrock_knowledge_base.go b/aws/table_aws_bedrock_knowledge_base.go new file mode 100644 index 000000000..1bed36005 --- /dev/null +++ b/aws/table_aws_bedrock_knowledge_base.go @@ -0,0 +1,232 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/bedrockagent" + "github.com/aws/aws-sdk-go-v2/service/bedrockagent/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsBedrockKnowledgeBase(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_bedrock_knowledge_base", + Description: "AWS Bedrock Knowledge Base", + Get: &plugin.GetConfig{ + KeyColumns: []*plugin.KeyColumn{ + {Name: "knowledge_base_id", Require: plugin.Required}, + }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getBedrockKnowledgeBase, + Tags: map[string]string{"service": "bedrock", "action": "GetKnowledgeBase"}, + }, + List: &plugin.ListConfig{ + Hydrate: listBedrockKnowledgeBases, + Tags: map[string]string{"service": "bedrock", "action": "ListKnowledgeBases"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getBedrockKnowledgeBase, + Tags: map[string]string{"service": "bedrock", "action": "GetKnowledgeBase"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_BEDROCK_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + // Key columns + { + Name: "knowledge_base_id", + Description: "The unique identifier of the knowledge base.", + Type: proto.ColumnType_STRING, + }, + { + Name: "name", + Description: "The name of the knowledge base.", + Type: proto.ColumnType_STRING, + }, + { + Name: "status", + Description: "The status of the knowledge base.", + Type: proto.ColumnType_STRING, + }, + { + Name: "description", + Description: "The description of the knowledge base.", + Type: proto.ColumnType_STRING, + }, + { + Name: "created_at", + Description: "The time at which the knowledge base was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getBedrockKnowledgeBase, + }, + { + Name: "updated_at", + Description: "The time at which the knowledge base was last updated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the knowledge base.", + Transform: transform.FromField("KnowledgeBaseArn"), + Type: proto.ColumnType_STRING, + Hydrate: getBedrockKnowledgeBase, + }, + { + Name: "role_arn", + Description: "The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.", + Type: proto.ColumnType_STRING, + Hydrate: getBedrockKnowledgeBase, + }, + { + Name: "storage_configuration", + Description: "The storage configuration for the knowledge base.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockKnowledgeBase, + }, + { + Name: "knowledge_base_configuration", + Description: "Contains details about the embeddings configuration of the knowledge base.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockKnowledgeBase, + }, + { + Name: "failure_reasons", + Description: "Contains reasons that the knowledge base-related API that you invoked failed.", + Type: proto.ColumnType_JSON, + Hydrate: getBedrockKnowledgeBase, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("KnowledgeBaseArn").Transform(transform.EnsureStringArray), + Hydrate: getBedrockKnowledgeBase, + }, + }), + } +} + +//// LIST FUNCTION + +func listBedrockKnowledgeBases(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := BedrockAgentClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_knowledge_base.listBedrockKnowledgeBases", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &bedrockagent.ListKnowledgeBasesInput{ + MaxResults: aws.Int32(maxLimit), + } + + paginator := bedrockagent.NewListKnowledgeBasesPaginator(svc, input, func(o *bedrockagent.ListKnowledgeBasesPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException: Unknown operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_knowledge_base.listBedrockKnowledgeBases", "api_error", err) + return nil, err + } + + for _, kb := range output.KnowledgeBaseSummaries { + d.StreamListItem(ctx, kb) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getBedrockKnowledgeBase(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var knowledgeBaseId string + + if h.Item != nil { + // Retrieve knowledgeBaseId from the List call + knowledgeBaseSummary := h.Item.(types.KnowledgeBaseSummary) + knowledgeBaseId = *knowledgeBaseSummary.KnowledgeBaseId + } else { + knowledgeBaseId = d.EqualsQualString("knowledge_base_id") + } + + // Empty check + if knowledgeBaseId == "" { + return nil, nil + } + + // Create service + svc, err := BedrockAgentClient(ctx, d) + + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + if err != nil { + plugin.Logger(ctx).Error("aws_bedrock_knowledge_base.getBedrockKnowledgeBase", "connection_error", err) + return nil, err + } + + // Build the params + params := &bedrockagent.GetKnowledgeBaseInput{ + KnowledgeBaseId: aws.String(knowledgeBaseId), + } + + // Get call + data, err := svc.GetKnowledgeBase(ctx, params) + if err != nil { + // Handle the unsupported region error since the resource is not available in all the regions + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("ValidationException: Unknown operation")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_bedrock_knowledge_base.getBedrockKnowledgeBase", "api_error", err) + return nil, err + } + + return data.KnowledgeBase, nil +} diff --git a/aws/table_aws_budgets_budget.go b/aws/table_aws_budgets_budget.go new file mode 100644 index 000000000..8e9388407 --- /dev/null +++ b/aws/table_aws_budgets_budget.go @@ -0,0 +1,247 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/budgets" + "github.com/aws/aws-sdk-go-v2/service/budgets/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsBudgetsBudget(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_budgets_budget", + Description: "AWS Budgets Budget", + List: &plugin.ListConfig{ + Hydrate: listBudgetsBudgets, + Tags: map[string]string{"service": "budgets", "action": "DescribeBudgets"}, + }, + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"account_id", "name"}), + Hydrate: getBudgetsBudget, + Tags: map[string]string{"service": "budgets", "action": "DescribeBudget"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: listBudgetsNotifications, + Tags: map[string]string{"service": "budgets", "action": "DescribeNotificationsForBudget"}, + }, + }, + Columns: awsGlobalRegionColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of a budget.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("BudgetName"), + }, + { + Name: "type", + Description: "The type of budget (COST, USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, SAVINGS_PLANS_COVERAGE).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("BudgetType"), + }, + { + Name: "limit_amount", + Description: "The budgeted amount for the budget.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("BudgetLimit.Amount"), + }, + { + Name: "limit_unit", + Description: "The unit of measurement for the budget amount.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("BudgetLimit.Unit"), + }, + { + Name: "calculated_spend_actual_spend", + Description: "The actual amount spent during the period.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("CalculatedSpend.ActualSpend.Amount"), + }, + { + Name: "calculated_spend_forecasted_spend", + Description: "The forecasted amount for the period.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("CalculatedSpend.ForecastedSpend.Amount"), + }, + { + Name: "time_period_start", + Description: "The start date of the budget.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("TimePeriod.Start"), + }, + { + Name: "time_period_end", + Description: "The end date of the budget.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("TimePeriod.End"), + }, + { + Name: "time_unit", + Description: "The length of the budget period (MONTHLY, QUARTERLY, ANNUALLY).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("TimeUnit"), + }, + { + Name: "cost_filters", + Description: "The cost filters for the budget.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("CostFilters"), + }, + { + Name: "cost_types", + Description: "The types of costs included in the budget.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("CostTypes"), + }, + { + Name: "notifications", + Description: "The notifications associated with the budget.", + Type: proto.ColumnType_JSON, + Hydrate: listBudgetsNotifications, + Transform: transform.FromValue(), + }, + // Standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("BudgetName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getBudgetArn, + Transform: transform.FromValue(), + }, + }), + } +} + +//// LIST FUNCTION + +func listBudgetsBudgets(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + client, err := BudgetsClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.listBudgetsBudgets", "connection_error", err) + return nil, err + } + + // Get account ID from common columns + commonColumnData, err := getCommonColumnsUncached(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.listBudgetsBudgets", "get_account_id_error", err) + return nil, err + } + accountID := commonColumnData.(*awsCommonColumnData).AccountId + + input := &budgets.DescribeBudgetsInput{ + AccountId: aws.String(accountID), + } + + paginator := budgets.NewDescribeBudgetsPaginator(client, input) + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.listBudgetsBudgets", "api_error", err) + return nil, err + } + + for _, budget := range output.Budgets { + d.StreamListItem(ctx, budget) + + // Context may get cancelled + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// GET FUNCTION + +func getBudgetsBudget(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + accountID := d.EqualsQualString("account_id") + name := d.EqualsQualString("name") + + if accountID == "" || name == "" { + return nil, nil + } + + client, err := BudgetsClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.getBudgetsBudget", "connection_error", err) + return nil, err + } + + input := &budgets.DescribeBudgetInput{ + AccountId: aws.String(accountID), + BudgetName: aws.String(name), + } + + output, err := client.DescribeBudget(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.getBudgetsBudget", "api_error", err) + return nil, err + } + + return output.Budget, nil +} + +//// HYDRATE FUNCTIONS + +func listBudgetsNotifications(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + budget := h.Item.(types.Budget) + + // Get account ID from common columns + commonColumnData, err := getCommonColumnsUncached(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.listBudgetsNotifications", "get_account_id_error", err) + return nil, err + } + accountID := commonColumnData.(*awsCommonColumnData).AccountId + + client, err := BudgetsClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.listBudgetsNotifications", "connection_error", err) + return nil, err + } + + input := &budgets.DescribeNotificationsForBudgetInput{ + AccountId: aws.String(accountID), + BudgetName: budget.BudgetName, + } + + output, err := client.DescribeNotificationsForBudget(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.listBudgetsNotifications", "api_error", err) + return nil, err + } + + return output.Notifications, nil +} + +func getBudgetArn(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + budget := h.Item.(types.Budget) + + // Get account ID and partition from common columns + commonColumnData, err := getCommonColumnsUncached(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_budgets_budget.getBudgetArn", "get_account_id_error", err) + return nil, err + } + accountID := commonColumnData.(*awsCommonColumnData).AccountId + partition := commonColumnData.(*awsCommonColumnData).Partition + + arn := "arn:" + partition + ":budgets::" + accountID + ":budget/" + *budget.BudgetName + return []string{arn}, nil +} diff --git a/aws/table_aws_ce_anomaly_monitor.go b/aws/table_aws_ce_anomaly_monitor.go new file mode 100644 index 000000000..fdb69c20a --- /dev/null +++ b/aws/table_aws_ce_anomaly_monitor.go @@ -0,0 +1,161 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/costexplorer" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsCEAnomalyMonitor(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ce_anomaly_monitor", + Description: "AWS Cost Explorer Anomaly Monitor", + List: &plugin.ListConfig{ + Hydrate: listCEAnomalyMonitors, + Tags: map[string]string{"service": "ce", "action": "GetAnomalyMonitors"}, + }, + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"monitor_arn"}), + Hydrate: getCEAnomalyMonitor, + Tags: map[string]string{"service": "ce", "action": "GetAnomalyMonitors"}, + }, + Columns: awsGlobalRegionColumns([]*plugin.Column{ + { + Name: "monitor_arn", + Description: "The ARN of the anomaly monitor.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("MonitorArn"), + }, + { + Name: "monitor_name", + Description: "The name of the anomaly monitor.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("MonitorName"), + }, + { + Name: "monitor_type", + Description: "The type of the monitor (DIMENSIONAL or CUSTOM).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("MonitorType"), + }, + { + Name: "monitor_dimension", + Description: "The dimension to monitor for anomalies.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("MonitorDimension"), + }, + { + Name: "monitor_specification", + Description: "The monitor specification with cost categories, tags, or dimensions.", + Type: proto.ColumnType_JSON, + }, + { + Name: "creation_date", + Description: "The creation date of the anomaly monitor.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("CreationDate"), + }, + { + Name: "last_updated_date", + Description: "The last update date of the anomaly monitor.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("LastUpdatedDate"), + }, + { + Name: "last_evaluated_date", + Description: "The last evaluation date of the anomaly monitor.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("LastEvaluatedDate"), + }, + { + Name: "dimensional_value_count", + Description: "The number of evaluated dimensions.", + Type: proto.ColumnType_INT, + Transform: transform.FromField("DimensionalValueCount"), + }, + // Standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("MonitorName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("MonitorArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listCEAnomalyMonitors(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + client, err := CostExplorerClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ce_anomaly_monitor.listCEAnomalyMonitors", "connection_error", err) + return nil, err + } + + input := &costexplorer.GetAnomalyMonitorsInput{ + MaxResults: aws.Int32(100), + } + + output, err := client.GetAnomalyMonitors(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_ce_anomaly_monitor.listCEAnomalyMonitors", "api_error", err) + return nil, err + } + + for _, monitor := range output.AnomalyMonitors { + d.StreamListItem(ctx, monitor) + + // Context may get cancelled + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + + return nil, nil +} + +//// GET FUNCTION + +func getCEAnomalyMonitor(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + monitorArn := d.EqualsQualString("monitor_arn") + if monitorArn == "" { + return nil, nil + } + + client, err := CostExplorerClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ce_anomaly_monitor.getCEAnomalyMonitor", "connection_error", err) + return nil, err + } + + // Use MonitorArnList to filter by specific ARN + input := &costexplorer.GetAnomalyMonitorsInput{ + MonitorArnList: []string{monitorArn}, + } + + output, err := client.GetAnomalyMonitors(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_ce_anomaly_monitor.getCEAnomalyMonitor", "api_error", err) + return nil, err + } + + if len(output.AnomalyMonitors) > 0 { + return output.AnomalyMonitors[0], nil + } + + return nil, nil +} diff --git a/aws/table_aws_ce_cost_allocation_tags.go b/aws/table_aws_ce_cost_allocation_tags.go new file mode 100644 index 000000000..540232755 --- /dev/null +++ b/aws/table_aws_ce_cost_allocation_tags.go @@ -0,0 +1,122 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/costexplorer" + "github.com/aws/aws-sdk-go-v2/service/costexplorer/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsCECostAllocationTags(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ce_cost_allocation_tags", + Description: "AWS Cost Explorer Cost Allocation Tags", + List: &plugin.ListConfig{ + KeyColumns: []*plugin.KeyColumn{ + { + Name: "status", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "type", + Operators: []string{"="}, + Require: plugin.Optional, + }, + }, + Hydrate: listCECostAllocationTags, + Tags: map[string]string{"service": "ce", "action": "ListCostAllocationTags"}, + }, + Columns: awsGlobalRegionColumns([]*plugin.Column{ + { + Name: "tag_key", + Description: "The cost allocation tag key.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("TagKey"), + }, + { + Name: "status", + Description: "The status of the cost allocation tag (Active or Inactive).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Status"), + }, + { + Name: "type", + Description: "The type of the cost allocation tag (AWSGenerated or UserDefined).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Type"), + }, + { + Name: "last_updated_date", + Description: "The last date that the tag was activated or deactivated.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("LastUpdatedDate"), + }, + { + Name: "last_used_date", + Description: "The last month that the tag was used on an AWS resource.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("LastUsedDate"), + }, + // Standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("TagKey"), + }, + }), + } +} + +//// LIST FUNCTION + +func listCECostAllocationTags(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + client, err := CostExplorerClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ce_cost_allocation_tags.listCECostAllocationTags", "connection_error", err) + return nil, err + } + + input := &costexplorer.ListCostAllocationTagsInput{ + MaxResults: aws.Int32(100), + } + + // Add optional status filter + if status := d.EqualsQualString("status"); status != "" { + input.Status = types.CostAllocationTagStatus(status) + } + + // Add optional type filter + if tagType := d.EqualsQualString("type"); tagType != "" { + input.Type = types.CostAllocationTagType(tagType) + } + + // Handle pagination + paginator := costexplorer.NewListCostAllocationTagsPaginator(client, input) + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_ce_cost_allocation_tags.listCECostAllocationTags", "api_error", err) + return nil, err + } + + for _, tag := range output.CostAllocationTags { + d.StreamListItem(ctx, tag) + + // Context may get cancelled + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} diff --git a/aws/table_aws_cloudcontrol_resource.go b/aws/table_aws_cloudcontrol_resource.go index e633957ac..e5376a1ef 100644 --- a/aws/table_aws_cloudcontrol_resource.go +++ b/aws/table_aws_cloudcontrol_resource.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudcontrol" "github.com/aws/aws-sdk-go-v2/service/cloudcontrol/types" - cloudcontrolapiv1 "github.com/aws/aws-sdk-go/service/cloudcontrolapi" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsCloudControlResource(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudformation", "action": "GetResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudcontrolapiv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CLOUDCONTROLAPI_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "type_name", diff --git a/aws/table_aws_cloudformation_stack.go b/aws/table_aws_cloudformation_stack.go index 749518a64..d8ec3c1a1 100644 --- a/aws/table_aws_cloudformation_stack.go +++ b/aws/table_aws_cloudformation_stack.go @@ -12,7 +12,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudformation/types" go_kit "github.com/turbot/go-kit/types" - cloudformationv1 "github.com/aws/aws-sdk-go/service/cloudformation" "github.com/goccy/go-yaml" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -39,22 +38,30 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudformation", "action": "DescribeStacks"}, KeyColumns: []*plugin.KeyColumn{ { - Name: "name", + Name: "status", Require: plugin.Optional, }, }, }, HydrateConfig: []plugin.HydrateConfig{ + // For deleted stacks we are encountering error "ValidationError" { Func: getStackTemplate, Tags: map[string]string{"service": "cloudformation", "action": "GetTemplate"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationError"}), + }, }, + // For deleted stacks we are encountering error "ValidationError" { Func: describeStackResources, Tags: map[string]string{"service": "cloudformation", "action": "DescribeStackResources"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationError"}), + }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudformationv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CLOUDFORMATION_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", @@ -78,16 +85,19 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "stack_status_reason", Description: "Success/failure message associated with the stack status.", Type: proto.ColumnType_STRING, + Hydrate: getCloudFormationStack, }, { Name: "change_set_id", Description: "The unique ID of the change set.", Type: proto.ColumnType_STRING, + Hydrate: getCloudFormationStack, }, { Name: "detailed_status", Description: "The detailed status of the resource or stack.", Type: proto.ColumnType_STRING, + Hydrate: getCloudFormationStack, }, { Name: "creation_time", @@ -103,16 +113,19 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "retain_except_on_create", Description: "When set to true , newly created resources are deleted when the operation rolls back.", Type: proto.ColumnType_BOOL, + Hydrate: getCloudFormationStack, }, { Name: "disable_rollback", Description: "Boolean to enable or disable rollback on stack creation failures.", Type: proto.ColumnType_BOOL, + Hydrate: getCloudFormationStack, }, { Name: "enable_termination_protection", Description: "Specifies whether termination protection is enabled for the stack.", Type: proto.ColumnType_BOOL, + Hydrate: getCloudFormationStack, }, { Name: "last_updated_time", @@ -128,6 +141,7 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "role_arn", Description: "The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that is associated with the stack.", Type: proto.ColumnType_STRING, + Hydrate: getCloudFormationStack, Transform: transform.FromField("RoleARN"), }, { @@ -139,32 +153,38 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "description", Description: "A user-defined description associated with the stack.", Type: proto.ColumnType_STRING, + Hydrate: getCloudFormationStack, }, { Name: "timeout_in_minutes", Description: "The amount of time within which stack creation should complete.", Type: proto.ColumnType_INT, + Hydrate: getCloudFormationStack, }, { Name: "notification_arns", Description: "SNS topic ARNs to which stack related events are published.", Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, Transform: transform.FromField("NotificationARNs"), }, { Name: "outputs", Description: "A list of output structures.", Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, }, { Name: "rollback_configuration", Description: "The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards.", Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, }, { Name: "capabilities", Description: "The capabilities allowed in the stack.", Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, }, { Name: "stack_drift_status", @@ -176,6 +196,7 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "parameters", Description: "A list of Parameter structures.", Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, }, { Name: "template_body", @@ -202,6 +223,7 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "tags_src", Description: "A list of tags associated with stack.", Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, Transform: transform.FromField("Tags"), }, @@ -210,6 +232,7 @@ func tableAwsCloudFormationStack(_ context.Context) *plugin.Table { Name: "tags", Description: resourceInterfaceDescription("tags"), Type: proto.ColumnType_JSON, + Hydrate: getCloudFormationStack, Transform: transform.From(cfnStackTagsToTurbotTags), }, { @@ -244,14 +267,14 @@ func listCloudFormationStacks(ctx context.Context, d *plugin.QueryData, _ *plugi } // We can not pass the MaxResult value in param so we can't limit the result per page - input := &cloudformation.DescribeStacksInput{} + input := &cloudformation.ListStacksInput{} // Additonal Filter equalQuals := d.EqualsQuals - if equalQuals["name"] != nil { - input.StackName = aws.String(equalQuals["name"].GetStringValue()) + if equalQuals["status"] != nil { + input.StackStatusFilter = []types.StackStatus{types.StackStatus(equalQuals["status"].GetStringValue())} } - paginator := cloudformation.NewDescribeStacksPaginator(svc, input, func(o *cloudformation.DescribeStacksPaginatorOptions) { + paginator := cloudformation.NewListStacksPaginator(svc, input, func(o *cloudformation.ListStacksPaginatorOptions) { o.StopOnDuplicateToken = true }) for paginator.HasMorePages() { @@ -264,7 +287,7 @@ func listCloudFormationStacks(ctx context.Context, d *plugin.QueryData, _ *plugi return nil, err } - for _, stack := range output.Stacks { + for _, stack := range output.StackSummaries { d.StreamListItem(ctx, stack) // Context can be cancelled due to manual cancellation or the limit has been hit if d.RowsRemaining(ctx) == 0 { @@ -278,22 +301,29 @@ func listCloudFormationStacks(ctx context.Context, d *plugin.QueryData, _ *plugi //// HYDRATE FUNCTIONS -func getCloudFormationStack(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { +func getCloudFormationStack(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { // Create Session svc, err := CloudFormationClient(ctx, d) if err != nil { plugin.Logger(ctx).Error("aws_cloudformation_stack.getCloudFormationStack", "connection_error", err) return nil, err } + var stackInfo types.StackSummary + if h.Item != nil { + stackInfo = h.Item.(types.StackSummary) + } if svc == nil { // Unsupported region check return nil, nil } - name := d.EqualsQuals["name"].GetStringValue() - params := &cloudformation.DescribeStacksInput{ - StackName: aws.String(name), + params := &cloudformation.DescribeStacksInput{} + + if d.EqualsQuals["name"].GetStringValue() != "" { + params.StackName = aws.String(d.EqualsQuals["name"].GetStringValue()) + } else { + params.StackName = stackInfo.StackName } op, err := svc.DescribeStacks(ctx, params) @@ -310,7 +340,14 @@ func getCloudFormationStack(ctx context.Context, d *plugin.QueryData, _ *plugin. } func getStackTemplate(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { - stack := h.Item.(types.Stack) + stackName := "" + + switch h.Item.(type) { + case types.Stack: + stackName = *h.Item.(types.Stack).StackName + case types.StackSummary: + stackName = *h.Item.(types.StackSummary).StackName + } // Create Session svc, err := CloudFormationClient(ctx, d) @@ -326,7 +363,7 @@ func getStackTemplate(ctx context.Context, d *plugin.QueryData, h *plugin.Hydrat // template_body is the template in its original string form params := &cloudformation.GetTemplateInput{ - StackName: stack.StackName, + StackName: aws.String(stackName), } stackTemplate, err := svc.GetTemplate(ctx, params) if err != nil { @@ -338,7 +375,14 @@ func getStackTemplate(ctx context.Context, d *plugin.QueryData, h *plugin.Hydrat } func describeStackResources(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { - stack := h.Item.(types.Stack) + stackName := "" + + switch h.Item.(type) { + case types.Stack: + stackName = *h.Item.(types.Stack).StackName + case types.StackSummary: + stackName = *h.Item.(types.StackSummary).StackName + } // Create Session svc, err := CloudFormationClient(ctx, d) @@ -353,7 +397,7 @@ func describeStackResources(ctx context.Context, d *plugin.QueryData, h *plugin. } params := &cloudformation.DescribeStackResourcesInput{ - StackName: stack.StackName, + StackName: aws.String(stackName), } stackResources, err := svc.DescribeStackResources(ctx, params) @@ -385,7 +429,7 @@ func cfnStackTagsToTurbotTags(_ context.Context, d *transform.TransformData) (in * The API may return the template body in various formats like JSON or YAML, based on configuration made by user. Consequently, converting YAML to JSON isn't always required. * To address this, a dedicated function has been implemented. It ensures the template body is correctly formatted to JSON as per the API's output, adapting the transformation process accordingly. * This approach is specifically designed for this table, providing a tailored and accurate response handling as per the API specifications. -*/ + */ // Functionality Overview // Identifies and decodes URLs within the template body. (URLs are decoded selectively to avoid issues with '%' characters not part of a valid escaped sequence.) diff --git a/aws/table_aws_cloudformation_stack_resource.go b/aws/table_aws_cloudformation_stack_resource.go index 947d3f5a6..a44c43bfb 100644 --- a/aws/table_aws_cloudformation_stack_resource.go +++ b/aws/table_aws_cloudformation_stack_resource.go @@ -2,12 +2,12 @@ package aws import ( "context" + "errors" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudformation" "github.com/aws/aws-sdk-go-v2/service/cloudformation/types" - - cloudformationv1 "github.com/aws/aws-sdk-go/service/cloudformation" + "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -29,7 +29,7 @@ func tableAwsCloudFormationStackResource(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudformation", "action": "DescribeStackResource"}, }, List: &plugin.ListConfig{ - ParentHydrate: listCloudFormationStacks, + ParentHydrate: listCloudFormationStackResourcesParent, Hydrate: listCloudFormationStackResources, Tags: map[string]string{"service": "cloudformation", "action": "ListStackResources"}, KeyColumns: []*plugin.KeyColumn{ @@ -37,6 +37,10 @@ func tableAwsCloudFormationStackResource(_ context.Context) *plugin.Table { Name: "stack_name", Require: plugin.Optional, }, + { + Name: "physical_resource_id", + Require: plugin.Optional, + }, }, }, HydrateConfig: []plugin.HydrateConfig{ @@ -45,7 +49,7 @@ func tableAwsCloudFormationStackResource(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudformation", "action": "DescribeStackResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudformationv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CLOUDFORMATION_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "logical_resource_id", @@ -70,6 +74,7 @@ func tableAwsCloudFormationStackResource(_ context.Context) *plugin.Table { Name: "last_updated_timestamp", Description: "Time the status was updated.", Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("LastUpdatedTimestamp", "Timestamp"), }, { Name: "resource_status", @@ -88,6 +93,13 @@ func tableAwsCloudFormationStackResource(_ context.Context) *plugin.Table { Hydrate: getCloudFormationStackResource, Transform: transform.FromField("Description"), }, + { + Name: "metadata", + Description: "The content of the Metadata attribute declared for the resource.", + Type: proto.ColumnType_STRING, + Hydrate: getCloudFormationStackResource, + Transform: transform.FromField("Metadata"), + }, { Name: "physical_resource_id", Description: "The name or unique identifier that corresponds to a physical instance ID of a resource supported by CloudFormation.", @@ -120,17 +132,94 @@ func tableAwsCloudFormationStackResource(_ context.Context) *plugin.Table { } } -//// LIST FUNCTION +//// PARENT HYDRATE FUNCTION +// For more details please see, https://github.com/turbot/steampipe-plugin-aws/issues/2627 -func listCloudFormationStackResources(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { - stack := h.Item.(types.Stack) - stackName := d.EqualsQualString("stack_name") +// Parent hydrate function that optimizes the query flow based on the provided qualifiers +// This function implements the performance optimization strategy described in the design: +// 1. Fast access by PhysicalResourceId: Uses DescribeStackResources with PhysicalResourceId parameter +// 2. Fast access by StackName: Falls back to listing all stacks for stack-based queries +// +// The function handles the physical_resource_id qualifier efficiently by: +// - Making a single DescribeStackResources API call with PhysicalResourceId parameter +// - Streaming results directly if < 100 resources (fast path) +// - Falling back to stack iteration if ≥ 100 resources (rare case) +// - Handling ValidationError gracefully when resource is not found +// +// This approach addresses the performance issue described in GitHub issue #2627 where +// the previous implementation was slow because it iterated through all stacks. +// The new implementation matches the CLI behavior: aws cloudformation describe-stack-resources --physical-resource-id +func listCloudFormationStackResourcesParent(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + physicalResourceId := d.EqualsQualString("physical_resource_id") - // If a stack name is specified in optional quals, the user is not allowed to perform API calls for other stacks. - if d.EqualsQuals["stack_name"] != nil && stackName != *stack.StackName { - return nil, nil + // Case 3: Fast access by PhysicalResourceId using DescribeStackResources + // This is the optimized path that addresses the performance issue in GitHub issue #2627 + // Instead of iterating through all stacks, we make a single API call with PhysicalResourceId + if physicalResourceId != "" { + // Create session + svc, err := CloudFormationClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudformation_stack_resource.listCloudFormationStackResourcesParent", "connection_error", err) + return nil, err + } + + // Unsupported region check + if svc == nil { + return nil, nil + } + + // Apply rate limiting + d.WaitForListRateLimit(ctx) + + // Use DescribeStackResources directly with PhysicalResourceId parameter + // This is the key optimization: single API call instead of iterating all stacks + // This matches the CLI behavior: aws cloudformation describe-stack-resources --physical-resource-id + input := &cloudformation.DescribeStackResourcesInput{ + PhysicalResourceId: aws.String(physicalResourceId), + } + + output, err := svc.DescribeStackResources(ctx, input) + if err != nil { + // Handle ValidationError gracefully - this occurs when the physical resource ID is not found + // This matches the CLI behavior where it returns "Stack for my-arn-1 does not exist" + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "ValidationError" { + return nil, nil + } + } + plugin.Logger(ctx).Error("aws_cloudformation_stack_resource.listCloudFormationStackResourcesParent", "api_error", err) + return nil, err + } + + // Fast path: If response has less than 100 resources, stream them directly + // This covers the vast majority of cases and provides optimal performance + if len(output.StackResources) < 100 { + for _, resource := range output.StackResources { + d.StreamListItem(ctx, resource) + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + return nil, nil + } else { + // Fallback path: If response has 100 or more resources (rare case), + // return the stack list for the list function to handle with pagination + // This ensures we don't lose the ability to handle large stacks + return listCloudFormationStacks(ctx, d, h) + } } + // Case 1: Fast access by StackName or general stack listing + // For queries without physical_resource_id, we need to list all stacks + // This is the traditional approach for stack-based queries + return listCloudFormationStacks(ctx, d, h) +} + +//// LIST FUNCTION + +func listCloudFormationStackResources(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { // Create session svc, err := CloudFormationClient(ctx, d) if err != nil { @@ -143,34 +232,97 @@ func listCloudFormationStackResources(ctx context.Context, d *plugin.QueryData, return nil, nil } - // We can not pass the MaxResult value in param so we can't limit the result per page - input := &cloudformation.ListStackResourcesInput{ + stackName := d.EqualsQualString("stack_name") + + // Check the type of h.Item and handle accordingly + // This function handles different types of items returned from the parent hydrate: + // - types.StackResource: Direct resources from physical_resource_id queries (fast path) + // - types.StackSummary: Stack information for stack-based queries + if h.Item != nil { + // Case 3: If h.Item is types.StackResource, directly stream it + if resource, ok := h.Item.(types.StackResource); ok { + + resourceDetails := types.StackResourceDetail{ + LastUpdatedTimestamp: resource.Timestamp, + LogicalResourceId: resource.LogicalResourceId, + ResourceStatus: resource.ResourceStatus, + ResourceType: resource.ResourceType, + Description: resource.Description, + DriftInformation: (*types.StackResourceDriftInformation)(resource.DriftInformation), + ModuleInfo: resource.ModuleInfo, + PhysicalResourceId: resource.PhysicalResourceId, + ResourceStatusReason: resource.ResourceStatusReason, + StackName: resource.StackName, + StackId: resource.StackId, + } + d.StreamListItem(ctx, resourceDetails) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + return nil, nil + } + + // Case 1: If h.Item is types.StackSummary, get stack name and make API call + if stack, ok := h.Item.(types.StackSummary); ok { + + // If a stack name is specified in optional quals, the user is not allowed to perform API calls for other stacks. + if stackName != "" && stackName != *stack.StackName { + return nil, nil + } + + // For deleted stacks, skip processing + if stack.StackStatus == types.StackStatusDeleteComplete { + return nil, nil + } + + return listCloudFormationStackResourcesByStackName(ctx, d, svc, stack) + } + } + + return nil, nil +} + +//// HELPER FUNCTIONS + +// Case 1: Fast access by StackName using ListStackResources +// This function handles stack-based queries by using ListStackResources with pagination +// It's used when the parent hydrate returns StackSummary items for stack iteration +// This approach is used for: +// - Queries with stack_name qualifier +// - General stack resource listing (when no physical_resource_id is specified) +func listCloudFormationStackResourcesByStackName(ctx context.Context, d *plugin.QueryData, svc *cloudformation.Client, stack types.StackSummary) (interface{}, error) { + + // Use ListStackResources to get resources for the stack + listInput := &cloudformation.ListStackResourcesInput{ StackName: stack.StackName, } - paginator := cloudformation.NewListStackResourcesPaginator(svc, input, func(o *cloudformation.ListStackResourcesPaginatorOptions) { + paginator := cloudformation.NewListStackResourcesPaginator(svc, listInput, func(o *cloudformation.ListStackResourcesPaginatorOptions) { o.StopOnDuplicateToken = true }) + for paginator.HasMorePages() { - // apply rate limiting + // Apply rate limiting d.WaitForListRateLimit(ctx) output, err := paginator.NextPage(ctx) if err != nil { - plugin.Logger(ctx).Error("aws_cloudformation_stack_resource.listCloudFormationStackResources", "api_error", err) + plugin.Logger(ctx).Error("aws_cloudformation_stack_resource.listCloudFormationStackResourcesByStackName", "api_error", err) return nil, err } - for _, resource := range output.StackResourceSummaries { + for _, resourceSummary := range output.StackResourceSummaries { d.StreamListItem(ctx, types.StackResourceDetail{ - LastUpdatedTimestamp: resource.LastUpdatedTimestamp, - LogicalResourceId: resource.LogicalResourceId, - ResourceStatus: resource.ResourceStatus, - ResourceType: resource.ResourceType, - DriftInformation: (*types.StackResourceDriftInformation)(resource.DriftInformation), - ModuleInfo: resource.ModuleInfo, - PhysicalResourceId: resource.PhysicalResourceId, - ResourceStatusReason: resource.ResourceStatusReason, + LastUpdatedTimestamp: resourceSummary.LastUpdatedTimestamp, + LogicalResourceId: resourceSummary.LogicalResourceId, + ResourceStatus: resourceSummary.ResourceStatus, + ResourceType: resourceSummary.ResourceType, + DriftInformation: (*types.StackResourceDriftInformation)(resourceSummary.DriftInformation), + ModuleInfo: resourceSummary.ModuleInfo, + PhysicalResourceId: resourceSummary.PhysicalResourceId, + ResourceStatusReason: resourceSummary.ResourceStatusReason, StackName: stack.StackName, StackId: stack.StackId, }) @@ -179,9 +331,9 @@ func listCloudFormationStackResources(ctx context.Context, d *plugin.QueryData, return nil, nil } } - } - return nil, err + + return nil, nil } //// HYDRATE FUNCTIONS @@ -189,9 +341,13 @@ func listCloudFormationStackResources(ctx context.Context, d *plugin.QueryData, func getCloudFormationStackResource(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { var stackName, logicalId string if h.Item != nil { - data := h.Item.(types.StackResourceDetail) - stackName = *data.StackName - logicalId = *data.LogicalResourceId + switch item := h.Item.(type) { + case types.StackResourceDetail: + stackName = *item.StackName + logicalId = *item.LogicalResourceId + case types.StackResource: + return item, nil + } } else { stackName = d.EqualsQualString("stack_name") logicalId = d.EqualsQualString("logical_resource_id") diff --git a/aws/table_aws_cloudformation_stack_set.go b/aws/table_aws_cloudformation_stack_set.go index 4b67ac307..ab9e4e082 100644 --- a/aws/table_aws_cloudformation_stack_set.go +++ b/aws/table_aws_cloudformation_stack_set.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudformation" "github.com/aws/aws-sdk-go-v2/service/cloudformation/types" - cloudformationv1 "github.com/aws/aws-sdk-go/service/cloudformation" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsCloudFormationStackSet(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudformation", "action": "DescribeStackSet"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudformationv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CLOUDFORMATION_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "stack_set_id", diff --git a/aws/table_aws_cloudfront_distribution.go b/aws/table_aws_cloudfront_distribution.go index f2f970edf..afdf33f53 100644 --- a/aws/table_aws_cloudfront_distribution.go +++ b/aws/table_aws_cloudfront_distribution.go @@ -38,6 +38,13 @@ func tableAwsCloudFrontDistribution(_ context.Context) *plugin.Table { Func: getCloudFrontDistributionTags, Tags: map[string]string{"service": "cloudfront", "action": "ListTagsForResource"}, }, + { + Func: getCloudFrontDistributionMonitoringSubscription, + Tags: map[string]string{"service": "cloudfront", "action": "GetMonitoringSubscription"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NoSuchMonitoringSubscription"}), + }, + }, }, Columns: awsRegionalColumns([]*plugin.Column{ { @@ -215,6 +222,13 @@ func tableAwsCloudFrontDistribution(_ context.Context) *plugin.Table { Type: proto.ColumnType_JSON, Transform: transform.FromField("ViewerCertificate", "Distribution.DistributionConfig.ViewerCertificate"), }, + { + Name: "monitoring_subscription", + Description: "The monitoring subscription for the CloudFront distribution.", + Type: proto.ColumnType_JSON, + Hydrate: getCloudFrontDistributionMonitoringSubscription, + Transform: transform.FromValue(), + }, // Standard columns for all tables { @@ -356,6 +370,45 @@ func getCloudFrontDistributionTags(ctx context.Context, d *plugin.QueryData, h * return op, nil } +func getCloudFrontDistributionMonitoringSubscription(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get client + svc, err := CloudFrontClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudfront_distribution.getCloudFrontDistributionMonitoringSubscription", "client_error", err) + return nil, err + } + + var distributionID string + if h.Item != nil { + switch item := h.Item.(type) { + case types.DistributionSummary: + distributionID = *item.Id + case cloudfront.GetDistributionOutput: + distributionID = *item.Distribution.Id + } + } else { + distributionID = d.EqualsQuals["id"].GetStringValue() + } + + if strings.TrimSpace(distributionID) == "" { + return nil, nil + } + + // Build the params + params := &cloudfront.GetMonitoringSubscriptionInput{ + DistributionId: &distributionID, + } + + // Get call + op, err := svc.GetMonitoringSubscription(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudfront_distribution.getCloudFrontDistributionMonitoringSubscription", "api_error", err) + return nil, err + } + + return op.MonitoringSubscription, nil +} + //// TRANSFORM FUNCTIONS func cloudFrontDistributionTagListToTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { diff --git a/aws/table_aws_cloudsearch_domain.go b/aws/table_aws_cloudsearch_domain.go index 5ad750aa0..03505bf1f 100644 --- a/aws/table_aws_cloudsearch_domain.go +++ b/aws/table_aws_cloudsearch_domain.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudsearch" "github.com/aws/aws-sdk-go-v2/service/cloudsearch/types" - cloudsearchv1 "github.com/aws/aws-sdk-go/service/cloudsearch" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsCloudSearchDomain(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudsearch", "action": "DescribeDomains"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudsearchv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CLOUDSEARCH_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "domain_name", diff --git a/aws/table_aws_cloudtrail_event_data_store.go b/aws/table_aws_cloudtrail_event_data_store.go index 8ca9c0bed..5666d3e69 100644 --- a/aws/table_aws_cloudtrail_event_data_store.go +++ b/aws/table_aws_cloudtrail_event_data_store.go @@ -18,13 +18,20 @@ func tableAwsCloudtrailEventDataStore(_ context.Context) *plugin.Table { return &plugin.Table{ Name: "aws_cloudtrail_event_data_store", Description: "AWS CloudTrail Event Data Store", + // We do encounter the UnsupportedOperationException for the region 'ap-southeast-5' where the operation is not supported. Get: &plugin.GetConfig{ KeyColumns: plugin.SingleColumn("arn"), Hydrate: getCloudTrailEventDataStore, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"UnsupportedOperationException"}), + }, Tags: map[string]string{"service": "cloudtrail", "action": "GetEventDataStore"}, }, List: &plugin.ListConfig{ Hydrate: listCloudTrailEventDataStores, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"UnsupportedOperationException"}), + }, Tags: map[string]string{"service": "cloudtrail", "action": "ListEventDataStores"}, }, HydrateConfig: []plugin.HydrateConfig{ diff --git a/aws/table_aws_cloudtrail_query.go b/aws/table_aws_cloudtrail_query.go index 726108d6d..9055c996c 100644 --- a/aws/table_aws_cloudtrail_query.go +++ b/aws/table_aws_cloudtrail_query.go @@ -24,13 +24,16 @@ func tableAwsCloudTrailQuery(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudtrail", "action": "DescribeQuery"}, KeyColumns: plugin.AllColumns([]string{"event_data_store_arn", "query_id"}), IgnoreConfig: &plugin.IgnoreConfig{ - ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"EventDataStoreNotFoundException", "QueryIdNotFoundException"}), + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"EventDataStoreNotFoundException", "QueryIdNotFoundException", "UnsupportedOperationException"}), }, }, List: &plugin.ListConfig{ ParentHydrate: listCloudTrailEventDataStores, Hydrate: listCloudTrailLakeQueries, Tags: map[string]string{"service": "cloudtrail", "action": "ListQueries"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"UnsupportedOperationException"}), + }, KeyColumns: plugin.KeyColumnSlice{ { Name: "event_data_store_arn", diff --git a/aws/table_aws_cloudtrail_trail_event.go b/aws/table_aws_cloudtrail_trail_event.go index dcae211e6..985fac7bf 100644 --- a/aws/table_aws_cloudtrail_trail_event.go +++ b/aws/table_aws_cloudtrail_trail_event.go @@ -11,8 +11,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsCloudtrailTrailEvent(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ // Top columns {Name: "filter", Type: proto.ColumnType_STRING, Transform: transform.FromQual("filter"), Description: "The cloudwatch filter pattern for the search."}, diff --git a/aws/table_aws_cloudwatch_alarm.go b/aws/table_aws_cloudwatch_alarm.go index 1e6324fd1..601cb4ffd 100644 --- a/aws/table_aws_cloudwatch_alarm.go +++ b/aws/table_aws_cloudwatch_alarm.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatch" "github.com/aws/aws-sdk-go-v2/service/cloudwatch/types" - cloudwatchv1 "github.com/aws/aws-sdk-go/service/cloudwatch" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -45,7 +43,7 @@ func tableAwsCloudWatchAlarm(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cloudwatch", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_cloudwatch_event_rule.go b/aws/table_aws_cloudwatch_event_rule.go new file mode 100644 index 000000000..7684b8f3c --- /dev/null +++ b/aws/table_aws_cloudwatch_event_rule.go @@ -0,0 +1,367 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/eventbridge" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsCloudwatchEventRule(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_cloudwatch_event_rule", + Description: "AWS CloudWatch Event Rule", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"name", "event_bus_name"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getAwsCloudWatchEventRule, + Tags: map[string]string{"service": "events", "action": "DescribeRule"}, + }, + List: &plugin.ListConfig{ + Hydrate: listAwsCloudWatchEventRules, + Tags: map[string]string{"service": "events", "action": "ListRules"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "event_bus_name", Require: plugin.Optional}, + {Name: "name_prefix", Require: plugin.Optional}, + }, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getAwsCloudWatchEventTargetsByRule, + Tags: map[string]string{"service": "events", "action": "ListTargetsByRule"}, + }, + { + Func: getAwsCloudWatchEventRuleTags, + Tags: map[string]string{"service": "events", "action": "ListTagsForResource"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EVENTS_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "description", + Description: "The description of the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "state", + Description: "The state of the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "event_bus_name", + Description: "The name or ARN of the event bus associated with the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "created_by", + Description: "The account ID of the user that created the rule.", + Type: proto.ColumnType_STRING, + Hydrate: getAwsCloudWatchEventRule, + }, + { + Name: "role_arn", + Description: "The Amazon Resource Name (ARN) of the IAM role associated with the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "schedule_expression", + Description: "The scheduling expression. For example, 'cron(0 20 * * ? *)', 'rate(5 minutes)'.", + Type: proto.ColumnType_STRING, + }, + { + Name: "managed_by", + Description: "If this is a managed rule, created by an AWS service on your behalf, this field displays the principal name of the AWS service that created the rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "event_pattern", + Description: "The event pattern of the rule.", + Type: proto.ColumnType_JSON, + }, + { + Name: "name_prefix", + Description: "Specifying this limits the results to only those event rules with names that start with the specified prefix.", + Type: proto.ColumnType_STRING, + Hydrate: getCloudWatchNamePrefixValue, + Transform: transform.FromValue(), + }, + { + Name: "targets", + Description: "The targets assigned to the rule.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsCloudWatchEventTargetsByRule, + Transform: transform.FromField("Targets"), + }, + { + Name: "tags_src", + Description: "A list of tags assigned to the rule.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsCloudWatchEventRuleTags, + Transform: transform.FromField("Tags"), + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getAwsCloudWatchEventRuleTags, + Transform: transform.FromField("Tags").Transform(cloudWatchEventTagListToTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listAwsCloudWatchEventRules(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get client + svc, err := EventBridgeClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.listAwsCloudWatchEventRules", "get_client_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + // AWS API enforces a minimum limit of 1 and a default of 100, so adjust if a lower value is provided. + if limit < maxLimit { + maxLimit = limit + } + } + + pagesLeft := true + params := &eventbridge.ListRulesInput{ + // Default to the maximum allowed + Limit: aws.Int32(maxLimit), + } + + equalQuals := d.EqualsQuals + if equalQuals["event_bus_name"] != nil { + params.EventBusName = aws.String(equalQuals["event_bus_name"].GetStringValue()) + } + if equalQuals["name_prefix"] != nil { + params.NamePrefix = aws.String(equalQuals["name_prefix"].GetStringValue()) + } + // API doesn't support aws-go-sdk-v2 paginator as of date + for pagesLeft { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := svc.ListRules(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.listAwsCloudWatchEventRules", "api_error", err) + return nil, err + } + for _, rule := range output.Rules { + d.StreamListItem(ctx, &eventbridge.DescribeRuleOutput{ + Name: rule.Name, + Arn: rule.Arn, + Description: rule.Description, + State: rule.State, + EventBusName: rule.EventBusName, + ManagedBy: rule.ManagedBy, + ScheduleExpression: rule.ScheduleExpression, + RoleArn: rule.RoleArn, + }) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + if output.NextToken != nil { + pagesLeft = true + params.NextToken = output.NextToken + } else { + pagesLeft = false + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getAwsCloudWatchEventRule(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var name, eventBusName string + + if h.Item != nil { + item, ok := h.Item.(*eventbridge.DescribeRuleOutput) + if !ok { + return nil, nil + } + name = *item.Name + if item.EventBusName != nil { + eventBusName = *item.EventBusName + } + } else { + name = d.EqualsQuals["name"].GetStringValue() + eventBusName = d.EqualsQuals["event_bus_name"].GetStringValue() + } + + // Create Session + svc, err := EventBridgeClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.getAwsCloudWatchEventRule", "get_client_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &eventbridge.DescribeRuleInput{ + Name: &name, + } + + // Use the event bus name if specified + if eventBusName != "" { + params.EventBusName = &eventBusName + } + + // Get call + data, err := svc.DescribeRule(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.getAwsCloudWatchEventRule", "api_error", err) + return nil, err + } + + return data, nil +} + +func getAwsCloudWatchEventTargetsByRule(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + rule := h.Item.(*eventbridge.DescribeRuleOutput) + + name := rule.Name + var eventBusName *string + + if rule.EventBusName != nil { + eventBusName = rule.EventBusName + } + + // Create Session + svc, err := EventBridgeClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.getAwsCloudWatchEventTargetsByRule", "get_client_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &eventbridge.ListTargetsByRuleInput{ + Rule: name, + } + + // Use event bus name if available + if eventBusName != nil { + params.EventBusName = eventBusName + } + + data, err := svc.ListTargetsByRule(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.getAwsCloudWatchEventTargetsByRule", "api_error", err) + return nil, err + } + + return data, nil +} + +func getAwsCloudWatchEventRuleTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + item := h.Item.(*eventbridge.DescribeRuleOutput) + + arn := item.Arn + + // Create Session + svc, err := EventBridgeClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.getAwsCloudWatchEventRuleTags", "get_client_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &eventbridge.ListTagsForResourceInput{ + ResourceARN: arn, + } + + // Get call + op, err := svc.ListTagsForResource(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_cloudwatch_event_rule.getAwsCloudWatchEventRuleTags", "api_error", err) + return nil, err + } + + return op, nil +} + +//// TRANSFORM FUNCTIONS + +func cloudWatchEventTagListToTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { + tagList := d.HydrateItem.(*eventbridge.ListTagsForResourceOutput) + + if tagList.Tags == nil { + return nil, nil + } + + // Mapping the resource tags inside turbotTags + turbotTagsMap := map[string]string{} + for _, i := range tagList.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + + return turbotTagsMap, nil +} + +//// UTILITY FUNCTIONS + +func getCloudWatchNamePrefixValue(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + if d.EqualsQuals["name_prefix"].GetStringValue() != "" { + return d.EqualsQuals["name_prefix"].GetStringValue(), nil + } else { + return h.Item.(*eventbridge.DescribeRuleOutput).Name, nil + } +} diff --git a/aws/table_aws_cloudwatch_log_event.go b/aws/table_aws_cloudwatch_log_event.go index 65c3005a5..7c95bb491 100644 --- a/aws/table_aws_cloudwatch_log_event.go +++ b/aws/table_aws_cloudwatch_log_event.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" cloudwatchlogsTypes "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/go-kit/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -41,7 +39,7 @@ func tableAwsCloudwatchLogEvent(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ // Top columns { diff --git a/aws/table_aws_cloudwatch_log_group.go b/aws/table_aws_cloudwatch_log_group.go index d76d2fcf4..95d58b594 100644 --- a/aws/table_aws_cloudwatch_log_group.go +++ b/aws/table_aws_cloudwatch_log_group.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -45,7 +43,7 @@ func tableAwsCloudwatchLogGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "logs", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_cloudwatch_log_metric_filter.go b/aws/table_aws_cloudwatch_log_metric_filter.go index 7222afb41..ee17c46ef 100644 --- a/aws/table_aws_cloudwatch_log_metric_filter.go +++ b/aws/table_aws_cloudwatch_log_metric_filter.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -48,7 +46,7 @@ func tableAwsCloudwatchLogMetricFilter(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -236,11 +234,12 @@ func logMetricTransformationsData(ctx context.Context, d *transform.TransformDat metricFilterData := d.HydrateItem.(types.MetricFilter) if len(metricFilterData.MetricTransformations) > 0 { - if d.Param.(string) == "MetricName" { + switch param := d.Param.(string); param { + case "MetricName": return metricFilterData.MetricTransformations[0].MetricName, nil - } else if d.Param.(string) == "MetricNamespace" { + case "MetricNamespace": return metricFilterData.MetricTransformations[0].MetricNamespace, nil - } else { + case "MetricValue": return metricFilterData.MetricTransformations[0].MetricValue, nil } } diff --git a/aws/table_aws_cloudwatch_log_resource_policy.go b/aws/table_aws_cloudwatch_log_resource_policy.go index 8188faf76..b83d1de61 100644 --- a/aws/table_aws_cloudwatch_log_resource_policy.go +++ b/aws/table_aws_cloudwatch_log_resource_policy.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -20,7 +18,7 @@ func tableAwsCloudwatchLogResourcePolicy(_ context.Context) *plugin.Table { Hydrate: listCloudwatchLogResourcePolicies, Tags: map[string]string{"service": "logs", "action": "DescribeResourcePolicies"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "policy_name", diff --git a/aws/table_aws_cloudwatch_log_stream.go b/aws/table_aws_cloudwatch_log_stream.go index 38058940f..7e744ca1b 100644 --- a/aws/table_aws_cloudwatch_log_stream.go +++ b/aws/table_aws_cloudwatch_log_stream.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -61,7 +59,7 @@ func tableAwsCloudwatchLogStream(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_cloudwatch_log_subscription_filter.go b/aws/table_aws_cloudwatch_log_subscription_filter.go index 15901212f..cd2fba382 100644 --- a/aws/table_aws_cloudwatch_log_subscription_filter.go +++ b/aws/table_aws_cloudwatch_log_subscription_filter.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs" "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsCloudwatchLogSubscriptionFilter(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_cloudwatch_metric.go b/aws/table_aws_cloudwatch_metric.go index 0b6e9d395..642bcc12e 100644 --- a/aws/table_aws_cloudwatch_metric.go +++ b/aws/table_aws_cloudwatch_metric.go @@ -9,7 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cloudwatch" "github.com/aws/aws-sdk-go-v2/service/cloudwatch/types" - cloudwatchv1 "github.com/aws/aws-sdk-go/service/cloudwatch" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -45,7 +44,7 @@ func tableAwsCloudWatchMetric(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MONITORING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "metric_name", diff --git a/aws/table_aws_cloudwatch_metric_data_point.go b/aws/table_aws_cloudwatch_metric_data_point.go index 5c2be878c..34c1c46ea 100644 --- a/aws/table_aws_cloudwatch_metric_data_point.go +++ b/aws/table_aws_cloudwatch_metric_data_point.go @@ -10,7 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" "github.com/aws/aws-sdk-go-v2/service/cloudwatch/types" - cloudwatchv1 "github.com/aws/aws-sdk-go/service/cloudwatch" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -71,7 +70,7 @@ func tableAwsCloudWatchMetricDataPoint(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MONITORING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_cloudwatch_metric_statistic_data_point.go b/aws/table_aws_cloudwatch_metric_statistic_data_point.go index fa943aa67..dd57011ec 100644 --- a/aws/table_aws_cloudwatch_metric_statistic_data_point.go +++ b/aws/table_aws_cloudwatch_metric_statistic_data_point.go @@ -9,7 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" "github.com/aws/aws-sdk-go-v2/service/cloudwatch/types" - cloudwatchv1 "github.com/aws/aws-sdk-go/service/cloudwatch" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -59,7 +58,7 @@ func tableAwsCloudWatchMetricStatisticDataPoint(_ context.Context) *plugin.Table }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MONITORING_SERVICE_ID), Columns: awsRegionalColumns(cwMetricColumns([]*plugin.Column{ { Name: "label", diff --git a/aws/table_aws_codeartifact_domain.go b/aws/table_aws_codeartifact_domain.go index 9492c847b..caabb8597 100644 --- a/aws/table_aws_codeartifact_domain.go +++ b/aws/table_aws_codeartifact_domain.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codeartifact" "github.com/aws/aws-sdk-go-v2/service/codeartifact/types" - codeartifactv1 "github.com/aws/aws-sdk-go/service/codeartifact" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -53,7 +51,7 @@ func tableAwsCodeArtifactDomain(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codeartifact", "action": "DescribeDomain"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codeartifactv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEARTIFACT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_codeartifact_repository.go b/aws/table_aws_codeartifact_repository.go index f48d3a356..1e90685f6 100644 --- a/aws/table_aws_codeartifact_repository.go +++ b/aws/table_aws_codeartifact_repository.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codeartifact" "github.com/aws/aws-sdk-go-v2/service/codeartifact/types" - codeartifactv1 "github.com/aws/aws-sdk-go/service/codeartifact" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -62,7 +60,7 @@ func tableAwsCodeArtifactRepository(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codeartifact", "action": "DescribeRepository"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codeartifactv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEARTIFACT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_codebuild_build.go b/aws/table_aws_codebuild_build.go index cd8cef643..eac670000 100644 --- a/aws/table_aws_codebuild_build.go +++ b/aws/table_aws_codebuild_build.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codebuild" - codebuildv1 "github.com/aws/aws-sdk-go/service/codebuild" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -26,7 +24,7 @@ func tableAwsCodeBuildBuild(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codebuildv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEBUILD_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_codebuild_fleet.go b/aws/table_aws_codebuild_fleet.go new file mode 100644 index 000000000..45d9c7e3c --- /dev/null +++ b/aws/table_aws_codebuild_fleet.go @@ -0,0 +1,290 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/codebuild" + "github.com/aws/aws-sdk-go-v2/service/codebuild/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsCodeBuildFleet(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_codebuild_fleet", + Description: "AWS CodeBuild Fleet", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("arn"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getCodeBuildFleet, + Tags: map[string]string{"service": "codebuild", "action": "BatchGetFleets"}, + }, + List: &plugin.ListConfig{ + Hydrate: listCodeBuildFleets, + Tags: map[string]string{"service": "codebuild", "action": "ListFleets"}, + // According to the supported endpoints listed here: https://docs.aws.amazon.com/general/latest/gr/codebuild.html, + // AWS CodeBuild is available in all regions as mentioned in the above doc. However, the specific resource type "fleet" is not supported in every region. + // If you attempt to perform the ListFleets operation in a region where fleet support is unavailable, + // the API returns an InvalidInputException with the message: + // "An error occurred (InvalidInputException) when calling the ListFleets operation: Unknown operation ListFleets" + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidInputException"}), + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEBUILD_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the compute fleet.", + Type: proto.ColumnType_STRING, + }, + { + Name: "base_capacity", + Description: "The base capacity of the compute fleet.", + Type: proto.ColumnType_INT, + Hydrate: getCodeBuildFleet, + }, + { + Name: "created", + Description: "When the compute fleet was created, expressed in Unix time format.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getCodeBuildFleet, + }, + { + Name: "last_modified", + Description: "When the compute fleet's settings were last modified, expressed in Unix time format.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getCodeBuildFleet, + }, + { + Name: "status", + Description: "The current status of the compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "status_reason", + Description: "The reason for the current status of the compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "compute_type", + Description: "The compute type of the compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "compute_fleet_type", + Description: "The type of compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "vpc_config", + Description: "Information about the VPC configuration that AWS CodeBuild uses to access resources in a VPC.", + Type: proto.ColumnType_JSON, + Hydrate: getCodeBuildFleet, + }, + { + Name: "environment_type", + Description: "The environment type of the compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "current_capacity", + Description: "The current capacity of the compute fleet.", + Type: proto.ColumnType_INT, + Hydrate: getCodeBuildFleet, + }, + { + Name: "desired_capacity", + Description: "The desired capacity of the compute fleet.", + Type: proto.ColumnType_INT, + Hydrate: getCodeBuildFleet, + }, + { + Name: "max_capacity", + Description: "The maximum capacity of the compute fleet.", + Type: proto.ColumnType_INT, + Hydrate: getCodeBuildFleet, + }, + { + Name: "min_capacity", + Description: "The minimum capacity of the compute fleet.", + Type: proto.ColumnType_INT, + Hydrate: getCodeBuildFleet, + }, + { + Name: "fleet_service_role", + Description: "The service role ARN for the compute fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildFleet, + }, + { + Name: "tags_src", + Description: "A list of tag key and value pairs associated with this compute fleet.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Tags"), + Hydrate: getCodeBuildFleet, + }, + + // Standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + { + Name: "tags", + Description: "A map of tags key and value pairs associated with this compute fleet.", + Type: proto.ColumnType_JSON, + Transform: transform.From(codeBuildFleetTurbotTags), + Hydrate: getCodeBuildFleet, + }, + }), + } +} + +//// LIST FUNCTION + +func listCodeBuildFleets(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create service client + svc, err := CodeBuildClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_fleet.listCodeBuildFleets", "connection_error", err) + return nil, err + } + + // Unsupported region check + if svc == nil { + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + // Build the params + params := &codebuild.ListFleetsInput{ + MaxResults: aws.Int32(maxLimit), + } + + paginator := codebuild.NewListFleetsPaginator(svc, params, func(o *codebuild.ListFleetsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + // List call + for paginator.HasMorePages() { + // Apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_fleet.listCodeBuildFleets", "api_error", err) + return nil, err + } + + for _, fleet := range output.Fleets { + d.StreamListItem(ctx, types.Fleet{Arn: &fleet}) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getCodeBuildFleet(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var arn string + if h.Item != nil { + data := h.Item.(types.Fleet) + arn = *data.Arn + } else { + arn = d.EqualsQualString("arn") + } + + // Empty check + if arn == "" { + return nil, nil + } + + // Create service client + svc, err := CodeBuildClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_fleet.getCodeBuildFleet", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // Build the params + params := &codebuild.BatchGetFleetsInput{ + Names: []string{arn}, + } + + // Get call + data, err := svc.BatchGetFleets(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_fleet.getCodeBuildFleet", "api_error", err) + return nil, err + } + + if len(data.Fleets) > 0 { + return data.Fleets[0], nil + } + + return nil, nil +} + +//// TRANSFORM FUNCTIONS + +func codeBuildFleetTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + data := d.HydrateItem.(types.Fleet) + + if data.Tags == nil { + return nil, nil + } + + // Turn the tags into a map + tags := make(map[string]string) + for _, tag := range data.Tags { + tags[*tag.Key] = *tag.Value + } + + return tags, nil +} diff --git a/aws/table_aws_codebuild_project.go b/aws/table_aws_codebuild_project.go index cfc4a30ba..ba59b0504 100644 --- a/aws/table_aws_codebuild_project.go +++ b/aws/table_aws_codebuild_project.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codebuild" "github.com/aws/aws-sdk-go-v2/service/codebuild/types" - codebuildv1 "github.com/aws/aws-sdk-go/service/codebuild" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsCodeBuildProject(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codeartifact", "action": "BatchGetProjects"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codebuildv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEBUILD_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_codebuild_report_group.go b/aws/table_aws_codebuild_report_group.go new file mode 100644 index 000000000..f22217bdf --- /dev/null +++ b/aws/table_aws_codebuild_report_group.go @@ -0,0 +1,228 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/codebuild" + "github.com/aws/aws-sdk-go-v2/service/codebuild/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsCodeBuildReportGroup(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_codebuild_report_group", + Description: "AWS CodeBuild Report Group", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("arn"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidInputException"}), + }, + Hydrate: getCodeBuildReportGroup, + Tags: map[string]string{"service": "codebuild", "action": "BatchGetReportGroups"}, + }, + List: &plugin.ListConfig{ + Hydrate: listCodeBuildReportGroups, + Tags: map[string]string{"service": "codebuild", "action": "ListReportGroups"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getCodeBuildReportGroup, + Tags: map[string]string{"service": "codebuild", "action": "BatchGetReportGroups"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEBUILD_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the report group.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildReportGroup, + }, + { + Name: "arn", + Description: "The ARN of the report group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "type", + Description: "The type of the report group.", + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildReportGroup, + }, + { + Name: "created", + Description: "The date and time this report group was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getCodeBuildReportGroup, + }, + { + Name: "last_modified", + Description: "The date and time this report group was last modified.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getCodeBuildReportGroup, + }, + { + Name: "export_config", + Description: "Information about the destination where the raw data of this ReportGroup is exported.", + Type: proto.ColumnType_JSON, + Hydrate: getCodeBuildReportGroup, + }, + { + Name: "tags_src", + Description: "A list of tag key and value pairs associated with this report group.", + Type: proto.ColumnType_JSON, + Hydrate: getCodeBuildReportGroup, + Transform: transform.FromField("Tags"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getCodeBuildReportGroup, + Transform: transform.From(codeBuildReportGroupTurbotTags), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Hydrate: getCodeBuildReportGroup, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listCodeBuildReportGroups(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := CodeBuildClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_report_group.listCodeBuildReportGroups", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + maxResults := int32(100) + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxResults { + maxResults = int32(limit) + } + } + + input := &codebuild.ListReportGroupsInput{ + MaxResults: &maxResults, + } + + paginator := codebuild.NewListReportGroupsPaginator(svc, input, func(o *codebuild.ListReportGroupsPaginatorOptions) { + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_report_group.listCodeBuildReportGroups", "api_error", err) + return nil, err + } + + for _, reportGroupArn := range output.ReportGroups { + item := &types.ReportGroup{ + Arn: aws.String(reportGroupArn), + } + d.StreamListItem(ctx, *item) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getCodeBuildReportGroup(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var arn string + if h.Item != nil { + arn = *h.Item.(types.ReportGroup).Arn + } else { + quals := d.EqualsQuals + arn = quals["arn"].GetStringValue() + } + + // Empty input check + if arn == "" { + return nil, nil + } + + // Create service + svc, err := CodeBuildClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_report_group.getCodeBuildReportGroup", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &codebuild.BatchGetReportGroupsInput{ + ReportGroupArns: []string{arn}, + } + + // Get call + op, err := svc.BatchGetReportGroups(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_codebuild_report_group.getCodeBuildReportGroup", "api_error", err) + return nil, err + } + + if len(op.ReportGroups) > 0 { + return op.ReportGroups[0], nil + } + return nil, nil +} + +//// TRANSFORM FUNCTIONS + +func codeBuildReportGroupTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + data := d.HydrateItem.(types.ReportGroup) + + if data.Tags == nil { + return nil, nil + } + + // Mapping the resource tags inside turbotTags + var turbotTagsMap map[string]string + if data.Tags != nil { + turbotTagsMap = map[string]string{} + for _, i := range data.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + } + return turbotTagsMap, nil +} diff --git a/aws/table_aws_codebuild_source_credential.go b/aws/table_aws_codebuild_source_credential.go index fe9a525e2..f3ebda1ea 100644 --- a/aws/table_aws_codebuild_source_credential.go +++ b/aws/table_aws_codebuild_source_credential.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codebuild" "github.com/aws/aws-sdk-go-v2/service/codebuild/types" - codebuildv1 "github.com/aws/aws-sdk-go/service/codebuild" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,7 +23,7 @@ func tableAwsCodeBuildSourceCredential(_ context.Context) *plugin.Table { Hydrate: listCodeBuildSourceCredentials, Tags: map[string]string{"service": "codebuild", "action": "ListSourceCredentials"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(codebuildv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEBUILD_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_codecommit_repository.go b/aws/table_aws_codecommit_repository.go index 54df4eef7..0578e8223 100644 --- a/aws/table_aws_codecommit_repository.go +++ b/aws/table_aws_codecommit_repository.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codecommit" "github.com/aws/aws-sdk-go-v2/service/codecommit/types" - codecommitv1 "github.com/aws/aws-sdk-go/service/codecommit" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsCodeCommitRepository(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codecommit", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codecommitv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODECOMMIT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "repository_name", diff --git a/aws/table_aws_codedeploy_app.go b/aws/table_aws_codedeploy_app.go index f62bb740a..09207f848 100644 --- a/aws/table_aws_codedeploy_app.go +++ b/aws/table_aws_codedeploy_app.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codedeploy" "github.com/aws/aws-sdk-go-v2/service/codedeploy/types" - codedeployv1 "github.com/aws/aws-sdk-go/service/codedeploy" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsCodeDeployApplication(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codedeploy", "action": "GetApplication"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codedeployv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEDEPLOY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "application_id", diff --git a/aws/table_aws_codedeploy_deployment_config.go b/aws/table_aws_codedeploy_deployment_config.go index 9f0c9f8d1..cc0e84ca6 100644 --- a/aws/table_aws_codedeploy_deployment_config.go +++ b/aws/table_aws_codedeploy_deployment_config.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codedeploy" "github.com/aws/aws-sdk-go-v2/service/codedeploy/types" - codedeployv1 "github.com/aws/aws-sdk-go/service/codedeploy" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsCodeDeployDeploymentConfig(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codedeploy", "action": "GetDeploymentConfig"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codedeployv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEDEPLOY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_codedeploy_deployment_group.go b/aws/table_aws_codedeploy_deployment_group.go index 825a3a078..d9ceb4faf 100644 --- a/aws/table_aws_codedeploy_deployment_group.go +++ b/aws/table_aws_codedeploy_deployment_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codedeploy" "github.com/aws/aws-sdk-go-v2/service/codedeploy/types" - codedeployv1 "github.com/aws/aws-sdk-go/service/codedeploy" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,7 +45,7 @@ func tableAwsCodeDeployDeploymentGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codedeploy", "action": "GetDeploymentGroup"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codedeployv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEDEPLOY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_codepipeline_pipeline.go b/aws/table_aws_codepipeline_pipeline.go index 37cc6e150..a8be0c705 100644 --- a/aws/table_aws_codepipeline_pipeline.go +++ b/aws/table_aws_codepipeline_pipeline.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/codepipeline" "github.com/aws/aws-sdk-go-v2/service/codepipeline/types" - codepipelinev1 "github.com/aws/aws-sdk-go/service/codepipeline" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsCodepipelinePipeline(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "codepipeline", "action": "GetPipeline"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(codepipelinev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODEPIPELINE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_codestar_notification_rule.go b/aws/table_aws_codestar_notification_rule.go index 7a24ea018..94ed31db5 100644 --- a/aws/table_aws_codestar_notification_rule.go +++ b/aws/table_aws_codestar_notification_rule.go @@ -9,7 +9,6 @@ import ( turbot_types "github.com/turbot/go-kit/types" - codestarv1 "github.com/aws/aws-sdk-go/service/codestarnotifications" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +39,7 @@ func tableAwsCodestarNotificationRule(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "codestar-notifications", "action": "ListNotificationRules"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(codestarv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CODESTAR_NOTIFICATIONS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_cognito_identity_pool.go b/aws/table_aws_cognito_identity_pool.go index a32fde3d8..16058658f 100644 --- a/aws/table_aws_cognito_identity_pool.go +++ b/aws/table_aws_cognito_identity_pool.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cognitoidentity" "github.com/aws/aws-sdk-go-v2/service/cognitoidentity/types" - cognitoidentityv1 "github.com/aws/aws-sdk-go/service/cognitoidentity" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsCognitoIdentityPool(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cognito-identity", "action": "DescribeIdentityPool"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cognitoidentityv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_COGNITO_IDENTITY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "identity_pool_id", diff --git a/aws/table_aws_cognito_identity_provider.go b/aws/table_aws_cognito_identity_provider.go index 3c10eb63e..f5b6c8a72 100644 --- a/aws/table_aws_cognito_identity_provider.go +++ b/aws/table_aws_cognito_identity_provider.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider" "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types" - cognitoidentityproviderv1 "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsCognitoIdentityProvider(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cognito-idp", "action": "DescribeIdentityProvider"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cognitoidentityproviderv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_COGNITO_IDP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "provider_name", diff --git a/aws/table_aws_cognito_user_group.go b/aws/table_aws_cognito_user_group.go new file mode 100644 index 000000000..99c2df624 --- /dev/null +++ b/aws/table_aws_cognito_user_group.go @@ -0,0 +1,237 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider" + "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsCognitoUserGroup(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_cognito_user_group", + Description: "AWS Cognito User Group", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"group_name", "user_pool_id"}), + Hydrate: getCognitoUserGroup, + Tags: map[string]string{"service": "cognito-idp", "action": "GetGroup"}, + }, + List: &plugin.ListConfig{ + ParentHydrate: listCognitoUserPools, + Hydrate: listCognitoUserGroups, + Tags: map[string]string{"service": "cognito-idp", "action": "ListGroups"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "user_pool_id", Require: plugin.Optional}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_COGNITO_IDP_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "group_name", + Description: "The name of the group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "user_pool_id", + Description: "The user pool ID for the user pool.", + Type: proto.ColumnType_STRING, + }, + { + Name: "description", + Description: "A string containing the description of the group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "creation_date", + Description: "The date and time when the group was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "last_modified_date", + Description: "The date and time when the group was last modified.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("LastModifiedDate").Transform(transform.NullIfZeroValue), + }, + { + Name: "precedence", + Description: "A non-negative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool.", + Type: proto.ColumnType_INT, + }, + { + Name: "role_arn", + Description: "The role Amazon Resource Name (ARN) for the group.", + Type: proto.ColumnType_STRING, + }, + + // Standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("GroupName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getCognitoUserGroupAkas, + Transform: transform.FromValue(), + }, + }), + } +} + +//// LIST FUNCTION + +func listCognitoUserGroups(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get user pool details from hydrate data + var userPoolID string + if h.Item != nil { + userPoolData, ok := h.Item.(types.UserPoolDescriptionType) + if ok { + userPoolID = *userPoolData.Id + } + } + + // Check if a specific user_pool_id has been provided in the query + if d.EqualsQualString("user_pool_id") != "" && userPoolID == d.EqualsQualString("user_pool_id") { + return nil, nil + } + + // Return if no user pool is found + if userPoolID == "" { + return nil, nil + } + + // Create session + svc, err := CognitoIdentityProviderClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cognito_user_group.listCognitoUserGroups", "connection_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + // Limiting the results + maxLimit := int32(60) + limit := d.QueryContext.Limit + if d.QueryContext.Limit != nil { + if *limit < int64(maxLimit) { + maxLimit = int32(*limit) + } + } + + input := &cognitoidentityprovider.ListGroupsInput{ + UserPoolId: aws.String(userPoolID), + Limit: aws.Int32(maxLimit), + } + + // List call + paginator := cognitoidentityprovider.NewListGroupsPaginator(svc, input, func(o *cognitoidentityprovider.ListGroupsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_cognito_user_group.listCognitoUserGroups", "api_error", err) + return nil, err + } + + for _, item := range output.Groups { + d.StreamListItem(ctx, item) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getCognitoUserGroup(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var groupName, userPoolID string + + if h.Item != nil { + data := h.Item.(types.GroupType) + groupName = *data.GroupName + userPoolID = *data.UserPoolId + } else { + groupName = d.EqualsQualString("group_name") + userPoolID = d.EqualsQualString("user_pool_id") + } + + // Empty check for required parameters + if groupName == "" || userPoolID == "" { + return nil, nil + } + + // Create service + svc, err := CognitoIdentityProviderClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_cognito_user_group.getCognitoUserGroup", "connection_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + // Build the params + params := &cognitoidentityprovider.GetGroupInput{ + GroupName: aws.String(groupName), + UserPoolId: aws.String(userPoolID), + } + + // Get call + data, err := svc.GetGroup(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_cognito_user_group.getCognitoUserGroup", "api_error", err) + return nil, err + } + + if data != nil { + return *data.Group, nil + } + + return nil, nil +} + +func getCognitoUserGroupAkas(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + group := h.Item.(types.GroupType) + region := d.EqualsQualString(matrixKeyRegion) + + // Get account details + commonData, err := getCommonColumns(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_cognito_user_group.getCognitoUserGroupAkas", "common_data_error", err) + return nil, err + } + + commonColumnData := commonData.(*awsCommonColumnData) + accountID := commonColumnData.AccountId + + // Generate user group ARN + userGroupArn := "arn:aws:cognito-idp:" + region + ":" + accountID + ":userpool/" + *group.UserPoolId + "/group/" + *group.GroupName + + return []string{userGroupArn}, nil +} diff --git a/aws/table_aws_cognito_user_pool.go b/aws/table_aws_cognito_user_pool.go index db79f668e..225bd7a21 100644 --- a/aws/table_aws_cognito_user_pool.go +++ b/aws/table_aws_cognito_user_pool.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider" "github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider/types" - cognitoidentityproviderv1 "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsCognitoUserPool(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "cognito-idp", "action": "DescribeUserPool"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cognitoidentityproviderv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_COGNITO_IDP_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_config_aggregate_authorization.go b/aws/table_aws_config_aggregate_authorization.go index b20c9b343..ebf8bdd90 100644 --- a/aws/table_aws_config_aggregate_authorization.go +++ b/aws/table_aws_config_aggregate_authorization.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/configservice" "github.com/aws/aws-sdk-go-v2/service/configservice/types" - configservicev1 "github.com/aws/aws-sdk-go/service/configservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -27,7 +25,7 @@ func tableAwsConfigAggregateAuthorization(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "config", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(configservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_config_configuration_recorder.go b/aws/table_aws_config_configuration_recorder.go index 7f047593e..71837321f 100644 --- a/aws/table_aws_config_configuration_recorder.go +++ b/aws/table_aws_config_configuration_recorder.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/configservice" "github.com/aws/aws-sdk-go-v2/service/configservice/types" - configservicev1 "github.com/aws/aws-sdk-go/service/configservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsConfigConfigurationRecorder(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "config", "action": "DescribeConfigurationRecorderStatus"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(configservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_config_conformance_pack.go b/aws/table_aws_config_conformance_pack.go index 83d58f305..3bdd1e6ff 100644 --- a/aws/table_aws_config_conformance_pack.go +++ b/aws/table_aws_config_conformance_pack.go @@ -2,11 +2,10 @@ package aws import ( "context" + "strings" "github.com/aws/aws-sdk-go-v2/service/configservice" - configservicev1 "github.com/aws/aws-sdk-go/service/configservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +33,7 @@ func tableAwsConfigConformancePack(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(configservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -142,6 +141,16 @@ func listConfigConformancePacks(ctx context.Context, d *plugin.QueryData, _ *plu output, err := paginator.NextPage(ctx) if err != nil { + // AWS Config `DescribeConformancePacks` API is not supported in all AWS regions. + // + // Observed unsupported region error: + // + // - In region `ap-southeast-5`: + // Error: aws_nagraj: operation error Config Service: DescribeConformancePacks, https response error StatusCode: 400, RequestID: f4c13e45-dc60-4175-bbf5-f0afef5a3463 + // api error AccessDeniedException: The DescribeConformancePacks API is not currently supported in this region. (SQLSTATE HV000) + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("API is not currently supported in this region")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_config_conformance_pack.listConfigConformancePacks", "api_error", err) return nil, err } @@ -178,6 +187,16 @@ func getConfigConformancePack(ctx context.Context, d *plugin.QueryData, _ *plugi op, err := svc.DescribeConformancePacks(ctx, params) if err != nil { + // AWS Config `DescribeConformancePacks` API is not supported in all AWS regions. + // + // Observed unsupported region error: + // + // - In region `ap-southeast-5`: + // Error: aws_nagraj: operation error Config Service: DescribeConformancePacks, https response error StatusCode: 400, RequestID: f4c13e45-dc60-4175-bbf5-f0afef5a3463 + // api error AccessDeniedException: The DescribeConformancePacks API is not currently supported in this region. (SQLSTATE HV000) + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("API is not currently supported in this region")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_config_conformance_pack.getConfigConformancePack", "api_error", err) return nil, err } diff --git a/aws/table_aws_config_delivery_channel.go b/aws/table_aws_config_delivery_channel.go index 21baa14d8..9c59d9967 100644 --- a/aws/table_aws_config_delivery_channel.go +++ b/aws/table_aws_config_delivery_channel.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/configservice" "github.com/aws/aws-sdk-go-v2/service/configservice/types" - configservicev1 "github.com/aws/aws-sdk-go/service/configservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -26,13 +24,13 @@ func tableAwsConfigDeliveryChannel(_ context.Context) *plugin.Table { Name: "name", Require: plugin.Optional, }, - }, + }, IgnoreConfig: &plugin.IgnoreConfig{ ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NoSuchDeliveryChannelException"}), }, - Tags: map[string]string{"service": "config", "action": "DescribeDeliveryChannels"}, + Tags: map[string]string{"service": "config", "action": "DescribeDeliveryChannels"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(configservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_config_retention_configuration.go b/aws/table_aws_config_retention_configuration.go index d5df2a597..6c5c36550 100644 --- a/aws/table_aws_config_retention_configuration.go +++ b/aws/table_aws_config_retention_configuration.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/configservice" - configservicev1 "github.com/aws/aws-sdk-go/service/configservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -20,7 +18,7 @@ func tableAwsConfigRetentionConfiguration(_ context.Context) *plugin.Table { Hydrate: listConfigRetentionConfigurations, Tags: map[string]string{"service": "config", "action": "DescribeRetentionConfigurations"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(configservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_config_rule.go b/aws/table_aws_config_rule.go index 397e08d8a..7a8b6dc58 100644 --- a/aws/table_aws_config_rule.go +++ b/aws/table_aws_config_rule.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/configservice" "github.com/aws/aws-sdk-go-v2/service/configservice/types" - configservicev1 "github.com/aws/aws-sdk-go/service/configservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,7 +45,7 @@ func tableAwsConfigRule(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "config", "action": "DescribeComplianceByConfigRule"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(configservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_config_rule_compliance_detail.go b/aws/table_aws_config_rule_compliance_detail.go new file mode 100644 index 000000000..51cd9cf41 --- /dev/null +++ b/aws/table_aws_config_rule_compliance_detail.go @@ -0,0 +1,202 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/configservice" + "github.com/aws/aws-sdk-go-v2/service/configservice/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsConfigRuleComplianceDetail(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_config_rule_compliance_detail", + Description: "AWS Config Rule Compliance Detail", + List: &plugin.ListConfig{ + ParentHydrate: listConfigRules, + Hydrate: listConfigRuleComplianceDetails, + Tags: map[string]string{"service": "config", "action": "GetComplianceDetailsByConfigRule"}, + KeyColumns: []*plugin.KeyColumn{ + { + Name: "config_rule_name", + Require: plugin.Optional, + }, + { + Name: "compliance_type", + Require: plugin.Optional, + }, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONFIG_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "config_rule_name", + Description: "The name of the AWS Config rule.", + Type: proto.ColumnType_STRING, + }, + { + Name: "resource_type", + Description: "The type of AWS resource that was evaluated.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.EvaluationResultIdentifier.EvaluationResultQualifier.ResourceType"), + }, + { + Name: "resource_id", + Description: "The ID of the AWS resource that was evaluated.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.EvaluationResultIdentifier.EvaluationResultQualifier.ResourceId"), + }, + { + Name: "compliance_type", + Description: "Indicates whether the AWS resource complies with the Config rule (COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.ComplianceType"), + }, + { + Name: "annotation", + Description: "Supplementary information about how the evaluation determined the compliance.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.Annotation"), + }, + { + Name: "config_rule_invoked_time", + Description: "The time when AWS Config invoked the AWS Config rule to evaluate your AWS resources.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("EvaluationResult.ConfigRuleInvokedTime"), + }, + { + Name: "result_recorded_time", + Description: "The time when AWS Config recorded the evaluation result.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("EvaluationResult.ResultRecordedTime"), + }, + { + Name: "evaluation_mode", + Description: "The mode of an evaluation.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.EvaluationResultIdentifier.EvaluationResultQualifier.EvaluationMode"), + }, + { + Name: "ordering_timestamp", + Description: "The time of the event that triggered the evaluation of your AWS resources.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("EvaluationResult.EvaluationResultIdentifier.OrderingTimestamp"), + }, + { + Name: "resource_evaluation_id", + Description: "A unique ResourceEvaluationId that is associated with a single execution.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.EvaluationResultIdentifier.ResourceEvaluationId"), + }, + { + Name: "result_token", + Description: "An encrypted token that associates an evaluation with an AWS Config rule.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.ResultToken"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EvaluationResult.EvaluationResultIdentifier.EvaluationResultQualifier.ResourceId"), + }, + }), + } +} + +//// LIST FUNCTION + +func listConfigRuleComplianceDetails(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get config rule details from parent hydrate + configRule := h.Item.(types.ConfigRule) + + // Check if ConfigRuleName is nil to avoid nil pointer dereference + if configRule.ConfigRuleName == nil { + return nil, nil + } + + configRuleName := *configRule.ConfigRuleName + + // Check if there's an optional filter for config_rule_name + if d.EqualsQualString("config_rule_name") != "" { + if d.EqualsQualString("config_rule_name") != configRuleName { + return nil, nil + } + } + + // Create session + svc, err := ConfigClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_config_rule_compliance_detail.listConfigRuleComplianceDetails", "client_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &configservice.GetComplianceDetailsByConfigRuleInput{ + ConfigRuleName: &configRuleName, + Limit: maxLimit, + } + + // Optional filter by compliance type + if d.EqualsQuals["compliance_type"] != nil { + complianceType := d.EqualsQualString("compliance_type") + if complianceType != "" { + input.ComplianceTypes = []types.ComplianceType{types.ComplianceType(complianceType)} + } + } + + paginator := configservice.NewGetComplianceDetailsByConfigRulePaginator(svc, input, func(o *configservice.GetComplianceDetailsByConfigRulePaginatorOptions) { + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_config_rule_compliance_detail.listConfigRuleComplianceDetails", "api_error", err) + return nil, err + } + + for _, evaluationResult := range output.EvaluationResults { + d.StreamListItem(ctx, &ConfigRuleComplianceDetail{ + ConfigRuleName: configRuleName, + EvaluationResult: evaluationResult, + }) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +// ConfigRuleComplianceDetail is a struct to hold config rule name and evaluation result +type ConfigRuleComplianceDetail struct { + ConfigRuleName string + EvaluationResult types.EvaluationResult +} diff --git a/aws/table_aws_connect_instance.go b/aws/table_aws_connect_instance.go new file mode 100644 index 000000000..3f9bf2a87 --- /dev/null +++ b/aws/table_aws_connect_instance.go @@ -0,0 +1,212 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/connect" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsConnectInstance(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_connect_instance", + Description: "AWS Connect Instance", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getConnectInstance, + Tags: map[string]string{"service": "connect", "action": "DescribeInstance"}, + }, + List: &plugin.ListConfig{ + Hydrate: listConnectInstances, + Tags: map[string]string{"service": "connect", "action": "ListInstances"}, + }, + + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONNECT_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "id", + Description: "The identifier of the Amazon Connect instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "instance_alias", + Description: "The alias of the instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "instance_status", + Description: "The state of the instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "identity_management_type", + Description: "The identity management type of the instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "instance_access_url", + Description: "This URL allows contact center users to access the Amazon Connect admin website.", + Type: proto.ColumnType_STRING, + }, + { + Name: "service_role", + Description: "The service role of the instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "created_time", + Description: "When the instance was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "status_reason", + Description: "Relevant details why the instance was not successfully created.", + Type: proto.ColumnType_JSON, + Hydrate: getConnectInstance, + }, + { + Name: "inbound_calls_enabled", + Description: "Whether inbound calls are enabled.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "outbound_calls_enabled", + Description: "Whether outbound calls are enabled.", + Type: proto.ColumnType_BOOL, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("InstanceAlias"), + }, + { + Name: "tags", + Description: "The tags of the instance.", + Type: proto.ColumnType_JSON, + Hydrate: getConnectInstance, + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getConnectInstance, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listConnectInstances(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := ConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance.listConnectInstances", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + maxResults := int32(1000) + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil && *d.QueryContext.Limit < int64(maxResults) { + maxResults = int32(*d.QueryContext.Limit) + } + + input := &connect.ListInstancesInput{ + MaxResults: &maxResults, + } + + paginator := connect.NewListInstancesPaginator(svc, input, func(o *connect.ListInstancesPaginatorOptions) { + o.Limit = maxResults + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance.listConnectInstances", "api_error", err) + return nil, err + } + + for _, instance := range output.InstanceSummaryList { + d.StreamListItem(ctx, instance) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getConnectInstance(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var instanceId string + if h.Item != nil { + // If we have an item from the list, extract the instance ID + if instance, ok := h.Item.(types.InstanceSummary); ok { + instanceId = *instance.Id + } + } else { + // If this is a get call, use the key column + instanceId = d.EqualsQualString("id") + } + + if instanceId == "" { + return nil, nil + } + + // Create service + svc, err := ConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance.getConnectInstance", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &connect.DescribeInstanceInput{ + InstanceId: aws.String(instanceId), + } + + // Get call + data, err := svc.DescribeInstance(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance.getConnectInstance", "api_error", err) + return nil, err + } + + if data != nil && data.Instance != nil { + return data.Instance, nil + } + + return nil, nil +} diff --git a/aws/table_aws_connect_instance_attribute.go b/aws/table_aws_connect_instance_attribute.go new file mode 100644 index 000000000..5548dad22 --- /dev/null +++ b/aws/table_aws_connect_instance_attribute.go @@ -0,0 +1,172 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/connect" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +// Custom struct to hold instance attribute data with instance ID +type connectInstanceAttributeData struct { + types.Attribute + InstanceId string +} + +//// TABLE DEFINITION + +func tableAwsConnectInstanceAttribute(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_connect_instance_attribute", + Description: "AWS Connect Instance Attribute", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"instance_id", "attribute_type"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getConnectInstanceAttribute, + Tags: map[string]string{"service": "connect", "action": "DescribeInstanceAttribute"}, + }, + List: &plugin.ListConfig{ + ParentHydrate: listConnectInstances, + Hydrate: listConnectInstanceAttributes, + KeyColumns: plugin.OptionalColumns([]string{"instance_id"}), + Tags: map[string]string{"service": "connect", "action": "ListInstanceAttributes"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CONNECT_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "instance_id", + Description: "The identifier of the Amazon Connect instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "attribute_type", + Description: "The type of attribute.", + Type: proto.ColumnType_STRING, + }, + { + Name: "value", + Description: "The value of the attribute.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("AttributeType"), + }, + }), + } +} + +//// LIST FUNCTION + +func listConnectInstanceAttributes(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get the parent instance data + instance := h.Item.(types.InstanceSummary) + instanceId := *instance.Id + + if d.EqualsQualString("instance_id") != "" && d.EqualsQualString("attribute_type") != instanceId { + return nil, nil + } + + // Create service + svc, err := ConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance_attribute.listConnectInstanceAttributes", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params for ListInstanceAttributes + params := &connect.ListInstanceAttributesInput{ + InstanceId: aws.String(instanceId), + MaxResults: aws.Int32(10), + } + + // Create a paginator for ListInstanceAttributes + paginator := connect.NewListInstanceAttributesPaginator(svc, params, func(o *connect.ListInstanceAttributesPaginatorOptions) { + o.Limit = 10 + }) + + // Iterate through all pages + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance_attribute.listConnectInstanceAttributes", "api_error", err) + return nil, err + } + + if output != nil && output.Attributes != nil { + for _, attr := range output.Attributes { + // Create a custom struct to include instance_id + attributeWithInstance := connectInstanceAttributeData{ + Attribute: attr, + InstanceId: instanceId, + } + + d.StreamListItem(ctx, attributeWithInstance) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getConnectInstanceAttribute(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + instanceId := d.EqualsQualString("instance_id") + attributeType := d.EqualsQualString("attribute_type") + + if instanceId == "" || attributeType == "" { + return nil, nil + } + + // Create service + svc, err := ConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance_attribute.getConnectInstanceAttribute", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params for ListInstanceAttributes + params := &connect.DescribeInstanceAttributeInput{ + InstanceId: aws.String(instanceId), + AttributeType: types.InstanceAttributeType(attributeType), + } + + op, err := svc.DescribeInstanceAttribute(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_connect_instance_attribute.getConnectInstanceAttribute", "api_error", err) + return nil, err + } + + return connectInstanceAttributeData{ + Attribute: *op.Attribute, + InstanceId: instanceId, + }, nil +} diff --git a/aws/table_aws_cost_by_account_daily.go b/aws/table_aws_cost_by_account_daily.go index 25837c525..f6316e2ed 100644 --- a/aws/table_aws_cost_by_account_daily.go +++ b/aws/table_aws_cost_by_account_daily.go @@ -6,6 +6,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByLinkedAccountDaily(_ context.Context) *plugin.Table { @@ -14,11 +15,24 @@ func tableAwsCostByLinkedAccountDaily(_ context.Context) *plugin.Table { Description: "AWS Cost Explorer - Cost by Linked Account (Daily)", List: &plugin.ListConfig{ Hydrate: listCostByLinkedAccountDaily, - Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ - { Name: "linked_account_id", Description: "The AWS Account ID.", @@ -33,6 +47,6 @@ func tableAwsCostByLinkedAccountDaily(_ context.Context) *plugin.Table { //// LIST FUNCTION func listCostByLinkedAccountDaily(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { - params := buildCostByLinkedAccountInput("DAILY") + params := buildCostByLinkedAccountInput(d, "DAILY") return streamCostAndUsage(ctx, d, params) } diff --git a/aws/table_aws_cost_by_account_monthly.go b/aws/table_aws_cost_by_account_monthly.go index b06109a7a..d285af4c8 100644 --- a/aws/table_aws_cost_by_account_monthly.go +++ b/aws/table_aws_cost_by_account_monthly.go @@ -11,6 +11,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByLinkedAccountMonthly(_ context.Context) *plugin.Table { @@ -19,11 +20,24 @@ func tableAwsCostByLinkedAccountMonthly(_ context.Context) *plugin.Table { Description: "AWS Cost Explorer - Cost by Linked Account (Monthly)", List: &plugin.ListConfig{ Hydrate: listCostByLinkedAccountMonthly, - Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ - { Name: "linked_account_id", Description: "The AWS Account ID.", @@ -38,12 +52,11 @@ func tableAwsCostByLinkedAccountMonthly(_ context.Context) *plugin.Table { //// LIST FUNCTION func listCostByLinkedAccountMonthly(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { - params := buildCostByLinkedAccountInput("MONTHLY") - + params := buildCostByLinkedAccountInput(d, "MONTHLY") return streamCostAndUsage(ctx, d, params) } -func buildCostByLinkedAccountInput(granularity string) *costexplorer.GetCostAndUsageInput { +func buildCostByLinkedAccountInput(d *plugin.QueryData, granularity string) *costexplorer.GetCostAndUsageInput { timeFormat := "2006-01-02" if granularity == "HOURLY" { timeFormat = "2006-01-02T15:04:05Z" @@ -51,13 +64,26 @@ func buildCostByLinkedAccountInput(granularity string) *costexplorer.GetCostAndU endTime := time.Now().Format(timeFormat) startTime := getCEStartDateForGranularity(granularity).Format(timeFormat) + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + selectedMetrics := AllCostMetrics() + if len(getMetricsByQueryContext(d.QueryContext)) > 0 { + selectedMetrics = getMetricsByQueryContext(d.QueryContext) + } + params := &costexplorer.GetCostAndUsageInput{ TimePeriod: &types.DateInterval{ Start: aws.String(startTime), End: aws.String(endTime), }, Granularity: types.Granularity(granularity), - Metrics: AllCostMetrics(), + Metrics: selectedMetrics, GroupBy: []types.GroupDefinition{ { Type: types.GroupDefinitionType("DIMENSION"), diff --git a/aws/table_aws_cost_by_record_type_daily.go b/aws/table_aws_cost_by_record_type_daily.go index 51a57b0ec..817be8b28 100644 --- a/aws/table_aws_cost_by_record_type_daily.go +++ b/aws/table_aws_cost_by_record_type_daily.go @@ -6,6 +6,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByRecordTypeDaily(_ context.Context) *plugin.Table { @@ -14,11 +15,24 @@ func tableAwsCostByRecordTypeDaily(_ context.Context) *plugin.Table { Description: "AWS Cost Explorer - Cost by Record Type (Daily)", List: &plugin.ListConfig{ Hydrate: listCostByRecordTypeDaily, - Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ - { Name: "linked_account_id", Description: "The linked AWS Account ID.", @@ -39,6 +53,6 @@ func tableAwsCostByRecordTypeDaily(_ context.Context) *plugin.Table { //// LIST FUNCTION func listCostByRecordTypeDaily(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { - params := buildCostByRecordTypeInput("DAILY") + params := buildCostByRecordTypeInput(d, "DAILY") return streamCostAndUsage(ctx, d, params) } diff --git a/aws/table_aws_cost_by_record_type_monthly.go b/aws/table_aws_cost_by_record_type_monthly.go index b75f757db..59ff5bb8d 100644 --- a/aws/table_aws_cost_by_record_type_monthly.go +++ b/aws/table_aws_cost_by_record_type_monthly.go @@ -11,6 +11,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByRecordTypeMonthly(_ context.Context) *plugin.Table { @@ -19,11 +20,24 @@ func tableAwsCostByRecordTypeMonthly(_ context.Context) *plugin.Table { Description: "AWS Cost Explorer - Cost by Record Type (Monthly)", List: &plugin.ListConfig{ Hydrate: listCostByRecordTypeMonthly, - Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ - { Name: "linked_account_id", Description: "The linked AWS Account ID.", @@ -44,12 +58,11 @@ func tableAwsCostByRecordTypeMonthly(_ context.Context) *plugin.Table { //// LIST FUNCTION func listCostByRecordTypeMonthly(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { - params := buildCostByRecordTypeInput("MONTHLY") - + params := buildCostByRecordTypeInput(d, "MONTHLY") return streamCostAndUsage(ctx, d, params) } -func buildCostByRecordTypeInput(granularity string) *costexplorer.GetCostAndUsageInput { +func buildCostByRecordTypeInput(d *plugin.QueryData, granularity string) *costexplorer.GetCostAndUsageInput { timeFormat := "2006-01-02" if granularity == "HOURLY" { timeFormat = "2006-01-02T15:04:05Z" @@ -57,13 +70,26 @@ func buildCostByRecordTypeInput(granularity string) *costexplorer.GetCostAndUsag endTime := time.Now().Format(timeFormat) startTime := getCEStartDateForGranularity(granularity).Format(timeFormat) + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + selectedMetrics := AllCostMetrics() + if len(getMetricsByQueryContext(d.QueryContext)) > 0 { + selectedMetrics = getMetricsByQueryContext(d.QueryContext) + } + params := &costexplorer.GetCostAndUsageInput{ TimePeriod: &types.DateInterval{ Start: aws.String(startTime), End: aws.String(endTime), }, Granularity: types.Granularity(granularity), - Metrics: AllCostMetrics(), + Metrics: selectedMetrics, GroupBy: []types.GroupDefinition{ { Type: types.GroupDefinitionType("DIMENSION"), diff --git a/aws/table_aws_cost_by_resource_daily.go b/aws/table_aws_cost_by_resource_daily.go new file mode 100644 index 000000000..e9e504d24 --- /dev/null +++ b/aws/table_aws_cost_by_resource_daily.go @@ -0,0 +1,92 @@ +package aws + +import ( + "context" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" +) + +func tableAwsCostByResourceDaily(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_cost_by_resource_daily", + Description: "AWS Cost Explorer - Cost by Resource (Daily)", + List: &plugin.ListConfig{ + Hydrate: listCostByResourceDaily, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsageWithResources"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "resource_id", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "dimension_key", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "dimension_value", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + }, + Columns: awsGlobalRegionColumns( + costExplorerColumns([]*plugin.Column{ + { + Name: "resource_id", + Description: "The unique identifier for the resource.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Dimension1"), + }, + { + Name: "dimension_key", + Description: "The name of the dimension key.", + Type: proto.ColumnType_STRING, + Transform: transform.FromQual("dimension_key"), + Default: "LINKED_ACCOUNT", + }, + { + Name: "dimension_value", + Description: "The value of the dimension key.", + Type: proto.ColumnType_STRING, + Hydrate: getDimensionValue, + Transform: transform.FromValue(), + }, + }), + ), + } +} + +func listCostByResourceDaily(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + params := buildCostByResourceInput("DAILY", d) + + // We must have to provide a single filter value to make the API call + if params.Filter == nil { + // default filter value + defaultFilter, err := getDefaultFilterValue(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_cost_by_resource_daily.listCostByResourceDaily", "getDefaultFilterValue", err) + return nil, err + } + params.Filter = defaultFilter + } + + return streamCostAndUsageByResource(ctx, d, params) +} diff --git a/aws/table_aws_cost_by_resource_hourly.go b/aws/table_aws_cost_by_resource_hourly.go new file mode 100644 index 000000000..5c4ec935b --- /dev/null +++ b/aws/table_aws_cost_by_resource_hourly.go @@ -0,0 +1,92 @@ +package aws + +import ( + "context" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" +) + +func tableAwsCostByResourceHourly(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_cost_by_resource_hourly", + Description: "AWS Cost Explorer - Cost by Resource (Hourly)", + List: &plugin.ListConfig{ + Hydrate: listCostByResourceHourly, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsageWithResources"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "resource_id", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "dimension_key", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "dimension_value", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + }, + Columns: awsGlobalRegionColumns( + costExplorerColumns([]*plugin.Column{ + { + Name: "resource_id", + Description: "The unique identifier for the resource.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Dimension1"), + }, + { + Name: "dimension_key", + Description: "The name of the dimension key.", + Type: proto.ColumnType_STRING, + Transform: transform.FromQual("dimension_key"), + Default: "LINKED_ACCOUNT", + }, + { + Name: "dimension_value", + Description: "The value of the dimension key.", + Type: proto.ColumnType_STRING, + Hydrate: getDimensionValue, + Transform: transform.FromValue(), + }, + }), + ), + } +} + +func listCostByResourceHourly(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + params := buildCostByResourceInput("HOURLY", d) + + // We must have to provide a single filter value to make the API call + if params.Filter == nil { + // default filter value + defaultFilter, err := getDefaultFilterValue(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_cost_by_resource_hourly.listCostByResourceHourly", "getDefaultFilterValue", err) + return nil, err + } + params.Filter = defaultFilter + } + + return streamCostAndUsageByResource(ctx, d, params) +} diff --git a/aws/table_aws_cost_by_resource_monthly.go b/aws/table_aws_cost_by_resource_monthly.go new file mode 100644 index 000000000..05421b86c --- /dev/null +++ b/aws/table_aws_cost_by_resource_monthly.go @@ -0,0 +1,269 @@ +package aws + +import ( + "context" + "strings" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/costexplorer" + "github.com/aws/aws-sdk-go-v2/service/costexplorer/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" +) + +func tableAwsCostByResourceMonthly(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_cost_by_resource_monthly", + Description: "AWS Cost Explorer - Cost by Resource (Monthly)", + List: &plugin.ListConfig{ + Hydrate: listCostByResourceMonthly, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsageWithResources"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "resource_id", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "dimension_key", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "dimension_value", + Operators: []string{"="}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + }, + Columns: awsGlobalRegionColumns( + costExplorerColumns([]*plugin.Column{ + { + Name: "resource_id", + Description: "The unique identifier for the resource.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Dimension1"), + }, + { + Name: "dimension_key", + Description: "The name of the dimension key.", + Type: proto.ColumnType_STRING, + Transform: transform.FromQual("dimension_key"), + Default: "LINKED_ACCOUNT", + }, + { + Name: "dimension_value", + Description: "The value of the dimension key.", + Type: proto.ColumnType_STRING, + Hydrate: getDimensionValue, + Transform: transform.FromValue(), + }, + }), + ), + } +} + +func listCostByResourceMonthly(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + params := buildCostByResourceInput("MONTHLY", d) + + // We must have to provide a single filter value to make the API call + if params.Filter == nil { + // default filter value + defaultFilter, err := getDefaultFilterValue(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_cost_by_resource_monthly.listCostByResourceMonthly", "getDefaultFilterValue", err) + return nil, err + } + params.Filter = defaultFilter + } + + return streamCostAndUsageByResource(ctx, d, params) +} + +//// Common Functions used by aws_cost_by_resource_* tables //// + +// dimension_value is not available in the response, so we need to get it from the query data else the default dimension value(caller account id) will be used. +func getDimensionValue(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + dimensionValue := d.EqualsQualString("dimension_value") + + if dimensionValue != "" { + return dimensionValue, nil + } + + commonData, err := getCommonColumns(ctx, d, h) + if err != nil { + return nil, err + } + commonColumnData := commonData.(*awsCommonColumnData) + + return commonColumnData.AccountId, nil +} + +func buildCostByResourceInput(granularity string, d *plugin.QueryData) *costexplorer.GetCostAndUsageWithResourcesInput { + if d == nil { + return nil + } + + timeFormat := "2006-01-02" + if granularity == "HOURLY" { + timeFormat = "2006-01-02T15:04:05Z" + } + + now := time.Now() + endTime := now.Format(timeFormat) + + // Set the default start time to 14 days ago. + // + // AWS Cost Explorer supports resource-level cost data with the following granularities: + // + // DAILY: + // - Available for the most recent 14 days only. + // - There is no option to extend this retention period. + // - Enables fine-grained cost visibility, but within a short timeframe. + // + // MONTHLY: + // - Also defaults to 14 days of data unless historical resource-level export is enabled. + // - With historical export enabled, monthly data can be retained for up to 38 months. + // + // HOURLY: + // - Always limited to the past 14 days. + // - Incurs additional cost when enabled. + // - Retention cannot be extended beyond 14 days. + // + // These restrictions apply specifically to resource-level cost data. + // Non-resource-level cost data has broader retention: up to 12 months (daily) and 38 months (monthly). + startTime := time.Now().AddDate(0, 0, -13).Format(timeFormat) + + // Get `period_start` and `period_end` from the quals if provided. + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + params := &costexplorer.GetCostAndUsageWithResourcesInput{ + TimePeriod: &types.DateInterval{ + Start: aws.String(startTime), + End: aws.String(endTime), + }, + Granularity: types.Granularity(granularity), + Metrics: AllCostMetrics(), + GroupBy: []types.GroupDefinition{ + { + Type: types.GroupDefinitionType("DIMENSION"), + Key: aws.String("RESOURCE_ID"), + }, + }, + } + + var filters []types.Expression + + // Only add resource_id filter if it exists + if d.Quals != nil && d.Quals["resource_id"] != nil { + filter := types.Expression{ + Dimensions: &types.DimensionValues{ + Key: "RESOURCE_ID", + MatchOptions: []types.MatchOption{types.MatchOption(types.MatchOptionEquals)}, + Values: []string{d.EqualsQualString("resource_id")}, + }, + } + filters = append(filters, filter) + } + + dimKey := d.EqualsQualString("dimension_key") + dimValue := d.EqualsQualString("dimension_value") + if dimKey != "" && dimValue != "" { + filter := types.Expression{ + Dimensions: &types.DimensionValues{ + Key: types.Dimension(strings.ToUpper(dimKey)), + Values: []string{dimValue}, + }, + } + filters = append(filters, filter) + } + + // Add filters to params if we have any + if len(filters) > 1 { + params.Filter = &types.Expression{ + And: filters, + } + } else if len(filters) == 1 { + params.Filter = &filters[0] + } + + return params +} + +// Get default filter value with Dimension "LinkedAccount" and value is the current account ID +func getDefaultFilterValue(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (*types.Expression, error) { + + commonData, err := getCommonColumns(ctx, d, h) + if err != nil { + return nil, err + } + commonColumnData := commonData.(*awsCommonColumnData) + + filter := &types.Expression{ + Dimensions: &types.DimensionValues{ + Key: types.DimensionLinkedAccount, + Values: []string{commonColumnData.AccountId}, + }, + } + + return filter, nil +} + +func streamCostAndUsageByResource(ctx context.Context, d *plugin.QueryData, params *costexplorer.GetCostAndUsageWithResourcesInput) (interface{}, error) { + // Create session + svc, err := CostExplorerClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("streamCostAndUsageByResource", "client_error", err) + return nil, err + } + + // List call + for { + output, err := svc.GetCostAndUsageWithResources(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("streamCostAndUsageByResource", "api_error", err) + return nil, err + } + + // Stream the results + for _, row := range buildCEMetricRows(ctx, (*costexplorer.GetCostAndUsageOutput)(output), nil) { + d.StreamListItem(ctx, row) + + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + + // Get more pages if there are any + if output.NextPageToken == nil { + break + } + params.NextPageToken = output.NextPageToken + } + + return nil, nil + +} diff --git a/aws/table_aws_cost_by_service_daily.go b/aws/table_aws_cost_by_service_daily.go index 2deba64c0..4d633ae61 100644 --- a/aws/table_aws_cost_by_service_daily.go +++ b/aws/table_aws_cost_by_service_daily.go @@ -6,6 +6,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByServiceDaily(_ context.Context) *plugin.Table { @@ -16,12 +17,27 @@ func tableAwsCostByServiceDaily(_ context.Context) *plugin.Table { Hydrate: listCostByServiceDaily, Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, KeyColumns: plugin.KeyColumnSlice{ - {Name: "service", Operators: []string{"=", "<>"}, Require: plugin.Optional}, + { + Name: "service", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, }, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ - { Name: "service", Description: "The name of the AWS service.", diff --git a/aws/table_aws_cost_by_service_monthly.go b/aws/table_aws_cost_by_service_monthly.go index 65dba1cc7..a32027f2e 100644 --- a/aws/table_aws_cost_by_service_monthly.go +++ b/aws/table_aws_cost_by_service_monthly.go @@ -12,6 +12,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByServiceMonthly(_ context.Context) *plugin.Table { @@ -22,7 +23,23 @@ func tableAwsCostByServiceMonthly(_ context.Context) *plugin.Table { Hydrate: listCostByServiceMonthly, Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, KeyColumns: plugin.KeyColumnSlice{ - {Name: "service", Operators: []string{"=", "<>"}, Require: plugin.Optional}, + { + Name: "service", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, }, }, Columns: awsGlobalRegionColumns( @@ -53,13 +70,26 @@ func buildCostByServiceInput(granularity string, d *plugin.QueryData) *costexplo endTime := time.Now().Format(timeFormat) startTime := getCEStartDateForGranularity(granularity).Format(timeFormat) + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + selectedMetrics := AllCostMetrics() + if len(getMetricsByQueryContext(d.QueryContext)) > 0 { + selectedMetrics = getMetricsByQueryContext(d.QueryContext) + } + params := &costexplorer.GetCostAndUsageInput{ TimePeriod: &types.DateInterval{ Start: aws.String(startTime), End: aws.String(endTime), }, Granularity: types.Granularity(granularity), - Metrics: AllCostMetrics(), + Metrics: selectedMetrics, GroupBy: []types.GroupDefinition{ { Type: types.GroupDefinitionType("DIMENSION"), @@ -72,7 +102,7 @@ func buildCostByServiceInput(granularity string, d *plugin.QueryData) *costexplo for _, keyQual := range d.Table.List.KeyColumns { filterQual := d.Quals[keyQual.Name] - if filterQual == nil { + if filterQual == nil || keyQual.Name != "service" { continue } for _, qual := range filterQual.Quals { diff --git a/aws/table_aws_cost_by_service_usage_type_daily.go b/aws/table_aws_cost_by_service_usage_type_daily.go index 7e4cb25fb..3a19491b0 100644 --- a/aws/table_aws_cost_by_service_usage_type_daily.go +++ b/aws/table_aws_cost_by_service_usage_type_daily.go @@ -6,6 +6,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByServiceUsageTypeDaily(_ context.Context) *plugin.Table { @@ -16,8 +17,28 @@ func tableAwsCostByServiceUsageTypeDaily(_ context.Context) *plugin.Table { Hydrate: listCostByServiceAndUsageDaily, Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, KeyColumns: plugin.KeyColumnSlice{ - {Name: "service", Operators: []string{"=", "<>"}, Require: plugin.Optional}, - {Name: "usage_type", Operators: []string{"=", "<>"}, Require: plugin.Optional}, + { + Name: "service", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "usage_type", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, }, }, Columns: awsGlobalRegionColumns( diff --git a/aws/table_aws_cost_by_service_usage_type_monthly.go b/aws/table_aws_cost_by_service_usage_type_monthly.go index 9d59b55f2..1f6c1ff50 100644 --- a/aws/table_aws_cost_by_service_usage_type_monthly.go +++ b/aws/table_aws_cost_by_service_usage_type_monthly.go @@ -2,6 +2,7 @@ package aws import ( "context" + "slices" "strings" "time" @@ -12,6 +13,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByServiceUsageTypeMonthly(_ context.Context) *plugin.Table { @@ -22,8 +24,28 @@ func tableAwsCostByServiceUsageTypeMonthly(_ context.Context) *plugin.Table { Hydrate: listCostByServiceAndUsageMonthly, Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, KeyColumns: plugin.KeyColumnSlice{ - {Name: "service", Operators: []string{"=", "<>"}, Require: plugin.Optional}, - {Name: "usage_type", Operators: []string{"=", "<>"}, Require: plugin.Optional}, + { + Name: "service", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "usage_type", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, }, }, Columns: awsGlobalRegionColumns( @@ -60,13 +82,26 @@ func buildCostByServiceAndUsageInput(granularity string, d *plugin.QueryData) *c endTime := time.Now().Format(timeFormat) startTime := getCEStartDateForGranularity(granularity).Format(timeFormat) + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + selectedMetrics := AllCostMetrics() + if len(getMetricsByQueryContext(d.QueryContext)) > 0 { + selectedMetrics = getMetricsByQueryContext(d.QueryContext) + } + params := &costexplorer.GetCostAndUsageInput{ TimePeriod: &types.DateInterval{ Start: aws.String(startTime), End: aws.String(endTime), }, Granularity: types.Granularity(granularity), - Metrics: AllCostMetrics(), + Metrics: selectedMetrics, GroupBy: []types.GroupDefinition{ { Type: types.GroupDefinitionType("DIMENSION"), @@ -83,7 +118,7 @@ func buildCostByServiceAndUsageInput(granularity string, d *plugin.QueryData) *c for _, keyQual := range d.Table.List.KeyColumns { filterQual := d.Quals[keyQual.Name] - if filterQual == nil { + if filterQual == nil || !slices.Contains([]string{"service", "usage_type"}, keyQual.Name) { continue } for _, qual := range filterQual.Quals { diff --git a/aws/table_aws_cost_by_tag.go b/aws/table_aws_cost_by_tag.go index 5738c0d3a..3aaf59d0c 100644 --- a/aws/table_aws_cost_by_tag.go +++ b/aws/table_aws_cost_by_tag.go @@ -13,6 +13,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostByTag(_ context.Context) *plugin.Table { @@ -21,16 +22,38 @@ func tableAwsCostByTag(_ context.Context) *plugin.Table { Description: "AWS Cost Explorer - Cost By Tags", List: &plugin.ListConfig{ KeyColumns: []*plugin.KeyColumn{ - {Name: "granularity", Require: plugin.Required}, - {Name: "tag_key_1", Require: plugin.Required}, - {Name: "tag_key_2", Operators: []string{"=", "<>"}, Require: plugin.Optional, CacheMatch: "exact"}, + { + Name: "granularity", + Require: plugin.Required, + }, + { + Name: "tag_key_1", + Require: plugin.Required, + }, + { + Name: "tag_key_2", + Operators: []string{"=", "<>"}, + Require: plugin.Optional, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, }, Hydrate: listCostAndUsageByTags, Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ - // Quals columns - to filter the lookups { Name: "granularity", @@ -83,13 +106,26 @@ func buildInputFromTagKeyAndTagValueQuals(ctx context.Context, d *plugin.QueryDa endTime := time.Now().Format(timeFormat) startTime := getCEStartDateForGranularity(granularity).Format(timeFormat) + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + selectedMetrics := AllCostMetrics() + if len(getMetricsByQueryContext(d.QueryContext)) > 0 { + selectedMetrics = getMetricsByQueryContext(d.QueryContext) + } + params := &costexplorer.GetCostAndUsageInput{ TimePeriod: &types.DateInterval{ Start: aws.String(startTime), End: aws.String(endTime), }, Granularity: types.Granularity(granularity), - Metrics: AllCostMetrics(), + Metrics: selectedMetrics, } tagKey1 := d.EqualsQualString("tag_key_1") tagKey2 := d.EqualsQualString("tag_key_2") diff --git a/aws/table_aws_cost_forecast_daily.go b/aws/table_aws_cost_forecast_daily.go index 894420618..b18b5c619 100644 --- a/aws/table_aws_cost_forecast_daily.go +++ b/aws/table_aws_cost_forecast_daily.go @@ -11,6 +11,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostForecastDaily(_ context.Context) *plugin.Table { @@ -19,7 +20,21 @@ func tableAwsCostForecastDaily(_ context.Context) *plugin.Table { Description: "AWS Cost Explorer - Cost Forecast (Daily)", List: &plugin.ListConfig{ Hydrate: listCostForecastDaily, - Tags: map[string]string{"service": "ce", "action": "GetCostForecast"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + Tags: map[string]string{"service": "ce", "action": "GetCostForecast"}, }, Columns: awsGlobalRegionColumns([]*plugin.Column{ { @@ -39,8 +54,7 @@ func tableAwsCostForecastDaily(_ context.Context) *plugin.Table { Description: "Average forecasted value", Type: proto.ColumnType_DOUBLE, }, - }, - ), + }), } } @@ -55,7 +69,7 @@ func listCostForecastDaily(ctx context.Context, d *plugin.QueryData, _ *plugin.H return nil, err } - params := buildCostForecastInput(d.EqualsQuals, "DAILY") + params := buildCostForecastInput(d, "DAILY") output, err := svc.GetCostForecast(ctx, params) if err != nil { @@ -75,7 +89,7 @@ func listCostForecastDaily(ctx context.Context, d *plugin.QueryData, _ *plugin.H return nil, nil } -func buildCostForecastInput(_ map[string]*proto.QualValue, granularity string) *costexplorer.GetCostForecastInput { +func buildCostForecastInput(d *plugin.QueryData, granularity string) *costexplorer.GetCostForecastInput { // TO DO - specify metric as qual? get all cost metrics in parallel? //metric := strings.ToUpper(keyQuals["metric"].GetStringValue()) @@ -90,6 +104,15 @@ func buildCostForecastInput(_ map[string]*proto.QualValue, granularity string) * startTime := time.Now().UTC().Format(timeFormat) endTime := getForecastEndDateForGranularity(granularity).Format(timeFormat) + // Get search start time and search end time based on the quals value with operator + st, et := getSearchStartTimeAndSearchEndTime(d, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + params := &costexplorer.GetCostForecastInput{ TimePeriod: &types.DateInterval{ Start: aws.String(startTime), diff --git a/aws/table_aws_cost_forecast_monthly.go b/aws/table_aws_cost_forecast_monthly.go index 91efa2202..e650029fd 100644 --- a/aws/table_aws_cost_forecast_monthly.go +++ b/aws/table_aws_cost_forecast_monthly.go @@ -6,15 +6,30 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) -func tableAwsCostForecastMonthly(_ context.Context) *plugin.Table { +func tableAwsCostForecastMonthly(ctx context.Context) *plugin.Table { return &plugin.Table{ Name: "aws_cost_forecast_monthly", Description: "AWS Cost Explorer - Cost Forecast (Monthly)", List: &plugin.ListConfig{ Hydrate: listCostForecastMonthly, Tags: map[string]string{"service": "ce", "action": "GetCostForecast"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, }, Columns: awsGlobalRegionColumns([]*plugin.Column{ { @@ -34,8 +49,7 @@ func tableAwsCostForecastMonthly(_ context.Context) *plugin.Table { Description: "Average forecasted value", Type: proto.ColumnType_DOUBLE, }, - }, - ), + }), } } @@ -50,7 +64,7 @@ func listCostForecastMonthly(ctx context.Context, d *plugin.QueryData, _ *plugin return nil, err } - params := buildCostForecastInput(d.EqualsQuals, "MONTHLY") + params := buildCostForecastInput(d, "MONTHLY") output, err := svc.GetCostForecast(ctx, params) if err != nil { diff --git a/aws/table_aws_cost_usage.go b/aws/table_aws_cost_usage.go index 4839e3ced..de1bb99d0 100644 --- a/aws/table_aws_cost_usage.go +++ b/aws/table_aws_cost_usage.go @@ -11,6 +11,7 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" ) func tableAwsCostAndUsage(_ context.Context) *plugin.Table { @@ -18,10 +19,35 @@ func tableAwsCostAndUsage(_ context.Context) *plugin.Table { Name: "aws_cost_usage", Description: "AWS Cost Explorer - Cost and Usage", List: &plugin.ListConfig{ - //KeyColumns: plugin.AllColumns([]string{"search_start_time", "search_end_time", "granularity", "dimension_type_1", "dimension_type_2"}), - KeyColumns: plugin.AllColumns([]string{"granularity", "dimension_type_1", "dimension_type_2"}), - Hydrate: listCostAndUsage, - Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "granularity", + Require: plugin.Required, + }, + { + Name: "dimension_type_1", + Require: plugin.Required, + }, + { + Name: "dimension_type_2", + Require: plugin.Required, + }, + { + Name: "period_start", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + { + Name: "period_end", + Require: plugin.Optional, + Operators: []string{">", ">=", "=", "<", "<="}, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + + Hydrate: listCostAndUsage, + Tags: map[string]string{"service": "ce", "action": "GetCostAndUsage"}, }, Columns: awsGlobalRegionColumns( costExplorerColumns([]*plugin.Column{ @@ -35,35 +61,34 @@ func tableAwsCostAndUsage(_ context.Context) *plugin.Table { Description: "Valid values are AZ, INSTANCE_TYPE, LINKED_ACCOUNT, OPERATION, PURCHASE_TYPE, SERVICE, USAGE_TYPE, PLATFORM, TENANCY, RECORD_TYPE, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, REGION, BILLING_ENTITY, RESERVATION_ID, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, OPERATING_SYSTEM", Type: proto.ColumnType_STRING, }, - - // Quals columns - to filter the lookups - { - Name: "granularity", - Description: "", - Type: proto.ColumnType_STRING, - Hydrate: hydrateCostAndUsageQuals, - }, { Name: "search_start_time", - Description: "", + Description: "[Deprecated] The beginning of the time period.", Type: proto.ColumnType_TIMESTAMP, Hydrate: hydrateCostAndUsageQuals, }, { Name: "search_end_time", - Description: "", + Description: "[Deprecated] The end of the time period.", Type: proto.ColumnType_TIMESTAMP, Hydrate: hydrateCostAndUsageQuals, }, + // Quals columns - to filter the lookups + { + Name: "granularity", + Description: "The AWS cost granularity. Valid values are DAILY, MONTHLY, or HOURLY.", + Type: proto.ColumnType_STRING, + Hydrate: hydrateCostAndUsageQuals, + }, { Name: "dimension_type_1", - Description: "", + Description: "The first dimension to group results by. Valid values include AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION.", Type: proto.ColumnType_STRING, Hydrate: hydrateCostAndUsageQuals, }, { Name: "dimension_type_2", - Description: "", + Description: "The second dimension to group results by. Valid values include AZ, INSTANCE_TYPE, LINKED_ACCOUNT, LINKED_ACCOUNT_NAME, OPERATION, PURCHASE_TYPE, REGION, SERVICE, SERVICE_CODE, USAGE_TYPE, USAGE_TYPE_GROUP, RECORD_TYPE, OPERATING_SYSTEM, TENANCY, SCOPE, PLATFORM, SUBSCRIPTION_ID, LEGAL_ENTITY_NAME, DEPLOYMENT_OPTION, DATABASE_ENGINE, CACHE_ENGINE, INSTANCE_TYPE_FAMILY, BILLING_ENTITY, RESERVATION_ID, RESOURCE_ID, RIGHTSIZING_TYPE, SAVINGS_PLANS_TYPE, SAVINGS_PLAN_ARN, PAYMENT_OPTION.", Type: proto.ColumnType_STRING, Hydrate: hydrateCostAndUsageQuals, }, @@ -109,12 +134,12 @@ func tableAwsCostAndUsage(_ context.Context) *plugin.Table { //// LIST FUNCTION func listCostAndUsage(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { - params := buildInputFromQuals(d.EqualsQuals) + params := buildInputFromQuals(ctx, d) return streamCostAndUsage(ctx, d, params) } -func buildInputFromQuals(keyQuals map[string]*proto.QualValue) *costexplorer.GetCostAndUsageInput { - granularity := strings.ToUpper(keyQuals["granularity"].GetStringValue()) +func buildInputFromQuals(ctx context.Context, keyQuals *plugin.QueryData) *costexplorer.GetCostAndUsageInput { + granularity := strings.ToUpper(keyQuals.EqualsQuals["granularity"].GetStringValue()) timeFormat := "2006-01-02" if granularity == "HOURLY" { timeFormat = "2006-01-02T15:04:05Z" @@ -122,8 +147,21 @@ func buildInputFromQuals(keyQuals map[string]*proto.QualValue) *costexplorer.Get endTime := time.Now().Format(timeFormat) startTime := getCEStartDateForGranularity(granularity).Format(timeFormat) - dim1 := strings.ToUpper(keyQuals["dimension_type_1"].GetStringValue()) - dim2 := strings.ToUpper(keyQuals["dimension_type_2"].GetStringValue()) + st, et := getSearchStartTimeAndSearchEndTime(keyQuals, granularity) + if st != "" { + startTime = st + } + if et != "" { + endTime = et + } + + selectedMetrics := AllCostMetrics() + if len(getMetricsByQueryContext(keyQuals.QueryContext)) > 0 { + selectedMetrics = getMetricsByQueryContext(keyQuals.QueryContext) + } + + dim1 := strings.ToUpper(keyQuals.EqualsQuals["dimension_type_1"].GetStringValue()) + dim2 := strings.ToUpper(keyQuals.EqualsQuals["dimension_type_2"].GetStringValue()) params := &costexplorer.GetCostAndUsageInput{ TimePeriod: &types.DateInterval{ @@ -131,7 +169,7 @@ func buildInputFromQuals(keyQuals map[string]*proto.QualValue) *costexplorer.Get End: aws.String(endTime), }, Granularity: types.Granularity(granularity), - Metrics: AllCostMetrics(), + Metrics: selectedMetrics, } var groupings []types.GroupDefinition if dim1 != "" { @@ -151,6 +189,56 @@ func buildInputFromQuals(keyQuals map[string]*proto.QualValue) *costexplorer.Get return params } +func getSearchStartTimeAndSearchEndTime(keyQuals *plugin.QueryData, granularity string) (string, string) { + timeFormat := "2006-01-02" + if granularity == "HOURLY" { + timeFormat = "2006-01-02T15:04:05Z" + } + + st, et := "", "" + + if keyQuals.Quals["period_start"] != nil && len(keyQuals.Quals["period_start"].Quals) <= 1 { + for _, q := range keyQuals.Quals["period_start"].Quals { + t := q.Value.GetTimestampValue().AsTime().Format(timeFormat) + switch q.Operator { + case "=", ">=", ">": + st = t + case "<", "<=": + et = t + } + } + } + + // The API supports a single value with the '=' operator. + // For queries like: "period_end BETWEEN current_timestamp - interval '31d' AND current_timestamp - interval '1d'", the FDW parses the query parameters with multiple qualifiers. + // In this case, we will have multiple qualifiers with operators such as: + // 1. The length of keyQuals.Quals["period_end"].Quals will be 2. + // 2. The qualifier values would be "2024-05-10" with the '>=' operator and "2024-06-09" with the '<=' operator. + // Plugin Log: + // 2024-06-10 11:17:39.071 UTC [DEBUG] steampipe-plugin-aws.plugin: [ERROR] 1718018259212: Period end Scan Length ===>>> : EXTRA_VALUE_AT_END=2 + // 2024-06-10 11:17:39.071 UTC [DEBUG] steampipe-plugin-aws.plugin: [ERROR] 1718018259212: Period End => : >=2024-05-10 + // 2024-06-10 11:17:39.071 UTC [DEBUG] steampipe-plugin-aws.plugin: [ERROR] 1718018259212: Period End => : <=2024-06-09 + // In this scenario, manipulating the start and end time is a bit difficult and challenging. + // Let the API fetch all the rows, and filtering will occur at the Steampipe level. + + if keyQuals.Quals["period_end"] != nil && len(keyQuals.Quals["period_end"].Quals) <= 1 { + for _, q := range keyQuals.Quals["period_end"].Quals { + t := q.Value.GetTimestampValue().AsTime().Format(timeFormat) + switch q.Operator { + case "=", ">=", ">": + if st == "" { + st = t + } + case "<", "<=": + if et == "" { + et = t + } + } + } + } + return st, et +} + //// HYDRATE FUNCTIONS // func hydrateKeyQuals(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { diff --git a/aws/table_aws_costoptimizationhub_recommendation.go b/aws/table_aws_costoptimizationhub_recommendation.go index a3464b407..6391b3fc4 100644 --- a/aws/table_aws_costoptimizationhub_recommendation.go +++ b/aws/table_aws_costoptimizationhub_recommendation.go @@ -315,7 +315,7 @@ func buildCostOptimizationHubRecommendationInputFromQuals(quals plugin.KeyColumn switch columnName { case "restart_needed", "rollback_possible": value := getQualsValueByColumn(quals, columnName, "boolean") - val := value.(string) == "true" + val := value.(bool) if columnName == "restart_needed" { param.RestartNeeded = &val } diff --git a/aws/table_aws_datasync_task.go b/aws/table_aws_datasync_task.go new file mode 100644 index 000000000..e489b3271 --- /dev/null +++ b/aws/table_aws_datasync_task.go @@ -0,0 +1,347 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/datasync" + "github.com/aws/aws-sdk-go-v2/service/datasync/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsDataSyncTask(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_datasync_task", + Description: "AWS DataSync Task", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("arn"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidRequestException"}), + }, + Hydrate: getDataSyncTask, + Tags: map[string]string{"service": "datasync", "action": "DescribeTask"}, + }, + List: &plugin.ListConfig{ + Hydrate: listDataSyncTasks, + Tags: map[string]string{"service": "datasync", "action": "ListTasks"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getDataSyncTask, + Tags: map[string]string{"service": "datasync", "action": "DescribeTask"}, + }, + { + Func: getDataSyncTaskTags, + Tags: map[string]string{"service": "datasync", "action": "ListTagsForResource"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DATASYNC_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the task.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("TaskArn"), + }, + { + Name: "name", + Description: "The name of the task.", + Type: proto.ColumnType_STRING, + }, + { + Name: "status", + Description: "The status of the task.", + Type: proto.ColumnType_STRING, + }, + { + Name: "task_mode", + Description: "The task mode that you're using.", + Type: proto.ColumnType_STRING, + }, + { + Name: "source_location_arn", + Description: "The ARN of your transfer's source location.", + Type: proto.ColumnType_STRING, + Hydrate: getDataSyncTask, + }, + { + Name: "destination_location_arn", + Description: "The ARN of your transfer's destination location.", + Type: proto.ColumnType_STRING, + Hydrate: getDataSyncTask, + }, + { + Name: "cloud_watch_log_group_arn", + Description: "The ARN of an Amazon CloudWatch log group for monitoring your task.", + Type: proto.ColumnType_STRING, + Hydrate: getDataSyncTask, + }, + { + Name: "creation_time", + Description: "The time that the task was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getDataSyncTask, + }, + { + Name: "current_task_execution_arn", + Description: "The ARN of the most recent task execution.", + Type: proto.ColumnType_STRING, + Hydrate: getDataSyncTask, + }, + { + Name: "error_detail", + Description: "If there's an issue with your task, you can use the error details to help you troubleshoot the problem.", + Type: proto.ColumnType_STRING, + Hydrate: getDataSyncTask, + }, + { + Name: "error_code", + Description: "If there's an issue with your task, you can use the error code to help you troubleshoot the problem.", + Type: proto.ColumnType_STRING, + Hydrate: getDataSyncTask, + }, + { + Name: "excludes", + Description: "The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "includes", + Description: "The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "manifest_config", + Description: "The configuration of the manifest that lists the files or objects that you want DataSync to transfer.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "options", + Description: "The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "schedule", + Description: "The schedule for when you want your task to run.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "schedule_details", + Description: "The details about your task schedule.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "source_network_interface_arns", + Description: "The ARNs of the network interfaces that DataSync created for your source location.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "destination_network_interface_arns", + Description: "The ARNs of the network interfaces that DataSync created for your destination location.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "task_report_config", + Description: "The configuration of your task report, which provides detailed information about your DataSync transfer.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTask, + }, + { + Name: "tags_src", + Description: "The tags associated the task.", + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTaskTags, + Transform: transform.FromValue(), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getDataSyncTaskTags, + Transform: transform.From(getTaskTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("TaskArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listDataSyncTasks(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := DataSyncClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_datasync_task.listDataSyncTasks", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + maxItems := int32(100) + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil && *d.QueryContext.Limit < int64(maxItems) { + maxItems = int32(*d.QueryContext.Limit) + } + + input := &datasync.ListTasksInput{ + MaxResults: &maxItems, + } + + paginator := datasync.NewListTasksPaginator(svc, input, func(o *datasync.ListTasksPaginatorOptions) { + o.Limit = maxItems + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_datasync_task.listDataSyncTasks", "api_error", err) + return nil, err + } + + for _, task := range output.Tasks { + d.StreamListItem(ctx, task) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, err +} + +//// HYDRATE FUNCTIONS + +func getDataSyncTask(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var taskArn string + if h.Item != nil { + task := h.Item.(types.TaskListEntry) + taskArn = *task.TaskArn + } else { + taskArn = d.EqualsQuals["arn"].GetStringValue() + } + + if taskArn == "" { + return nil, nil + } + + // Create service + svc, err := DataSyncClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_datasync_task.getDataSyncTask", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &datasync.DescribeTaskInput{ + TaskArn: aws.String(taskArn), + } + + // Get call + data, err := svc.DescribeTask(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_datasync_task.getDataSyncTask", "api_error", err) + return nil, err + } + + return data, nil +} + +func getDataSyncTaskTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var taskArn string + if h.Item != nil { + task := h.Item.(types.TaskListEntry) + taskArn = *task.TaskArn + } else { + taskArn = d.EqualsQuals["arn"].GetStringValue() + } + + if taskArn == "" { + return nil, nil + } + + // Create service + svc, err := DataSyncClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_datasync_task.getDataSyncTask", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &datasync.ListTagsForResourceInput{ + ResourceArn: aws.String(taskArn), + } + + // Get call + paginator := datasync.NewListTagsForResourcePaginator(svc, params, func(o *datasync.ListTagsForResourcePaginatorOptions) { + o.Limit = 100 + }) + + var tags []types.TagListEntry + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_datasync_task.getDataSyncTaskTags", "api_error", err) + return nil, err + } + + tags = append(tags, output.Tags...) + } + + return tags, nil +} + +//// TRANSFORM FUNCTIONS + +func getTaskTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { + if d.HydrateItem != nil { + tags := d.HydrateItem.([]types.TagListEntry) + tagsMap := make(map[string]string) + for _, tag := range tags { + tagsMap[*tag.Key] = *tag.Value + } + return tagsMap, nil + } + return nil, nil +} diff --git a/aws/table_aws_dax_cluster.go b/aws/table_aws_dax_cluster.go index b2183d72d..0ecd51787 100644 --- a/aws/table_aws_dax_cluster.go +++ b/aws/table_aws_dax_cluster.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dax" "github.com/aws/aws-sdk-go-v2/service/dax/types" - daxv1 "github.com/aws/aws-sdk-go/service/dax" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -48,7 +46,7 @@ func tableAwsDaxCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dax", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(daxv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DAX_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cluster_name", diff --git a/aws/table_aws_dax_parameter.go b/aws/table_aws_dax_parameter.go index 34083ca15..59e405245 100644 --- a/aws/table_aws_dax_parameter.go +++ b/aws/table_aws_dax_parameter.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dax" "github.com/aws/aws-sdk-go-v2/service/dax/types" - daxv1 "github.com/aws/aws-sdk-go/service/dax" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsDaxParameter(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(daxv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DAX_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "parameter_name", diff --git a/aws/table_aws_dax_parameter_group.go b/aws/table_aws_dax_parameter_group.go index 32b45d95d..b4afc6b68 100644 --- a/aws/table_aws_dax_parameter_group.go +++ b/aws/table_aws_dax_parameter_group.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/dax" - daxv1 "github.com/aws/aws-sdk-go/service/dax" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsDaxParameterGroup(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(daxv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DAX_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "parameter_group_name", diff --git a/aws/table_aws_dax_subnet_group.go b/aws/table_aws_dax_subnet_group.go index eacb68c7b..8f4ae3c9f 100644 --- a/aws/table_aws_dax_subnet_group.go +++ b/aws/table_aws_dax_subnet_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dax" "github.com/aws/aws-sdk-go-v2/service/dax/types" - daxv1 "github.com/aws/aws-sdk-go/service/dax" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsDaxSubnetGroup(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(daxv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DAX_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "subnet_group_name", diff --git a/aws/table_aws_directory_service_certificate.go b/aws/table_aws_directory_service_certificate.go index b67b77920..2010a76f1 100644 --- a/aws/table_aws_directory_service_certificate.go +++ b/aws/table_aws_directory_service_certificate.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/directoryservice/types" "github.com/aws/smithy-go" - directoryservicev1 "github.com/aws/aws-sdk-go/service/directoryservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -51,7 +49,7 @@ func tableAwsDirectoryServiceCertificate(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ds", "action": "DescribeCertificate"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(directoryservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "directory_id", diff --git a/aws/table_aws_directory_service_directory.go b/aws/table_aws_directory_service_directory.go index 0939aba51..4d26b4667 100644 --- a/aws/table_aws_directory_service_directory.go +++ b/aws/table_aws_directory_service_directory.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/directoryservice" "github.com/aws/aws-sdk-go-v2/service/directoryservice/types" - directoryservicev1 "github.com/aws/aws-sdk-go/service/directoryservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -57,7 +55,7 @@ func tableAwsDirectoryServiceDirectory(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ds", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(directoryservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_directory_service_log_subscription.go b/aws/table_aws_directory_service_log_subscription.go index cfb5d6a1e..6444aed17 100644 --- a/aws/table_aws_directory_service_log_subscription.go +++ b/aws/table_aws_directory_service_log_subscription.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/directoryservice" - directoryservicev1 "github.com/aws/aws-sdk-go/service/directoryservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsDirectoryServiceLogSubscription(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(directoryservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "directory_id", diff --git a/aws/table_aws_dlm_lifecycle_policy.go b/aws/table_aws_dlm_lifecycle_policy.go index 8eacc9f6d..dc9327e6d 100644 --- a/aws/table_aws_dlm_lifecycle_policy.go +++ b/aws/table_aws_dlm_lifecycle_policy.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dlm" "github.com/aws/aws-sdk-go-v2/service/dlm/types" - dlmv1 "github.com/aws/aws-sdk-go/service/dlm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsDLMLifecyclePolicy(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dlm", "action": "GetLifecyclePolicy"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(dlmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DLM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "policy_id", diff --git a/aws/table_aws_dms_certificate.go b/aws/table_aws_dms_certificate.go index fbf14ace1..0712906f1 100644 --- a/aws/table_aws_dms_certificate.go +++ b/aws/table_aws_dms_certificate.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice" "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice/types" - databasemigrationservicev1 "github.com/aws/aws-sdk-go/service/databasemigrationservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsDmsCertificate(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dms", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(databasemigrationservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DLM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "certificate_identifier", diff --git a/aws/table_aws_dms_endpoint.go b/aws/table_aws_dms_endpoint.go index b58b3541a..d7543d083 100644 --- a/aws/table_aws_dms_endpoint.go +++ b/aws/table_aws_dms_endpoint.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice" "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice/types" - databasemigrationservicev1 "github.com/aws/aws-sdk-go/service/databasemigrationservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -26,7 +24,7 @@ func tableAwsDmsEndpoint(_ context.Context) *plugin.Table { IgnoreConfig: &plugin.IgnoreConfig{ ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundFault", "InvalidParameterValueException"}), }, - Tags: map[string]string{"service": "dms", "action": "DescribeEndpoints"}, + Tags: map[string]string{"service": "dms", "action": "DescribeEndpoints"}, KeyColumns: []*plugin.KeyColumn{ { Name: "endpoint_identifier", @@ -52,7 +50,7 @@ func tableAwsDmsEndpoint(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dms", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(databasemigrationservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DLM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "endpoint_identifier", diff --git a/aws/table_aws_dms_replication_instance.go b/aws/table_aws_dms_replication_instance.go index 055d7ccc5..3121cb64f 100644 --- a/aws/table_aws_dms_replication_instance.go +++ b/aws/table_aws_dms_replication_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice" "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice/types" - databasemigrationservicev1 "github.com/aws/aws-sdk-go/service/databasemigrationservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -56,7 +54,7 @@ func tableAwsDmsReplicationInstance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dms", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(databasemigrationservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DLM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "replication_instance_identifier", diff --git a/aws/table_aws_dms_replication_task.go b/aws/table_aws_dms_replication_task.go index d71a45754..a74a1ff03 100644 --- a/aws/table_aws_dms_replication_task.go +++ b/aws/table_aws_dms_replication_task.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice" "github.com/aws/aws-sdk-go-v2/service/databasemigrationservice/types" - databasemigrationservicev1 "github.com/aws/aws-sdk-go/service/databasemigrationservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -60,7 +58,7 @@ func tableAwsDmsReplicationTask(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dms", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(databasemigrationservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DLM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "replication_task_identifier", @@ -252,7 +250,7 @@ func listDmsReplicationTasks(ctx context.Context, d *plugin.QueryData, _ *plugin } if equalQuals["target_endpoint_arn"] != nil || equalQuals["source_endpoint_arn"] != nil { paramFilter := types.Filter{ - Name: aws.String("endpoint-arn"), + Name: aws.String("endpoint-arn"), } values := []string{} diff --git a/aws/table_aws_docdb_cluster.go b/aws/table_aws_docdb_cluster.go index 8b13b5023..29b70b9aa 100644 --- a/aws/table_aws_docdb_cluster.go +++ b/aws/table_aws_docdb_cluster.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/docdb" "github.com/aws/aws-sdk-go-v2/service/docdb/types" - docdbv1 "github.com/aws/aws-sdk-go/service/docdb" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsDocDBCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "docdb-elastic", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(docdbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DOCDB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_cluster_identifier", diff --git a/aws/table_aws_docdb_cluster_instance.go b/aws/table_aws_docdb_cluster_instance.go index 385a5d412..ba074b97d 100644 --- a/aws/table_aws_docdb_cluster_instance.go +++ b/aws/table_aws_docdb_cluster_instance.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/docdb" "github.com/aws/aws-sdk-go-v2/service/docdb/types" - docdbv1 "github.com/aws/aws-sdk-go/service/docdb" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsDocDBClusterInstance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "docdb", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(docdbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DOCDB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_instance_identifier", diff --git a/aws/table_aws_docdb_cluster_snapshot.go b/aws/table_aws_docdb_cluster_snapshot.go index ab0cd0e56..453227fc3 100644 --- a/aws/table_aws_docdb_cluster_snapshot.go +++ b/aws/table_aws_docdb_cluster_snapshot.go @@ -9,11 +9,9 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" - docdbv1 "github.com/aws/aws-sdk-go/service/docdb" - "github.com/aws/aws-sdk-go-v2/service/docdb" "github.com/aws/aws-sdk-go-v2/service/docdb/types" - "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" ) @@ -51,7 +49,7 @@ func tableAwsDocDBClusterSnapshot(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "docdb-elastic", "action": "DescribeDBClusterSnapshotAttributes"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(docdbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DOCDB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_cluster_snapshot_identifier", diff --git a/aws/table_aws_drs_job.go b/aws/table_aws_drs_job.go index 5368138dd..ed5f11d40 100644 --- a/aws/table_aws_drs_job.go +++ b/aws/table_aws_drs_job.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/drs" "github.com/aws/aws-sdk-go-v2/service/drs/types" - drsv1 "github.com/aws/aws-sdk-go/service/drs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsDRSJob(_ context.Context) *plugin.Table { Hydrate: listAwsDRSJobs, Tags: map[string]string{"service": "drs", "action": "DescribeJobs"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(drsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DRS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "job_id", diff --git a/aws/table_aws_drs_recovery_instance.go b/aws/table_aws_drs_recovery_instance.go index e94eef671..1a45826a4 100644 --- a/aws/table_aws_drs_recovery_instance.go +++ b/aws/table_aws_drs_recovery_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/drs" "github.com/aws/aws-sdk-go-v2/service/drs/types" - drsv1 "github.com/aws/aws-sdk-go/service/drs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsDRSRecoveryInstance(_ context.Context) *plugin.Table { Hydrate: listAwsDRSRecoveryInstances, Tags: map[string]string{"service": "drs", "action": "DescribeRecoveryInstances"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(drsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DRS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "recovery_instance_id", diff --git a/aws/table_aws_drs_recovery_snapshot.go b/aws/table_aws_drs_recovery_snapshot.go index 10427c59d..60ec71dd6 100644 --- a/aws/table_aws_drs_recovery_snapshot.go +++ b/aws/table_aws_drs_recovery_snapshot.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/drs" "github.com/aws/aws-sdk-go-v2/service/drs/types" - drsv1 "github.com/aws/aws-sdk-go/service/drs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsDRSRecoverySnapshot(_ context.Context) *plugin.Table { Hydrate: listAwsDRSRecoverySnapshots, Tags: map[string]string{"service": "drs", "action": "DescribeRecoverySnapshots"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(drsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DRS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "snapshot_id", diff --git a/aws/table_aws_drs_source_server.go b/aws/table_aws_drs_source_server.go index fd405e0a1..0c9b4268d 100644 --- a/aws/table_aws_drs_source_server.go +++ b/aws/table_aws_drs_source_server.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/drs" "github.com/aws/aws-sdk-go-v2/service/drs/types" - drsv1 "github.com/aws/aws-sdk-go/service/drs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsDRSSourceServer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "drs", "action": "GetLaunchConfiguration"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(drsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DRS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "source_server_id", diff --git a/aws/table_aws_dynamodb_backup.go b/aws/table_aws_dynamodb_backup.go index 15dcb8902..0e41a2c1d 100644 --- a/aws/table_aws_dynamodb_backup.go +++ b/aws/table_aws_dynamodb_backup.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dynamodb" "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" - dynamodbv1 "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsDynamoDBBackup(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(dynamodbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DYNAMODB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_dynamodb_global_table.go b/aws/table_aws_dynamodb_global_table.go index 52d4a407e..94438eb73 100644 --- a/aws/table_aws_dynamodb_global_table.go +++ b/aws/table_aws_dynamodb_global_table.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dynamodb" "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" - dynamodbv1 "github.com/aws/aws-sdk-go/service/dynamodb" - go_kit_pack "github.com/turbot/go-kit/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -43,7 +41,7 @@ func tableAwsDynamoDBGlobalTable(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dynamodb", "action": "DescribeGlobalTable"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(dynamodbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DYNAMODB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "global_table_name", diff --git a/aws/table_aws_dynamodb_table.go b/aws/table_aws_dynamodb_table.go index aab3d53b2..c4befdc70 100644 --- a/aws/table_aws_dynamodb_table.go +++ b/aws/table_aws_dynamodb_table.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dynamodb" "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" - dynamodbv1 "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -61,7 +59,7 @@ func tableAwsDynamoDBTable(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dynamodb", "action": "DescribeKinesisStreamingDestination"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(dynamodbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DYNAMODB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_dynamodb_table_export.go b/aws/table_aws_dynamodb_table_export.go index 8d4741570..06eb70a59 100644 --- a/aws/table_aws_dynamodb_table_export.go +++ b/aws/table_aws_dynamodb_table_export.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/dynamodb" "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" - dynamodbv1 "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsDynamoDBTableExport(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "dynamodb", "action": "DescribeExport"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(dynamodbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_DYNAMODB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_ebs_snapshot.go b/aws/table_aws_ebs_snapshot.go index 3712cc2c0..d4d642bf4 100644 --- a/aws/table_aws_ebs_snapshot.go +++ b/aws/table_aws_ebs_snapshot.go @@ -2,13 +2,12 @@ package aws import ( "context" + "fmt" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -66,7 +65,7 @@ func tableAwsEBSSnapshot(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getAwsEBSSnapshotCreateVolumePermissions, @@ -101,6 +100,11 @@ func tableAwsEBSSnapshot(_ context.Context) *plugin.Table { Description: "The ID of the volume that was used to create the snapshot. Snapshots created by the CopySnapshot action have an arbitrary volume ID that should not be used for any purpose.", Type: proto.ColumnType_STRING, }, + { + Name: "full_snapshot_size_in_bytes", + Description: "The full size of the snapshot, in bytes.", + Type: proto.ColumnType_INT, + }, { Name: "encrypted", Description: "Indicates whether the snapshot is encrypted.", @@ -340,7 +344,6 @@ func buildEbsSnapshotFilter(ctx context.Context, d *plugin.QueryData, h *plugin. filterQuals := map[string]string{ "description": "description", - "encrypted": "encrypted", "owner_alias": "owner-alias", "snapshot_id": "snapshot-id", "state": "status", @@ -349,6 +352,13 @@ func buildEbsSnapshotFilter(ctx context.Context, d *plugin.QueryData, h *plugin. "volume_size": "volume-size", } + if equalQuals["encrypted"] != nil { + filters = append(filters, types.Filter{ + Name: aws.String("encrypted"), + Values: []string{fmt.Sprint(equalQuals["encrypted"].GetBoolValue())}, + }) + } + for columnName, filterName := range filterQuals { if equalQuals[columnName] != nil { filter := types.Filter{ diff --git a/aws/table_aws_ebs_volume.go b/aws/table_aws_ebs_volume.go index 87085f1c5..24b6666e9 100644 --- a/aws/table_aws_ebs_volume.go +++ b/aws/table_aws_ebs_volume.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -55,7 +53,7 @@ func tableAwsEBSVolume(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ec2", "action": "DescribeVolumeAttribute"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "volume_id", diff --git a/aws/table_aws_ec2_ami.go b/aws/table_aws_ec2_ami.go index 983b4ab76..49f3be710 100644 --- a/aws/table_aws_ec2_ami.go +++ b/aws/table_aws_ec2_ami.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - go_kit_pack "github.com/turbot/go-kit/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -53,7 +51,7 @@ func tableAwsEc2Ami(_ context.Context) *plugin.Table { {Name: "virtualization_type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_ami_shared.go b/aws/table_aws_ec2_ami_shared.go index 338963eaf..398af6513 100644 --- a/aws/table_aws_ec2_ami_shared.go +++ b/aws/table_aws_ec2_ami_shared.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - go_kit_pack "github.com/turbot/go-kit/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -54,7 +52,7 @@ func tableAwsEc2AmiShared(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAMIID.NotFound", "InvalidAMIID.Unavailable", "InvalidAMIID.Malformed"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -261,7 +259,6 @@ func listAmisByOwner(ctx context.Context, d *plugin.QueryData, h *plugin.Hydrate image_ids := d.EqualsQuals["image_ids"].GetJsonbValue() owner_ids := d.EqualsQuals["owner_ids"].GetJsonbValue() - // check if owner_id and image_id is empty if owner_id == "" && image_id == "" && image_ids == "" { return nil, errors.New("please provide either owner_id, image_id or image_ids") diff --git a/aws/table_aws_ec2_application_load_balancer.go b/aws/table_aws_ec2_application_load_balancer.go index 019f227fc..8dd0255ac 100644 --- a/aws/table_aws_ec2_application_load_balancer.go +++ b/aws/table_aws_ec2_application_load_balancer.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -54,7 +52,7 @@ func tableAwsEc2ApplicationLoadBalancer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_autoscaling_group.go b/aws/table_aws_ec2_autoscaling_group.go index ac1a30ddc..8eea491e0 100644 --- a/aws/table_aws_ec2_autoscaling_group.go +++ b/aws/table_aws_ec2_autoscaling_group.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/autoscaling" "github.com/aws/aws-sdk-go-v2/service/autoscaling/types" - autoscalingv1 "github.com/aws/aws-sdk-go/service/autoscaling" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsEc2ASG(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "autoscaling", "action": "DescribePolicies"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(autoscalingv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_AUTOSCALING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_capacity_reservation.go b/aws/table_aws_ec2_capacity_reservation.go index 5bb104591..cd2d39ec2 100644 --- a/aws/table_aws_ec2_capacity_reservation.go +++ b/aws/table_aws_ec2_capacity_reservation.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -45,7 +43,7 @@ func tableAwsEc2CapacityReservation(_ context.Context) *plugin.Table { {Name: "instance_match_criteria", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "capacity_reservation_id", diff --git a/aws/table_aws_ec2_classic_load_balancer.go b/aws/table_aws_ec2_classic_load_balancer.go index 055047b1b..e3a4f1ed5 100644 --- a/aws/table_aws_ec2_classic_load_balancer.go +++ b/aws/table_aws_ec2_classic_load_balancer.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing/types" - elbv1 "github.com/aws/aws-sdk-go/service/elb" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,8 +39,12 @@ func tableAwsEc2ClassicLoadBalancer(_ context.Context) *plugin.Table { Func: getAwsEc2ClassicLoadBalancerTags, Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTags"}, }, + { + Func: getAwsEc2ClassicLoadBalancerPolicies, + Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeLoadBalancerPolicies"}, + }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -238,6 +240,20 @@ func tableAwsEc2ClassicLoadBalancer(_ context.Context) *plugin.Table { Description: "A list of the security groups for the load balancer.", Type: proto.ColumnType_JSON, }, + { + Name: "sample_policy_descriptions", + Description: "Information about the all sample (predefined) policies.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsEc2ClassicLoadBalancerPolicies, + Transform: transform.FromField("SamplePolicyDescriptions"), + }, + { + Name: "policy_descriptions", + Description: "Information about the policies associated with the load balancers.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsEc2ClassicLoadBalancerPolicies, + Transform: transform.FromField("PolicyDescriptionsAssociatedWithLoadBalancer"), + }, { Name: "subnets", Description: "A list of the IDs of the subnets for the load balancer.", @@ -384,6 +400,42 @@ func getAwsEc2ClassicLoadBalancerAttributes(ctx context.Context, d *plugin.Query return loadBalancerData, nil } +func getAwsEc2ClassicLoadBalancerPolicies(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + classicLoadBalancer := h.Item.(types.LoadBalancerDescription) + + // Create service + svc, err := ELBClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_classic_load_balancer.getAwsEc2ClassicLoadBalancerPolicies", "connection_error", err) + return nil, err + } + + params := &elasticloadbalancing.DescribeLoadBalancerPoliciesInput{} + + policyDescriptions := map[string][]types.PolicyDescription{} + policyDescriptionTypes := []string{"SamplePolicyDescriptions", "PolicyDescriptionsAssociatedWithLoadBalancer"} + + for _, policyDescriptionType := range policyDescriptionTypes { + + if policyDescriptionType == "PolicyDescriptionsAssociatedWithLoadBalancer" { + params.LoadBalancerName = classicLoadBalancer.LoadBalancerName + } else { + params = &elasticloadbalancing.DescribeLoadBalancerPoliciesInput{} + } + loadBalancerData, err := svc.DescribeLoadBalancerPolicies(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_classic_load_balancer.getAwsEc2ClassicLoadBalancerPolicies", "api_error", err) + return nil, err + } + if len(loadBalancerData.PolicyDescriptions) > 0 { + policyDescriptions[policyDescriptionType] = loadBalancerData.PolicyDescriptions + } + } + + return policyDescriptions, nil +} + func getAwsEc2ClassicLoadBalancerTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { classicLoadBalancer := h.Item.(types.LoadBalancerDescription) diff --git a/aws/table_aws_ec2_client_vpn_endpoint.go b/aws/table_aws_ec2_client_vpn_endpoint.go index 7c5030ef5..2eebad37c 100644 --- a/aws/table_aws_ec2_client_vpn_endpoint.go +++ b/aws/table_aws_ec2_client_vpn_endpoint.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -20,10 +18,17 @@ func tableAwsEC2ClientVPNEndpoint(_ context.Context) *plugin.Table { return &plugin.Table{ Name: "aws_ec2_client_vpn_endpoint", Description: "AWS EC2 Client VPN Endpoint", + // AWS EC2 Client VPN is not supported in all regions, even though the EC2 service itself is available. + // + // Observed unsupported region error: + // + // - In regions where **Client VPN is not supported**, the following error is returned when calling `DescribeClientVpnEndpoints`: + // Error: aws: operation error EC2: DescribeClientVpnEndpoints, https response error StatusCode: 400, RequestID: a93b1ba5-1389-4824-9db4-ab95c53324ef + // api error InvalidAction: The action DescribeClientVpnEndpoints is not valid for this web service. (SQLSTATE HV000) Get: &plugin.GetConfig{ KeyColumns: plugin.SingleColumn("client_vpn_endpoint_id"), IgnoreConfig: &plugin.IgnoreConfig{ - ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationError", "InvalidQueryParameter", "InvalidParameterValue", "InvalidClientVpnEndpointId.NotFound"}), + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction", "ValidationError", "InvalidQueryParameter", "InvalidParameterValue", "InvalidClientVpnEndpointId.NotFound"}), }, Hydrate: getEC2ClientVPNEndpoint, Tags: map[string]string{"service": "ec2", "action": "DescribeClientVpnEndpoints"}, @@ -31,11 +36,14 @@ func tableAwsEC2ClientVPNEndpoint(_ context.Context) *plugin.Table { List: &plugin.ListConfig{ Hydrate: listEC2ClientVPNEndpoints, Tags: map[string]string{"service": "ec2", "action": "DescribeClientVpnEndpoints"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction"}), + }, KeyColumns: []*plugin.KeyColumn{ {Name: "transport_protocol", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "client_vpn_endpoint_id", diff --git a/aws/table_aws_ec2_fleet.go b/aws/table_aws_ec2_fleet.go new file mode 100644 index 000000000..05017cd3b --- /dev/null +++ b/aws/table_aws_ec2_fleet.go @@ -0,0 +1,351 @@ +package aws + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/ec2" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsEc2Fleet(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ec2_fleet", + Description: "AWS EC2 Fleet", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("fleet_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidFleetId.NotFound", "InvalidFleetId.Malformed"}), + }, + Hydrate: getEc2Fleet, + Tags: map[string]string{"service": "ec2", "action": "DescribeFleets"}, + }, + List: &plugin.ListConfig{ + Hydrate: listEc2Fleets, + Tags: map[string]string{"service": "ec2", "action": "DescribeFleets"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "fleet_state", Require: plugin.Optional}, + {Name: "activity_status", Require: plugin.Optional}, + {Name: "type", Require: plugin.Optional}, + {Name: "excess_capacity_termination_policy", Require: plugin.Optional}, + {Name: "replace_unhealthy_instances", Require: plugin.Optional, Operators: []string{"=", "<>"}}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "fleet_id", + Description: "The ID of the EC2 Fleet.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the EC2 Fleet.", + Type: proto.ColumnType_STRING, + Hydrate: getEc2FleetARN, + Transform: transform.FromValue(), + }, + { + Name: "fleet_state", + Description: "The state of the EC2 Fleet.", + Type: proto.ColumnType_STRING, + }, + { + Name: "activity_status", + Description: "The progress of the EC2 Fleet.", + Type: proto.ColumnType_STRING, + }, + { + Name: "create_time", + Description: "The creation date and time of the EC2 Fleet.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "type", + Description: "The type of request. Indicates whether the EC2 Fleet only requests the target capacity or also attempts to maintain it.", + Type: proto.ColumnType_STRING, + }, + { + Name: "client_token", + Description: "Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.", + Type: proto.ColumnType_STRING, + }, + { + Name: "context", + Description: "Reserved.", + Type: proto.ColumnType_STRING, + }, + { + Name: "excess_capacity_termination_policy", + Description: "Indicates whether running instances should be terminated if the target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.", + Type: proto.ColumnType_STRING, + }, + { + Name: "fulfilled_capacity", + Description: "The number of units fulfilled by this request compared to the set target capacity.", + Type: proto.ColumnType_DOUBLE, + }, + { + Name: "fulfilled_on_demand_capacity", + Description: "The number of units fulfilled by this request compared to the set target On-Demand capacity.", + Type: proto.ColumnType_DOUBLE, + }, + { + Name: "replace_unhealthy_instances", + Description: "Indicates whether EC2 Fleet should replace unhealthy Spot Instances.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "terminate_instances_with_expiration", + Description: "Indicates whether running instances should be terminated when the EC2 Fleet expires.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "valid_from", + Description: "The start date and time of the request.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "valid_until", + Description: "The end date and time of the request.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "target_capacity_specification", + Description: "The number of units to request. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload.", + Type: proto.ColumnType_JSON, + }, + { + Name: "spot_options", + Description: "The configuration of Spot Instances in an EC2 Fleet.", + Type: proto.ColumnType_JSON, + }, + { + Name: "on_demand_options", + Description: "The allocation strategy of On-Demand Instances in an EC2 Fleet.", + Type: proto.ColumnType_JSON, + }, + { + Name: "launch_template_configs", + Description: "The launch template and overrides.", + Type: proto.ColumnType_JSON, + }, + { + Name: "instances", + Description: "Information about the instances that were launched by the fleet.", + Type: proto.ColumnType_JSON, + }, + { + Name: "errors", + Description: "Information about the instances that could not be launched by the fleet.", + Type: proto.ColumnType_JSON, + }, + { + Name: "tags_src", + Description: "A list of tags assigned to the EC2 Fleet.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Tags"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("FleetId"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Tags").Transform(ec2FleetTagsToTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getEc2FleetARN, + Transform: transform.FromValue().Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listEc2Fleets(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create session + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_fleet.listEc2Fleets", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &ec2.DescribeFleetsInput{ + MaxResults: aws.Int32(maxLimit), + } + + // Build filters + filters := buildEc2FleetFilter(d.Quals) + if len(filters) > 0 { + input.Filters = filters + } + + paginator := ec2.NewDescribeFleetsPaginator(svc, input, func(o *ec2.DescribeFleetsPaginatorOptions) { + o.Limit = maxLimit + }) + + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_fleet.listEc2Fleets", "api_error", err) + return nil, err + } + + for _, fleet := range output.Fleets { + d.StreamListItem(ctx, fleet) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getEc2Fleet(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + fleetId := d.EqualsQualString("fleet_id") + + // Empty check + if fleetId == "" { + return nil, nil + } + + // Create session + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_fleet.getEc2Fleet", "connection_error", err) + return nil, err + } + + params := &ec2.DescribeFleetsInput{ + FleetIds: []string{fleetId}, + } + + op, err := svc.DescribeFleets(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_fleet.getEc2Fleet", "api_error", err) + return nil, err + } + + if len(op.Fleets) > 0 { + return op.Fleets[0], nil + } + + return nil, nil +} + +func getEc2FleetARN(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := d.EqualsQualString(matrixKeyRegion) + fleet := h.Item.(types.FleetData) + + commonData, err := getCommonColumns(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_fleet.getEc2FleetARN", "common_data_error", err) + return nil, err + } + commonColumnData := commonData.(*awsCommonColumnData) + + // Build ARN + // arn:${Partition}:ec2:${Region}:${Account}:fleet/${FleetId} + // https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-fleet + arn := "arn:" + commonColumnData.Partition + ":ec2:" + region + ":" + commonColumnData.AccountId + ":fleet/" + *fleet.FleetId + + return arn, nil +} + +//// TRANSFORM FUNCTIONS + +func ec2FleetTagsToTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { + fleet := d.HydrateItem.(types.FleetData) + + if fleet.Tags == nil { + return nil, nil + } + + turbotTags := make(map[string]string) + for _, tag := range fleet.Tags { + if tag.Key != nil && tag.Value != nil { + turbotTags[*tag.Key] = *tag.Value + } + } + return turbotTags, nil +} + +//// UTILITY FUNCTIONS + +func buildEc2FleetFilter(quals plugin.KeyColumnQualMap) []types.Filter { + filters := make([]types.Filter, 0) + + filterQuals := map[string]string{ + "fleet_state": "fleet-state", + "activity_status": "activity-status", + "type": "type", + "excess_capacity_termination_policy": "excess-capacity-termination-policy", + } + + for columnName, filterName := range filterQuals { + if quals[columnName] != nil { + filter := types.Filter{ + Name: aws.String(filterName), + } + for _, q := range quals[columnName].Quals { + value := q.Value.GetStringValue() + if value != "" { + filter.Values = append(filter.Values, value) + } + } + if len(filter.Values) > 0 { + filters = append(filters, filter) + } + } + } + + // Handle boolean filter for replace_unhealthy_instances + if quals["replace_unhealthy_instances"] != nil { + for _, q := range quals["replace_unhealthy_instances"].Quals { + value := q.Value.GetBoolValue() + // Respect the "<>" (not equal) operator by inverting the boolean value + if q.Operator == "<>" { + value = !value + } + filter := types.Filter{ + Name: aws.String("replace-unhealthy-instances"), + Values: []string{fmt.Sprintf("%t", value)}, + } + filters = append(filters, filter) + } + } + + return filters +} diff --git a/aws/table_aws_ec2_gateway_load_balancer.go b/aws/table_aws_ec2_gateway_load_balancer.go index 479607db2..991858b8a 100644 --- a/aws/table_aws_ec2_gateway_load_balancer.go +++ b/aws/table_aws_ec2_gateway_load_balancer.go @@ -6,8 +6,6 @@ import ( elbv2 "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,7 +45,7 @@ func tableAwsEc2GatewayLoadBalancer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_instance.go b/aws/table_aws_ec2_instance.go index 9e41a2609..3d955211f 100644 --- a/aws/table_aws_ec2_instance.go +++ b/aws/table_aws_ec2_instance.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -89,7 +87,7 @@ func tableAwsEc2Instance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ec2", "action": "DescribeInstanceStatus"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "instance_id", diff --git a/aws/table_aws_ec2_instance_type.go b/aws/table_aws_ec2_instance_type.go index 25d1d78e3..4783be16f 100644 --- a/aws/table_aws_ec2_instance_type.go +++ b/aws/table_aws_ec2_instance_type.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsInstanceType(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "ec2", "action": "DescribeInstanceTypeOfferings"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "instance_type", diff --git a/aws/table_aws_ec2_key_pair.go b/aws/table_aws_ec2_key_pair.go index 320bafa43..4bc406a56 100644 --- a/aws/table_aws_ec2_key_pair.go +++ b/aws/table_aws_ec2_key_pair.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsEc2KeyPair(_ context.Context) *plugin.Table { {Name: "key_fingerprint", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "key_name", diff --git a/aws/table_aws_ec2_launch_configuration.go b/aws/table_aws_ec2_launch_configuration.go index d7684adf9..f9cd7b8e9 100644 --- a/aws/table_aws_ec2_launch_configuration.go +++ b/aws/table_aws_ec2_launch_configuration.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/autoscaling" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsEc2LaunchConfiguration(_ context.Context) *plugin.Table { Hydrate: listAwsEc2LaunchConfigurations, Tags: map[string]string{"service": "autoscaling", "action": "DescribeLaunchConfigurations"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_launch_template.go b/aws/table_aws_ec2_launch_template.go index d701f83df..77a368f62 100644 --- a/aws/table_aws_ec2_launch_template.go +++ b/aws/table_aws_ec2_launch_template.go @@ -7,7 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -38,7 +37,7 @@ func tableAwsEc2LaunchTemplate(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "launch_template_name", diff --git a/aws/table_aws_ec2_launch_template_version.go b/aws/table_aws_ec2_launch_template_version.go index 87b572ba4..3326b9a0b 100644 --- a/aws/table_aws_ec2_launch_template_version.go +++ b/aws/table_aws_ec2_launch_template_version.go @@ -7,7 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -70,7 +69,7 @@ func tableAwsEc2LaunchTemplateVersion(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "launch_template_name", @@ -225,7 +224,7 @@ func listEc2LaunchTemplateVersions(ctx context.Context, d *plugin.QueryData, h * } if launchTemplateName != "" && launchTemplateId != "" { - return nil, fmt.Errorf("Both LaunchtemplateName and LaunchTemplateId cannot be passed in the where clause") + return nil, fmt.Errorf("both 'LaunchtemplateName' and 'LaunchTemplateId' cannot be passed in the where clause") } // The aws_ec2_launch_template table is used as the parent hydrate because the LaunchTemplateId is not specified in the input parameter, and it will return only the latest and default version launch templates. diff --git a/aws/table_aws_ec2_load_balancer_listener.go b/aws/table_aws_ec2_load_balancer_listener.go index 6126ee5fa..643394404 100644 --- a/aws/table_aws_ec2_load_balancer_listener.go +++ b/aws/table_aws_ec2_load_balancer_listener.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,9 +33,9 @@ func tableAwsEc2ApplicationLoadBalancerListener(_ context.Context) *plugin.Table KeyColumns: plugin.KeyColumnSlice{ {Name: "load_balancer_arn", Require: plugin.Optional}, }, - Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeLoadBalancers"}, + Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeLoadBalancers"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_ec2_load_balancer_listener_rule.go b/aws/table_aws_ec2_load_balancer_listener_rule.go index b1b946af5..4c9a39343 100644 --- a/aws/table_aws_ec2_load_balancer_listener_rule.go +++ b/aws/table_aws_ec2_load_balancer_listener_rule.go @@ -6,8 +6,7 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" - - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" + "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -35,7 +34,13 @@ func tableAwsEc2ApplicationLoadBalancerListenerRule(_ context.Context) *plugin.T }, Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeRules"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getEc2LoadBalancerListenerRuleTags, + Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTags"}, + }, + }, Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", @@ -69,6 +74,20 @@ func tableAwsEc2ApplicationLoadBalancerListenerRule(_ context.Context) *plugin.T Description: "The conditions. Each rule can include zero or one of the following conditions: http-request-method , host-header , path-pattern , and source-ip , and zero or more of the following conditions: http-header and query-string.", Type: proto.ColumnType_JSON, }, + { + Name: "tags_src", + Description: "A list of tags assigned to the rule.", + Type: proto.ColumnType_JSON, + Hydrate: getEc2LoadBalancerListenerRuleTags, + Transform: transform.FromValue(), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getEc2LoadBalancerListenerRuleTags, + Transform: transform.From(getEc2LoadBalancerListenerRuleTurbotTags), + }, }), } } @@ -139,3 +158,52 @@ func listEc2LoadBalancerListenerRules(ctx context.Context, d *plugin.QueryData, return nil, err } + +//// HYDRATE FUNCTIONS + +func getEc2LoadBalancerListenerRuleTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + rule := h.Item.(types.Rule) + + // Create service + svc, err := ELBV2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_load_balancer_listener_rule.getEc2LoadBalancerListenerRuleTags", "connection_error", err) + return nil, err + } + + params := &elasticloadbalancingv2.DescribeTagsInput{ + ResourceArns: []string{*rule.RuleArn}, + } + + ruleData, err := svc.DescribeTags(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_load_balancer_listener_rule.getEc2LoadBalancerListenerRuleTags", "api_error", err) + return nil, err + } + + var tags []types.Tag + if len(ruleData.TagDescriptions) > 0 { + for _, tagDescription := range ruleData.TagDescriptions { + if tagDescription.ResourceArn != nil && *tagDescription.ResourceArn == *rule.RuleArn { + tags = append(tags, tagDescription.Tags...) + } + } + } + + return tags, nil +} + +//// TRANSFORM FUNCTIONS + +func getEc2LoadBalancerListenerRuleTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + ruleTags := d.HydrateItem.([]types.Tag) + + if ruleTags != nil { + turbotTagsMap := map[string]string{} + for _, i := range ruleTags { + turbotTagsMap[*i.Key] = *i.Value + } + return turbotTagsMap, nil + } + return nil, nil +} diff --git a/aws/table_aws_ec2_managed_prefix_list.go b/aws/table_aws_ec2_managed_prefix_list.go index fdb9a1e92..665a1e67e 100644 --- a/aws/table_aws_ec2_managed_prefix_list.go +++ b/aws/table_aws_ec2_managed_prefix_list.go @@ -7,8 +7,6 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" @@ -33,7 +31,7 @@ func tableAwsEc2ManagedPrefixList(_ context.Context) *plugin.Table { {Name: "owner_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_managed_prefix_list_entry.go b/aws/table_aws_ec2_managed_prefix_list_entry.go index 6a4b75ab8..49c96cbef 100644 --- a/aws/table_aws_ec2_managed_prefix_list_entry.go +++ b/aws/table_aws_ec2_managed_prefix_list_entry.go @@ -7,8 +7,6 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" @@ -32,7 +30,7 @@ func tableAwsEc2ManagedPrefixListEntry(_ context.Context) *plugin.Table { {Name: "prefix_list_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "prefix_list_id", diff --git a/aws/table_aws_ec2_network_interface.go b/aws/table_aws_ec2_network_interface.go index b8f505e2b..ff4b062ed 100644 --- a/aws/table_aws_ec2_network_interface.go +++ b/aws/table_aws_ec2_network_interface.go @@ -9,8 +9,6 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" @@ -57,7 +55,7 @@ func tableAwsEc2NetworkInterface(_ context.Context) *plugin.Table { {Name: "status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "network_interface_id", diff --git a/aws/table_aws_ec2_network_load_balancer.go b/aws/table_aws_ec2_network_load_balancer.go index 98ed21032..77f0f35d8 100644 --- a/aws/table_aws_ec2_network_load_balancer.go +++ b/aws/table_aws_ec2_network_load_balancer.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -51,7 +49,7 @@ func tableAwsEc2NetworkLoadBalancer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_placement_group.go b/aws/table_aws_ec2_placement_group.go new file mode 100644 index 000000000..2b49d4492 --- /dev/null +++ b/aws/table_aws_ec2_placement_group.go @@ -0,0 +1,204 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/ec2" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsEc2PlacementGroup(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ec2_placement_group", + Description: "AWS EC2 Placement Group", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AnyColumn([]string{"group_id", "group_name"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidPlacementGroup.Unknown"}), + }, + Hydrate: getEc2PlacementGroup, + Tags: map[string]string{"service": "ec2", "action": "DescribePlacementGroups"}, + }, + List: &plugin.ListConfig{ + Hydrate: listEc2PlacementGroups, + Tags: map[string]string{"service": "ec2", "action": "DescribePlacementGroups"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "spread_level", Require: plugin.Optional}, + {Name: "state", Require: plugin.Optional}, + {Name: "strategy", Require: plugin.Optional}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "arn", + Description: "The ARN of the placement group.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("GroupArn"), + }, + { + Name: "group_id", + Description: "The ID of the placement group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "group_name", + Description: "The name of the placement group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "partition_count", + Description: "The number of partitions (for partition strategy).", + Type: proto.ColumnType_INT, + }, + { + Name: "spread_level", + Description: "The spread level for the placement group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "state", + Description: "The state of the placement group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "strategy", + Description: "The placement strategy.", + Type: proto.ColumnType_STRING, + }, + { + Name: "tags_src", + Description: "A list of tags assigned to the placement group.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Tags"), + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("GroupName"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Transform: transform.From(getEc2PlacementGroupTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("GroupArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listEc2PlacementGroups(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_placement_group.listEc2PlacementGroups", "connection_error", err) + return nil, err + } + input := &ec2.DescribePlacementGroupsInput{} + + filters := buildEc2PlacementGroupFilter(d.Quals) + if len(filters) > 0 { + input.Filters = filters + } + + // Pagination does not support + resp, err := svc.DescribePlacementGroups(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_placement_group.listEc2PlacementGroups", "api_error", err) + return nil, err + } + for _, group := range resp.PlacementGroups { + d.StreamListItem(ctx, group) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + return nil, nil +} + +//// HYDRATE FUNCTION + +func getEc2PlacementGroup(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + var input *ec2.DescribePlacementGroupsInput + if d.EqualsQuals["group_id"] != nil && d.EqualsQuals["group_id"].GetStringValue() != "" { + input = &ec2.DescribePlacementGroupsInput{ + GroupIds: []string{d.EqualsQuals["group_id"].GetStringValue()}, + } + } else if d.EqualsQuals["group_name"] != nil && d.EqualsQuals["group_name"].GetStringValue() != "" { + input = &ec2.DescribePlacementGroupsInput{ + GroupNames: []string{d.EqualsQuals["group_name"].GetStringValue()}, + } + } else { + return nil, nil + } + + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_placement_group.getEc2PlacementGroup", "connection_error", err) + return nil, err + } + + op, err := svc.DescribePlacementGroups(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_placement_group.getEc2PlacementGroup", "api_error", err) + return nil, err + } + if len(op.PlacementGroups) > 0 { + return op.PlacementGroups[0], nil + } + return nil, nil +} + +//// TRANSFORM FUNCTION + +func getEc2PlacementGroupTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + group := d.HydrateItem.(types.PlacementGroup) + if group.Tags == nil { + return nil, nil + } + turbotTagsMap := map[string]string{} + for _, i := range group.Tags { + if i.Key != nil && i.Value != nil { + turbotTagsMap[*i.Key] = *i.Value + } + } + return &turbotTagsMap, nil +} + +// Build input parameter for list function +func buildEc2PlacementGroupFilter(quals plugin.KeyColumnQualMap) []types.Filter { + filters := []types.Filter{} + filterQuals := map[string]string{ + "spread_level": "spread-level", + "state": "state", + "strategy": "strategy", + } + for columnName, filterName := range filterQuals { + if quals[columnName] != nil { + value := getQualsValueByColumn(quals, columnName, "string") + if val, ok := value.(string); ok && val != "" { + filters = append(filters, types.Filter{ + Name: aws.String(filterName), + Values: []string{val}, + }) + } + } + } + return filters +} diff --git a/aws/table_aws_ec2_regional_settings.go b/aws/table_aws_ec2_regional_settings.go index 3cc492a1b..809664afc 100644 --- a/aws/table_aws_ec2_regional_settings.go +++ b/aws/table_aws_ec2_regional_settings.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -39,7 +37,7 @@ func tableAwsEc2RegionalSettings(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ec2", "action": "GetSnapshotBlockPublicAccessState"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "default_ebs_encryption_enabled", diff --git a/aws/table_aws_ec2_reserved_instance.go b/aws/table_aws_ec2_reserved_instance.go index 3ba787cf2..4140d2d71 100644 --- a/aws/table_aws_ec2_reserved_instance.go +++ b/aws/table_aws_ec2_reserved_instance.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -54,7 +52,7 @@ func tableAwsEc2ReservedInstance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ec2", "action": "DescribeReservedInstancesModifications"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "reserved_instance_id", diff --git a/aws/table_aws_ec2_spot_fleet_request.go b/aws/table_aws_ec2_spot_fleet_request.go new file mode 100644 index 000000000..cf860ed75 --- /dev/null +++ b/aws/table_aws_ec2_spot_fleet_request.go @@ -0,0 +1,347 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/ec2" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsEc2SpotFleetRequest(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ec2_spot_fleet_request", + Description: "AWS EC2 Spot Fleet Request", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("spot_fleet_request_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidSpotFleetRequestId.NotFound", "InvalidParameterValue"}), + }, + Hydrate: getEc2SpotFleetRequest, + Tags: map[string]string{"service": "ec2", "action": "DescribeSpotFleetRequests"}, + }, + List: &plugin.ListConfig{ + Hydrate: listEc2SpotFleetRequests, + Tags: map[string]string{"service": "ec2", "action": "DescribeSpotFleetRequests"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "spot_fleet_request_id", + Description: "The ID of the Spot Fleet request.", + Type: proto.ColumnType_STRING, + }, + { + Name: "spot_fleet_request_state", + Description: "The state of the Spot Fleet request.", + Type: proto.ColumnType_STRING, + }, + { + Name: "activity_status", + Description: "The progress of the Spot Fleet request.", + Type: proto.ColumnType_STRING, + }, + { + Name: "create_time", + Description: "The creation date and time of the request.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "type", + Description: "The type of request. Indicates whether the Spot Fleet only requests the target capacity or also attempts to maintain it.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.Type"), + }, + { + Name: "target_capacity", + Description: "The number of units to request for the Spot Fleet.", + Type: proto.ColumnType_INT, + Transform: transform.FromField("SpotFleetRequestConfig.TargetCapacity"), + }, + { + Name: "target_capacity_unit_type", + Description: "The unit for the target capacity.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.TargetCapacityUnitType"), + }, + { + Name: "allocation_strategy", + Description: "The strategy that determines how to allocate the target Spot Instance capacity across the Spot Instance pools.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.AllocationStrategy"), + }, + { + Name: "iam_fleet_role", + Description: "The Amazon Resource Name (ARN) of an IAM role that grants the Spot Fleet the permission to request, launch, terminate, and tag instances on your behalf.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.IamFleetRole"), + }, + { + Name: "spot_price", + Description: "The maximum price per unit hour that you are willing to pay for a Spot Instance.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.SpotPrice"), + }, + { + Name: "spot_max_total_price", + Description: "The maximum amount per hour for Spot Instances that you're willing to pay.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.SpotMaxTotalPrice"), + }, + { + Name: "on_demand_target_capacity", + Description: "The number of On-Demand units to request.", + Type: proto.ColumnType_INT, + Transform: transform.FromField("SpotFleetRequestConfig.OnDemandTargetCapacity"), + }, + { + Name: "on_demand_allocation_strategy", + Description: "The order of the launch template overrides to use in fulfilling On-Demand capacity.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.OnDemandAllocationStrategy"), + }, + { + Name: "on_demand_max_total_price", + Description: "The maximum amount per hour for On-Demand Instances that you're willing to pay.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.OnDemandMaxTotalPrice"), + }, + { + Name: "fulfilled_capacity", + Description: "The number of units fulfilled by this request compared to the set target capacity.", + Type: proto.ColumnType_DOUBLE, + Transform: transform.FromField("SpotFleetRequestConfig.FulfilledCapacity"), + }, + { + Name: "on_demand_fulfilled_capacity", + Description: "The number of On-Demand units fulfilled by this request compared to the set target On-Demand capacity.", + Type: proto.ColumnType_DOUBLE, + Transform: transform.FromField("SpotFleetRequestConfig.OnDemandFulfilledCapacity"), + }, + { + Name: "excess_capacity_termination_policy", + Description: "Indicates whether running instances should be terminated if you decrease the target capacity of the Spot Fleet request below the current size of the Spot Fleet.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.ExcessCapacityTerminationPolicy"), + }, + { + Name: "instance_interruption_behavior", + Description: "The behavior when a Spot Instance is interrupted.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.InstanceInterruptionBehavior"), + }, + { + Name: "instance_pools_to_use_count", + Description: "The number of Spot pools across which to allocate your target Spot capacity.", + Type: proto.ColumnType_INT, + Transform: transform.FromField("SpotFleetRequestConfig.InstancePoolsToUseCount"), + }, + { + Name: "replace_unhealthy_instances", + Description: "Indicates whether Spot Fleet should replace unhealthy instances.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("SpotFleetRequestConfig.ReplaceUnhealthyInstances"), + }, + { + Name: "terminate_instances_with_expiration", + Description: "Indicates whether running Spot Instances are terminated when the Spot Fleet request expires.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("SpotFleetRequestConfig.TerminateInstancesWithExpiration"), + }, + { + Name: "valid_from", + Description: "The start date and time of the request, in UTC format.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("SpotFleetRequestConfig.ValidFrom"), + }, + { + Name: "valid_until", + Description: "The end date and time of the request, in UTC format.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("SpotFleetRequestConfig.ValidUntil"), + }, + { + Name: "client_token", + Description: "A unique, case-sensitive identifier that you provide to ensure the idempotency of your listings.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.ClientToken"), + }, + { + Name: "context", + Description: "Reserved.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestConfig.Context"), + }, + { + Name: "launch_specifications", + Description: "The launch specifications for the Spot Fleet request.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SpotFleetRequestConfig.LaunchSpecifications"), + }, + { + Name: "launch_template_configs", + Description: "The launch template and overrides.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SpotFleetRequestConfig.LaunchTemplateConfigs"), + }, + { + Name: "load_balancers_config", + Description: "One or more Classic Load Balancers and target groups to attach to the Spot Fleet request.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SpotFleetRequestConfig.LoadBalancersConfig"), + }, + { + Name: "spot_maintenance_strategies", + Description: "The strategies for managing your Spot Instances that are at an elevated risk of being interrupted.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SpotFleetRequestConfig.SpotMaintenanceStrategies"), + }, + { + Name: "tag_specifications", + Description: "The key-value pair for tagging the Spot Fleet request on creation.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SpotFleetRequestConfig.TagSpecifications"), + }, + { + Name: "tags_src", + Description: "A list of tags assigned to the spot fleet request.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Tags"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SpotFleetRequestId"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Tags").Transform(getEc2SpotFleetRequestTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getEc2SpotFleetRequestARN, + Transform: transform.FromValue().Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listEc2SpotFleetRequests(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create session + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_spot_fleet_request.listEc2SpotFleetRequests", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &ec2.DescribeSpotFleetRequestsInput{ + MaxResults: &maxLimit, + } + + paginator := ec2.NewDescribeSpotFleetRequestsPaginator(svc, input, func(o *ec2.DescribeSpotFleetRequestsPaginatorOptions) { + o.Limit = maxLimit + }) + + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_spot_fleet_request.listEc2SpotFleetRequests", "api_error", err) + return nil, err + } + + for _, spotFleetRequest := range output.SpotFleetRequestConfigs { + d.StreamListItem(ctx, spotFleetRequest) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getEc2SpotFleetRequest(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + spotFleetRequestId := d.EqualsQualString("spot_fleet_request_id") + + // Create session + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_spot_fleet_request.getEc2SpotFleetRequest", "connection_error", err) + return nil, err + } + + params := &ec2.DescribeSpotFleetRequestsInput{ + SpotFleetRequestIds: []string{spotFleetRequestId}, + } + + op, err := svc.DescribeSpotFleetRequests(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_spot_fleet_request.getEc2SpotFleetRequest", "api_error", err) + return nil, err + } + + if len(op.SpotFleetRequestConfigs) > 0 { + return op.SpotFleetRequestConfigs[0], nil + } + + return nil, nil +} + +func getEc2SpotFleetRequestARN(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := d.EqualsQualString(matrixKeyRegion) + spotFleetRequest := h.Item.(types.SpotFleetRequestConfig) + + commonData, err := getCommonColumns(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_spot_fleet_request.getEc2SpotFleetRequestARN", "common_data_error", err) + return nil, err + } + commonColumnData := commonData.(*awsCommonColumnData) + + // Build ARN + // arn:${Partition}:ec2:${Region}:${Account}:spot-fleet-request/${SpotFleetRequestId} + // https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-spot-fleet-request + arn := "arn:" + commonColumnData.Partition + ":ec2:" + region + ":" + commonColumnData.AccountId + ":spot-fleet-request/" + *spotFleetRequest.SpotFleetRequestId + + return arn, nil +} + +func getEc2SpotFleetRequestTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { + if d.HydrateItem != nil { + spotFleetRequest := d.HydrateItem.(types.SpotFleetRequestConfig) + turbotTags := make(map[string]string) + for _, tag := range spotFleetRequest.Tags { + turbotTags[*tag.Key] = *tag.Value + } + return turbotTags, nil + } + + return nil, nil +} diff --git a/aws/table_aws_ec2_spot_price.go b/aws/table_aws_ec2_spot_price.go index 6410e5e11..9718d0f13 100644 --- a/aws/table_aws_ec2_spot_price.go +++ b/aws/table_aws_ec2_spot_price.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsEc2SpotPrice(_ context.Context) *plugin.Table { {Name: "end_time", Require: plugin.Optional, CacheMatch: query_cache.CacheMatchExact}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ {Name: "availability_zone", Description: "The Availability Zone.", Type: proto.ColumnType_STRING}, {Name: "instance_type", Description: "The instance type.", Type: proto.ColumnType_STRING}, diff --git a/aws/table_aws_ec2_ssl_policy.go b/aws/table_aws_ec2_ssl_policy.go index 02f2cf833..abe68cf12 100644 --- a/aws/table_aws_ec2_ssl_policy.go +++ b/aws/table_aws_ec2_ssl_policy.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsEc2SslPolicy(_ context.Context) *plugin.Table { Hydrate: listEc2SslPolicies, Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeSSLPolicies"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ec2_target_group.go b/aws/table_aws_ec2_target_group.go index 3ab3eefe1..4802ddc4b 100644 --- a/aws/table_aws_ec2_target_group.go +++ b/aws/table_aws_ec2_target_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2" "github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2/types" - elbv2v1 "github.com/aws/aws-sdk-go/service/elbv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,8 +45,12 @@ func tableAwsEc2TargetGroup(_ context.Context) *plugin.Table { Func: getAwsEc2TargetGroupTags, Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTags"}, }, + { + Func: getAwsEc2TargetGroupAttributes, + Tags: map[string]string{"service": "elasticloadbalancing", "action": "DescribeTargetGroupAttributes"}, + }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elbv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICLOADBALANCING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "target_group_name", @@ -153,6 +155,13 @@ func tableAwsEc2TargetGroup(_ context.Context) *plugin.Table { Type: proto.ColumnType_JSON, Hydrate: getAwsEc2TargetGroupTargetHealthDescription, }, + { + Name: "attributes", + Description: "Target group attributes including deregistration_delay, stickiness settings, load balancing algorithm, etc.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsEc2TargetGroupAttributes, + Transform: transform.FromValue().Transform(targetGroupAttributesToMap), + }, { Name: "tags_src", Description: "A list of tags associated with target group.", @@ -322,6 +331,30 @@ func getAwsEc2TargetGroupTags(ctx context.Context, d *plugin.QueryData, h *plugi return op, nil } +func getAwsEc2TargetGroupAttributes(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + targetGroup := h.Item.(types.TargetGroup) + + // create service + svc, err := ELBV2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_target_group.getAwsEc2TargetGroupAttributes", "connection_error", err) + return nil, err + } + + params := &elasticloadbalancingv2.DescribeTargetGroupAttributesInput{ + TargetGroupArn: targetGroup.TargetGroupArn, + } + + op, err := svc.DescribeTargetGroupAttributes(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_target_group.getAwsEc2TargetGroupAttributes", "api_error", err) + return nil, err + } + + return op, nil +} + //// TRANSFORM FUNCTIONS func targetGroupTagsToTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { @@ -348,3 +381,18 @@ func targetGroupRawTags(_ context.Context, d *transform.TransformData) (interfac } return nil, nil } + +func targetGroupAttributesToMap(_ context.Context, d *transform.TransformData) (interface{}, error) { + data := d.HydrateItem.(*elasticloadbalancingv2.DescribeTargetGroupAttributesOutput) + attributesMap := map[string]string{} + + if data.Attributes != nil { + for _, attr := range data.Attributes { + if attr.Key != nil && attr.Value != nil { + attributesMap[*attr.Key] = *attr.Value + } + } + } + + return attributesMap, nil +} diff --git a/aws/table_aws_ec2_transit_gateway.go b/aws/table_aws_ec2_transit_gateway.go index 7e6ae7907..6eb9d34b1 100644 --- a/aws/table_aws_ec2_transit_gateway.go +++ b/aws/table_aws_ec2_transit_gateway.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -48,7 +46,7 @@ func tableAwsEc2TransitGateway(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "transit_gateway_id", @@ -260,7 +258,7 @@ func getEc2TransitGateway(ctx context.Context, d *plugin.QueryData, _ *plugin.Hy return nil, err } - if len(op.TransitGateways) > 0 { + if len(op.TransitGateways) > 0 { return op.TransitGateways[0], nil } return nil, nil diff --git a/aws/table_aws_ec2_transit_gateway_route.go b/aws/table_aws_ec2_transit_gateway_route.go index 6f1429c7c..4557a1d1f 100644 --- a/aws/table_aws_ec2_transit_gateway_route.go +++ b/aws/table_aws_ec2_transit_gateway_route.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsEc2TransitGatewayRoute(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "transit_gateway_route_table_id", diff --git a/aws/table_aws_ec2_transit_gateway_route_table.go b/aws/table_aws_ec2_transit_gateway_route_table.go index e3bdb50c8..c3c204b3b 100644 --- a/aws/table_aws_ec2_transit_gateway_route_table.go +++ b/aws/table_aws_ec2_transit_gateway_route_table.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsEc2TransitGatewayRouteTable(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "transit_gateway_route_table_id", diff --git a/aws/table_aws_ec2_transit_gateway_vpc_attachment.go b/aws/table_aws_ec2_transit_gateway_vpc_attachment.go index 3ee12f241..746f105a4 100644 --- a/aws/table_aws_ec2_transit_gateway_vpc_attachment.go +++ b/aws/table_aws_ec2_transit_gateway_vpc_attachment.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsEc2TransitGatewayVpcAttachment(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "transit_gateway_attachment_id", @@ -97,6 +95,13 @@ func tableAwsEc2TransitGatewayVpcAttachment(_ context.Context) *plugin.Table { Type: proto.ColumnType_STRING, Transform: transform.FromField("Association.TransitGatewayRouteTableId"), }, + { + Name: "options", + Description: "The options for the VPC attachment.", + Type: proto.ColumnType_JSON, + Hydrate: getEc2TransitGatewayVpcAttachmentOptions, + Transform: transform.FromValue(), + }, { Name: "tags_src", Description: "A list of tags assigned.", @@ -237,6 +242,39 @@ func getAwsEc2TransitGatewayVpcAttachmentAkas(ctx context.Context, d *plugin.Que return akas, nil } +func getEc2TransitGatewayVpcAttachmentOptions(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + transitGatewayAttachment := h.Item.(types.TransitGatewayAttachment) + + // Only fetch options for VPC attachments + if transitGatewayAttachment.ResourceType != types.TransitGatewayAttachmentResourceTypeVpc { + return nil, nil + } + + // Create Session + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_transit_gateway_vpc_attachment.getEc2TransitGatewayVpcAttachmentOptions", "connection_error", err) + return nil, err + } + + // Build params + params := &ec2.DescribeTransitGatewayVpcAttachmentsInput{ + TransitGatewayAttachmentIds: []string{*transitGatewayAttachment.TransitGatewayAttachmentId}, + } + + op, err := svc.DescribeTransitGatewayVpcAttachments(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ec2_transit_gateway_vpc_attachment.getEc2TransitGatewayVpcAttachmentOptions", "api_error", err) + return nil, err + } + + if len(op.TransitGatewayVpcAttachments) > 0 && op.TransitGatewayVpcAttachments[0].Options != nil { + return op.TransitGatewayVpcAttachments[0].Options, nil + } + + return nil, nil +} + //// TRANSFORM FUNCTIONS func transitGatewayAttachmentRawTagsToTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { diff --git a/aws/table_aws_ecr_image.go b/aws/table_aws_ecr_image.go index 2d14497cc..1212f543f 100644 --- a/aws/table_aws_ecr_image.go +++ b/aws/table_aws_ecr_image.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecr" "github.com/aws/aws-sdk-go-v2/service/ecr/types" - ecrv1 "github.com/aws/aws-sdk-go/service/ecr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsEcrImage(_ context.Context) *plugin.Table { {Name: "registry_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_ECR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "repository_name", diff --git a/aws/table_aws_ecr_image_scan_finding.go b/aws/table_aws_ecr_image_scan_finding.go index 687a31021..e44e0a547 100644 --- a/aws/table_aws_ecr_image_scan_finding.go +++ b/aws/table_aws_ecr_image_scan_finding.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecr/types" "github.com/aws/smithy-go" - ecrv1 "github.com/aws/aws-sdk-go/service/ecr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -24,23 +22,22 @@ func tableAwsEcrImageScanFinding(_ context.Context) *plugin.Table { Name: "aws_ecr_image_scan_finding", Description: "AWS ECR Image Scan Finding", List: &plugin.ListConfig{ - ParentHydrate: listAwsEcrImageTags, - Hydrate: listAwsEcrImageScanFindings, - Tags: map[string]string{"service": "ecr", "action": "DescribeImageScanFindings"}, + Hydrate: listAwsEcrImageScanFindings, + Tags: map[string]string{"service": "ecr", "action": "DescribeImageScanFindings"}, IgnoreConfig: &plugin.IgnoreConfig{ ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"RepositoryNotFoundException", "ImageNotFoundException", "ScanNotFoundException"}), }, // Ideally image_tag and image_digest could both be used as optional // key columns, but the query planner only works with required key - // columns when there are multiple. We chose image_tag instead of + // columns when there are multiple. We choose image_tag instead of // image_digest as it's more common/friendly to use. KeyColumns: []*plugin.KeyColumn{ {Name: "repository_name", Require: plugin.Required}, - {Name: "image_tag", Require: plugin.Optional}, - {Name: "image_digest", Require: plugin.Optional}, + {Name: "image_tag", Require: plugin.AnyOf}, + {Name: "image_digest", Require: plugin.AnyOf}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_ECR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "repository_name", @@ -122,7 +119,6 @@ func tableAwsEcrImageScanFinding(_ context.Context) *plugin.Table { // // LIST FUNCTION func listAwsEcrImageScanFindings(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { - repositoryTag := h.Item.(*RepositoryImage) // Create Session svc, err := ECRClient(ctx, d) @@ -130,16 +126,9 @@ func listAwsEcrImageScanFindings(ctx context.Context, d *plugin.QueryData, h *pl return nil, err } - imageTag := d.EqualsQuals["image_tag"] - imageDigest := d.EqualsQuals["image_digest"] - repositoryName := d.EqualsQuals["repository_name"] - - if imageTag != nil && imageTag.GetStringValue() != *repositoryTag.ImageTag { - return nil, nil - } - if repositoryName != nil && repositoryName.GetStringValue() != *repositoryTag.RepositoryName { - return nil, nil - } + imageTag := d.EqualsQuals["image_tag"].GetStringValue() + imageDigest := d.EqualsQuals["image_digest"].GetStringValue() + repositoryName := d.EqualsQuals["repository_name"].GetStringValue() // Limiting the results maxLimit := int32(1000) @@ -152,27 +141,15 @@ func listAwsEcrImageScanFindings(ctx context.Context, d *plugin.QueryData, h *pl input := &ecr.DescribeImageScanFindingsInput{ MaxResults: aws.Int32(maxLimit), - RepositoryName: repositoryTag.RepositoryName, + RepositoryName: aws.String(repositoryName), } - imageInfo := &types.ImageIdentifier{ - ImageTag: repositoryTag.ImageTag, - } - - // Ideally, both image_tag and image_digest could be used. - // However, they cannot be passed together simultaneously. - // 1. If ImageTag is provided, it takes precedence and is used as the input parameter. - // 2. If both ImageTag and ImageDigest are provided, ImageTag will be prioritized to keep the existing table behavior unchanged. - // 3. If only ImageDigest is provided, the ImageDigest value will be used as the input parameter. - if imageTag != nil { - imageInfo.ImageTag = aws.String(imageTag.GetStringValue()) - } - if imageTag != nil && imageDigest != nil { - imageInfo.ImageTag = aws.String(imageTag.GetStringValue()) + imageInfo := &types.ImageIdentifier{} + if imageTag != "" { + imageInfo.ImageTag = aws.String(imageTag) } - if imageTag == nil && imageDigest != nil { - imageInfo.ImageDigest = aws.String(imageDigest.GetStringValue()) - imageInfo.ImageTag = nil + if imageDigest != "" { + imageInfo.ImageDigest = aws.String(imageDigest) } input.ImageId = imageInfo @@ -238,69 +215,3 @@ func listAwsEcrImageScanFindings(ctx context.Context, d *plugin.QueryData, h *pl return nil, err } - -//// Parent Hydrate - -type RepositoryImage struct { - RepositoryName *string - ImageTag *string -} - -// To preserve the existing table behavior (fetching findings based on image tags), we have retained the parent function. -// Making `image_tags` an optional or `anyof` qualifier alters the query plan for complex join queries, causing query execution errors. -// This issue is detailed here: https://github.com/turbot/steampipe-plugin-aws/issues/2367 -func listAwsEcrImageTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { - - repoName := d.EqualsQuals["repository_name"].GetStringValue() - - // Limiting the results - maxLimit := int32(100) - - // Create Session - svc, err := ECRClient(ctx, d) - if err != nil { - plugin.Logger(ctx).Error("aws_ecr_image.listAwsEcrImageTags", "connection_error", err) - return nil, err - } - - // Build the params - params := &ecr.DescribeImagesInput{ - RepositoryName: &repoName, - MaxResults: aws.Int32(maxLimit), - } - - paginator := ecr.NewDescribeImagesPaginator(svc, params, func(o *ecr.DescribeImagesPaginatorOptions) { - o.Limit = maxLimit - o.StopOnDuplicateToken = true - }) - - // List call - for paginator.HasMorePages() { - // apply rate limiting - d.WaitForListRateLimit(ctx) - - output, err := paginator.NextPage(ctx) - if err != nil { - var ae smithy.APIError - if errors.As(err, &ae) { - if ae.ErrorCode() == "RepositoryNotFoundException" { - return nil, nil - } - } - plugin.Logger(ctx).Error("aws_ecr_image.listAwsEcrImageTags", "api_error", err) - return nil, err - } - - for _, items := range output.ImageDetails { - for _, tags := range items.ImageTags { - imageDetails := &RepositoryImage{ - RepositoryName: items.RepositoryName, - ImageTag: &tags, - } - d.StreamListItem(ctx, imageDetails) - } - } - } - - return nil, nil -} diff --git a/aws/table_aws_ecr_registry_scanning_configuration.go b/aws/table_aws_ecr_registry_scanning_configuration.go index 2bbc1d6ac..ac126b53e 100644 --- a/aws/table_aws_ecr_registry_scanning_configuration.go +++ b/aws/table_aws_ecr_registry_scanning_configuration.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecr" - ecrv1 "github.com/aws/aws-sdk-go/service/ecr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -21,7 +19,7 @@ func tableAwsEcrRegistryScanningConfiguration(_ context.Context) *plugin.Table { List: &plugin.ListConfig{ Hydrate: getEcrRegistryScanningConfiguration, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_ECR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "registry_id", diff --git a/aws/table_aws_ecr_repository.go b/aws/table_aws_ecr_repository.go index fcb3274ce..9ea0b9d62 100644 --- a/aws/table_aws_ecr_repository.go +++ b/aws/table_aws_ecr_repository.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecr" "github.com/aws/aws-sdk-go-v2/service/ecr/types" - ecrv1 "github.com/aws/aws-sdk-go/service/ecr" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -69,7 +67,7 @@ func tableAwsEcrRepository(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ecr", "action": "BatchGetRepositoryScanningConfiguration"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_ECR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "repository_name", diff --git a/aws/table_aws_ecrpublic_repository.go b/aws/table_aws_ecrpublic_repository.go index f0418baf9..0652a49eb 100644 --- a/aws/table_aws_ecrpublic_repository.go +++ b/aws/table_aws_ecrpublic_repository.go @@ -8,7 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecrpublic" "github.com/aws/aws-sdk-go-v2/service/ecrpublic/types" - ecrpublicv1 "github.com/aws/aws-sdk-go/service/ecrpublic" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -50,7 +49,7 @@ func tableAwsEcrpublicRepository(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ecr-public", "action": "DescribeImages"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecrpublicv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_ECR_PUBLIC_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "repository_name", diff --git a/aws/table_aws_ecs_cluster.go b/aws/table_aws_ecs_cluster.go index 8af59f301..a0216b344 100644 --- a/aws/table_aws_ecs_cluster.go +++ b/aws/table_aws_ecs_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecs" "github.com/aws/aws-sdk-go-v2/service/ecs/types" - ecsv1 "github.com/aws/aws-sdk-go/service/ecs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsEcsCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ecs", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ECS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cluster_arn", diff --git a/aws/table_aws_ecs_container_instance.go b/aws/table_aws_ecs_container_instance.go index 5309a4823..41733c559 100644 --- a/aws/table_aws_ecs_container_instance.go +++ b/aws/table_aws_ecs_container_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecs" "github.com/aws/aws-sdk-go-v2/service/ecs/types" - ecsv1 "github.com/aws/aws-sdk-go/service/ecs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -23,7 +21,7 @@ func tableAwsEcsContainerInstance(_ context.Context) *plugin.Table { Hydrate: listEcsContainerInstances, Tags: map[string]string{"service": "ecs", "action": "ListContainerInstances"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ECS_SERVICE_ID), Columns: awsGlobalRegionColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_ecs_service.go b/aws/table_aws_ecs_service.go index cf1f716f6..b98744066 100644 --- a/aws/table_aws_ecs_service.go +++ b/aws/table_aws_ecs_service.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecs/types" "github.com/aws/smithy-go" - ecsv1 "github.com/aws/aws-sdk-go/service/ecs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsEcsService(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ecs", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ECS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "service_name", diff --git a/aws/table_aws_ecs_task.go b/aws/table_aws_ecs_task.go index 7001a0016..592c18155 100644 --- a/aws/table_aws_ecs_task.go +++ b/aws/table_aws_ecs_task.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecs" "github.com/aws/aws-sdk-go-v2/service/ecs/types" - ecsv1 "github.com/aws/aws-sdk-go/service/ecs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -53,7 +51,7 @@ func tableAwsEcsTask(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ecs", "action": "GetTaskProtection"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ECS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "task_arn", diff --git a/aws/table_aws_ecs_task_definition.go b/aws/table_aws_ecs_task_definition.go index 2696d1a54..2052d7865 100644 --- a/aws/table_aws_ecs_task_definition.go +++ b/aws/table_aws_ecs_task_definition.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ecs" "github.com/aws/aws-sdk-go-v2/service/ecs/types" - ecsv1 "github.com/aws/aws-sdk-go/service/ecs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsEcsTaskDefinition(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ecs", "action": "DescribeTaskDefinition"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ecsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ECS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "task_definition_arn", diff --git a/aws/table_aws_efs_access_point.go b/aws/table_aws_efs_access_point.go index a3ed4ce34..cbf2ffe10 100644 --- a/aws/table_aws_efs_access_point.go +++ b/aws/table_aws_efs_access_point.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/efs" "github.com/aws/aws-sdk-go-v2/service/efs/types" - efsv1 "github.com/aws/aws-sdk-go/service/efs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsEfsAccessPoint(_ context.Context) *plugin.Table { {Name: "file_system_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(efsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICFILESYSTEM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_efs_file_system.go b/aws/table_aws_efs_file_system.go index 0d752d364..9be886b3a 100644 --- a/aws/table_aws_efs_file_system.go +++ b/aws/table_aws_efs_file_system.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/efs" "github.com/aws/aws-sdk-go-v2/service/efs/types" - efsv1 "github.com/aws/aws-sdk-go/service/efs" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -43,7 +41,7 @@ func tableAwsElasticFileSystem(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticfilesystem", "action": "DescribeFileSystemPolicy"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(efsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICFILESYSTEM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_efs_mount_target.go b/aws/table_aws_efs_mount_target.go index 1249af115..947350e80 100644 --- a/aws/table_aws_efs_mount_target.go +++ b/aws/table_aws_efs_mount_target.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/efs" "github.com/aws/aws-sdk-go-v2/service/efs/types" - efsv1 "github.com/aws/aws-sdk-go/service/efs" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsEfsMountTarget(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticfilesystem", "action": "DescribeMountTargetSecurityGroups"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(efsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICFILESYSTEM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "mount_target_id", diff --git a/aws/table_aws_eks_access_entry.go b/aws/table_aws_eks_access_entry.go new file mode 100644 index 000000000..8956f84ef --- /dev/null +++ b/aws/table_aws_eks_access_entry.go @@ -0,0 +1,221 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/eks" + "github.com/aws/aws-sdk-go-v2/service/eks/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsEksAccessEntry(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_eks_access_entry", + Description: "AWS EKS Access Entry", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"cluster_name", "principal_arn"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException", "InvalidParameterException", "InvalidParameter"}), + }, + Hydrate: getEksAccessEntry, + Tags: map[string]string{"service": "eks", "action": "DescribeAccessEntry"}, + }, + List: &plugin.ListConfig{ + ParentHydrate: listEKSClusters, + Hydrate: listEKSAccessEntries, + Tags: map[string]string{"service": "eks", "action": "ListAccessEntries"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getEksAccessEntry, + Tags: map[string]string{"service": "eks", "action": "DescribeAccessEntry"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "cluster_name", + Description: "The name of the cluster.", + Type: proto.ColumnType_STRING, + }, + { + Name: "principal_arn", + Description: "The ARN of the IAM principal for the AccessEntry.", + Type: proto.ColumnType_STRING, + }, + { + Name: "access_entry_arn", + Description: "The ARN of the access entry.", + Type: proto.ColumnType_STRING, + Hydrate: getEksAccessEntry, + }, + { + Name: "created_at", + Description: "The date and time that the access entry was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getEksAccessEntry, + }, + { + Name: "modified_at", + Description: "The date and time that the access entry was last modified.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getEksAccessEntry, + }, + { + Name: "kubernetes_groups", + Description: "A name that you've specified in a Kubernetes RoleBinding or ClusterRoleBinding object so that Kubernetes authorizes the principalARN access to cluster objects.", + Type: proto.ColumnType_JSON, + Hydrate: getEksAccessEntry, + }, + { + Name: "type", + Description: "The type of the access entry.", + Type: proto.ColumnType_STRING, + Hydrate: getEksAccessEntry, + }, + { + Name: "username", + Description: "The username to authenticate to Kubernetes with.", + Type: proto.ColumnType_STRING, + Hydrate: getEksAccessEntry, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Hydrate: getEksAccessEntry, + Transform: transform.FromField("PrincipalArn"), + }, + { + Name: "tags", + Description: "The metadata that you apply to the access entry to assist with categorization and organization.", + Type: proto.ColumnType_JSON, + Hydrate: getEksAccessEntry, + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getEksAccessEntry, + Transform: transform.FromField("AccessEntryArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listEKSAccessEntries(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get cluster details + clusterName := *h.Item.(types.Cluster).Name + + // Create service + svc, err := EKSClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_entry.listEKSAccessEntries", "get_client_error", err) + return nil, err + } + if svc == nil { + // Unsupported region check + return nil, nil + } + + input := &eks.ListAccessEntriesInput{ + ClusterName: &clusterName, + MaxResults: aws.Int32(100), + } + + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < *input.MaxResults { + input.MaxResults = aws.Int32(limit) + } + } + + paginator := eks.NewListAccessEntriesPaginator(svc, input, func(o *eks.ListAccessEntriesPaginatorOptions) { + o.Limit = *input.MaxResults + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_entry.listEKSAccessEntries", "api_error", err) + return nil, err + } + + for _, item := range output.AccessEntries { + d.StreamListItem(ctx, &AccessEntryInfo{ + ClusterName: &clusterName, + PrincipalArn: aws.String(item), + }) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getEksAccessEntry(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var clusterName, principalArn string + if h.Item != nil { + clusterName = *h.Item.(*AccessEntryInfo).ClusterName + principalArn = *h.Item.(*AccessEntryInfo).PrincipalArn + } else { + clusterName = d.EqualsQuals["cluster_name"].GetStringValue() + principalArn = d.EqualsQuals["principal_arn"].GetStringValue() + } + + // check for empty parameters + if clusterName == "" || principalArn == "" { + return nil, nil + } + + // create service + svc, err := EKSClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_entry.getEksAccessEntry", "get_client_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + params := &eks.DescribeAccessEntryInput{ + ClusterName: &clusterName, + PrincipalArn: &principalArn, + } + + op, err := svc.DescribeAccessEntry(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_entry.getEksAccessEntry", "api_error", err) + return nil, err + } + + return op.AccessEntry, nil +} + +// AccessEntryInfo is a struct to hold cluster name and principal ARN for list operations +type AccessEntryInfo struct { + ClusterName *string + PrincipalArn *string +} diff --git a/aws/table_aws_eks_access_policy_association.go b/aws/table_aws_eks_access_policy_association.go new file mode 100644 index 000000000..fd56f75fa --- /dev/null +++ b/aws/table_aws_eks_access_policy_association.go @@ -0,0 +1,205 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/eks" + "github.com/aws/aws-sdk-go-v2/service/eks/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsEksAccessPolicyAssociation(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_eks_access_policy_association", + Description: "AWS EKS Access Policy Association", + List: &plugin.ListConfig{ + ParentHydrate: listEKSClusters, + Hydrate: listEKSAccessPolicyAssociations, + Tags: map[string]string{"service": "eks", "action": "ListAssociatedAccessPolicies"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "cluster_name", Require: plugin.Optional}, + {Name: "principal_arn", Require: plugin.Optional}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "cluster_name", + Description: "The name of the cluster.", + Type: proto.ColumnType_STRING, + }, + { + Name: "principal_arn", + Description: "The ARN of the IAM principal for the AccessEntry.", + Type: proto.ColumnType_STRING, + }, + { + Name: "policy_arn", + Description: "The ARN of the access policy.", + Type: proto.ColumnType_STRING, + }, + { + Name: "associated_at", + Description: "The date and time that the access policy was associated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "modified_at", + Description: "The date and time that the access policy association was last modified.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "access_scope", + Description: "The scope of the access policy association.", + Type: proto.ColumnType_JSON, + }, + { + Name: "access_scope_type", + Description: "The type of the access scope (cluster or namespace).", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("AssociatedAccessPolicy.AccessScope.Type"), + }, + { + Name: "access_scope_namespaces", + Description: "The Kubernetes namespaces included in the access scope.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("AssociatedAccessPolicy.AccessScope.Namespaces"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("AssociatedAccessPolicy.PolicyArn"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("AssociatedAccessPolicy.PolicyArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +type AssociatedAccessPolicyInfo struct { + ClusterName *string + PrincipalArn *string + types.AssociatedAccessPolicy +} + +//// LIST FUNCTION + +func listEKSAccessPolicyAssociations(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + clusterName := *h.Item.(types.Cluster).Name + // Create service + svc, err := EKSClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_policy_association.listEKSAccessPolicyAssociations", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region check + return nil, nil + } + + accessEntries, err := listAccessEntriesByClusterName(ctx, svc, clusterName) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_policy_association.listAccessEntriesByClusterName", "api_error", err) + return nil, err + } + // Get optional filter values + filterClusterName := d.EqualsQuals["cluster_name"].GetStringValue() + filterPrincipalArn := d.EqualsQuals["principal_arn"].GetStringValue() + + if filterClusterName != "" && filterClusterName != clusterName { + return nil, nil + } + + // The accessEntry corresponds to the PrincipalArn. + for _, accessEntry := range accessEntries { + + if filterPrincipalArn != "" && filterPrincipalArn != accessEntry { + return nil, nil + } + + input := &eks.ListAssociatedAccessPoliciesInput{ + ClusterName: aws.String(clusterName), + PrincipalArn: aws.String(accessEntry), + MaxResults: aws.Int32(100), + } + + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < *input.MaxResults { + if limit < 1 { + input.MaxResults = aws.Int32(1) + } else { + input.MaxResults = aws.Int32(limit) + } + } + } + + paginator := eks.NewListAssociatedAccessPoliciesPaginator(svc, input, func(o *eks.ListAssociatedAccessPoliciesPaginatorOptions) { + o.Limit = *input.MaxResults + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_policy_association.listEKSAccessPolicyAssociations", "api_error", err) + return nil, err + } + + for _, item := range output.AssociatedAccessPolicies { + + d.StreamListItem(ctx, &AssociatedAccessPolicyInfo{output.ClusterName, output.PrincipalArn, item}) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + } + + return nil, nil +} + +func listAccessEntriesByClusterName(ctx context.Context, svc *eks.Client, clusterName string) ([]string, error) { + + accessEntries := make([]string, 0) + input := &eks.ListAccessEntriesInput{ + ClusterName: &clusterName, + MaxResults: aws.Int32(100), + } + + paginator := eks.NewListAccessEntriesPaginator(svc, input, func(o *eks.ListAccessEntriesPaginatorOptions) { + o.Limit = *input.MaxResults + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_eks_access_policy_association.listAccessEntriesByClusterName", "api_error", err) + return nil, err + } + + accessEntries = append(accessEntries, output.AccessEntries...) + } + + return accessEntries, nil + +} \ No newline at end of file diff --git a/aws/table_aws_eks_addon.go b/aws/table_aws_eks_addon.go index 3cd81edc5..b9a5ea035 100644 --- a/aws/table_aws_eks_addon.go +++ b/aws/table_aws_eks_addon.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/eks/types" - eksv1 "github.com/aws/aws-sdk-go/service/eks" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsEksAddon(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "eks", "action": "DescribeAddon"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eksv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "addon_name", diff --git a/aws/table_aws_eks_addon_version.go b/aws/table_aws_eks_addon_version.go index 227f36f91..451df60af 100644 --- a/aws/table_aws_eks_addon_version.go +++ b/aws/table_aws_eks_addon_version.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/eks/types" - eksv1 "github.com/aws/aws-sdk-go/service/eks" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsEksAddonVersion(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "eks", "action": "DescribeAddonConfiguration"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eksv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "addon_name", diff --git a/aws/table_aws_eks_cluster.go b/aws/table_aws_eks_cluster.go index 51cdab972..cd2a9e94b 100644 --- a/aws/table_aws_eks_cluster.go +++ b/aws/table_aws_eks_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/eks/types" - eksv1 "github.com/aws/aws-sdk-go/service/eks" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsEksCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "eks", "action": "DescribeCluster"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eksv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_eks_fargate_profile.go b/aws/table_aws_eks_fargate_profile.go index 8721956ea..5b1ac958c 100644 --- a/aws/table_aws_eks_fargate_profile.go +++ b/aws/table_aws_eks_fargate_profile.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/eks/types" - eksv1 "github.com/aws/aws-sdk-go/service/eks" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsEksFargateProfile(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "eks", "action": "DescribeFargateProfile"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eksv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "fargate_profile_name", diff --git a/aws/table_aws_eks_identity_provider_config.go b/aws/table_aws_eks_identity_provider_config.go index 4a6ee0b95..16b250106 100644 --- a/aws/table_aws_eks_identity_provider_config.go +++ b/aws/table_aws_eks_identity_provider_config.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/eks/types" - eksv1 "github.com/aws/aws-sdk-go/service/eks" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsEksIdentityProviderConfig(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "eks", "action": "DescribeIdentityProviderConfig"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eksv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_eks_node_group.go b/aws/table_aws_eks_node_group.go index f2e2d16fb..a7c08f9a6 100644 --- a/aws/table_aws_eks_node_group.go +++ b/aws/table_aws_eks_node_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/eks" "github.com/aws/aws-sdk-go-v2/service/eks/types" - eksv1 "github.com/aws/aws-sdk-go/service/eks" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsEksNodeGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "eks", "action": "DescribeNodegroup"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eksv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EKS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "nodegroup_name", diff --git a/aws/table_aws_elastic_beanstalk_application.go b/aws/table_aws_elastic_beanstalk_application.go index d4f4e3b1c..73fc1f05a 100644 --- a/aws/table_aws_elastic_beanstalk_application.go +++ b/aws/table_aws_elastic_beanstalk_application.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk" "github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk/types" - elasticbeanstalkv1 "github.com/aws/aws-sdk-go/service/elasticbeanstalk" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -38,7 +36,7 @@ func tableAwsElasticBeanstalkApplication(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticbeanstalk", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticbeanstalkv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICBEANSTALK_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_elastic_beanstalk_application_version.go b/aws/table_aws_elastic_beanstalk_application_version.go index 47eb0272f..53f63d10a 100644 --- a/aws/table_aws_elastic_beanstalk_application_version.go +++ b/aws/table_aws_elastic_beanstalk_application_version.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk" - elasticbeanstalkv1 "github.com/aws/aws-sdk-go/service/elasticbeanstalk" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -49,7 +47,7 @@ func tableAwsElasticBeanstalkApplicationVersion(_ context.Context) *plugin.Table Tags: map[string]string{"service": "elasticbeanstalk", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticbeanstalkv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICBEANSTALK_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "application_name", diff --git a/aws/table_aws_elastic_beanstalk_environment.go b/aws/table_aws_elastic_beanstalk_environment.go index 477483c89..96b85cb2f 100644 --- a/aws/table_aws_elastic_beanstalk_environment.go +++ b/aws/table_aws_elastic_beanstalk_environment.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk" "github.com/aws/aws-sdk-go-v2/service/elasticbeanstalk/types" - elasticbeanstalkv1 "github.com/aws/aws-sdk-go/service/elasticbeanstalk" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -53,7 +51,7 @@ func tableAwsElasticBeanstalkEnvironment(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "elasticache", "action": "DescribeEnvironmentManagedActions"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticbeanstalkv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICBEANSTALK_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "environment_name", diff --git a/aws/table_aws_elasticache_cluster.go b/aws/table_aws_elasticache_cluster.go index 79234f43c..7196988d9 100644 --- a/aws/table_aws_elasticache_cluster.go +++ b/aws/table_aws_elasticache_cluster.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticache" "github.com/aws/aws-sdk-go-v2/service/elasticache/types" - elasticachev1 "github.com/aws/aws-sdk-go/service/elasticache" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -42,7 +40,7 @@ func tableAwsElastiCacheCluster(_ context.Context) *plugin.Table { }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticachev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cache_cluster_id", diff --git a/aws/table_aws_elasticache_parameter_group.go b/aws/table_aws_elasticache_parameter_group.go index cf4d33a22..7dccadc6d 100644 --- a/aws/table_aws_elasticache_parameter_group.go +++ b/aws/table_aws_elasticache_parameter_group.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/elasticache" - elasticachev1 "github.com/aws/aws-sdk-go/service/elasticache" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsElastiCacheParameterGroup(_ context.Context) *plugin.Table { Hydrate: listElastiCacheParameterGroup, Tags: map[string]string{"service": "elasticache", "action": "DescribeCacheParameterGroups"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticachev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cache_parameter_group_name", diff --git a/aws/table_aws_elasticache_replication_group.go b/aws/table_aws_elasticache_replication_group.go index b61d5b6b8..dda07af6f 100644 --- a/aws/table_aws_elasticache_replication_group.go +++ b/aws/table_aws_elasticache_replication_group.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/elasticache" - elasticachev1 "github.com/aws/aws-sdk-go/service/elasticache" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsElastiCacheReplicationGroup(_ context.Context) *plugin.Table { Hydrate: listElastiCacheReplicationGroups, Tags: map[string]string{"service": "elasticache", "action": "DescribeReplicationGroups"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticachev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "replication_group_id", diff --git a/aws/table_aws_elasticache_reserved_cache_node.go b/aws/table_aws_elasticache_reserved_cache_node.go index d7e195d68..1b4eaf803 100644 --- a/aws/table_aws_elasticache_reserved_cache_node.go +++ b/aws/table_aws_elasticache_reserved_cache_node.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/elasticache" - elasticachev1 "github.com/aws/aws-sdk-go/service/elasticache" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsElastiCacheReservedCacheNode(_ context.Context) *plugin.Table { {Name: "reserved_cache_nodes_offering_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticachev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "reserved_cache_node_id", diff --git a/aws/table_aws_elasticache_serverless_cache.go b/aws/table_aws_elasticache_serverless_cache.go new file mode 100644 index 000000000..470a6c28e --- /dev/null +++ b/aws/table_aws_elasticache_serverless_cache.go @@ -0,0 +1,289 @@ +package aws + +import ( + "context" + "errors" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/elasticache" + "github.com/aws/aws-sdk-go-v2/service/elasticache/types" + + "github.com/aws/smithy-go" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsElastiCacheServerlessCache(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_elasticache_serverless_cache", + Description: "AWS ElastiCache Serverless Cache", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("serverless_cache_name"), + Hydrate: getElastiCacheServerlessCache, + Tags: map[string]string{"service": "elasticache", "action": "DescribeServerlessCaches"}, + }, + List: &plugin.ListConfig{ + Hydrate: listElastiCacheServerlessCaches, + Tags: map[string]string{"service": "elasticache", "action": "DescribeServerlessCaches"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: listTagsForElastiCacheServerlessCache, + Tags: map[string]string{"service": "elasticache", "action": "ListTagsForResource"}, + }, + }, + + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "serverless_cache_name", + Description: "The unique identifier of the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The ARN (Amazon Resource Name) of the serverless cache.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ARN"), + }, + { + Name: "status", + Description: "The current status of the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "engine", + Description: "The name of the cache engine (e.g., redis, valkey) used by the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "full_engine_version", + Description: "The version of the cache engine that is used in this serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "create_time", + Description: "The date and time when the serverless cache was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "subnet_ids", + Description: "The subnet IDs for the serverless cache.", + Type: proto.ColumnType_JSON, + }, + { + Name: "security_group_ids", + Description: "The security group IDs for the serverless cache.", + Type: proto.ColumnType_JSON, + }, + { + Name: "user_group_id", + Description: "The ID of the user group associated with the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "cache_usage_limits", + Description: "The cache usage limits for the serverless cache.", + Type: proto.ColumnType_JSON, + }, + { + Name: "daily_snapshot_time", + Description: "The daily time range during which ElastiCache takes a snapshot of the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "snapshot_retention_limit", + Description: "The number of days for which ElastiCache retains automatic serverless cache snapshots before deleting them.", + Type: proto.ColumnType_INT, + }, + { + Name: "description", + Description: "The description of the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "kms_key_id", + Description: "The ID of the KMS key used to encrypt the serverless cache.", + Type: proto.ColumnType_STRING, + }, + { + Name: "endpoint", + Description: "The endpoint information for the serverless cache.", + Type: proto.ColumnType_JSON, + }, + { + Name: "reader_endpoint", + Description: "The reader endpoint information for the serverless cache.", + Type: proto.ColumnType_JSON, + }, + { + Name: "tags_src", + Description: "A list of tags associated with the serverless cache.", + Type: proto.ColumnType_JSON, + Hydrate: listTagsForElastiCacheServerlessCache, + Transform: transform.FromField("TagList"), + }, + + // Standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ServerlessCacheName"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: listTagsForElastiCacheServerlessCache, + Transform: transform.From(serverlessCacheTagListToTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ARN").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listElastiCacheServerlessCaches(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := ElastiCacheClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_elasticache_serverless_cache.listElastiCacheServerlessCaches", "connection_error", err) + return nil, err + } + + input := &elasticache.DescribeServerlessCachesInput{ + MaxResults: aws.Int32(100), + } + + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < *input.MaxResults { + if limit < 20 { + input.MaxResults = aws.Int32(20) + } else { + input.MaxResults = aws.Int32(limit) + } + } + } + + // List call + paginator := elasticache.NewDescribeServerlessCachesPaginator(svc, input, func(o *elasticache.DescribeServerlessCachesPaginatorOptions) { + o.Limit = *input.MaxResults + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_elasticache_serverless_cache.listElastiCacheServerlessCaches", "api_error", err) + return nil, err + } + + for _, serverlessCache := range output.ServerlessCaches { + d.StreamListItem(ctx, serverlessCache) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getElastiCacheServerlessCache(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := ElastiCacheClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_elasticache_serverless_cache.getElastiCacheServerlessCache", "connection_error", err) + return nil, err + } + + serverlessCacheName := d.EqualsQuals["serverless_cache_name"].GetStringValue() + + // Return nil, if no input provided + if serverlessCacheName == "" { + return nil, nil + } + + params := &elasticache.DescribeServerlessCachesInput{ + ServerlessCacheName: aws.String(serverlessCacheName), + } + + op, err := svc.DescribeServerlessCaches(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_elasticache_serverless_cache.getElastiCacheServerlessCache", "api_error", err) + return nil, err + } + + if len(op.ServerlessCaches) > 0 { + return op.ServerlessCaches[0], nil + } + + return nil, nil +} + +func listTagsForElastiCacheServerlessCache(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + serverlessCache := h.Item.(types.ServerlessCache) + + // Create session + svc, err := ElastiCacheClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_elasticache_serverless_cache.listTagsForElastiCacheServerlessCache", "connection_error", err) + return nil, err + } + + // Build param + param := &elasticache.ListTagsForResourceInput{ + ResourceName: serverlessCache.ARN, + } + + serverlessCacheTags, err := svc.ListTagsForResource(ctx, param) + + if err != nil { + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "ServerlessCacheNotFoundFault" { + return nil, nil + } + } + plugin.Logger(ctx).Error("aws_elasticache_serverless_cache.listTagsForElastiCacheServerlessCache", "api_error", err) + return nil, err + } + + return serverlessCacheTags, nil +} + +//// TRANSFORM FUNCTIONS + +func serverlessCacheTagListToTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { + serverlessCacheTag := d.HydrateItem.(*elasticache.ListTagsForResourceOutput) + + // Mapping the resource tags inside turbotTags + var turbotTagsMap map[string]string + if len(serverlessCacheTag.TagList) > 0 { + turbotTagsMap = map[string]string{} + for _, i := range serverlessCacheTag.TagList { + turbotTagsMap[*i.Key] = *i.Value + } + } + + return turbotTagsMap, nil +} diff --git a/aws/table_aws_elasticache_subnet_group.go b/aws/table_aws_elasticache_subnet_group.go index ac78b2ea4..29c76502b 100644 --- a/aws/table_aws_elasticache_subnet_group.go +++ b/aws/table_aws_elasticache_subnet_group.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/elasticache" - elasticachev1 "github.com/aws/aws-sdk-go/service/elasticache" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsElastiCacheSubnetGroup(_ context.Context) *plugin.Table { Hydrate: listElastiCacheSubnetGroups, Tags: map[string]string{"service": "elasticache", "action": "DescribeCacheSubnetGroups"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticachev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cache_subnet_group_name", diff --git a/aws/table_aws_elasticache_update_action.go b/aws/table_aws_elasticache_update_action.go index e4e717520..3e9d4067f 100644 --- a/aws/table_aws_elasticache_update_action.go +++ b/aws/table_aws_elasticache_update_action.go @@ -2,10 +2,10 @@ package aws import ( "context" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/elasticache" "github.com/aws/aws-sdk-go-v2/service/elasticache/types" - elasticachev1 "github.com/aws/aws-sdk-go/service/elasticache" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +30,7 @@ func tableAwsElastiCacheUpdateAction(_ context.Context) *plugin.Table { Hydrate: listElastiCacheUpdateActions, Tags: map[string]string{"service": "elasticache", "action": "DescribeUpdateActions"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticachev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICACHE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cache_cluster_id", diff --git a/aws/table_aws_elasticsearch_domain.go b/aws/table_aws_elasticsearch_domain.go index 71f10112e..bdbd4d61f 100644 --- a/aws/table_aws_elasticsearch_domain.go +++ b/aws/table_aws_elasticsearch_domain.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/elasticsearchservice" "github.com/aws/aws-sdk-go-v2/service/elasticsearchservice/types" - elasticsearchservicev1 "github.com/aws/aws-sdk-go/service/elasticsearchservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsElasticsearchDomain(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "es", "action": "DescribeElasticsearchDomain"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(elasticsearchservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "domain_name", diff --git a/aws/table_aws_emr_block_public_access_configuration.go b/aws/table_aws_emr_block_public_access_configuration.go index d1f87e3c5..688d793b2 100644 --- a/aws/table_aws_emr_block_public_access_configuration.go +++ b/aws/table_aws_emr_block_public_access_configuration.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/emr" - emrv1 "github.com/aws/aws-sdk-go/service/emr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -22,7 +20,7 @@ func tableAwsEmrBlockPublicAccessConfiguration(_ context.Context) *plugin.Table Hydrate: listBlockPublicAccessConfigurations, Tags: map[string]string{"service": "elasticmapreduce", "action": "GetBlockPublicAccessConfiguration"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(emrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "block_public_security_group_rules", diff --git a/aws/table_aws_emr_cluster.go b/aws/table_aws_emr_cluster.go index e2cec18a5..c4a377352 100644 --- a/aws/table_aws_emr_cluster.go +++ b/aws/table_aws_emr_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/emr" "github.com/aws/aws-sdk-go-v2/service/emr/types" - emrv1 "github.com/aws/aws-sdk-go/service/emr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsEmrCluster(_ context.Context) *plugin.Table { {Name: "state", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(emrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getEmrCluster, diff --git a/aws/table_aws_emr_instance.go b/aws/table_aws_emr_instance.go index 2984843a9..ac8219826 100644 --- a/aws/table_aws_emr_instance.go +++ b/aws/table_aws_emr_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/emr" "github.com/aws/aws-sdk-go-v2/service/emr/types" - emrv1 "github.com/aws/aws-sdk-go/service/emr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsEmrInstance(_ context.Context) *plugin.Table { {Name: "instance_group_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(emrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_emr_instance_fleet.go b/aws/table_aws_emr_instance_fleet.go index 3fe7079ee..fa164077f 100644 --- a/aws/table_aws_emr_instance_fleet.go +++ b/aws/table_aws_emr_instance_fleet.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/emr" "github.com/aws/aws-sdk-go-v2/service/emr/types" - emrv1 "github.com/aws/aws-sdk-go/service/emr" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -30,7 +28,7 @@ func tableAwsEmrInstanceFleet(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidRequestException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(emrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_emr_instance_group.go b/aws/table_aws_emr_instance_group.go index 2498d4290..92756b08f 100644 --- a/aws/table_aws_emr_instance_group.go +++ b/aws/table_aws_emr_instance_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/emr" "github.com/aws/aws-sdk-go-v2/service/emr/types" - emrv1 "github.com/aws/aws-sdk-go/service/emr" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -27,7 +25,7 @@ func tableAwsEmrInstanceGroup(_ context.Context) *plugin.Table { Hydrate: listEmrInstanceGroups, Tags: map[string]string{"service": "elasticmapreduce", "action": "ListInstanceGroups"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(emrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_emr_security_configuration.go b/aws/table_aws_emr_security_configuration.go index 38e175cdd..13dfb4407 100644 --- a/aws/table_aws_emr_security_configuration.go +++ b/aws/table_aws_emr_security_configuration.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/emr" "github.com/aws/aws-sdk-go-v2/service/emr/types" - emrv1 "github.com/aws/aws-sdk-go/service/emr" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,10 +35,10 @@ func tableAwsEmrSecurityConfiguration(_ context.Context) *plugin.Table { HydrateConfig: []plugin.HydrateConfig{ { Func: getEmrSecurityConfiguration, - Tags: map[string]string{"service": "elasticmapreduce", "action": "DescribeSecurityConfiguration"}, + Tags: map[string]string{"service": "elasticmapreduce", "action": "DescribeSecurityConfiguration"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(emrv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_emr_studio.go b/aws/table_aws_emr_studio.go new file mode 100644 index 000000000..1b576abcd --- /dev/null +++ b/aws/table_aws_emr_studio.go @@ -0,0 +1,264 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/emr" + "github.com/aws/aws-sdk-go-v2/service/emr/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsEmrStudio(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_emr_studio", + Description: "AWS EMR Studio", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("studio_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidRequestException"}), + }, + Hydrate: getEmrStudio, + Tags: map[string]string{"service": "elasticmapreduce", "action": "DescribeStudio"}, + }, + List: &plugin.ListConfig{ + Hydrate: listEmrStudios, + Tags: map[string]string{"service": "elasticmapreduce", "action": "ListStudios"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ELASTICMAPREDUCE_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the EMR Studio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "studio_id", + Description: "The ID of the EMR Studio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the EMR Studio.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("StudioArn"), + }, + { + Name: "auth_mode", + Description: "Specifies whether the Studio authenticates users using IAM or IAM Identity Center.", + Type: proto.ColumnType_STRING, + }, + { + Name: "default_s3_location", + Description: "The Amazon S3 location to back up EMR Studio Workspaces and notebook files.", + Type: proto.ColumnType_STRING, + }, + { + Name: "description", + Description: "The detailed description of the EMR Studio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "engine_security_group_id", + Description: "The ID of the Engine security group associated with the Studio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "idp_auth_url", + Description: "The authentication endpoint of your identity provider (IdP).", + Type: proto.ColumnType_STRING, + }, + { + Name: "idp_relay_state_parameter_name", + Description: "The name that your identity provider (IdP) uses for its RelayState parameter.", + Type: proto.ColumnType_STRING, + }, + { + Name: "service_role", + Description: "The IAM role that will be assumed by the Amazon EMR Studio.", + Type: proto.ColumnType_STRING, + Hydrate: getEmrStudioServiceRole, + }, + { + Name: "subnet_ids", + Description: "A list of subnet IDs associated with the EMR Studio.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SubnetIds"), + Hydrate: getEmrStudioSubnetIds, + }, + { + Name: "url", + Description: "The unique access URL of the EMR Studio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "user_role", + Description: "The IAM user role that will be assumed by users and groups logged in to a Studio.", + Type: proto.ColumnType_STRING, + Hydrate: getEmrStudioUserRole, + }, + { + Name: "vpc_id", + Description: "The ID of the VPC associated with the Studio.", + Type: proto.ColumnType_STRING, + Hydrate: getEmrStudioVpcId, + }, + { + Name: "workspace_security_group_id", + Description: "The ID of the Workspace security group associated with the Studio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "creation_time", + Description: "The time when the EMR Studio was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("StudioArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listEmrStudios(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create session + svc, err := EMRClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_emr_studio.listEmrStudios", "connection_error", err) + return nil, err + } + + // List all items + paginator := emr.NewListStudiosPaginator(svc, &emr.ListStudiosInput{}) + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_emr_studio.listEmrStudios", "api_error", err) + return nil, err + } + + for _, item := range output.Studios { + d.StreamListItem(ctx, item) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getEmrStudio(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get client + svc, err := EMRClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_emr_studio.getEmrStudio", "client_error", err) + return nil, err + } + + // Get item ID from query data + var id string + if h.Item != nil { + id = *h.Item.(types.StudioSummary).StudioId + } else { + id = d.EqualsQuals["studio_id"].GetStringValue() + if id == "" { + return nil, nil + } + } + + // Get item details + params := &emr.DescribeStudioInput{ + StudioId: &id, + } + + // Get call + op, err := svc.DescribeStudio(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_emr_studio.getEmrStudio", "api_error", err) + return nil, err + } + + return op.Studio, nil +} + +func getEmrStudioSubnetIds(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + switch item := h.Item.(type) { + case types.Studio: + return item.SubnetIds, nil + case types.StudioSummary: + studio, err := getEmrStudio(ctx, d, h) + if err != nil { + return nil, err + } + return studio.(types.Studio).SubnetIds, nil + default: + return nil, nil + } +} + +func getEmrStudioVpcId(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + switch item := h.Item.(type) { + case types.Studio: + return item.VpcId, nil + case types.StudioSummary: + studio, err := getEmrStudio(ctx, d, h) + if err != nil { + return nil, err + } + return studio.(types.Studio).VpcId, nil + default: + return nil, nil + } +} + +func getEmrStudioUserRole(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + switch item := h.Item.(type) { + case types.Studio: + return item.UserRole, nil + case types.StudioSummary: + studio, err := getEmrStudio(ctx, d, h) + if err != nil { + return nil, err + } + return studio.(types.Studio).UserRole, nil + default: + return nil, nil + } +} + +func getEmrStudioServiceRole(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + switch item := h.Item.(type) { + case types.Studio: + return item.ServiceRole, nil + case types.StudioSummary: + studio, err := getEmrStudio(ctx, d, h) + if err != nil { + return nil, err + } + return studio.(types.Studio).ServiceRole, nil + default: + return nil, nil + } +} diff --git a/aws/table_aws_eventbridge_bus.go b/aws/table_aws_eventbridge_bus.go index 6716f50e3..fb2fb2733 100644 --- a/aws/table_aws_eventbridge_bus.go +++ b/aws/table_aws_eventbridge_bus.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/eventbridge" - eventbridgev1 "github.com/aws/aws-sdk-go/service/eventbridge" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsEventBridgeBus(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "events", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eventbridgev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EVENTS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_eventbridge_rule.go b/aws/table_aws_eventbridge_rule.go index 396dc97ba..fa47cd959 100644 --- a/aws/table_aws_eventbridge_rule.go +++ b/aws/table_aws_eventbridge_rule.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/eventbridge" - eventbridgev1 "github.com/aws/aws-sdk-go/service/eventbridge" - "github.com/turbot/go-kit/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -50,7 +48,7 @@ func tableAwsEventBridgeRule(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "events", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(eventbridgev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EVENTS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_fms_app_list.go b/aws/table_aws_fms_app_list.go index b0d493241..c0befa845 100644 --- a/aws/table_aws_fms_app_list.go +++ b/aws/table_aws_fms_app_list.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/fms" "github.com/aws/aws-sdk-go-v2/service/fms/types" - fmsv1 "github.com/aws/aws-sdk-go/service/fms" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsFMSAppList(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "fms", "action": "GetAppsList"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(fmsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_FMS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "list_name", diff --git a/aws/table_aws_fms_policy.go b/aws/table_aws_fms_policy.go index b7e1ff4e5..9f6ce61a8 100644 --- a/aws/table_aws_fms_policy.go +++ b/aws/table_aws_fms_policy.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/fms" "github.com/aws/aws-sdk-go-v2/service/fms/types" - fmsv1 "github.com/aws/aws-sdk-go/service/fms" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsFMSPolicy(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "fms", "action": "GetPolicy"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(fmsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_FMS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "policy_name", diff --git a/aws/table_aws_fsx_file_system.go b/aws/table_aws_fsx_file_system.go index 4c798cf59..33207783b 100644 --- a/aws/table_aws_fsx_file_system.go +++ b/aws/table_aws_fsx_file_system.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/fsx" "github.com/aws/aws-sdk-go-v2/service/fsx/types" - fsxv1 "github.com/aws/aws-sdk-go/service/fsx" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsFsxFileSystem(_ context.Context) *plugin.Table { Hydrate: listFsxFileSystems, Tags: map[string]string{"service": "fsx", "action": "DescribeFileSystems"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(fsxv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_FSX_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "file_system_id", diff --git a/aws/table_aws_glacier_vault.go b/aws/table_aws_glacier_vault.go index 7df79ea31..a939ff75a 100644 --- a/aws/table_aws_glacier_vault.go +++ b/aws/table_aws_glacier_vault.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glacier" "github.com/aws/aws-sdk-go-v2/service/glacier/types" - glacierv1 "github.com/aws/aws-sdk-go/service/glacier" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -54,7 +52,7 @@ func tableAwsGlacierVault(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "glacier", "action": "ListTagsForVault"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(glacierv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLACIER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "vault_name", diff --git a/aws/table_aws_glue_catalog_database.go b/aws/table_aws_glue_catalog_database.go index c17ac12e2..8a3ad02f2 100644 --- a/aws/table_aws_glue_catalog_database.go +++ b/aws/table_aws_glue_catalog_database.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsGlueCatalogDatabase(_ context.Context) *plugin.Table { Hydrate: listGlueCatalogDatabases, Tags: map[string]string{"service": "glue", "action": "GetDatabases"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_glue_catalog_table.go b/aws/table_aws_glue_catalog_table.go index e268bc58e..ad6f904f4 100644 --- a/aws/table_aws_glue_catalog_table.go +++ b/aws/table_aws_glue_catalog_table.go @@ -9,7 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lakeformation" lakeformationTypes "github.com/aws/aws-sdk-go-v2/service/lakeformation/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -39,7 +38,7 @@ func tableAwsGlueCatalogTable(_ context.Context) *plugin.Table { Hydrate: listGlueCatalogTables, Tags: map[string]string{"service": "glue", "action": "GetTables"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_glue_connection.go b/aws/table_aws_glue_connection.go index 6a4c1605f..aa342562d 100644 --- a/aws/table_aws_glue_connection.go +++ b/aws/table_aws_glue_connection.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsGlueConnection(_ context.Context) *plugin.Table { Hydrate: listGlueConnections, Tags: map[string]string{"service": "glue", "action": "GetConnections"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_glue_crawler.go b/aws/table_aws_glue_crawler.go index 709773387..d6cd2f69d 100644 --- a/aws/table_aws_glue_crawler.go +++ b/aws/table_aws_glue_crawler.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsGlueCrawler(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "glue", "action": "GetCrawler"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_glue_data_catalog_encryption_settings.go b/aws/table_aws_glue_data_catalog_encryption_settings.go index 3d772f4d2..d555f69fa 100644 --- a/aws/table_aws_glue_data_catalog_encryption_settings.go +++ b/aws/table_aws_glue_data_catalog_encryption_settings.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" ) @@ -21,7 +19,7 @@ func tableAwsGlueDataCatalogEncryptionSettings(_ context.Context) *plugin.Table Hydrate: listGlueDataCatalogEncryptionSettings, Tags: map[string]string{"service": "glue", "action": "GetDataCatalogEncryptionSettings"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "encryption_at_rest", diff --git a/aws/table_aws_glue_data_quality_ruleset.go b/aws/table_aws_glue_data_quality_ruleset.go index 96cef1928..858966848 100644 --- a/aws/table_aws_glue_data_quality_ruleset.go +++ b/aws/table_aws_glue_data_quality_ruleset.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -49,7 +47,7 @@ func tableAwsGlueDataQualityRuleset(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "glue", "action": "GetDataQualityRuleset"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_glue_dev_endpoint.go b/aws/table_aws_glue_dev_endpoint.go index dbd03e27f..092472782 100644 --- a/aws/table_aws_glue_dev_endpoint.go +++ b/aws/table_aws_glue_dev_endpoint.go @@ -2,13 +2,12 @@ package aws import ( "context" + "strings" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +31,7 @@ func tableAwsGlueDevEndpoint(_ context.Context) *plugin.Table { Hydrate: listGlueDevEndpoints, Tags: map[string]string{"service": "glue", "action": "GetDevEndpoints"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "endpoint_name", @@ -230,6 +229,16 @@ func listGlueDevEndpoints(ctx context.Context, d *plugin.QueryData, _ *plugin.Hy output, err := paginator.NextPage(ctx) if err != nil { + // AWS Glue service's `GetDevEndpoints` API is not supported in all regions. + // + // Observed unsupported region error: + // + // - In region `ap-southeast-5`: + // Error: aws_nagraj: operation error Glue: GetDevEndpoints, https response error StatusCode: 400, RequestID: af6ada69-e467-4eb7-92f2-7601bb50532e + // api error InvalidInputException: Operation is not supported in region (SQLSTATE HV000) + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Operation is not supported in")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_glue_dev_endpoint.listGlueDevEndpoints", "api_error", err) return nil, err } @@ -276,6 +285,16 @@ func getGlueDevEndpoint(ctx context.Context, d *plugin.QueryData, _ *plugin.Hydr // Get call data, err := svc.GetDevEndpoint(ctx, params) if err != nil { + // AWS Glue service's `GetDevEndpoints` API is not supported in all regions. + // + // Observed unsupported region error: + // + // - In region `ap-southeast-5`: + // Error: aws_nagraj: operation error Glue: GetDevEndpoints, https response error StatusCode: 400, RequestID: af6ada69-e467-4eb7-92f2-7601bb50532e + // api error InvalidInputException: Operation is not supported in region (SQLSTATE HV000) + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Operation is not supported in")) { + return nil, nil + } plugin.Logger(ctx).Error("aws_glue_dev_endpoint.getGlueDevEndpoint", "api_error", err) return nil, err } diff --git a/aws/table_aws_glue_job.go b/aws/table_aws_glue_job.go index e618b7f23..28da5c66e 100644 --- a/aws/table_aws_glue_job.go +++ b/aws/table_aws_glue_job.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsGlueJob(_ context.Context) *plugin.Table { DefaultIgnoreConfig: &plugin.IgnoreConfig{ ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"EntityNotFoundException"}), }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getGlueJobBookmark, diff --git a/aws/table_aws_glue_ml_transform.go b/aws/table_aws_glue_ml_transform.go new file mode 100644 index 000000000..046fe05af --- /dev/null +++ b/aws/table_aws_glue_ml_transform.go @@ -0,0 +1,441 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/glue" + "github.com/aws/aws-sdk-go-v2/service/glue/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsGlueMLTransform(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_glue_ml_transform", + Description: "AWS Glue ML Transform", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("transform_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"EntityNotFoundException"}), + }, + Hydrate: getGlueMLTransform, + Tags: map[string]string{"service": "glue", "action": "GetMLTransform"}, + }, + List: &plugin.ListConfig{ + Hydrate: listGlueMLTransforms, + Tags: map[string]string{"service": "glue", "action": "GetMLTransforms"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException"}), + }, + KeyColumns: []*plugin.KeyColumn{ + { + Name: "name", + Require: plugin.Optional, + }, + { + Name: "status", + Require: plugin.Optional, + }, + { + Name: "transform_type", + Require: plugin.Optional, + }, + { + Name: "glue_version", + Require: plugin.Optional, + }, + { + Name: "created_on", + Require: plugin.Optional, + Operators: []string{">", ">=", "<", "<="}, + }, + { + Name: "last_modified_on", + Require: plugin.Optional, + Operators: []string{">", ">=", "<", "<="}, + }, + }, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getGlueMLTransformTags, + Tags: map[string]string{"service": "glue", "action": "GetTags"}, + }, + { + Func: getGlueMLTransform, + Tags: map[string]string{"service": "glue", "action": "GetMLTransform"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "transform_id", + Description: "The unique identifier of the transform, generated at the time that the transform was created.", + Type: proto.ColumnType_STRING, + }, + { + Name: "name", + Description: "The unique name given to the transform when it was created.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + }, + { + Name: "description", + Description: "A description of the transform.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + }, + { + Name: "status", + Description: "The last known status of the transform (to indicate whether it can be used or not). One of 'NOT_READY', 'READY', or 'DELETING'.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + }, + { + Name: "created_on", + Description: "The date and time when the transform was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getGlueMLTransform, + }, + { + Name: "last_modified_on", + Description: "The date and time when the transform was last modified.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getGlueMLTransform, + }, + { + Name: "glue_version", + Description: "This value determines which version of Glue this machine learning transform is compatible with.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + }, + { + Name: "label_count", + Description: "The number of labels available for this transform.", + Type: proto.ColumnType_INT, + Hydrate: getGlueMLTransform, + }, + { + Name: "max_capacity", + Description: "The number of Glue data processing units (DPUs) that are allocated to task runs for this transform.", + Type: proto.ColumnType_DOUBLE, + Hydrate: getGlueMLTransform, + }, + { + Name: "max_retries", + Description: "The maximum number of times to retry a task for this transform after a task run fails.", + Type: proto.ColumnType_INT, + Hydrate: getGlueMLTransform, + }, + { + Name: "number_of_workers", + Description: "The number of workers of a defined workerType that are allocated when this task runs.", + Type: proto.ColumnType_INT, + Hydrate: getGlueMLTransform, + }, + { + Name: "worker_type", + Description: "The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + }, + { + Name: "transform_type", + Description: "The type of machine learning transform.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + Transform: transform.FromField("Parameters.TransformType"), + }, + { + Name: "timeout", + Description: "The timeout for a task run for this transform in minutes.", + Type: proto.ColumnType_INT, + Hydrate: getGlueMLTransform, + }, + { + Name: "role", + Description: "The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.", + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + }, + { + Name: "input_record_tables", + Description: "A list of Glue table definitions used by the transform.", + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransform, + }, + { + Name: "parameters", + Description: "The configuration parameters that are specific to the algorithm used.", + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransform, + }, + { + Name: "schema", + Description: "The Map object that represents the schema that this transform accepts.", + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransform, + }, + { + Name: "evaluation_metrics", + Description: "The latest evaluation metrics.", + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransform, + }, + { + Name: "transform_encryption", + Description: "The encryption-at-rest settings of the transform that apply to accessing user data.", + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransform, + }, + + // Steampipe standard columns + { + Name: "tags", + Description: "A map of tags for the resource.", + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransformTags, + }, + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Hydrate: getGlueMLTransform, + Transform: transform.From(getGlueMLTransformTitle), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getGlueMLTransformArn, + Transform: transform.FromValue().Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listGlueMLTransforms(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := GlueClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.listGlueMLTransforms", "connection_error", err) + return nil, err + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &glue.ListMLTransformsInput{ + MaxResults: aws.Int32(maxLimit), + } + + // Build filter criteria based on qualifiers + filterCriteria := &types.TransformFilterCriteria{} + + if d.EqualsQuals["name"] != nil { + filterCriteria.Name = aws.String(d.EqualsQuals["name"].GetStringValue()) + } + + if d.EqualsQuals["status"] != nil { + status := types.TransformStatusType(d.EqualsQuals["status"].GetStringValue()) + filterCriteria.Status = status + } + + if d.EqualsQuals["transform_type"] != nil { + transformType := types.TransformType(d.EqualsQuals["transform_type"].GetStringValue()) + filterCriteria.TransformType = transformType + } + + if d.EqualsQuals["glue_version"] != nil { + filterCriteria.GlueVersion = aws.String(d.EqualsQuals["glue_version"].GetStringValue()) + } + + // Handle created_on qualifiers with operators + quals := d.Quals + if quals["created_on"] != nil { + for _, q := range quals["created_on"].Quals { + createdTime := q.Value.GetTimestampValue().AsTime() + switch q.Operator { + case ">=", ">": + filterCriteria.CreatedAfter = &createdTime + case "<", "<=": + filterCriteria.CreatedBefore = &createdTime + } + } + } + + // Handle last_modified_on qualifiers with operators + if quals["last_modified_on"] != nil { + for _, q := range quals["last_modified_on"].Quals { + modifiedTime := q.Value.GetTimestampValue().AsTime() + switch q.Operator { + case ">=", ">": + filterCriteria.LastModifiedAfter = &modifiedTime + case "<", "<=": + filterCriteria.LastModifiedBefore = &modifiedTime + } + } + } + + // Only add filter if any criteria is set + if filterCriteria.Name != nil || filterCriteria.Status != "" || filterCriteria.TransformType != "" || + filterCriteria.GlueVersion != nil || filterCriteria.CreatedAfter != nil || filterCriteria.CreatedBefore != nil || + filterCriteria.LastModifiedAfter != nil || filterCriteria.LastModifiedBefore != nil { + input.Filter = filterCriteria + } + + paginator := glue.NewListMLTransformsPaginator(svc, input, func(o *glue.ListMLTransformsPaginatorOptions) { + o.Limit = maxLimit + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.listGlueMLTransforms", "api_error", err) + return nil, err + } + + for _, transformId := range output.TransformIds { + + transformOutput := &glue.GetMLTransformOutput{ + TransformId: aws.String(transformId), + } + + d.StreamListItem(ctx, transformOutput) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getGlueMLTransform(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var transformId string + + if h.Item != nil { + transform := h.Item.(*glue.GetMLTransformOutput) + transformId = *transform.TransformId + } else { + transformId = d.EqualsQuals["transform_id"].GetStringValue() + } + + // Create service + svc, err := GlueClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.getGlueMLTransform", "connection_error", err) + return nil, err + } + + params := &glue.GetMLTransformInput{ + TransformId: aws.String(transformId), + } + + op, err := svc.GetMLTransform(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.getGlueMLTransform", "api_error", err) + return nil, err + } + + return op, nil +} + +func getGlueMLTransformTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get the transform details + var transformId string + if h.Item != nil { + transform := h.Item.(*glue.GetMLTransformOutput) + transformId = *transform.TransformId + } + + // Create service + svc, err := GlueClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.getGlueMLTransformTags", "connection_error", err) + return nil, err + } + + // Get common columns + c, err := getCommonColumns(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.getGlueMLTransformTags", "common_error", err) + return nil, err + } + commonColumnData := c.(*awsCommonColumnData) + + // arn:aws:glue:region:account-id:mlTransform/transform-id + // https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html#non-catalog-resource-arns + arn := "arn:" + commonColumnData.Partition + ":glue:" + d.EqualsQualString(matrixKeyRegion) + ":" + commonColumnData.AccountId + ":mlTransform/" + transformId + + params := &glue.GetTagsInput{ + ResourceArn: aws.String(arn), + } + + op, err := svc.GetTags(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.getGlueMLTransformTags", "api_error", err) + return nil, err + } + + return op, nil +} + +func getGlueMLTransformArn(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := d.EqualsQualString(matrixKeyRegion) + + var transformId string + if h.Item != nil { + transform := h.Item.(*glue.GetMLTransformOutput) + transformId = *transform.TransformId + } else { + transformId = d.EqualsQuals["transform_id"].GetStringValue() + } + + // Get common columns + c, err := getCommonColumns(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_glue_ml_transform.getGlueMLTransformArn", "common_error", err) + return nil, err + } + commonColumnData := c.(*awsCommonColumnData) + + // arn:aws:glue:region:account-id:mlTransform/transform-id + // https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html#non-catalog-resource-arns + arn := "arn:" + commonColumnData.Partition + ":glue:" + region + ":" + commonColumnData.AccountId + ":mlTransform/" + transformId + + return arn, nil +} + +//// TRANSFORM FUNCTIONS + +func getGlueMLTransformTitle(ctx context.Context, d *transform.TransformData) (interface{}, error) { + data := d.HydrateItem.(*glue.GetMLTransformOutput) + + if data.Name != nil { + return *data.Name, nil + } + + return nil, nil +} diff --git a/aws/table_aws_glue_security_configuration.go b/aws/table_aws_glue_security_configuration.go index a95516f5b..34f851500 100644 --- a/aws/table_aws_glue_security_configuration.go +++ b/aws/table_aws_glue_security_configuration.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/glue" "github.com/aws/aws-sdk-go-v2/service/glue/types" - gluev1 "github.com/aws/aws-sdk-go/service/glue" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsGlueSecurityConfiguration(_ context.Context) *plugin.Table { Hydrate: listGlueSecurityConfigurations, Tags: map[string]string{"service": "glue", "action": "GetSecurityConfigurations"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(gluev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_GLUE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_health_event.go b/aws/table_aws_health_event.go index 692b593ae..aa64f9509 100644 --- a/aws/table_aws_health_event.go +++ b/aws/table_aws_health_event.go @@ -20,6 +20,7 @@ func tableAwsHealthEvent(_ context.Context) *plugin.Table { Hydrate: listHealthEvents, Tags: map[string]string{"service": "health", "action": "DescribeEvents"}, KeyColumns: []*plugin.KeyColumn{ + {Name: "actionability", Require: plugin.Optional}, {Name: "arn", Require: plugin.Optional}, {Name: "availability_zone", Require: plugin.Optional}, {Name: "end_time", Require: plugin.Optional}, @@ -32,6 +33,11 @@ func tableAwsHealthEvent(_ context.Context) *plugin.Table { }, }, Columns: awsGlobalRegionColumns([]*plugin.Column{ + { + Name: "actionability", + Description: "The actionability classification of the HealthEvent. Possible values are ACTION_REQUIRED, ACTION_MAY_BE_REQUIRED, and INFORMATIONAL.", + Type: proto.ColumnType_STRING, + }, { Name: "arn", Description: "The Amazon Resource Name (ARN) of the HealthEvent.", @@ -43,6 +49,13 @@ func tableAwsHealthEvent(_ context.Context) *plugin.Table { Type: proto.ColumnType_STRING, Transform: transform.FromField("Region"), }, + { + Name: "description", + Description: "The description of the event.", + Type: proto.ColumnType_STRING, + Hydrate: getHealthEventDescription, + Transform: transform.FromValue(), + }, { Name: "availability_zone", Description: "The Amazon Web Services Availability Zone of the event.", @@ -163,12 +176,36 @@ func listHealthEvents(ctx context.Context, d *plugin.QueryData, h *plugin.Hydrat return nil, err } +func getHealthEventDescription(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + event := h.Item.(types.Event) + + // Create Session + svc, err := HealthClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_health_event.getHealthEventDescription", "client error", err) + return nil, err + } + + eventDetails, err := svc.DescribeEventDetails(ctx, &health.DescribeEventDetailsInput{EventArns: []string{*event.Arn}}) + if err != nil { + plugin.Logger(ctx).Error("aws_health_event.getHealthEventDescription", "api error", err) + return nil, err + } + + if len(eventDetails.SuccessfulSet) == 1 { + return eventDetails.SuccessfulSet[0].EventDescription.LatestDescription, nil + } + + return nil, nil +} + // / UTILITY FUNCTION // Build health event list call input filter func buildHealthEventFilter(d *plugin.QueryData) *types.EventFilter { filter := &types.EventFilter{} filterQuals := map[string]string{ + "actionability": "string", "arn": "string", "availability_zone": "string", "status_code": "string", @@ -184,8 +221,12 @@ func buildHealthEventFilter(d *plugin.QueryData) *types.EventFilter { if dataType == "string" && d.EqualsQualString(columnName) != "" { value := d.EqualsQualString(columnName) switch columnName { + case "actionability": + filter.Actionabilities = []types.EventActionability{ + types.EventActionability(value), + } case "arn": - filter.EntityArns = ([]string{value}) + filter.EventArns = []string{value} case "availability_zone": filter.AvailabilityZones = []string{value} case "status_code": diff --git a/aws/table_aws_iam_credential_report.go b/aws/table_aws_iam_credential_report.go index 24cb703e1..eddc54a9f 100644 --- a/aws/table_aws_iam_credential_report.go +++ b/aws/table_aws_iam_credential_report.go @@ -212,7 +212,7 @@ func listCredentialReports(ctx context.Context, d *plugin.QueryData, _ *plugin.H var ae smithy.APIError if errors.As(err, &ae) { if ae.ErrorCode() == "ReportNotPresent" { - return nil, errors.New("Credential report not available. Please run 'aws iam generate-credential-report' to generate it and try again.") + return nil, errors.New("credential report not available. Please run 'aws iam generate-credential-report' to generate it and try again") } } plugin.Logger(ctx).Error("aws_iam_credential_report.listCredentialReports", "api_error", err) @@ -266,11 +266,13 @@ func passwordEnabledToBool(_ context.Context, d *transform.TransformData) (inter func passwordStatus(_ context.Context, d *transform.TransformData) (interface{}, error) { used := types.SafeString(d.Value) - pwdStatus := "used" - if used == "no_information" { - pwdStatus = "never_used" - } else if used == "N/A" { - pwdStatus = "not_set" + + switch used { + case "no_information": + return "never_used", nil + case "N/A": + return "not_set", nil + default: + return "used", nil } - return pwdStatus, nil } diff --git a/aws/table_aws_iam_instance_profile.go b/aws/table_aws_iam_instance_profile.go new file mode 100644 index 000000000..c55e3d534 --- /dev/null +++ b/aws/table_aws_iam_instance_profile.go @@ -0,0 +1,246 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/iam" + "github.com/aws/aws-sdk-go-v2/service/iam/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsIamInstanceProfile(ctx context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_iam_instance_profile", + Description: "AWS IAM Instance Profile", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AnyColumn([]string{"instance_profile_name", "arn"}), + Hydrate: getIamInstanceProfile, + Tags: map[string]string{"service": "iam", "action": "GetInstanceProfile"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationError", "NoSuchEntity", "InvalidParameter"}), + }, + }, + List: &plugin.ListConfig{ + Hydrate: listIamInstanceProfiles, + Tags: map[string]string{"service": "iam", "action": "ListInstanceProfiles"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "path", Require: plugin.Optional}, + }, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getIamInstanceProfileTags, + Tags: map[string]string{"service": "iam", "action": "ListInstanceProfileTags"}, + }, + }, + Columns: awsGlobalRegionColumns([]*plugin.Column{ + // "Key" Columns + { + Name: "instance_profile_name", + Description: "The friendly name that identifies the instance profile.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Type: proto.ColumnType_STRING, + Description: "The Amazon Resource Name (ARN) specifying the instance profile.", + }, + { + Name: "instance_profile_id", + Type: proto.ColumnType_STRING, + Description: "The stable and unique string identifying the instance profile.", + }, + + // Other Columns + { + Name: "create_date", + Type: proto.ColumnType_TIMESTAMP, + Description: "The date and time when the instance profile was created.", + }, + { + Name: "path", + Description: "The path to the instance profile. For more information about paths, see IAM identifiers in the IAM User Guide.", + Type: proto.ColumnType_STRING, + }, + { + Name: "roles", + Description: "The role associated with the instance profile.", + Type: proto.ColumnType_JSON, + }, + { + Name: "tags_src", + Description: "A list of tags that are attached to the instance profile.", + Type: proto.ColumnType_JSON, + Hydrate: getIamInstanceProfileTags, + Transform: transform.FromField("Tags"), + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("InstanceProfileName"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getIamInstanceProfileTags, + Transform: transform.From(getIamInstanceProfileTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listIamInstanceProfiles(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Get client + svc, err := IAMClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_iam_instance_profile.listIamInstanceProfiles", "client_error", err) + return nil, err + } + + maxItems := int32(1000) + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + maxItems = limit + } + } + + input := iam.ListInstanceProfilesInput{ + MaxItems: aws.Int32(maxItems), + } + + // Additional filters + if d.EqualsQualString("path") != "" { + input.PathPrefix = aws.String(d.EqualsQualString("path")) + } + + paginator := iam.NewListInstanceProfilesPaginator(svc, &input, func(o *iam.ListInstanceProfilesPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_iam_instance_profile.listIamInstanceProfiles", "api_error", err) + return nil, err + } + + for _, instanceProfile := range output.InstanceProfiles { + d.StreamListItem(ctx, instanceProfile) + + // Context cancelled + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getIamInstanceProfile(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get client + svc, err := IAMClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_iam_instance_profile.getIamInstanceProfile", "client_error", err) + return nil, err + } + + var name string + if h.Item != nil { + instanceProfile := h.Item.(types.InstanceProfile) + name = *instanceProfile.InstanceProfileName + } else { + name = d.EqualsQuals["instance_profile_name"].GetStringValue() + if name == "" { + arn := d.EqualsQuals["arn"].GetStringValue() + name = iamInstanceProfileNameFromArn(arn) + } + } + + params := &iam.GetInstanceProfileInput{InstanceProfileName: aws.String(name)} + + op, err := svc.GetInstanceProfile(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_iam_instance_profile.getIamInstanceProfile", "api_error", err) + return nil, err + } + + return *op.InstanceProfile, nil +} + +func getIamInstanceProfileTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + instanceProfile := h.Item.(types.InstanceProfile) + + // Get client + svc, err := IAMClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_iam_instance_profile.getIamInstanceProfileTags", "client_error", err) + return nil, err + } + + params := &iam.ListInstanceProfileTagsInput{ + InstanceProfileName: instanceProfile.InstanceProfileName, + } + + op, err := svc.ListInstanceProfileTags(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_iam_instance_profile.getIamInstanceProfileTags", "api_error", err) + return nil, err + } + + return op, nil +} + +//// UTILITY FUNCTIONS + +// Extract instance profile name from ARN +func iamInstanceProfileNameFromArn(arn string) string { + // ARN format: arn:aws:iam::account-id:instance-profile/instance-profile-name + parts := strings.Split(arn, "/") + if len(parts) >= 2 { + return parts[1] + } + return "" +} + +//// TRANSFORM FUNCTIONS + +func getIamInstanceProfileTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + tags := d.HydrateItem.(*iam.ListInstanceProfileTagsOutput) + var turbotTagsMap map[string]string + if tags.Tags != nil { + turbotTagsMap = map[string]string{} + for _, i := range tags.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + } + return turbotTagsMap, nil +} \ No newline at end of file diff --git a/aws/table_aws_iam_policy.go b/aws/table_aws_iam_policy.go index 859559bf4..6d95be91a 100644 --- a/aws/table_aws_iam_policy.go +++ b/aws/table_aws_iam_policy.go @@ -118,7 +118,7 @@ func tableAwsIamPolicy(_ context.Context) *plugin.Table { Description: "Contains the details about the policy.", Type: proto.ColumnType_JSON, Hydrate: getPolicyVersion, - Transform: transform.FromField("PolicyVersion.Document").Transform(transform.UnmarshalYAML), + Transform: transform.FromField("PolicyVersion.Document").Transform(transform.UnmarshalJSON), }, { Name: "policy_std", diff --git a/aws/table_aws_identitystore_group.go b/aws/table_aws_identitystore_group.go index c56827de6..88d13044f 100644 --- a/aws/table_aws_identitystore_group.go +++ b/aws/table_aws_identitystore_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/identitystore" "github.com/aws/aws-sdk-go-v2/service/identitystore/types" - identitystorev1 "github.com/aws/aws-sdk-go/service/identitystore" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +32,7 @@ func tableAwsIdentityStoreGroup(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(identitystorev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IDENTITYSTORE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "identity_store_id", diff --git a/aws/table_aws_identitystore_group_membership.go b/aws/table_aws_identitystore_group_membership.go index ba24fcbfc..a45981a79 100644 --- a/aws/table_aws_identitystore_group_membership.go +++ b/aws/table_aws_identitystore_group_membership.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/identitystore" - identitystorev1 "github.com/aws/aws-sdk-go/service/identitystore" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsIdentityStoreGroupMembership(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(identitystorev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IDENTITYSTORE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "membership_id", diff --git a/aws/table_aws_identitystore_user.go b/aws/table_aws_identitystore_user.go index aa5685161..e417ccf64 100644 --- a/aws/table_aws_identitystore_user.go +++ b/aws/table_aws_identitystore_user.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/identitystore" "github.com/aws/aws-sdk-go-v2/service/identitystore/types" - identitystorev1 "github.com/aws/aws-sdk-go/service/identitystore" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -34,7 +32,7 @@ func tableAwsIdentityStoreUser(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(identitystorev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IDENTITYSTORE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "identity_store_id", diff --git a/aws/table_aws_inspector2_coverage.go b/aws/table_aws_inspector2_coverage.go index 680c6db0f..a51ca7485 100644 --- a/aws/table_aws_inspector2_coverage.go +++ b/aws/table_aws_inspector2_coverage.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector2" "github.com/aws/aws-sdk-go-v2/service/inspector2/types" - inspector2v1 "github.com/aws/aws-sdk-go/service/inspector2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsInspector2Coverage(_ context.Context) *plugin.Table { }, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspector2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR2_SERVICE_ID), // We *do not* use the common columns, because the account_id/region of // the default columns come from the call, *not* from the retutned data. diff --git a/aws/table_aws_inspector2_coverage_statistics.go b/aws/table_aws_inspector2_coverage_statistics.go index 44c736984..65a117b74 100644 --- a/aws/table_aws_inspector2_coverage_statistics.go +++ b/aws/table_aws_inspector2_coverage_statistics.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector2" - inspector2v1 "github.com/aws/aws-sdk-go/service/inspector2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" ) @@ -37,7 +35,7 @@ func tableAwsInspector2CoverageStatistics(_ context.Context) *plugin.Table { Hydrate: listInspector2CoverageStatistics, Tags: map[string]string{"service": "inspector2", "action": "ListCoverageStatistics"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspector2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "total_counts", diff --git a/aws/table_aws_inspector2_finding.go b/aws/table_aws_inspector2_finding.go index 4589b6a55..3f1e90a46 100644 --- a/aws/table_aws_inspector2_finding.go +++ b/aws/table_aws_inspector2_finding.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector2" "github.com/aws/aws-sdk-go-v2/service/inspector2/types" - inspector2v1 "github.com/aws/aws-sdk-go/service/inspector2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -68,7 +66,7 @@ func tableAwsInspector2Finding(_ context.Context) *plugin.Table { {Name: "vulnerable_package", Operators: []string{"="}, Require: plugin.Optional, CacheMatch: query_cache.CacheMatchExact}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspector2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { // Technically, this would be "aws_account_id", but "aws" is diff --git a/aws/table_aws_inspector2_member.go b/aws/table_aws_inspector2_member.go index 8b88bda95..04d19a2f4 100644 --- a/aws/table_aws_inspector2_member.go +++ b/aws/table_aws_inspector2_member.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/inspector2" - inspector2v1 "github.com/aws/aws-sdk-go/service/inspector2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsInspector2Member(_ context.Context) *plugin.Table { }, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspector2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR2_SERVICE_ID), // We *do not* use the common columns, because the account_id/region of // the default columns come from the call, *not* from the returned data. @@ -54,7 +52,7 @@ func tableAwsInspector2Member(_ context.Context) *plugin.Table { { Name: "only_associated", Description: "Specifies whether to list only currently associated members if True or to list all members within the organization if False.", - Type: proto.ColumnType_STRING, + Type: proto.ColumnType_BOOL, Transform: transform.FromQual("only_associated"), }, { @@ -109,11 +107,7 @@ func listInspector2Member(ctx context.Context, d *plugin.QueryData, _ *plugin.Hy if d.EqualsQuals["only_associated"] != nil { onlyAssociated := getQualsValueByColumn(d.Quals, "only_associated", "boolean") - if onlyAssociated.(string) == "true" { - input.OnlyAssociated = aws.Bool(true) - } else { - input.OnlyAssociated = aws.Bool(false) - } + input.OnlyAssociated = aws.Bool(onlyAssociated.(bool)) } paginator := inspector2.NewListMembersPaginator(svc, input, func(o *inspector2.ListMembersPaginatorOptions) { diff --git a/aws/table_aws_inspector2_organization_configuration.go b/aws/table_aws_inspector2_organization_configuration.go new file mode 100644 index 000000000..4b63d1fb3 --- /dev/null +++ b/aws/table_aws_inspector2_organization_configuration.go @@ -0,0 +1,108 @@ +package aws + +import ( + "context" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/inspector2" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsInspector2OrganizationConfiguration(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_inspector2_organization_configuration", + Description: "AWS Inspector2 Organization Configuration", + List: &plugin.ListConfig{ + Hydrate: listInspector2OrganizationConfiguration, + Tags: map[string]string{"service": "inspector2", "action": "DescribeOrganizationConfiguration"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "ec2_auto_enable", + Description: "Represents whether Amazon EC2 scans are automatically enabled for new members of your Amazon Inspector organization.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("AutoEnable.Ec2"), + }, + { + Name: "ecr_auto_enable", + Description: "Represents whether Amazon ECR scans are automatically enabled for new members of your Amazon Inspector organization.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("AutoEnable.Ecr"), + }, + { + Name: "lambda_auto_enable", + Description: "Represents whether Amazon Web Services Lambda standard scans are automatically enabled for new members of your Amazon Inspector organization.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("AutoEnable.Lambda"), + }, + { + Name: "lambda_code_auto_enable", + Description: "Represents whether Lambda code scans are automatically enabled for new members of your Amazon Inspector organization.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("AutoEnable.LambdaCode"), + }, + { + Name: "max_account_limit_reached", + Description: "Represents whether your organization has reached the maximum Amazon Web Services account limit for Amazon Inspector.", + Type: proto.ColumnType_BOOL, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.From(getInspector2OrganizationConfigurationTitle), + }, + }), + } +} + +//// LIST FUNCTION + +func listInspector2OrganizationConfiguration(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := Inspector2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_inspector2_organization_configuration.listInspector2OrganizationConfiguration", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &inspector2.DescribeOrganizationConfigurationInput{} + + // Get organization configuration + data, err := svc.DescribeOrganizationConfiguration(ctx, params) + if err != nil { + // For the regions where we have not enable it we will receive the rror: aws: operation error Inspector2: DescribeOrganizationConfiguration, https response error StatusCode: 403, RequestID: 8bb92eba-7e8d-4186-a83a-640e98b5621f, AccessDeniedException: Invoking account does not have access to describe the organization configuration. + if strings.Contains(strings.ToLower(err.Error()), strings.ToLower("Invoking account does not have access to describe the organization configuration")) { + return nil, nil + } + plugin.Logger(ctx).Error("aws_inspector2_organization_configuration.listInspector2OrganizationConfiguration", "api_error", err) + return nil, err + } + + // Stream the single organization configuration + d.StreamListItem(ctx, data) + + return nil, nil +} + +//// TRANSFORM FUNCTIONS + +func getInspector2OrganizationConfigurationTitle(ctx context.Context, d *transform.TransformData) (interface{}, error) { + region := d.MatrixItem[matrixKeyRegion] + + title := region.(string) + " Inspector2 Organization Configuration" + return title, nil +} diff --git a/aws/table_aws_inspector_assessment_run.go b/aws/table_aws_inspector_assessment_run.go index ff1c0f04f..59c37fc70 100644 --- a/aws/table_aws_inspector_assessment_run.go +++ b/aws/table_aws_inspector_assessment_run.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector" "github.com/aws/aws-sdk-go-v2/service/inspector/types" - inspectorv1 "github.com/aws/aws-sdk-go/service/inspector" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsInspectorAssessmentRun(_ context.Context) *plugin.Table { {Name: "state", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspectorv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_inspector_assessment_target.go b/aws/table_aws_inspector_assessment_target.go index 2218ff676..a66d0258a 100644 --- a/aws/table_aws_inspector_assessment_target.go +++ b/aws/table_aws_inspector_assessment_target.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector" "github.com/aws/aws-sdk-go-v2/service/inspector/types" - inspectorv1 "github.com/aws/aws-sdk-go/service/inspector" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsInspectorAssessmentTarget(_ context.Context) *plugin.Table { Hydrate: listInspectorAssessmentTargets, Tags: map[string]string{"service": "inspector", "action": "ListAssessmentTargets"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspectorv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_inspector_assessment_template.go b/aws/table_aws_inspector_assessment_template.go index 8a4cac36e..86913ef26 100644 --- a/aws/table_aws_inspector_assessment_template.go +++ b/aws/table_aws_inspector_assessment_template.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector" "github.com/aws/aws-sdk-go-v2/service/inspector/types" - inspectorv1 "github.com/aws/aws-sdk-go/service/inspector" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -50,7 +48,7 @@ func tableAwsInspectorAssessmentTemplate(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "inspector", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspectorv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_inspector_exclusion.go b/aws/table_aws_inspector_exclusion.go index 8aa2717ac..cea997323 100644 --- a/aws/table_aws_inspector_exclusion.go +++ b/aws/table_aws_inspector_exclusion.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector" "github.com/aws/aws-sdk-go-v2/service/inspector/types" - inspectorv1 "github.com/aws/aws-sdk-go/service/inspector" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsInspectorExclusion(_ context.Context) *plugin.Table { {Name: "assessment_run_arn", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspectorv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_inspector_finding.go b/aws/table_aws_inspector_finding.go index 078234798..802826683 100644 --- a/aws/table_aws_inspector_finding.go +++ b/aws/table_aws_inspector_finding.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/inspector" "github.com/aws/aws-sdk-go-v2/service/inspector/types" - inspectorv1 "github.com/aws/aws-sdk-go/service/inspector" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsInspectorFinding(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "inspector", "action": "DescribeFindings"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(inspectorv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INSPECTOR_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_iot_fleet_metric.go b/aws/table_aws_iot_fleet_metric.go index 5ac2c0763..6b4c045e5 100644 --- a/aws/table_aws_iot_fleet_metric.go +++ b/aws/table_aws_iot_fleet_metric.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iot" "github.com/aws/aws-sdk-go-v2/service/iot/types" - iotv1 "github.com/aws/aws-sdk-go/service/iot" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsIoTFleetMetric(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "iot", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(iotv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IOT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "metric_name", diff --git a/aws/table_aws_iot_thing.go b/aws/table_aws_iot_thing.go index d59777258..cd900f884 100644 --- a/aws/table_aws_iot_thing.go +++ b/aws/table_aws_iot_thing.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iot" "github.com/aws/aws-sdk-go-v2/service/iot/types" - iotv1 "github.com/aws/aws-sdk-go/service/iot" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,7 +45,7 @@ func tableAwsIoTThing(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "iot", "action": "DescribeThing"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(iotv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IOT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "thing_name", diff --git a/aws/table_aws_iot_thing_group.go b/aws/table_aws_iot_thing_group.go index 748634e18..170aea05e 100644 --- a/aws/table_aws_iot_thing_group.go +++ b/aws/table_aws_iot_thing_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iot" "github.com/aws/aws-sdk-go-v2/service/iot/types" - iotv1 "github.com/aws/aws-sdk-go/service/iot" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsIoTThingGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "iot", "action": "DescribeThingGroup"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(iotv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IOT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "group_name", diff --git a/aws/table_aws_iot_thing_type.go b/aws/table_aws_iot_thing_type.go index 4540692fd..3eda42cb7 100644 --- a/aws/table_aws_iot_thing_type.go +++ b/aws/table_aws_iot_thing_type.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iot" "github.com/aws/aws-sdk-go-v2/service/iot/types" - iotv1 "github.com/aws/aws-sdk-go/service/iot" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsIoTThingType(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "iot", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(iotv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_IOT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "thing_type_name", diff --git a/aws/table_aws_keyspaces_keyspace.go b/aws/table_aws_keyspaces_keyspace.go index f77c0c4f5..c9d98a256 100644 --- a/aws/table_aws_keyspaces_keyspace.go +++ b/aws/table_aws_keyspaces_keyspace.go @@ -4,8 +4,6 @@ import ( "context" "github.com/aws/aws-sdk-go-v2/service/keyspaces" - // "github.com/aws/aws-sdk-go-v2/service/keyspaces/types" - keyspacesv1 "github.com/aws/aws-sdk-go/service/keyspaces" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -20,7 +18,7 @@ func tableAwsKeyspacesKeyspace(ctx context.Context) *plugin.Table { Description: "AWS Keyspaces Keyspace", Get: &plugin.GetConfig{ KeyColumns: plugin.SingleColumn("keyspace_name"), // Identify the keyspace by its name - Hydrate: getKeyspacesKeyspace, // Get function + Hydrate: getKeyspacesKeyspace, // Get function IgnoreConfig: &plugin.IgnoreConfig{ ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, @@ -30,7 +28,7 @@ func tableAwsKeyspacesKeyspace(ctx context.Context) *plugin.Table { Hydrate: listKeyspacesKeyspaces, // Parent hydrate function Tags: map[string]string{"service": "keyspaces", "action": "ListKeyspaces"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(keyspacesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CASSANDRA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "keyspace_name", diff --git a/aws/table_aws_keyspaces_table.go b/aws/table_aws_keyspaces_table.go index d4f41abef..46908f1b6 100644 --- a/aws/table_aws_keyspaces_table.go +++ b/aws/table_aws_keyspaces_table.go @@ -5,7 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/keyspaces" "github.com/aws/aws-sdk-go-v2/service/keyspaces/types" - keyspacesv1 "github.com/aws/aws-sdk-go/service/keyspaces" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -40,7 +39,7 @@ func tableAwsKeyspacesTable(ctx context.Context) *plugin.Table { Tags: map[string]string{"service": "keyspaces", "action": "GetTable"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(keyspacesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_CASSANDRA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "keyspace_name", diff --git a/aws/table_aws_kinesis_consumer.go b/aws/table_aws_kinesis_consumer.go index 9f63b39e9..bd574a1e8 100644 --- a/aws/table_aws_kinesis_consumer.go +++ b/aws/table_aws_kinesis_consumer.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kinesis/types" "github.com/aws/smithy-go" - kinesisv1 "github.com/aws/aws-sdk-go/service/kinesis" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -23,9 +21,10 @@ func tableAwsKinesisConsumer(_ context.Context) *plugin.Table { Name: "aws_kinesis_consumer", Description: "AWS Kinesis Consumer", Get: &plugin.GetConfig{ + // For the other region where resource is not found, it returns InvalidArgumentException KeyColumns: plugin.SingleColumn("consumer_arn"), IgnoreConfig: &plugin.IgnoreConfig{ - ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException", "InvalidArgumentException"}), }, Hydrate: getAwsKinesisConsumer, Tags: map[string]string{"service": "kinesis", "action": "DescribeStreamConsumer"}, @@ -35,7 +34,7 @@ func tableAwsKinesisConsumer(_ context.Context) *plugin.Table { Hydrate: listKinesisConsumers, Tags: map[string]string{"service": "kinesis", "action": "ListStreamConsumers"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(kinesisv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KINESIS_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getAwsKinesisConsumer, diff --git a/aws/table_aws_kinesis_firehose_delivery_stream.go b/aws/table_aws_kinesis_firehose_delivery_stream.go index 5442c4dfd..15084235e 100644 --- a/aws/table_aws_kinesis_firehose_delivery_stream.go +++ b/aws/table_aws_kinesis_firehose_delivery_stream.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/firehose" "github.com/aws/aws-sdk-go-v2/service/firehose/types" - kinesisv1 "github.com/aws/aws-sdk-go/service/kinesis" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsKinesisFirehoseDeliveryStream(_ context.Context) *plugin.Table { {Name: "delivery_stream_type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(kinesisv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KINESIS_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: describeFirehoseDeliveryStream, diff --git a/aws/table_aws_kinesis_stream.go b/aws/table_aws_kinesis_stream.go index ce0e8be21..428bf07d2 100644 --- a/aws/table_aws_kinesis_stream.go +++ b/aws/table_aws_kinesis_stream.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kinesis" "github.com/aws/aws-sdk-go-v2/service/kinesis/types" - kinesisv1 "github.com/aws/aws-sdk-go/service/kinesis" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsKinesisStream(_ context.Context) *plugin.Table { Hydrate: listStreams, Tags: map[string]string{"service": "kinesis", "action": "ListStreams"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(kinesisv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KINESIS_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: describeStream, diff --git a/aws/table_aws_kinesis_video_stream.go b/aws/table_aws_kinesis_video_stream.go index f638e239a..ed60b9e44 100644 --- a/aws/table_aws_kinesis_video_stream.go +++ b/aws/table_aws_kinesis_video_stream.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kinesisvideo" "github.com/aws/aws-sdk-go-v2/service/kinesisvideo/types" - kinesisv1 "github.com/aws/aws-sdk-go/service/kinesis" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsKinesisVideoStream(_ context.Context) *plugin.Table { Hydrate: listKinesisVideoStreams, Tags: map[string]string{"service": "kinesisvideo", "action": "ListStreams"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(kinesisv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KINESIS_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: listKinesisVideoStreamTags, diff --git a/aws/table_aws_kinesisanalyticsv2_application.go b/aws/table_aws_kinesisanalyticsv2_application.go index 65d69a951..c69eada23 100644 --- a/aws/table_aws_kinesisanalyticsv2_application.go +++ b/aws/table_aws_kinesisanalyticsv2_application.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2" "github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2/types" - kinesisanalyticsv2v1 "github.com/aws/aws-sdk-go/service/kinesisanalyticsv2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsKinesisAnalyticsV2Application(_ context.Context) *plugin.Table { Hydrate: listKinesisAnalyticsV2Applications, Tags: map[string]string{"service": "kinesisanalytics", "action": "ListApplications"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(kinesisanalyticsv2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KINESISANALYTICS_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getKinesisAnalyticsV2Application, diff --git a/aws/table_aws_kms_alias.go b/aws/table_aws_kms_alias.go index 24c98c049..b9f834e61 100644 --- a/aws/table_aws_kms_alias.go +++ b/aws/table_aws_kms_alias.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kms" "github.com/aws/aws-sdk-go-v2/service/kms/types" - kmsv1 "github.com/aws/aws-sdk-go/service/kms" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,7 +23,7 @@ func tableAwsKmsAlias(ctx context.Context) *plugin.Table { Hydrate: listKmsAliases, Tags: map[string]string{"service": "kms", "action": "ListAliases"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(kmsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KMS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "alias_name", diff --git a/aws/table_aws_kms_key.go b/aws/table_aws_kms_key.go index a09596450..53fdc2551 100644 --- a/aws/table_aws_kms_key.go +++ b/aws/table_aws_kms_key.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kms" "github.com/aws/aws-sdk-go-v2/service/kms/types" - kmsv1 "github.com/aws/aws-sdk-go/service/kms" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -37,7 +35,7 @@ func tableAwsKmsKey(ctx context.Context) *plugin.Table { Hydrate: listKmsKeys, Tags: map[string]string{"service": "kms", "action": "ListKeys"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(kmsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KMS_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getAwsKmsKeyData, diff --git a/aws/table_aws_kms_key_rotation.go b/aws/table_aws_kms_key_rotation.go index 9c33db3c2..0b05cfd52 100644 --- a/aws/table_aws_kms_key_rotation.go +++ b/aws/table_aws_kms_key_rotation.go @@ -12,8 +12,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kms/types" "github.com/aws/smithy-go" - kmsv1 "github.com/aws/aws-sdk-go/service/kms" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsKmsKeyRotation(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(kmsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KMS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "key_id", diff --git a/aws/table_aws_lakeformation_permission.go b/aws/table_aws_lakeformation_permission.go index 4f99a0fb5..7c858e79e 100644 --- a/aws/table_aws_lakeformation_permission.go +++ b/aws/table_aws_lakeformation_permission.go @@ -6,7 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/lakeformation" "github.com/aws/aws-sdk-go-v2/service/lakeformation/types" - lakeformationv1 "github.com/aws/aws-sdk-go/service/lakeformation" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -44,7 +43,7 @@ func tableAwsLakeformationPermission(ctx context.Context) *plugin.Table { }, Tags: map[string]string{"service": "lakeformation", "action": "ListPermissions"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(lakeformationv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAKEFORMATION_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ // Principal Information { diff --git a/aws/table_aws_lakeformation_resource.go b/aws/table_aws_lakeformation_resource.go index 65ff96fe9..da5d38237 100644 --- a/aws/table_aws_lakeformation_resource.go +++ b/aws/table_aws_lakeformation_resource.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/lakeformation" - lakeformationv1 "github.com/aws/aws-sdk-go/service/lakeformation" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsLakeformationResource(ctx context.Context) *plugin.Table { Hydrate: listLakeformationResources, Tags: map[string]string{"service": "lakeformation", "action": "ListResources"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(lakeformationv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAKEFORMATION_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "resource_arn", diff --git a/aws/table_aws_lakeformation_tag.go b/aws/table_aws_lakeformation_tag.go index 300cb780a..f096b5ce8 100644 --- a/aws/table_aws_lakeformation_tag.go +++ b/aws/table_aws_lakeformation_tag.go @@ -5,7 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/lakeformation" - lakeformationv1 "github.com/aws/aws-sdk-go/service/lakeformation" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -36,7 +35,7 @@ func tableAwsLakeformationTag(ctx context.Context) *plugin.Table { }, Tags: map[string]string{"service": "lakeformation", "action": "ListLFTags"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(lakeformationv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAKEFORMATION_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ // Principal Information { diff --git a/aws/table_aws_lambda_alias.go b/aws/table_aws_lambda_alias.go index 197a8b7dd..cad481862 100644 --- a/aws/table_aws_lambda_alias.go +++ b/aws/table_aws_lambda_alias.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lambda" "github.com/aws/aws-sdk-go-v2/service/lambda/types" - lambdav1 "github.com/aws/aws-sdk-go/service/lambda" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -40,7 +38,7 @@ func tableAwsLambdaAlias(_ context.Context) *plugin.Table { {Name: "function_name", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(lambdav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAMBDA_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getLambdaAliasPolicy, @@ -107,6 +105,12 @@ func tableAwsLambdaAlias(_ context.Context) *plugin.Table { Hydrate: getLambdaAliasUrlConfig, Transform: transform.FromValue(), }, + { + Name: "routing_config", + Description: "The routing configuration of the alias, including additional version weights for traffic splitting.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Alias.RoutingConfig"), + }, // Steampipe standard columns { diff --git a/aws/table_aws_lambda_event_source_mapping.go b/aws/table_aws_lambda_event_source_mapping.go index 1d28af892..6e6bd20ef 100644 --- a/aws/table_aws_lambda_event_source_mapping.go +++ b/aws/table_aws_lambda_event_source_mapping.go @@ -7,7 +7,7 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/lambda" "github.com/aws/aws-sdk-go-v2/service/lambda/types" - lambdav1 "github.com/aws/aws-sdk-go/service/lambda" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -24,7 +24,7 @@ func tableAwsLambdaEventSourceMapping(_ context.Context) *plugin.Table { }, List: &plugin.ListConfig{ Hydrate: listAwsLambdaEventSourceMappings, - Tags: map[string]string{"service": "lambda", "action": "ListEventSourceMappings"}, + Tags: map[string]string{"service": "lambda", "action": "ListEventSourceMappings"}, KeyColumns: plugin.KeyColumnSlice{ { Name: "arn", @@ -40,7 +40,7 @@ func tableAwsLambdaEventSourceMapping(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(lambdav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAMBDA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "uuid", diff --git a/aws/table_aws_lambda_function.go b/aws/table_aws_lambda_function.go index 145db225d..06f962c5d 100644 --- a/aws/table_aws_lambda_function.go +++ b/aws/table_aws_lambda_function.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lambda" "github.com/aws/aws-sdk-go-v2/service/lambda/types" - lambdav1 "github.com/aws/aws-sdk-go/service/lambda" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -31,7 +29,7 @@ func tableAwsLambdaFunction(_ context.Context) *plugin.Table { Hydrate: listAwsLambdaFunctions, Tags: map[string]string{"service": "lambda", "action": "ListFunctions"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(lambdav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAMBDA_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getAwsLambdaFunction, @@ -222,6 +220,12 @@ func tableAwsLambdaFunction(_ context.Context) *plugin.Table { Type: proto.ColumnType_JSON, Transform: transform.FromField("Configuration.FileSystemConfigs", "FileSystemConfigs"), }, + { + Name: "ephemeral_storage", + Description: "The size of the function's /tmp directory in MB. The default value is 512, but can be any whole number between 512 and 10,240 MB.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Configuration.EphemeralStorage", "EphemeralStorage"), + }, { Name: "policy", Description: "The resource-based iam policy of Lambda function.", diff --git a/aws/table_aws_lambda_layer.go b/aws/table_aws_lambda_layer.go index 8eb8654cb..51508da72 100644 --- a/aws/table_aws_lambda_layer.go +++ b/aws/table_aws_lambda_layer.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lambda" - lambdav1 "github.com/aws/aws-sdk-go/service/lambda" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -20,7 +18,7 @@ func tableAwsLambdaLayer(_ context.Context) *plugin.Table { Hydrate: listLambdaLayers, Tags: map[string]string{"service": "lambda", "action": "ListLayers"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(lambdav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAMBDA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "layer_name", diff --git a/aws/table_aws_lambda_layer_version.go b/aws/table_aws_lambda_layer_version.go index 982ca19b4..b9f5699e9 100644 --- a/aws/table_aws_lambda_layer_version.go +++ b/aws/table_aws_lambda_layer_version.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lambda" "github.com/aws/aws-sdk-go-v2/service/lambda/types" - lambdav1 "github.com/aws/aws-sdk-go/service/lambda" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -38,7 +36,7 @@ func tableAwsLambdaLayerVersion(_ context.Context) *plugin.Table { {Name: "layer_name", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(lambdav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAMBDA_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getLambdaLayerVersionPolicy, diff --git a/aws/table_aws_lambda_version.go b/aws/table_aws_lambda_version.go index 6cbc3584b..9a5acaf42 100644 --- a/aws/table_aws_lambda_version.go +++ b/aws/table_aws_lambda_version.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lambda" "github.com/aws/aws-sdk-go-v2/service/lambda/types" - lambdav1 "github.com/aws/aws-sdk-go/service/lambda" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -38,12 +36,16 @@ func tableAwsLambdaVersion(_ context.Context) *plugin.Table { {Name: "function_name", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(lambdav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LAMBDA_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getFunctionVersionPolicy, Tags: map[string]string{"service": "lambda", "action": "GetPolicy"}, }, + { + Func: getFunctionVersionCode, + Tags: map[string]string{"service": "lambda", "action": "GetFunction"}, + }, }, Columns: awsRegionalColumns([]*plugin.Column{ { @@ -268,6 +270,12 @@ func tableAwsLambdaVersion(_ context.Context) *plugin.Table { Description: "The function's X-Ray tracing configuration.", Type: proto.ColumnType_JSON, }, + { + Name: "code", + Description: "The deployment package of the function or version.", + Type: proto.ColumnType_JSON, + Hydrate: getFunctionVersionCode, + }, // Standard columns for all tables { @@ -447,3 +455,38 @@ func getFunctionVersionPolicy(ctx context.Context, d *plugin.QueryData, h *plugi return op, nil } + +func getFunctionVersionCode(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + version := h.Item.(types.FunctionConfiguration) + + // Create Session + svc, err := LambdaClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_lambda_version.getFunctionVersionCode", "connection_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + input := &lambda.GetFunctionInput{ + FunctionName: aws.String(*version.FunctionName), + Qualifier: aws.String(*version.Version), + } + + op, err := svc.GetFunction(ctx, input) + if err != nil { + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "ResourceNotFoundException" { + return nil, nil + } + } + plugin.Logger(ctx).Error("aws_lambda_version.getFunctionVersionCode", "api_error", err) + return nil, err + } + + return op, nil +} diff --git a/aws/table_aws_lightsail_bucket.go b/aws/table_aws_lightsail_bucket.go index 369bf37de..a2fb57083 100644 --- a/aws/table_aws_lightsail_bucket.go +++ b/aws/table_aws_lightsail_bucket.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lightsail" "github.com/aws/aws-sdk-go-v2/service/lightsail/types" - lightsailv1 "github.com/aws/aws-sdk-go/service/lightsail" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -27,7 +25,7 @@ func tableAwsLightsailBucket(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "lightsail", "action": "GetBuckets"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(lightsailv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LIGHTSAIL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_lightsail_instance.go b/aws/table_aws_lightsail_instance.go index a4e302451..a3254133e 100644 --- a/aws/table_aws_lightsail_instance.go +++ b/aws/table_aws_lightsail_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/lightsail" "github.com/aws/aws-sdk-go-v2/service/lightsail/types" - lightsailv1 "github.com/aws/aws-sdk-go/service/lightsail" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsLightsailInstance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "lightsail", "action": "GetInstance"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(lightsailv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LIGHTSAIL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_macie2_classification_job.go b/aws/table_aws_macie2_classification_job.go index 3581ee72d..49b354d2c 100644 --- a/aws/table_aws_macie2_classification_job.go +++ b/aws/table_aws_macie2_classification_job.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/macie2" "github.com/aws/aws-sdk-go-v2/service/macie2/types" - macie2v1 "github.com/aws/aws-sdk-go/service/macie2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsMacie2ClassificationJob(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "macie2", "action": "DescribeClassificationJob"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(macie2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MACIE2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_macie2_finding.go b/aws/table_aws_macie2_finding.go new file mode 100644 index 000000000..2ec324e0b --- /dev/null +++ b/aws/table_aws_macie2_finding.go @@ -0,0 +1,307 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/macie2" + "github.com/aws/aws-sdk-go-v2/service/macie2/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsMacie2Finding(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_macie2_finding", + Description: "AWS Macie2 Finding", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getMacie2Finding, + Tags: map[string]string{"service": "macie2", "action": "GetFindings"}, + }, + List: &plugin.ListConfig{ + Hydrate: listMacie2Findings, + Tags: map[string]string{"service": "macie2", "action": "ListFindings"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "type", Require: plugin.Optional, Operators: []string{"=", "<>"}}, + {Name: "severity", Require: plugin.Optional, Operators: []string{"=", "<>"}}, + {Name: "status", Require: plugin.Optional, Operators: []string{"=", "<>"}}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MACIE2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "id", + Description: "The unique identifier for the finding.", + Type: proto.ColumnType_STRING, + }, + { + Name: "type", + Description: "The type of finding.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + }, + { + Name: "severity", + Description: "The severity level of the finding.", + Type: proto.ColumnType_JSON, + Hydrate: getMacie2Finding, + }, + { + Name: "status", + Description: "The status of the finding.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + }, + { + Name: "created_at", + Description: "The date and time, in UTC and extended ISO 8601 format, when the finding was created.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getMacie2Finding, + }, + { + Name: "updated_at", + Description: "The date and time, in UTC and extended ISO 8601 format, when the finding was last updated.", + Type: proto.ColumnType_TIMESTAMP, + Hydrate: getMacie2Finding, + Transform: transform.FromField("UpdatedAt").Transform(transform.NullIfZeroValue), + }, + { + Name: "description", + Description: "A description of the finding.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + }, + { + Name: "category", + Description: "The category of the finding.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + }, + { + Name: "count", + Description: "The total number of occurrences of the finding.", + Type: proto.ColumnType_INT, + Hydrate: getMacie2Finding, + }, + { + Name: "resources_affected", + Description: "The resources that the finding applies to.", + Type: proto.ColumnType_JSON, + Hydrate: getMacie2Finding, + }, + { + Name: "sample", + Description: "A sample of the data that triggered the finding.", + Type: proto.ColumnType_JSON, + Hydrate: getMacie2Finding, + }, + { + Name: "classification_details", + Description: "The details of the classification that produced the finding.", + Type: proto.ColumnType_JSON, + Hydrate: getMacie2Finding, + }, + { + Name: "policy_details", + Description: "The details of a policy finding. This value is null for a sensitive data finding.", + Type: proto.ColumnType_JSON, + Hydrate: getMacie2Finding, + }, + { + Name: "remediation", + Description: "Information about the remediation steps for the finding.", + Type: proto.ColumnType_JSON, + Hydrate: getMacie2Finding, + }, + { + Name: "archived", + Description: "Specifies whether the finding is archived.", + Type: proto.ColumnType_BOOL, + Hydrate: getMacie2Finding, + }, + { + Name: "source_account_id", + Description: "The AWS account ID for the account that owns the finding.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + Transform: transform.FromField("AccountId"), + }, + { + Name: "source_partition", + Description: "The Amazon Web Services partition that Amazon Macie created the finding in.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + Transform: transform.FromField("Partition"), + }, + { + Name: "source_region", + Description: "The Amazon Web Services Region that Amazon Macie created the finding in.", + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + Transform: transform.FromField("Region"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Hydrate: getMacie2Finding, + }, + }), + } +} + +//// LIST FUNCTION + +func listMacie2Findings(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create session + svc, err := Macie2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_macie2_finding.listMacie2Findings", "client_error", err) + return nil, err + } + // Service is not supported in the region + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + maxItems := int32(50) + input := &macie2.ListFindingsInput{ + MaxResults: aws.Int32(maxItems), + } + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + maxItems = int32(limit) + } + } + + filterCriteria := buildMacie2FindingsFilterCriteria(d.Quals) + + if len(filterCriteria.Criterion) > 0 { + input.FindingCriteria = filterCriteria + } + + // List call + paginator := macie2.NewListFindingsPaginator(svc, input, func(o *macie2.ListFindingsPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_macie2_finding.listMacie2Findings", "api_error", err) + return nil, err + } + + for _, findingId := range output.FindingIds { + d.StreamListItem(ctx, types.Finding{Id: &findingId}) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getMacie2Finding(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var id string + if h.Item != nil { + id = *h.Item.(types.Finding).Id + } else { + id = d.EqualsQuals["id"].GetStringValue() + } + + // empty check for finding id + if id == "" { + return nil, nil + } + + // Create session + svc, err := Macie2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_macie2_finding.getMacie2Finding", "client_error", err) + return nil, err + } + // Service is not supported in the region + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build params + params := &macie2.GetFindingsInput{ + FindingIds: []string{id}, + } + + // Get call + op, err := svc.GetFindings(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_macie2_finding.getMacie2Finding", "api_error", err) + return nil, err + } + + if len(op.Findings) > 0 { + return op.Findings[0], nil + } + + return nil, nil +} + +//// UTILITY FUNCTION +//// Build macie2 list findings filter criteria + +func buildMacie2FindingsFilterCriteria(quals plugin.KeyColumnQualMap) *types.FindingCriteria { + filterCriteria := &types.FindingCriteria{ + Criterion: make(map[string]types.CriterionAdditionalProperties), + } + + filterQuals := map[string]string{ + "finding_type": "type", + "severity": "severity", + "status": "status", + } + + for columnName, filterName := range filterQuals { + if quals[columnName] != nil { + value := getQualsValueByColumn(quals, columnName, "string") + + filter := types.CriterionAdditionalProperties{ + Eq: []string{value.(string)}, + } + + if filterName == "type" { + filterCriteria.Criterion["type"] = filter + } + if filterName == "severity" { + filterCriteria.Criterion["severity"] = filter + } + if filterName == "status" { + filterCriteria.Criterion["status"] = filter + } + } + } + + return filterCriteria +} diff --git a/aws/table_aws_media_store_container.go b/aws/table_aws_media_store_container.go index 71c6ca022..f04586e00 100644 --- a/aws/table_aws_media_store_container.go +++ b/aws/table_aws_media_store_container.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/mediastore" "github.com/aws/aws-sdk-go-v2/service/mediastore/types" - mediastorev1 "github.com/aws/aws-sdk-go/service/mediastore" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -47,7 +45,7 @@ func tableAwsMediaStoreContainer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "mediastore", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(mediastorev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MEDIASTORE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_memorydb_cluster.go b/aws/table_aws_memorydb_cluster.go index 137e4af4e..7824e6691 100644 --- a/aws/table_aws_memorydb_cluster.go +++ b/aws/table_aws_memorydb_cluster.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/memorydb" - memorydbv1 "github.com/aws/aws-sdk-go/service/memorydb" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsMemoryDBCluster(_ context.Context) *plugin.Table { {Name: "name", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(memorydbv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MEMORY_DB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -212,6 +210,7 @@ func listAwsMemoryDBClusters(ctx context.Context, d *plugin.QueryData, h *plugin // Page size must be greater than 0 and less than or equal to 1000 input := &memorydb.DescribeClustersInput{ MaxResults: aws.Int32(maxLimit), + ShowShardDetails: aws.Bool(true), } paginator := memorydb.NewDescribeClustersPaginator(svc, input, func(o *memorydb.DescribeClustersPaginatorOptions) { diff --git a/aws/table_aws_mgn_application.go b/aws/table_aws_mgn_application.go index 37e79d22f..0b549dd95 100644 --- a/aws/table_aws_mgn_application.go +++ b/aws/table_aws_mgn_application.go @@ -2,15 +2,11 @@ package aws import ( "context" - "log" - "strconv" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/mgn" "github.com/aws/aws-sdk-go-v2/service/mgn/types" - mgnv1 "github.com/aws/aws-sdk-go/service/mgn" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +31,7 @@ func tableAwsMGNApplication(_ context.Context) *plugin.Table { {Name: "is_archived", Require: plugin.Optional, Operators: []string{"=", "<>"}}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(mgnv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MGN_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -195,10 +191,7 @@ func buildMGNApplicationFilter(quals plugin.KeyColumnQualMap) *types.ListApplica } case "is_archived": value := getQualsValueByColumn(quals, columnName, "boolean") - boolValue, err := strconv.ParseBool(value.(string)) - if err != nil { - log.Fatal(err) - } + boolValue := value.(bool) filter.IsArchived = aws.Bool(boolValue) } } diff --git a/aws/table_aws_mq_broker.go b/aws/table_aws_mq_broker.go index 095ec185e..94261d062 100644 --- a/aws/table_aws_mq_broker.go +++ b/aws/table_aws_mq_broker.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/mq" "github.com/aws/aws-sdk-go-v2/service/mq/types" - mqv1 "github.com/aws/aws-sdk-go/service/mq" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsMQBroker(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "mq", "action": "DescribeBroker"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(mqv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_MQ_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "broker_name", diff --git a/aws/table_aws_msk_cluster.go b/aws/table_aws_msk_cluster.go index e8969bb9e..8825587c6 100644 --- a/aws/table_aws_msk_cluster.go +++ b/aws/table_aws_msk_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kafka" "github.com/aws/aws-sdk-go-v2/service/kafka/types" - kafkav1 "github.com/aws/aws-sdk-go/service/kafka" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -46,7 +44,7 @@ func tableAwsMSKCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "kafka", "action": "GetBootstrapBrokers"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(kafkav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KAFKA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_msk_serverless_cluster.go b/aws/table_aws_msk_serverless_cluster.go index a50d28831..f015ce469 100644 --- a/aws/table_aws_msk_serverless_cluster.go +++ b/aws/table_aws_msk_serverless_cluster.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/kafka/types" - kafkav1 "github.com/aws/aws-sdk-go/service/kafka" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsMSKServerlessCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "kafka", "action": "DescribeClusterOperation"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(kafkav1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KAFKA_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_mskconnect_connector.go b/aws/table_aws_mskconnect_connector.go new file mode 100644 index 000000000..dd1aebfa7 --- /dev/null +++ b/aws/table_aws_mskconnect_connector.go @@ -0,0 +1,316 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/kafkaconnect" + "github.com/aws/aws-sdk-go-v2/service/kafkaconnect/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" +) + +//// TABLE DEFINITION + +func tableAwsMSKConnectConnector(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_mskconnect_connector", + Description: "AWS MSK Connect Connector", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("arn"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException", "BadRequestException"}), + }, + Hydrate: getMSKConnectConnector, + Tags: map[string]string{"service": "kafkaconnect", "action": "DescribeConnector"}, + }, + List: &plugin.ListConfig{ + Hydrate: listMSKConnectConnectors, + Tags: map[string]string{"service": "kafkaconnect", "action": "ListConnectors"}, + KeyColumns: []*plugin.KeyColumn{ + { + Name: "connector_name_prefix", + Require: plugin.Optional, + CacheMatch: query_cache.CacheMatchExact, + }, + }, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getMSKConnectConnector, + Tags: map[string]string{"service": "kafkaconnect", "action": "DescribeConnector"}, + }, + { + Func: getMSKConnectConnectorTags, + Tags: map[string]string{"service": "kafkaconnect", "action": "ListTagsForResource"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_KAFKACONNECT_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "connector_name", + Description: "The name of the connector.", + Type: proto.ColumnType_STRING, + }, + { + Name: "connector_name_prefix", + Description: "The prefix of the connector name.", + Type: proto.ColumnType_STRING, + Transform: transform.FromQual("connector_name_prefix"), + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the connector.", + Type: proto.ColumnType_STRING, + Hydrate: getMSKConnectConnector, + Transform: transform.FromField("ConnectorArn"), + }, + { + Name: "connector_description", + Description: "The description of the connector.", + Type: proto.ColumnType_STRING, + }, + { + Name: "connector_state", + Description: "The state of the connector.", + Type: proto.ColumnType_STRING, + }, + { + Name: "creation_time", + Description: "The time that the connector was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "current_version", + Description: "The current version of the connector.", + Type: proto.ColumnType_STRING, + }, + { + Name: "kafka_connect_version", + Description: "The version of Kafka Connect. It has to be compatible with both the Apache Kafka cluster's version and the plugins.", + Type: proto.ColumnType_STRING, + }, + { + Name: "service_execution_role_arn", + Description: "The Amazon Resource Name (ARN) of the IAM role used by the connector to access Amazon Web Services resources.", + Type: proto.ColumnType_STRING, + }, + { + Name: "capacity", + Description: "The connector's compute capacity settings.", + Type: proto.ColumnType_JSON, + }, + { + Name: "kafka_cluster", + Description: "The details of the Apache Kafka cluster to which the connector is connected.", + Type: proto.ColumnType_JSON, + }, + { + Name: "kafka_cluster_client_authentication", + Description: "The type of client authentication used to connect to the Apache Kafka cluster. The value is NONE when no client authentication is used.", + Type: proto.ColumnType_JSON, + }, + { + Name: "kafka_cluster_encryption_in_transit", + Description: "Details of encryption in transit to the Apache Kafka cluster.", + Type: proto.ColumnType_JSON, + }, + { + Name: "log_delivery", + Description: "The settings for delivering connector logs to Amazon CloudWatch Logs.", + Type: proto.ColumnType_JSON, + }, + { + Name: "plugins", + Description: "Specifies which plugins were used for this connector.", + Type: proto.ColumnType_JSON, + }, + { + Name: "worker_configuration", + Description: "The worker configurations that are in use with the connector.", + Type: proto.ColumnType_JSON, + }, + { + Name: "connector_configuration", + Description: "A map of keys to values that represent the configuration for the connector.", + Type: proto.ColumnType_JSON, + Hydrate: getMSKConnectConnector, + }, + { + Name: "state_description", + Description: "Details about the state of a connector.", + Type: proto.ColumnType_JSON, + Hydrate: getMSKConnectConnector, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ConnectorName"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getMSKConnectConnectorTags, + Transform: transform.FromValue(), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ConnectorArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listMSKConnectConnectors(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := KafkaConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_mskconnect_connector.listMSKConnectConnectors", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + maxItems := int32(100) + params := &kafkaconnect.ListConnectorsInput{ + MaxResults: aws.Int32(maxItems), + } + + // Add optional connector name filter + if d.EqualsQuals["connector_name_prefix"] != nil { + params.ConnectorNamePrefix = aws.String(d.EqualsQualString("connector_name_prefix")) + } + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + params.MaxResults = aws.Int32(limit) + } + } + + // Create paginator + paginator := kafkaconnect.NewListConnectorsPaginator(svc, params, func(o *kafkaconnect.ListConnectorsPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_mskconnect_connector.listMSKConnectConnectors", "api_error", err) + return nil, err + } + + if output != nil && output.Connectors != nil { + for _, connector := range output.Connectors { + d.StreamListItem(ctx, connector) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getMSKConnectConnector(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var connectorArn string + if h.Item != nil { + connectorArn = *h.Item.(types.ConnectorSummary).ConnectorArn + } else { + connectorArn = d.EqualsQualString("arn") + } + + if connectorArn == "" { + return nil, nil + } + + // Create service + svc, err := KafkaConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_mskconnect_connector.getMSKConnectConnector", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &kafkaconnect.DescribeConnectorInput{ + ConnectorArn: aws.String(connectorArn), + } + + // Get connector details + data, err := svc.DescribeConnector(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_mskconnect_connector.getMSKConnectConnector", "api_error", err) + return nil, err + } + + return data, nil +} + +func getMSKConnectConnectorTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var connectorArn string + if h.Item != nil { + switch item := h.Item.(type) { + case types.ConnectorSummary: + connectorArn = *item.ConnectorArn + case *kafkaconnect.DescribeConnectorOutput: + connectorArn = *item.ConnectorArn + } + } + + if connectorArn == "" { + return nil, nil + } + + // Create service + svc, err := KafkaConnectClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_mskconnect_connector.getMSKConnectConnectorTags", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &kafkaconnect.ListTagsForResourceInput{ + ResourceArn: aws.String(connectorArn), + } + + // Get connector tags + data, err := svc.ListTagsForResource(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_mskconnect_connector.getMSKConnectConnectorTags", "api_error", err) + return nil, err + } + + return data.Tags, nil +} diff --git a/aws/table_aws_neptune_db_cluster.go b/aws/table_aws_neptune_db_cluster.go index da03d2d88..33edbe85c 100644 --- a/aws/table_aws_neptune_db_cluster.go +++ b/aws/table_aws_neptune_db_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/neptune" "github.com/aws/aws-sdk-go-v2/service/neptune/types" - neptunev1 "github.com/aws/aws-sdk-go/service/neptune" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsNeptuneDBCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "neptune", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(neptunev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_cluster_identifier", @@ -334,7 +332,7 @@ func listNeptuneDBClusters(ctx context.Context, d *plugin.QueryData, _ *plugin.H // but we only want Neptune clusters here. The input has a Filter param // which can help filter out non-Neptune clusters, but as of 2022/08/15, // the SDK says the Filter param is not currently supported. - // Related issue: https://github.com/aws/aws-sdk-go/issues/4515 + // Related issue: https://github.com/aws/aws-sdk-go-v2/issues/4515 if *cluster.Engine == "neptune" { d.StreamListItem(ctx, cluster) } diff --git a/aws/table_aws_neptune_db_cluster_snapshot.go b/aws/table_aws_neptune_db_cluster_snapshot.go index 6dd3852b6..e12492d2f 100644 --- a/aws/table_aws_neptune_db_cluster_snapshot.go +++ b/aws/table_aws_neptune_db_cluster_snapshot.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/neptune" "github.com/aws/aws-sdk-go-v2/service/neptune/types" - neptunev1 "github.com/aws/aws-sdk-go/service/neptune" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsNeptuneDBClusterSnapshot(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "neptune", "action": "DescribeDBClusterSnapshotAttributes"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(neptunev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_cluster_snapshot_identifier", diff --git a/aws/table_aws_networkfirewall_firewall.go b/aws/table_aws_networkfirewall_firewall.go index 707efef44..f9cdf065c 100644 --- a/aws/table_aws_networkfirewall_firewall.go +++ b/aws/table_aws_networkfirewall_firewall.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/networkfirewall" "github.com/aws/aws-sdk-go-v2/service/networkfirewall/types" - networkfirewallv1 "github.com/aws/aws-sdk-go/service/networkfirewall" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -46,7 +44,7 @@ func tableAwsNetworkFirewallFirewall(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "network-firewall", "action": "DescribeLoggingConfiguration"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(networkfirewallv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_NETWORK_FIREWALL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_networkfirewall_firewall_policy.go b/aws/table_aws_networkfirewall_firewall_policy.go index d6f992cd2..798664036 100644 --- a/aws/table_aws_networkfirewall_firewall_policy.go +++ b/aws/table_aws_networkfirewall_firewall_policy.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/networkfirewall" "github.com/aws/aws-sdk-go-v2/service/networkfirewall/types" - networkfirewallv1 "github.com/aws/aws-sdk-go/service/networkfirewall" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsNetworkFirewallPolicy(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "network-firewall", "action": "DescribeFirewallPolicy"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(networkfirewallv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_NETWORK_FIREWALL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_networkfirewall_rule_group.go b/aws/table_aws_networkfirewall_rule_group.go index 28d8ca46b..0994b5d93 100644 --- a/aws/table_aws_networkfirewall_rule_group.go +++ b/aws/table_aws_networkfirewall_rule_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/networkfirewall" "github.com/aws/aws-sdk-go-v2/service/networkfirewall/types" - networkfirewallv1 "github.com/aws/aws-sdk-go/service/networkfirewall" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsNetworkFirewallRuleGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "network-firewall", "action": "DescribeRuleGroup"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(networkfirewallv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_NETWORK_FIREWALL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "rule_group_name", diff --git a/aws/table_aws_oam_link.go b/aws/table_aws_oam_link.go index fff88119a..2eb3deafe 100644 --- a/aws/table_aws_oam_link.go +++ b/aws/table_aws_oam_link.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/oam" "github.com/aws/aws-sdk-go-v2/service/oam/types" - oamv1 "github.com/aws/aws-sdk-go/service/oam" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsOAMLink(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "oam", "action": "GetLink"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(oamv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_OAM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_oam_sink.go b/aws/table_aws_oam_sink.go index 4d970a5fc..c696d18ca 100644 --- a/aws/table_aws_oam_sink.go +++ b/aws/table_aws_oam_sink.go @@ -7,8 +7,6 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" - oamv1 "github.com/aws/aws-sdk-go/service/oam" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/oam" "github.com/aws/aws-sdk-go-v2/service/oam/types" @@ -36,7 +34,7 @@ func tableAwsOAMSink(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "oam", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(oamv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_OAM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_opensearch_domain.go b/aws/table_aws_opensearch_domain.go index 0e7d5f6bc..e1afa7864 100644 --- a/aws/table_aws_opensearch_domain.go +++ b/aws/table_aws_opensearch_domain.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/opensearch" "github.com/aws/aws-sdk-go-v2/service/opensearch/types" - opensearchservicev1 "github.com/aws/aws-sdk-go/service/opensearchservice" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsOpenSearchDomain(_ context.Context) *plugin.Table { Depends: []plugin.HydrateFunc{getOpenSearchDomain}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(opensearchservicev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "domain_name", diff --git a/aws/table_aws_opensearch_reserved_instance.go b/aws/table_aws_opensearch_reserved_instance.go new file mode 100644 index 000000000..7266f33ac --- /dev/null +++ b/aws/table_aws_opensearch_reserved_instance.go @@ -0,0 +1,237 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/opensearch" + "github.com/aws/aws-sdk-go-v2/service/opensearch/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsOpenSearchReservedInstance(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_opensearch_reserved_instance", + Description: "AWS OpenSearch Reserved Instance", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("reserved_instance_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException", "ValidationException"}), + }, + Hydrate: getOpenSearchReservedInstance, + Tags: map[string]string{"service": "es", "action": "DescribeReservedInstances"}, + }, + List: &plugin.ListConfig{ + Hydrate: listOpenSearchReservedInstances, + Tags: map[string]string{"service": "es", "action": "DescribeReservedInstances"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ES_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "reserved_instance_id", + Description: "The unique identifier for the reservation.", + Type: proto.ColumnType_STRING, + }, + { + Name: "reservation_name", + Description: "The customer-specified identifier to track this reservation.", + Type: proto.ColumnType_STRING, + }, + { + Name: "instance_type", + Description: "The OpenSearch instance type offered by the Reserved Instance offering.", + Type: proto.ColumnType_STRING, + }, + { + Name: "state", + Description: "The state of the Reserved Instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "start_time", + Description: "The date and time when the reservation was purchased.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "duration", + Description: "The duration, in seconds, for which the OpenSearch instance is reserved.", + Type: proto.ColumnType_INT, + }, + { + Name: "fixed_price", + Description: "The upfront fixed charge you will pay to purchase the specific Reserved Instance offering.", + Type: proto.ColumnType_DOUBLE, + }, + { + Name: "usage_price", + Description: "The hourly rate at which you're charged for the domain using this Reserved Instance.", + Type: proto.ColumnType_DOUBLE, + }, + { + Name: "currency_code", + Description: "The currency code for the offering.", + Type: proto.ColumnType_STRING, + }, + { + Name: "instance_count", + Description: "The number of OpenSearch instances that have been reserved.", + Type: proto.ColumnType_INT, + }, + { + Name: "payment_option", + Description: "The payment option as defined in the Reserved Instance offering.", + Type: proto.ColumnType_STRING, + }, + { + Name: "reserved_instance_offering_id", + Description: "The unique identifier of the Reserved Instance offering.", + Type: proto.ColumnType_STRING, + }, + { + Name: "billing_subscription_id", + Description: "The unique identifier of the billing subscription.", + Type: proto.ColumnType_INT, + }, + { + Name: "recurring_charges", + Description: "The recurring charge to your account, regardless of whether you create any domains using the Reserved Instance offering.", + Type: proto.ColumnType_JSON, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ReservationName"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getOpenSearchReservedInstanceARN, + Transform: transform.FromValue().Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listOpenSearchReservedInstances(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := OpenSearchClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_opensearch_reserved_instance.listOpenSearchReservedInstances", "client_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &opensearch.DescribeReservedInstancesInput{ + MaxResults: maxLimit, + } + + // API doesn't support aws-go-sdk-v2 paginator as of date + for { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := svc.DescribeReservedInstances(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_opensearch_reserved_instance.listOpenSearchReservedInstances", "api_error", err) + return nil, err + } + + for _, reservedInstance := range output.ReservedInstances { + d.StreamListItem(ctx, reservedInstance) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + + // Check if there are more results + if output.NextToken == nil { + break + } + + // Set the next token for the next iteration + input.NextToken = output.NextToken + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getOpenSearchReservedInstance(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + reservedInstanceID := d.EqualsQuals["reserved_instance_id"].GetStringValue() + + // Empty check + if reservedInstanceID == "" { + return nil, nil + } + + // Create service + svc, err := OpenSearchClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_opensearch_reserved_instance.getOpenSearchReservedInstance", "connection_error", err) + return nil, err + } + + if svc == nil { + // Unsupported region check + return nil, nil + } + + input := &opensearch.DescribeReservedInstancesInput{ + ReservedInstanceId: aws.String(reservedInstanceID), + } + + result, err := svc.DescribeReservedInstances(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_opensearch_reserved_instance.getOpenSearchReservedInstance", "api_error", err) + return nil, err + } + + if len(result.ReservedInstances) > 0 { + return result.ReservedInstances[0], nil + } + + return nil, nil +} + +func getOpenSearchReservedInstanceARN(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := d.EqualsQualString(matrixKeyRegion) + reservedInstance := h.Item.(types.ReservedInstance) + + commonData, err := getCommonColumns(ctx, d, h) + if err != nil { + return nil, err + } + commonColumnData := commonData.(*awsCommonColumnData) + + // Build ARN + arn := "arn:" + commonColumnData.Partition + ":es:" + region + ":" + commonColumnData.AccountId + ":reserved-instance/" + *reservedInstance.ReservedInstanceId + + return arn, nil +} diff --git a/aws/table_aws_organizations_account.go b/aws/table_aws_organizations_account.go index dcc9ddaf9..231d15ed1 100644 --- a/aws/table_aws_organizations_account.go +++ b/aws/table_aws_organizations_account.go @@ -79,9 +79,14 @@ func tableAwsOrganizationsAccount(_ context.Context) *plugin.Table { Description: "The Amazon Resource Name (ARN) of the account.", Type: proto.ColumnType_STRING, }, + { + Name: "state", + Description: "The state of the account in the organization.", + Type: proto.ColumnType_STRING, + }, { Name: "status", - Description: "The status of the account in the organization.", + Description: "The status of the account in the organization (deprecated).", Type: proto.ColumnType_STRING, }, { @@ -288,7 +293,7 @@ func listAllOusByParent(ctx context.Context, d *plugin.QueryData, svc *organizat } for _, unit := range output.OrganizationalUnits { - ouPath := strings.Replace(currentPath, "-", "_", -1) + "." + strings.Replace(*unit.Id, "-", "_", -1) + ouPath := strings.ReplaceAll(currentPath, "-", "_") + "." + strings.ReplaceAll(*unit.Id, "-", "_") units = append(units, unit) // Recursively list units for this child diff --git a/aws/table_aws_organizations_delegated_administrator.go b/aws/table_aws_organizations_delegated_administrator.go new file mode 100644 index 000000000..1d5f17318 --- /dev/null +++ b/aws/table_aws_organizations_delegated_administrator.go @@ -0,0 +1,129 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/organizations" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsOrganizationsDelegatedAdministrator(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_organizations_delegated_administrator", + Description: "AWS Organizations Delegated Administrator", + List: &plugin.ListConfig{ + Hydrate: listOrganizationsDelegatedAdmins, + Tags: map[string]string{"service": "organizations", "action": "ListDelegatedAdministrators"}, + }, + Columns: awsGlobalRegionColumns([]*plugin.Column{ + { + Name: "id", + Description: "The unique identifier (account ID) of the delegated administrator.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the delegated administrator.", + Type: proto.ColumnType_STRING, + }, + { + Name: "email", + Description: "The email address associated with the delegated administrator account.", + Type: proto.ColumnType_STRING, + }, + { + Name: "name", + Description: "The friendly name of the delegated administrator account.", + Type: proto.ColumnType_STRING, + }, + { + Name: "status", + Description: "The status of the delegated administrator.", + Type: proto.ColumnType_STRING, + }, + { + Name: "joined_method", + Description: "The method by which the account joined the organization.", + Type: proto.ColumnType_STRING, + }, + { + Name: "joined_timestamp", + Description: "The date the account became a part of the organization.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "delegation_enabled_date", + Description: "The date when the delegation was enabled.", + Type: proto.ColumnType_TIMESTAMP, + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +func listOrganizationsDelegatedAdmins(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + + // Get Client + svc, err := OrganizationClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_organizations_delegated_administrator.ListDelegatedAdministrators", "client_error", err) + return nil, err + } + + // Limiting the result + maxItems := int32(20) + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + maxItems = int32(limit) + } + } + + params := &organizations.ListDelegatedAdministratorsInput{ + MaxResults: &maxItems, + } + + paginator := organizations.NewListDelegatedAdministratorsPaginator(svc, params, func(o *organizations.ListDelegatedAdministratorsPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_organizations_delegated_administrator.ListDelegatedAdministrators", "api_error", err) + return nil, err + } + + for _, admin := range output.DelegatedAdministrators { + d.StreamListItem(ctx, admin) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil + +} diff --git a/aws/table_aws_organizations_delegated_services_for_account.go b/aws/table_aws_organizations_delegated_services_for_account.go new file mode 100644 index 000000000..16ee7e9b2 --- /dev/null +++ b/aws/table_aws_organizations_delegated_services_for_account.go @@ -0,0 +1,123 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/organizations" + "github.com/aws/aws-sdk-go-v2/service/organizations/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsOrganizationsDelegatedServicesForAccount(_ context.Context) *plugin.Table { + + return &plugin.Table{ + Name: "aws_organizations_delegated_services_for_account", + Description: "AWS Organizations Delegated Services For Account", + List: &plugin.ListConfig{ + ParentHydrate: listOrganizationsDelegatedAdmins, // Use Delegated Administrator as parent per recommendation. Referenced table_aws_cloudwatch_log_stream. This function can be found in table_aws_organizations_delegated_administrator + Hydrate: listDelegatedServices, + Tags: map[string]string{"service": "organizations", "action": "ListDelegatedServicesForAccount"}, + KeyColumns: []*plugin.KeyColumn{ // Make delegated_account_id optional, user can still query `where` using this column. + {Name: "delegated_account_id", Require: plugin.Optional}, + }, + }, + Columns: awsGlobalRegionColumns([]*plugin.Column{ + { + Name: "delegated_account_id", + Description: "The unique identifier (account ID) of the delegated administrator account for which services are listed.", + Type: proto.ColumnType_STRING, + }, + { + Name: "service_principal", + Description: "The service principal delegated to the administrator account.", + Type: proto.ColumnType_STRING, + }, + { + Name: "delegation_enabled_date", + Description: "The date when the delegation was enabled.", + Type: proto.ColumnType_TIMESTAMP, + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ServicePrincipal"), + }, + }), + } +} + +// Define a struct to hold the DelegatedService and the AccountId used to fetch it.\ +type delegatedServiceInfo struct { + types.DelegatedService + DelegatedAccountId string +} + + +func listDelegatedServices(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + delegatedAccount := h.Item.(types.DelegatedAdministrator) // Get delegated administrator details + + delegatedAccountId := d.EqualsQualString("delegated_account_id") // Get delegated_account_id from where statement + + // Minimize API calls + if delegatedAccountId != "" { + if delegatedAccountId != *delegatedAccount.Id { + return nil, nil + } + } + + // Get Client + svc, err := OrganizationClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_organizations_delegated_services_for_account.ListDelegatedServicesForAccount", "client_error", err) + return nil, err + } + + // Limiting the result + maxItems := int32(20) + + // Reduce the page size if a smaller limit is provided + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + maxItems = limit + } + } + params := &organizations.ListDelegatedServicesForAccountInput{ + AccountId: delegatedAccount.Id, + MaxResults: &maxItems, + } + + paginator := organizations.NewListDelegatedServicesForAccountPaginator(svc, params, func(o *organizations.ListDelegatedServicesForAccountPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_organizations_delegated_services_for_account.ListDelegatedServicesForAccount", "api_error", err) + return nil, err + } + + for _, service := range output.DelegatedServices { + // Stream a new struct that includes the AccountId used for the API call + d.StreamListItem(ctx, delegatedServiceInfo{ + DelegatedService: service, + DelegatedAccountId: *delegatedAccount.Id, + }) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} \ No newline at end of file diff --git a/aws/table_aws_organizations_organizational_unit.go b/aws/table_aws_organizations_organizational_unit.go index 95f9170a4..f6daf0e90 100644 --- a/aws/table_aws_organizations_organizational_unit.go +++ b/aws/table_aws_organizations_organizational_unit.go @@ -148,7 +148,7 @@ func listAllNestedOUs(ctx context.Context, d *plugin.QueryData, svc *organizatio } for _, unit := range output.OrganizationalUnits { - ouPath := strings.Replace(currentPath, "-", "_", -1) + "." + strings.Replace(*unit.Id, "-", "_", -1) + ouPath := strings.ReplaceAll(currentPath, "-", "_") + "." + strings.ReplaceAll(*unit.Id, "-", "_") d.StreamListItem(ctx, OrganizationalUnit{unit, ouPath, parentId}) // Recursively list units for this child diff --git a/aws/table_aws_pinpoint_app.go b/aws/table_aws_pinpoint_app.go index c2f77cd02..87d15e1af 100644 --- a/aws/table_aws_pinpoint_app.go +++ b/aws/table_aws_pinpoint_app.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/pinpoint" "github.com/aws/aws-sdk-go-v2/service/pinpoint/types" - pinpointv1 "github.com/aws/aws-sdk-go/service/pinpoint" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsPinpointApp(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "mobiletargeting", "action": "GetApplicationSettings"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(pinpointv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_PINPOINT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_pipes_pipe.go b/aws/table_aws_pipes_pipe.go index c853b7e0a..2c2a4a663 100644 --- a/aws/table_aws_pipes_pipe.go +++ b/aws/table_aws_pipes_pipe.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/pipes" "github.com/aws/aws-sdk-go-v2/service/pipes/types" - pipesv1 "github.com/aws/aws-sdk-go/service/pipes" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsPipes(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "pipes", "action": "DescribePipe"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(pipesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_PIPES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_pricing_product.go b/aws/table_aws_pricing_product.go index ece87e8e3..2484aa4aa 100644 --- a/aws/table_aws_pricing_product.go +++ b/aws/table_aws_pricing_product.go @@ -5,9 +5,9 @@ import ( "encoding/json" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/pricing" "github.com/aws/aws-sdk-go-v2/service/pricing/types" - "github.com/aws/aws-sdk-go/aws" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" diff --git a/aws/table_aws_ram_principal_association.go b/aws/table_aws_ram_principal_association.go index cbbe4e27b..639a19bc0 100644 --- a/aws/table_aws_ram_principal_association.go +++ b/aws/table_aws_ram_principal_association.go @@ -3,8 +3,6 @@ package aws import ( "context" - ramv1 "github.com/aws/aws-sdk-go/service/ram" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,7 +23,7 @@ func tableAwsRAMPrincipalAssociation(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ram", "action": "ListResourceSharePermissions"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ramv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RAM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "resource_share_name", diff --git a/aws/table_aws_ram_resource_association.go b/aws/table_aws_ram_resource_association.go index 8cdb41fb1..fe7f58df2 100644 --- a/aws/table_aws_ram_resource_association.go +++ b/aws/table_aws_ram_resource_association.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ram" "github.com/aws/aws-sdk-go-v2/service/ram/types" - ramv1 "github.com/aws/aws-sdk-go/service/ram" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsRAMResourceAssociation(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ram", "action": "ListResourceSharePermissions"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ramv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RAM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "resource_share_name", diff --git a/aws/table_aws_rds_db_cluster.go b/aws/table_aws_rds_db_cluster.go index 47da7005c..d46ba98d5 100644 --- a/aws/table_aws_rds_db_cluster.go +++ b/aws/table_aws_rds_db_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsRDSDBCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "DescribePendingMaintenanceActions"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_cluster_identifier", @@ -299,7 +297,7 @@ func tableAwsRDSDBCluster(_ context.Context) *plugin.Table { Name: "performance_insights_kms_key_id", Description: "The Amazon Web Services KMS key identifier for encryption of Performance Insights data.", Type: proto.ColumnType_STRING, - Transform: transform.FromField("PerformanceInsightsKMSKeyId"), + Transform: transform.FromField("PerformanceInsightsKMSKeyId"), }, { Name: "monitoring_interval", diff --git a/aws/table_aws_rds_db_cluster_parameter_group.go b/aws/table_aws_rds_db_cluster_parameter_group.go index c3a7e1708..b928e9d5b 100644 --- a/aws/table_aws_rds_db_cluster_parameter_group.go +++ b/aws/table_aws_rds_db_cluster_parameter_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsRDSDBClusterParameterGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_rds_db_cluster_snapshot.go b/aws/table_aws_rds_db_cluster_snapshot.go index f42c7f318..c0b8bd4bd 100644 --- a/aws/table_aws_rds_db_cluster_snapshot.go +++ b/aws/table_aws_rds_db_cluster_snapshot.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsRDSDBClusterSnapshot(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "DescribeDBClusterSnapshotAttributes"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_cluster_snapshot_identifier", diff --git a/aws/table_aws_rds_db_engine_version.go b/aws/table_aws_rds_db_engine_version.go index 26ca02ded..868939a84 100644 --- a/aws/table_aws_rds_db_engine_version.go +++ b/aws/table_aws_rds_db_engine_version.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsRDSDBEngineVersion(_ context.Context) *plugin.Table { {Name: "status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "engine", diff --git a/aws/table_aws_rds_db_event_subscription.go b/aws/table_aws_rds_db_event_subscription.go index 256c7edbf..c733cdb90 100644 --- a/aws/table_aws_rds_db_event_subscription.go +++ b/aws/table_aws_rds_db_event_subscription.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsRDSDBEventSubscription(_ context.Context) *plugin.Table { Hydrate: listRDSDBEventSubscriptions, Tags: map[string]string{"service": "rds", "action": "DescribeEventSubscriptions"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cust_subscription_id", diff --git a/aws/table_aws_rds_db_instance.go b/aws/table_aws_rds_db_instance.go index 1f3b5850d..fa065e8ee 100644 --- a/aws/table_aws_rds_db_instance.go +++ b/aws/table_aws_rds_db_instance.go @@ -7,9 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -57,7 +54,7 @@ func tableAwsRDSDBInstance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "DescribeOrderableDBInstanceOptions"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_instance_identifier", diff --git a/aws/table_aws_rds_db_instance_automated_backup.go b/aws/table_aws_rds_db_instance_automated_backup.go index 6fa19d6cb..fa7f3bbd8 100644 --- a/aws/table_aws_rds_db_instance_automated_backup.go +++ b/aws/table_aws_rds_db_instance_automated_backup.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsRDSDBInstanceAutomatedBackup(_ context.Context) *plugin.Table { {Name: "status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_instance_identifier", diff --git a/aws/table_aws_rds_db_option_group.go b/aws/table_aws_rds_db_option_group.go index f2af8c75f..bb1f12e68 100644 --- a/aws/table_aws_rds_db_option_group.go +++ b/aws/table_aws_rds_db_option_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsRDSDBOptionGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_rds_db_parameter_group.go b/aws/table_aws_rds_db_parameter_group.go index 842ea2e20..264688b7c 100644 --- a/aws/table_aws_rds_db_parameter_group.go +++ b/aws/table_aws_rds_db_parameter_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsRDSDBParameterGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_rds_db_proxy.go b/aws/table_aws_rds_db_proxy.go index 12b066f82..5d5187e73 100644 --- a/aws/table_aws_rds_db_proxy.go +++ b/aws/table_aws_rds_db_proxy.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsRDSDBProxy(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_proxy_name", diff --git a/aws/table_aws_rds_db_recomendation.go b/aws/table_aws_rds_db_recommendation.go similarity index 92% rename from aws/table_aws_rds_db_recomendation.go rename to aws/table_aws_rds_db_recommendation.go index 81cc188ab..28843e95e 100644 --- a/aws/table_aws_rds_db_recomendation.go +++ b/aws/table_aws_rds_db_recommendation.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -20,8 +18,18 @@ func tableAwsRDSDBRecommendation(_ context.Context) *plugin.Table { return &plugin.Table{ Name: "aws_rds_db_recommendation", Description: "AWS RDS DB Recommendation", + // AWS RDS service's `DescribeDBRecommendations` API is not supported in all regions. + // + // Observed unsupported region error: + // + // - In region `ap-southeast-5`: + // Error: aws: operation error RDS: DescribeDBRecommendations, https response error StatusCode: 400, RequestID: f6b02c93-bc6d-4a0c-ba5a-9ca5515cf5ba + // api error InvalidAction: DescribeDBRecommendations is not available in this region. (SQLSTATE HV000) List: &plugin.ListConfig{ Hydrate: listRDSDBRecommendations, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAction"}), + }, KeyColumns: plugin.KeyColumnSlice{ {Name: "recommendation_id", Require: plugin.Optional}, {Name: "status", Require: plugin.Optional}, @@ -31,7 +39,7 @@ func tableAwsRDSDBRecommendation(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "rds", "action": "DescribeDBRecommendations"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "recommendation_id", diff --git a/aws/table_aws_rds_db_snapshot.go b/aws/table_aws_rds_db_snapshot.go index e714be57a..951417285 100644 --- a/aws/table_aws_rds_db_snapshot.go +++ b/aws/table_aws_rds_db_snapshot.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -44,7 +42,7 @@ func tableAwsRDSDBSnapshot(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "DescribeDBSnapshotAttributes"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "db_snapshot_identifier", diff --git a/aws/table_aws_rds_db_subnet_group.go b/aws/table_aws_rds_db_subnet_group.go index 0e7ebdab2..b0e639755 100644 --- a/aws/table_aws_rds_db_subnet_group.go +++ b/aws/table_aws_rds_db_subnet_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsRDSDBSubnetGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "rds", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_rds_pending_maintenance_action.go b/aws/table_aws_rds_pending_maintenance_action.go index 39c1a7976..160737116 100644 --- a/aws/table_aws_rds_pending_maintenance_action.go +++ b/aws/table_aws_rds_pending_maintenance_action.go @@ -2,9 +2,9 @@ package aws import ( "context" + "github.com/aws/aws-sdk-go-v2/service/rds" "github.com/aws/aws-sdk-go-v2/service/rds/types" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,8 +25,11 @@ func tableAwsRDSPendingMaintenanceAction(_ context.Context) *plugin.Table { Require: plugin.Optional, }, }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"DBInstanceNotFound", "InvalidParameterValue"}), + }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "resource_identifier", diff --git a/aws/table_aws_rds_reserved_db_instance.go b/aws/table_aws_rds_reserved_db_instance.go index 63d42ee18..534c6309b 100644 --- a/aws/table_aws_rds_reserved_db_instance.go +++ b/aws/table_aws_rds_reserved_db_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/rds" - rdsv1 "github.com/aws/aws-sdk-go/service/rds" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsRDSReservedDBInstance(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidParameterValue"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(rdsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_RDS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "reserved_db_instance_id", diff --git a/aws/table_aws_redshift_cluster.go b/aws/table_aws_redshift_cluster.go index 2ad1cd129..aa70e08c1 100644 --- a/aws/table_aws_redshift_cluster.go +++ b/aws/table_aws_redshift_cluster.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshift" "github.com/aws/aws-sdk-go-v2/service/redshift/types" - redshiftv1 "github.com/aws/aws-sdk-go/service/redshift" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsRedshiftCluster(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "redshift", "action": "DescribeScheduledActions"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cluster_identifier", @@ -271,6 +269,12 @@ func tableAwsRedshiftCluster(_ context.Context) *plugin.Table { Description: "The status of a modify operation, if any, initiated for the cluster.", Type: proto.ColumnType_STRING, }, + { + Name: "multi_az", + Description: "A boolean value that, if true, indicates that the cluster is deployed in two Availability Zones.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("MultiAZ"), + }, { Name: "next_maintenance_window_start_time", Description: "The date and time in UTC when system maintenance can begin.", diff --git a/aws/table_aws_redshift_event_subscription.go b/aws/table_aws_redshift_event_subscription.go index 3bb80ecb7..e45a57ff6 100644 --- a/aws/table_aws_redshift_event_subscription.go +++ b/aws/table_aws_redshift_event_subscription.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshift" "github.com/aws/aws-sdk-go-v2/service/redshift/types" - redshiftv1 "github.com/aws/aws-sdk-go/service/redshift" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsRedshiftEventSubscription(_ context.Context) *plugin.Table { Hydrate: listRedshiftEventSubscriptions, Tags: map[string]string{"service": "redshift", "action": "DescribeEventSubscriptions"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cust_subscription_id", diff --git a/aws/table_aws_redshift_parameter_group.go b/aws/table_aws_redshift_parameter_group.go index f784d8898..ee7b7475e 100644 --- a/aws/table_aws_redshift_parameter_group.go +++ b/aws/table_aws_redshift_parameter_group.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshift" "github.com/aws/aws-sdk-go-v2/service/redshift/types" - redshiftv1 "github.com/aws/aws-sdk-go/service/redshift" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsRedshiftParameterGroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "redshift", "action": "DescribeClusterParameters"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_redshift_snapshot.go b/aws/table_aws_redshift_snapshot.go index d5f990b0f..2ce477bae 100644 --- a/aws/table_aws_redshift_snapshot.go +++ b/aws/table_aws_redshift_snapshot.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshift" "github.com/aws/aws-sdk-go-v2/service/redshift/types" - redshiftv1 "github.com/aws/aws-sdk-go/service/redshift" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsRedshiftSnapshot(_ context.Context) *plugin.Table { {Name: "snapshot_create_time", Require: plugin.Optional, Operators: []string{"="}}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "snapshot_identifier", diff --git a/aws/table_aws_redshift_subnet_group.go b/aws/table_aws_redshift_subnet_group.go index 535be1018..7f5cae3d3 100644 --- a/aws/table_aws_redshift_subnet_group.go +++ b/aws/table_aws_redshift_subnet_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshift" "github.com/aws/aws-sdk-go-v2/service/redshift/types" - redshiftv1 "github.com/aws/aws-sdk-go/service/redshift" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsRedshiftSubnetGroup(_ context.Context) *plugin.Table { Hydrate: listRedshiftSubnetGroups, Tags: map[string]string{"service": "redshift", "action": "DescribeClusterSubnetGroups"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "cluster_subnet_group_name", diff --git a/aws/table_aws_redshiftserverless_namespace.go b/aws/table_aws_redshiftserverless_namespace.go index 4a629b3f2..7aa95b108 100644 --- a/aws/table_aws_redshiftserverless_namespace.go +++ b/aws/table_aws_redshiftserverless_namespace.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshiftserverless" "github.com/aws/aws-sdk-go-v2/service/redshiftserverless/types" - redshiftserverlessv1 "github.com/aws/aws-sdk-go/service/redshiftserverless" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsRedshiftServerlessNamespace(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "redshift-serverless", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftserverlessv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVERLESS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "namespace_name", diff --git a/aws/table_aws_redshiftserverless_workgroup.go b/aws/table_aws_redshiftserverless_workgroup.go index aa9d85a5e..cd2fc9ad5 100644 --- a/aws/table_aws_redshiftserverless_workgroup.go +++ b/aws/table_aws_redshiftserverless_workgroup.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/redshiftserverless" "github.com/aws/aws-sdk-go-v2/service/redshiftserverless/types" - redshiftserverlessv1 "github.com/aws/aws-sdk-go/service/redshiftserverless" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsRedshiftServerlessWorkgroup(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "redshift-serverless", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(redshiftserverlessv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_REDSHIFT_SERVERLESS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "workgroup_name", diff --git a/aws/table_aws_region.go b/aws/table_aws_region.go index 7f2ced511..9ebdb48c5 100644 --- a/aws/table_aws_region.go +++ b/aws/table_aws_region.go @@ -2,6 +2,7 @@ package aws import ( "context" + "slices" "github.com/aws/aws-sdk-go-v2/service/ec2/types" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -50,6 +51,18 @@ func tableAwsRegion(_ context.Context) *plugin.Table { Type: proto.ColumnType_STRING, Transform: transform.FromField("RegionName"), }, + { + Name: "steampipe_available", + Description: "True if the region is available for query in Steampipe.", + Type: proto.ColumnType_BOOL, + Hydrate: getAWSRegionsInConfig, + }, + { + Name: "steampipe_default", + Description: "True if this region is the default region for Steampipe to use.", + Type: proto.ColumnType_BOOL, + Hydrate: getAWSRegionsInConfig, + }, }), } } @@ -77,3 +90,32 @@ func getAwsRegionAkas(ctx context.Context, d *plugin.QueryData, h *plugin.Hydrat akas := []string{"arn:" + commonColumnData.Partition + "::" + *region.RegionName + ":" + commonColumnData.AccountId} return akas, nil } + +func getAWSRegionsInConfig(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := h.Item.(types.Region) + + // Retrieve regions list from the AWS plugin steampipe connection config + configRegions, err := listQueryRegionsForConnection(ctx, d) + if err != nil { + return nil, err + } + + var regionsInConfig RegionsInConfig + + // check if the region is set as a default region in the connection config + defaultRegion := getAwsSpcConfigDefaultRegion(ctx, d) + if *region.RegionName == defaultRegion { + regionsInConfig.SteampipeDefault = true + } + + // check if the region is set in the connection config + if slices.Contains(configRegions, *region.RegionName) { + regionsInConfig.SteampipeAvailable = true + } + return regionsInConfig, nil +} + +type RegionsInConfig struct { + SteampipeAvailable bool + SteampipeDefault bool +} diff --git a/aws/table_aws_resource_explorer_resource.go b/aws/table_aws_resource_explorer_resource.go new file mode 100644 index 000000000..b004f7e54 --- /dev/null +++ b/aws/table_aws_resource_explorer_resource.go @@ -0,0 +1,155 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/resourceexplorer2" + "github.com/aws/aws-sdk-go-v2/service/resourceexplorer2/types" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" + "github.com/turbot/steampipe-plugin-sdk/v5/query_cache" +) + +func tableAwsResourceExplorerResource(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_resource_explorer_resource", + Description: "AWS Resource Explorer Resource.", + List: &plugin.ListConfig{ + Hydrate: listResourceExplorerResources, + Tags: map[string]string{"service": "resource-explorer-2", "action": "ListResources"}, + KeyColumns: plugin.KeyColumnSlice{ + {Name: "view_arn", Require: plugin.Optional}, + {Name: "filter", Require: plugin.Optional, CacheMatch: query_cache.CacheMatchExact}, + }, + }, + Columns: []*plugin.Column{ + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the resource.", + Type: proto.ColumnType_STRING, + }, + { + Name: "view_arn", + Description: "The Amazon resource name (ARN) of the view that this operation used to perform the search.", + Type: proto.ColumnType_STRING, + }, + { + Name: "last_reported_at", + Description: "The date and time that Resource Explorer last queried this resource and updated the index with the latest information about the resource.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "owning_account_id", + Description: "The AWS account that owns the resource.", + Type: proto.ColumnType_STRING, + }, + { + Name: "filter", + Description: "The string that contains the search keywords, prefixes, and operators to control the results that can be returned by a Search operation.", + Type: proto.ColumnType_STRING, + Transform: transform.FromQual("filter"), + }, + { + Name: "properties", + Description: "A structure with additional type-specific details about the resource. These properties can be added by turning on integration between Resource Explorer and other AWS services.", + Type: proto.ColumnType_JSON, + }, + { + Name: "region", + Description: "The AWS Region in which the resource was created and exists.", + Type: proto.ColumnType_STRING, + }, + { + Name: "resource_type", + Description: "The type of the resource.", + Type: proto.ColumnType_STRING, + }, + { + Name: "service", + Description: "The AWS service that owns the resource and is responsible for creating and updating it.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe common columns + { + Name: "title", + Description: "Title of the resource.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Properties.Name"), + }, + }, + } +} + +type resourceInfo struct { + types.Resource + ViewArn *string +} + +func listResourceExplorerResources(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region, err := getDefaultRegion(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_resource_explorer_resource.listResourceExplorerResources", "getDefaultRegionError", err) + return nil, err + } + + // Create client + svc, err := ResourceExplorerClient(ctx, d, region) + if err != nil { + plugin.Logger(ctx).Error("aws_resource_explorer_resource.listResourceExplorerResources", "client_error", err) + return nil, err + } + + filter := d.EqualsQualString("filter") + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + // Build the params + input := &resourceexplorer2.ListResourcesInput{ + MaxResults: aws.Int32(maxLimit), + } + + if filter != "" { + input.Filters = &types.SearchFilter{ + FilterString: aws.String(filter), + } + } + + viewArn := d.EqualsQualString("view_arn") + if viewArn != "" { + input.ViewArn = aws.String(viewArn) + } + + // Get call + paginator := resourceexplorer2.NewListResourcesPaginator(svc, input) + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_resource_explorer_resource.listResourceExplorerResources", "api_error", err) + return nil, err + } + + for _, resource := range output.Resources { + d.StreamListItem(ctx, &resourceInfo{resource, output.ViewArn}) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} diff --git a/aws/table_aws_resource_explorer_search.go b/aws/table_aws_resource_explorer_search.go index c0ddceb99..66e164f7e 100644 --- a/aws/table_aws_resource_explorer_search.go +++ b/aws/table_aws_resource_explorer_search.go @@ -146,7 +146,7 @@ func awsResourceExplorerSearch(ctx context.Context, d *plugin.QueryData, h *plug } if len(indexesOutput.Indexes) == 0 { - return nil, fmt.Errorf("Aggregator index not found in account %s. Please create an aggregator index or specify \"view_arn\".", accountID) + return nil, fmt.Errorf("aggregator index not found in account %s. Please create an aggregator index or specify \"view_arn\"", accountID) } // Each account can only have 1 aggregator index @@ -170,7 +170,7 @@ func awsResourceExplorerSearch(ctx context.Context, d *plugin.QueryData, h *plug } if defaultViewOutput.ViewArn == nil { - return nil, fmt.Errorf("Default view not found in %s region in account %s. Please create a default view or specify \"view_arn\".", region, accountID) + return nil, fmt.Errorf("default view not found in %s region in account %s. Please create a default view or specify \"view_arn\"", region, accountID) } } diff --git a/aws/table_aws_rolesanywhere_profile.go b/aws/table_aws_rolesanywhere_profile.go new file mode 100644 index 000000000..7c2647ba6 --- /dev/null +++ b/aws/table_aws_rolesanywhere_profile.go @@ -0,0 +1,252 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/rolesanywhere" + "github.com/aws/aws-sdk-go-v2/service/rolesanywhere/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsRolesAnywhereProfile(ctx context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_rolesanywhere_profile", + Description: "AWS Roles Anywhere Profile", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AnyColumn([]string{"profile_id"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, + Hydrate: getProfile, + Tags: map[string]string{"service": "rolesanywhere", "action": "GetProfile"}, + }, + List: &plugin.ListConfig{ + Hydrate: listProfiles, + Tags: map[string]string{"service": "rolesanywhere", "action": "ListProfiles"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: listTagsForProfile, + Tags: map[string]string{"service": "rolesanywhere", "action": "ListTagsForResource"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ROLESANYWHERE_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "profile_id", + Description: "The unique identifier of the profile.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) specifying the profile.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ProfileArn"), + }, + { + Name: "name", + Description: "The name of the profile.", + Type: proto.ColumnType_STRING, + }, + { + Name: "accept_role_session_name", + Description: "Used to determine if a custom role session name will be accepted in a temporary credential request.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "updated_at", + Description: "The date and time when the profile was updated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "created_at", + Description: "The date and time when the profile was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "created_by", + Description: "The account that created the profile.", + Type: proto.ColumnType_STRING, + }, + { + Name: "duration_seconds", + Description: "Used to determine how long sessions vended using this profile are valid for.", + Type: proto.ColumnType_INT, + }, + { + Name: "enabled", + Description: "If the profile is enabled or not.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "require_instance_properties", + Description: "Specifies whether instance properties are required in temporary credential requests with this profile.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "attribute_mappings", + Description: "A mapping applied to the authenticating end-entity certificate.", + Type: proto.ColumnType_JSON, + }, + { + Name: "managed_policy_arns", + Description: "A list of managed policy ARNs that apply to the vended session credentials.", + Type: proto.ColumnType_JSON, + }, + { + Name: "role_arns", + Description: "A list of IAM roles that this profile can assume in a temporary credential request.", + Type: proto.ColumnType_JSON, + }, + { + Name: "session_policy", + Description: "A session policy that applies to the trust boundary of the vended session credentials.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SessionPolicy").Transform(transform.UnmarshalYAML), + }, + { + Name: "session_policy_std", + Description: "Contains the session policy in a canonical form for easier searching.", + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SessionPolicy").Transform(unescape).Transform(policyToCanonical), + }, + { + Name: "tags_src", + Description: "A list of tags associated with the profile", + Type: proto.ColumnType_JSON, + Hydrate: listTagsForProfile, + Transform: transform.FromField("Tags"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: listTagsForProfile, + Transform: transform.From(profileTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ProfileArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listProfiles(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := RolesAnywhereClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_profile.listProfiles", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + input := rolesanywhere.ListProfilesInput{} + paginator := rolesanywhere.NewListProfilesPaginator(svc, &input, func(o *rolesanywhere.ListProfilesPaginatorOptions) { + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_profile.listProfiles", "api_error", err) + return nil, err + } + + for _, profile := range output.Profiles { + d.StreamListItem(ctx, profile) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil + +} + +//// HYDRATE FUNCTIONS + +func getProfile(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + profile_id := d.EqualsQuals["id"].GetStringValue() + + svc, err := RolesAnywhereClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_profile.getProfile", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + params := &rolesanywhere.GetProfileInput{ + ProfileId: aws.String(profile_id), + } + op, err := svc.GetProfile(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_profile.getProfile", "api_error", err) + return nil, err + } + return *op.Profile, nil +} + +func listTagsForProfile(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + profile_arn := h.Item.(types.ProfileDetail).ProfileArn + + svc, err := RolesAnywhereClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_profile.listTagsForProfile", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + params := &rolesanywhere.ListTagsForResourceInput{ + ResourceArn: profile_arn, + } + op, err := svc.ListTagsForResource(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_profile.listTagsForProfile", "api_error", err) + return nil, err + } + + return op, nil +} + +//// TRANSFORM FUNCTION + +func profileTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + tags := d.HydrateItem.(*rolesanywhere.ListTagsForResourceOutput) + var turbotTagsMap map[string]string + if tags.Tags != nil { + turbotTagsMap = map[string]string{} + for _, i := range tags.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + } + return turbotTagsMap, nil +} diff --git a/aws/table_aws_rolesanywhere_trust_anchor.go b/aws/table_aws_rolesanywhere_trust_anchor.go new file mode 100644 index 000000000..6f51e3d94 --- /dev/null +++ b/aws/table_aws_rolesanywhere_trust_anchor.go @@ -0,0 +1,222 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/rolesanywhere" + "github.com/aws/aws-sdk-go-v2/service/rolesanywhere/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsRolesAnywhereTrustAnchor(ctx context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_rolesanywhere_trust_anchor", + Description: "AWS Roles Anywhere Trust Anchor", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AnyColumn([]string{"trust_anchor_id"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException", "ValidationException"}), + }, + Hydrate: getTrustAnchor, + Tags: map[string]string{"service": "rolesanywhere", "action": "GetTrustAnchor"}, + }, + List: &plugin.ListConfig{ + Hydrate: listTrustAnchors, + Tags: map[string]string{"service": "rolesanywhere", "action": "ListTrustAnchors"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: listTagsForTrustAnchor, + Tags: map[string]string{"service": "rolesanywhere", "action": "ListTagsForResource"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ROLESANYWHERE_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "trust_anchor_id", + Description: "The unique identifier of the trust anchor.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) specifying the trust anchor.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("TrustAnchorArn"), + }, + { + Name: "name", + Description: "The name of the trust anchor.", + Type: proto.ColumnType_STRING, + }, + { + Name: "updated_at", + Description: "The date and time when the trust anchor was last updated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "created_at", + Description: "The date and time when the trust anchor was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "enabled", + Description: "If the trust anchor is enabled or not.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "source_type", + Description: "The type of the trust anchor.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Source.SourceType"), + }, + { + Name: "source_data", + Description: "The certificate/arn data for the trust anchor, depending on the source type.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Source.SourceData.Value"), + }, + { + Name: "notification_settings", + Description: "A list of notification settings to be associated to the trust anchor.", + Type: proto.ColumnType_JSON, + }, + { + Name: "tags_src", + Description: "A list of tags associated with the anchor", + Type: proto.ColumnType_JSON, + Hydrate: listTagsForTrustAnchor, + Transform: transform.FromField("Tags"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: listTagsForTrustAnchor, + Transform: transform.From(trustAnchorTurbotTags), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("TrustAnchorArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listTrustAnchors(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := RolesAnywhereClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_trust_anchor.listTrustAnchors", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + input := rolesanywhere.ListTrustAnchorsInput{} + paginator := rolesanywhere.NewListTrustAnchorsPaginator(svc, &input, func(o *rolesanywhere.ListTrustAnchorsPaginatorOptions) { + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_trust_anchor.listTrustAnchors", "api_error", err) + return nil, err + } + + for _, anchor := range output.TrustAnchors { + d.StreamListItem(ctx, anchor) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getTrustAnchor(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + anchor_id := d.EqualsQuals["trust_anchor_id"].GetStringValue() + + svc, err := RolesAnywhereClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_trust_anchor.getTrustAnchor", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + params := &rolesanywhere.GetTrustAnchorInput{ + TrustAnchorId: aws.String(anchor_id), + } + + op, err := svc.GetTrustAnchor(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_trust_anchor.getTrustAnchor", "api_error", err) + return nil, err + } + return *op.TrustAnchor, nil +} + +func listTagsForTrustAnchor(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + anchor_arn := h.Item.(types.TrustAnchorDetail).TrustAnchorArn + + svc, err := RolesAnywhereClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_trust_anchor.listTagsForTrustAnchor", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + params := &rolesanywhere.ListTagsForResourceInput{ + ResourceArn: anchor_arn, + } + op, err := svc.ListTagsForResource(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_rolesanywhere_trust_anchor.listTagsForTrustAnchor", "api_error", err) + return nil, err + } + + return op, nil +} + +//// TRANSFORM FUNCTION + +func trustAnchorTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + tags := d.HydrateItem.(*rolesanywhere.ListTagsForResourceOutput) + var turbotTagsMap map[string]string + if tags.Tags != nil { + turbotTagsMap = map[string]string{} + for _, i := range tags.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + } + return turbotTagsMap, nil +} diff --git a/aws/table_aws_route53_resolver_endpoint.go b/aws/table_aws_route53_resolver_endpoint.go index 362c5c41e..9c27caeb7 100644 --- a/aws/table_aws_route53_resolver_endpoint.go +++ b/aws/table_aws_route53_resolver_endpoint.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" - route53resolverv1 "github.com/aws/aws-sdk-go/service/route53resolver" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -52,7 +50,7 @@ func tableAwsRoute53ResolverEndpoint(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "route53resolver", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(route53resolverv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ROUTE53RESOLVER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_route53_resolver_query_log_config.go b/aws/table_aws_route53_resolver_query_log_config.go index c6faeb851..ab17af25f 100644 --- a/aws/table_aws_route53_resolver_query_log_config.go +++ b/aws/table_aws_route53_resolver_query_log_config.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" - route53resolverv1 "github.com/aws/aws-sdk-go/service/route53resolver" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -28,7 +26,7 @@ func tableAwsRoute53ResolverQueryLogConfig(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(route53resolverv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ROUTE53RESOLVER_SERVICE_ID), List: &plugin.ListConfig{ KeyColumns: []*plugin.KeyColumn{ {Name: "creator_request_id", Require: plugin.Optional}, diff --git a/aws/table_aws_route53_resolver_rule.go b/aws/table_aws_route53_resolver_rule.go index fd67cf140..9ebd23a37 100644 --- a/aws/table_aws_route53_resolver_rule.go +++ b/aws/table_aws_route53_resolver_rule.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/route53resolver" "github.com/aws/aws-sdk-go-v2/service/route53resolver/types" - route53resolverv1 "github.com/aws/aws-sdk-go/service/route53resolver" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -50,7 +48,7 @@ func tableAwsRoute53ResolverRule(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "route53resolver", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(route53resolverv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_ROUTE53RESOLVER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_s3_access_point.go b/aws/table_aws_s3_access_point.go index f0c06a981..5a08a7c9b 100644 --- a/aws/table_aws_s3_access_point.go +++ b/aws/table_aws_s3_access_point.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/s3control" "github.com/aws/aws-sdk-go-v2/service/s3control/types" - s3controlv1 "github.com/aws/aws-sdk-go/service/s3control" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -55,7 +53,7 @@ func tableAwsS3AccessPoint(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "s3", "action": "GetAccessPointPolicy"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(s3controlv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_S3_CONTROL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_s3_bucket.go b/aws/table_aws_s3_bucket.go index dad3839e3..c78a3f4f0 100644 --- a/aws/table_aws_s3_bucket.go +++ b/aws/table_aws_s3_bucket.go @@ -352,7 +352,7 @@ func doGetBucketRegion(ctx context.Context, d *plugin.QueryData, h *plugin.Hydra } // The most reliable way to discover the region of an S3 bucket is to make an unauthenticated HTTP HEAD request which this SDK manager.GetBucketRegion() function does. - // See https://github.com/aws/aws-sdk-go/issues/356#issuecomment-132707340 + // See https://github.com/aws/aws-sdk-go-v2/issues/356#issuecomment-132707340 // and https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/feature/s3/manager#GetBucketRegion bucketRegion, err := manager.GetBucketRegion(ctx, svc, bucket) if err != nil { @@ -796,4 +796,4 @@ func handleS3TagsToTurbotTags(_ context.Context, d *transform.TransformData) (in } return turbotTagsMap, nil -} +} \ No newline at end of file diff --git a/aws/table_aws_s3_bucket_intelligent_tiering_configuration.go b/aws/table_aws_s3_bucket_intelligent_tiering_configuration.go index eab2c83a9..4fc77f1c1 100644 --- a/aws/table_aws_s3_bucket_intelligent_tiering_configuration.go +++ b/aws/table_aws_s3_bucket_intelligent_tiering_configuration.go @@ -168,4 +168,4 @@ func getBucketIntelligentTieringConfiguration(ctx context.Context, d *plugin.Que } return nil, nil -} +} \ No newline at end of file diff --git a/aws/table_aws_s3_directory_bucket.go b/aws/table_aws_s3_directory_bucket.go new file mode 100644 index 000000000..a6354e8bb --- /dev/null +++ b/aws/table_aws_s3_directory_bucket.go @@ -0,0 +1,257 @@ +package aws + +import ( + "context" + "errors" + "fmt" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/aws/aws-sdk-go-v2/service/s3/types" + "github.com/aws/smithy-go" + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsS3DirectoryBucket(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_s3_directory_bucket", + Description: "AWS S3 Directory Bucket", + List: &plugin.ListConfig{ + Hydrate: listS3DirectoryBuckets, + Tags: map[string]string{"service": "s3", "action": "ListDirectoryBuckets"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_S3_SERVICE_ID), + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getS3DirectoryBucketPolicy, + Tags: map[string]string{"service": "s3", "action": "GetBucketPolicy"}, + }, + { + Func: getS3DirectoryBucketLifecycle, + Tags: map[string]string{"service": "s3", "action": "GetBucketLifecycleConfiguration"}, + }, + { + Func: getS3DirectoryBucketEncryption, + Tags: map[string]string{"service": "s3", "action": "GetBucketEncryption"}, + }, + }, + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the directory bucket.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The ARN of the directory bucket.", + Type: proto.ColumnType_STRING, + Hydrate: getS3DirectoryBucketArn, + Transform: transform.FromValue(), + }, + { + Name: "creation_date", + Description: "The date when the directory bucket was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "policy", + Description: "The resource IAM access document for the directory bucket.", + Type: proto.ColumnType_JSON, + Hydrate: getS3DirectoryBucketPolicy, + Transform: transform.FromField("Policy").Transform(transform.UnmarshalYAML), + }, + { + Name: "policy_std", + Description: "Contains the policy in a canonical form for easier searching.", + Type: proto.ColumnType_JSON, + Hydrate: getS3DirectoryBucketPolicy, + Transform: transform.FromField("Policy").Transform(policyToCanonical), + }, + { + Name: "lifecycle_rules", + Description: "The lifecycle configuration information of the directory bucket.", + Type: proto.ColumnType_JSON, + Hydrate: getS3DirectoryBucketLifecycle, + Transform: transform.FromField("Rules"), + }, + { + Name: "server_side_encryption_configuration", + Description: "The default encryption configuration for the directory bucket.", + Type: proto.ColumnType_JSON, + Hydrate: getS3DirectoryBucketEncryption, + Transform: transform.FromField("ServerSideEncryptionConfiguration.Rules"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getS3DirectoryBucketArn, + Transform: transform.FromValue().Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listS3DirectoryBuckets(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get the region from the matrix + region := d.EqualsQualString(matrixKeyRegion) + + // Create service + svc, err := S3Client(ctx, d, region) + if err != nil { + plugin.Logger(ctx).Error("aws_s3_directory_bucket.listS3DirectoryBuckets", "get_client_error", err, "region", region) + return nil, err + } + + input := &s3.ListDirectoryBucketsInput{} + + // Paginate through results + paginator := s3.NewListDirectoryBucketsPaginator(svc, input, func(o *s3.ListDirectoryBucketsPaginatorOptions) { + o.Limit = 1000 + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + // For unsupported region we are encountering Error: aws: operation error S3: ListDirectoryBuckets, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Get "https://s3express-control.ap-southeast-3.amazonaws.com/?max-directory-buckets=1000&x-id=ListDirectoryBuckets": lookup s3express-control.ap-southeast-3.amazonaws.com on 192.168.31.1:53: no such host + if strings.Contains(err.Error(), "no such host") { + return nil, nil + } + plugin.Logger(ctx).Error("aws_s3_directory_bucket.listS3DirectoryBuckets", "api_error", err, "region", region) + return nil, err + } + + for _, bucket := range output.Buckets { + d.StreamListItem(ctx, bucket) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +func getS3DirectoryBucketPolicy(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + bucket := h.Item.(types.Bucket) + region := d.EqualsQualString(matrixKeyRegion) + + // Create service + svc, err := S3Client(ctx, d, region) + if err != nil { + plugin.Logger(ctx).Error("aws_s3_directory_bucket.getS3DirectoryBucketPolicy", "get_client_error", err, "region", region) + return nil, err + } + + params := &s3.GetBucketPolicyInput{ + Bucket: bucket.Name, + } + + policy, err := svc.GetBucketPolicy(ctx, params) + if err != nil { + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "NoSuchBucketPolicy" { + return nil, nil + } + } + plugin.Logger(ctx).Error("aws_s3_directory_bucket.getS3DirectoryBucketPolicy", "api_error", err, "bucket", *bucket.Name) + return nil, err + } + + return policy, nil +} + +func getS3DirectoryBucketLifecycle(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + bucket := h.Item.(types.Bucket) + region := d.EqualsQualString(matrixKeyRegion) + + // Create service + svc, err := S3Client(ctx, d, region) + if err != nil { + plugin.Logger(ctx).Error("aws_s3_directory_bucket.getS3DirectoryBucketLifecycle", "get_client_error", err, "region", region) + return nil, err + } + + params := &s3.GetBucketLifecycleConfigurationInput{ + Bucket: bucket.Name, + } + + lifecycleConfiguration, err := svc.GetBucketLifecycleConfiguration(ctx, params) + if err != nil { + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "NoSuchLifecycleConfiguration" { + return nil, nil + } + } + plugin.Logger(ctx).Error("aws_s3_directory_bucket.getS3DirectoryBucketLifecycle", "api_error", err, "bucket", *bucket.Name) + return nil, err + } + + return lifecycleConfiguration, nil +} + +func getS3DirectoryBucketEncryption(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + bucket := h.Item.(types.Bucket) + region := d.EqualsQualString(matrixKeyRegion) + + // Create service + svc, err := S3Client(ctx, d, region) + if err != nil { + plugin.Logger(ctx).Error("aws_s3_directory_bucket.getS3DirectoryBucketEncryption", "get_client_error", err, "region", region) + return nil, err + } + + params := &s3.GetBucketEncryptionInput{ + Bucket: bucket.Name, + } + + encryptionConfiguration, err := svc.GetBucketEncryption(ctx, params) + if err != nil { + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "ServerSideEncryptionConfigurationNotFoundError" { + return nil, nil + } + } + plugin.Logger(ctx).Error("aws_s3_directory_bucket.getS3DirectoryBucketEncryption", "api_error", err, "bucket", *bucket.Name) + return nil, err + } + + return encryptionConfiguration, nil +} + +func getS3DirectoryBucketArn(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + bucket := h.Item.(types.Bucket) + + region := d.EqualsQualString(matrixKeyRegion) + + commonInfo, err := getCommonColumns(ctx, d, h) + if err != nil { + return nil, err + } + + commonData := commonInfo.(*awsCommonColumnData) + + arn := fmt.Sprintf("arn:%s:s3express:%s:%s:bucket/%s", commonData.Partition, region, commonData.AccountId, *bucket.Name) + + return arn, nil +} diff --git a/aws/table_aws_s3_object.go b/aws/table_aws_s3_object.go index e95ee7036..86e34165a 100644 --- a/aws/table_aws_s3_object.go +++ b/aws/table_aws_s3_object.go @@ -7,9 +7,9 @@ import ( "strings" "unicode/utf8" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3/types" - "github.com/aws/aws-sdk-go/aws" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" diff --git a/aws/table_aws_s3_object_version.go b/aws/table_aws_s3_object_version.go index 3294bd40a..534ff5fc0 100644 --- a/aws/table_aws_s3_object_version.go +++ b/aws/table_aws_s3_object_version.go @@ -3,8 +3,8 @@ package aws import ( "context" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/s3" - "github.com/aws/aws-sdk-go/aws" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -165,4 +165,4 @@ func listS3ObjectVersions(ctx context.Context, d *plugin.QueryData, h *plugin.Hy } return nil, err -} +} \ No newline at end of file diff --git a/aws/table_aws_s3tables_namespace.go b/aws/table_aws_s3tables_namespace.go new file mode 100644 index 000000000..c9a7600e8 --- /dev/null +++ b/aws/table_aws_s3tables_namespace.go @@ -0,0 +1,221 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/s3tables" + "github.com/aws/aws-sdk-go-v2/service/s3tables/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsS3tablesNamespace(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_s3tables_namespace", + Description: "AWS S3Tables Namespace", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"namespace", "table_bucket_arn"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException"}), + }, + Hydrate: getS3tablesNamespaceById, + Tags: map[string]string{"service": "s3tables", "action": "ListNamespaces"}, + }, + List: &plugin.ListConfig{ + ParentHydrate: listS3tablesTableBuckets, + Hydrate: listS3tablesNamespaces, + KeyColumns: plugin.KeyColumnSlice{ + {Name: "table_bucket_arn", Require: plugin.Optional}, + }, + Tags: map[string]string{"service": "s3tables", "action": "ListNamespaces"}, + }, + GetMatrixItemFunc: S3TablesRegionsMatrix, + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "namespace_id", + Description: "The system-assigned unique identifier for the namespace.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Namespace.NamespaceId"), + }, + { + Name: "namespace", + Description: "The name of the namespace.", + Type: proto.ColumnType_STRING, + Hydrate: getFirstIndexNamespaceValue, + Transform: transform.FromValue(), + }, + { + Name: "created_at", + Description: "The date and time the namespace was created at.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("Namespace.CreatedAt"), + }, + { + Name: "created_by", + Description: "The ID of the account that created the namespace.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Namespace.CreatedBy"), + }, + { + Name: "owner_account_id", + Description: "The ID of the account that owns the namespace.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Namespace.OwnerAccountId"), + }, + { + Name: "table_bucket_id", + Description: "The system-assigned unique identifier for the table bucket that contains this namespace.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Namespace.TableBucketId"), + }, + { + Name: "table_bucket_arn", + Description: "The Amazon Resource Name (ARN) of the table bucket associated with the namespace.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe Standard Columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Hydrate: getFirstIndexNamespaceValue, + Transform: transform.FromValue(), + }, + }), + } +} + +// NamespaceInfo holds namespace data along with its parent bucket info +type NamespaceInfo struct { + Namespace types.NamespaceSummary + TableBucketName string + TableBucketArn string +} + + +//// LIST FUNCTION + +func listS3tablesNamespaces(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get bucket details from parent hydrate + bucket := h.Item.(types.TableBucketSummary) + + // Minimize the number of API calls + if d.EqualsQualString("table_bucket_arn") != "" && d.EqualsQualString("table_bucket_arn") != *bucket.Arn { + return nil, nil + } + + // Create Session + svc, err := S3TablesClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_namespace.listS3tablesNamespaces", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &s3tables.ListNamespacesInput{ + TableBucketARN: bucket.Arn, + MaxNamespaces: aws.Int32(maxLimit), + } + + paginator := s3tables.NewListNamespacesPaginator(svc, input, func(o *s3tables.ListNamespacesPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_namespace.listS3tablesNamespaces", "api_error", err) + return nil, err + } + + for _, namespace := range output.Namespaces { + d.StreamLeafListItem(ctx, &NamespaceInfo{ + Namespace: namespace, + TableBucketName: *bucket.Name, + TableBucketArn: *bucket.Arn, + }) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getS3tablesNamespaceById(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + namespace := d.EqualsQualString("namespace") + tableBucketArn := d.EqualsQualString("table_bucket_arn") + + // Create service + svc, err := S3TablesClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_namespace.getS3tablesNamespaceById", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // List namespaces for the table bucket and filter by ID + input := &s3tables.GetNamespaceInput{ + TableBucketARN: aws.String(tableBucketArn), + Namespace: aws.String(namespace), + } + + output, err := svc.GetNamespace(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_namespace.getS3tablesNamespaceById", "api_error", err) + return nil, err + } + + if output != nil { + return &NamespaceInfo{ + Namespace: types.NamespaceSummary{ + NamespaceId: output.NamespaceId, + Namespace: output.Namespace, + CreatedAt: output.CreatedAt, + CreatedBy: output.CreatedBy, + OwnerAccountId: output.OwnerAccountId, + TableBucketId: output.TableBucketId, + }, + TableBucketArn: tableBucketArn, + }, nil + } + + return nil, nil +} + +func getFirstIndexNamespaceValue(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + info := h.Item.(*NamespaceInfo) + if len(info.Namespace.Namespace) > 0 { + return info.Namespace.Namespace[0], nil + } + return "", nil +} diff --git a/aws/table_aws_s3tables_table.go b/aws/table_aws_s3tables_table.go new file mode 100644 index 000000000..49f9baeb0 --- /dev/null +++ b/aws/table_aws_s3tables_table.go @@ -0,0 +1,334 @@ +package aws + +import ( + "context" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/s3tables" + "github.com/aws/aws-sdk-go-v2/service/s3tables/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsS3tablesTable(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_s3tables_table", + Description: "AWS S3Tables Table", + Get: &plugin.GetConfig{ + KeyColumns: plugin.AllColumns([]string{"name", "namespace", "table_bucket_arn"}), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException"}), + }, + Hydrate: getS3tablesTable, + Tags: map[string]string{"service": "s3tables", "action": "GetTable"}, + }, + List: &plugin.ListConfig{ + ParentHydrate: listS3tablesTableBuckets, + Hydrate: listS3tablesTables, + Tags: map[string]string{"service": "s3tables", "action": "ListTables"}, + }, + GetMatrixItemFunc: S3TablesRegionsMatrix, + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the table.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the table.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("TableARN"), + }, + { + Name: "created_at", + Description: "The date and time the table was created at.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "modified_at", + Description: "The date and time the table was last modified at.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "created_by", + Description: "The ID of the account that created the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "modified_by", + Description: "The ID of the account that last modified the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "namespace", + Description: "The namespace associated with the table.", + Type: proto.ColumnType_STRING, + Hydrate: extractNamespaceNameFromStringArray, + Transform: transform.FromValue(), + }, + { + Name: "namespace_id", + Description: "The unique identifier for the namespace that contains this table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "table_bucket_id", + Description: "The unique identifier for the table bucket that contains this table.", + Type: proto.ColumnType_STRING, + }, + { + Name: "table_bucket_arn", + Description: "The Amazon Resource Name (ARN) of the table bucket associated with the table.", + Type: proto.ColumnType_STRING, + }, + { + Name: "type", + Description: "The type of the table.", + Type: proto.ColumnType_STRING, + }, + { + Name: "owner_account_id", + Description: "The ID of the account that owns the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "version_token", + Description: "The version token of the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "metadata_location", + Description: "The metadata location of the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "format", + Description: "The format of the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "warehouse_location", + Description: "The warehouse location of the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + { + Name: "managed_by_service", + Description: "The service that manages the table.", + Type: proto.ColumnType_STRING, + Hydrate: getS3tablesTable, + }, + + // Steampipe Standard Columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("TableARN").Transform(transform.EnsureStringArray), + }, + }), + } +} + +// TableInfo is a structure to hold S3tables data along with its bucket information +type TableInfo struct { + // Common fields for both GetTable and ListTables responses + Name *string + TableARN *string + TableBucketId *string + NamespaceId *string + Namespace []string + CreatedAt *time.Time + ModifiedAt *time.Time + Type types.TableType + + // Fields only available in GetTable API response + CreatedBy *string + ModifiedBy *string + OwnerAccountId *string + Format *string + WarehouseLocation *string + MetadataLocation *string + VersionToken *string + ManagedByService *string + + // Parent info + TableBucketArn string +} + +//// LIST FUNCTION + +func listS3tablesTables(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get bucket details from parent hydrate + bucket := h.Item.(types.TableBucketSummary) + + // Create Session + svc, err := S3TablesClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table.listS3tablesTables", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &s3tables.ListTablesInput{ + TableBucketARN: bucket.Arn, + MaxTables: aws.Int32(maxLimit), + } + + paginator := s3tables.NewListTablesPaginator(svc, input, func(o *s3tables.ListTablesPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table.listS3tablesTables", "api_error", err) + return nil, err + } + + for _, table := range output.Tables { + // Create unified TableInfo from TableSummary + tableInfo := &TableInfo{ + Name: table.Name, + TableARN: table.TableARN, + TableBucketId: table.TableBucketId, + NamespaceId: table.NamespaceId, + Namespace: table.Namespace, + CreatedAt: table.CreatedAt, + ModifiedAt: table.ModifiedAt, + Type: table.Type, + TableBucketArn: *bucket.Arn, + } + + d.StreamLeafListItem(ctx, tableInfo) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getS3tablesTable(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var name, namespace, bucketARN string + var tableInfo *TableInfo + + if h.Item != nil { + // When called as a hydrate function, get details from the list call + tableInfo = h.Item.(*TableInfo) + if tableInfo.Name != nil { + name = *tableInfo.Name + } + if len(tableInfo.Namespace) > 0 { + namespace = tableInfo.Namespace[0] + } + bucketARN = tableInfo.TableBucketArn + } else { + // When called directly from Get, use query parameters + name = d.EqualsQualString("name") + namespace = d.EqualsQualString("namespace") + bucketARN = d.EqualsQualString("table_bucket_arn") + + } + + // Create service + svc, err := S3TablesClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table.getS3tablesTable", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // Build the params + params := &s3tables.GetTableInput{ + Name: aws.String(name), + Namespace: aws.String(namespace), + TableBucketARN: aws.String(bucketARN), + } + + // Get call + data, err := svc.GetTable(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table.getS3tablesTable", "api_error", err) + return nil, err + } + + if data == nil { + return nil, nil + } + + // Initialize a new TableInfo for direct Get calls + tableInfo = &TableInfo{ + TableBucketArn: bucketARN, + // Update the TableInfo with data from GetTable response + Name: data.Name, + TableARN: data.TableARN, + TableBucketId: data.TableBucketId, + NamespaceId: data.NamespaceId, + Namespace: data.Namespace, + CreatedAt: data.CreatedAt, + ModifiedAt: data.ModifiedAt, + Type: data.Type, + CreatedBy: data.CreatedBy, + ModifiedBy: data.ModifiedBy, + OwnerAccountId: data.OwnerAccountId, + // Convert the Format enum to a string since it's a string type + Format: aws.String(string(data.Format)), + WarehouseLocation: data.WarehouseLocation, + MetadataLocation: data.MetadataLocation, + VersionToken: data.VersionToken, + ManagedByService: data.ManagedByService, + } + + return tableInfo, nil +} + +func extractNamespaceNameFromStringArray(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + info := h.Item.(*TableInfo) + if len(info.Namespace) > 0 { + return info.Namespace[0], nil + } + return "", nil +} diff --git a/aws/table_aws_s3tables_table_bucket.go b/aws/table_aws_s3tables_table_bucket.go new file mode 100644 index 000000000..361aad9b0 --- /dev/null +++ b/aws/table_aws_s3tables_table_bucket.go @@ -0,0 +1,169 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/s3tables" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsS3tablesTableBucket(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_s3tables_table_bucket", + Description: "AWS S3Tables Table Bucket", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("arn"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NotFoundException"}), + }, + Hydrate: getS3tablesTableBucket, + Tags: map[string]string{"service": "s3tables", "action": "GetTableBucket"}, + }, + List: &plugin.ListConfig{ + Hydrate: listS3tablesTableBuckets, + Tags: map[string]string{"service": "s3tables", "action": "ListTableBuckets"}, + }, + GetMatrixItemFunc: S3TablesRegionsMatrix, + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the table bucket.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the table bucket.", + Type: proto.ColumnType_STRING, + }, + { + Name: "created_at", + Description: "The date and time the table bucket was created at.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "table_bucket_id", + Description: "The system-assigned unique identifier for the table bucket.", + Type: proto.ColumnType_STRING, + }, + { + Name: "owner_account_id", + Description: "The ID of the account that owns the table bucket.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe Standard Columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listS3tablesTableBuckets(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := S3TablesClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table_bucket.listS3tablesTableBuckets", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &s3tables.ListTableBucketsInput{ + MaxBuckets: aws.Int32(maxLimit), + } + + paginator := s3tables.NewListTableBucketsPaginator(svc, input, func(o *s3tables.ListTableBucketsPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table_bucket.listS3tablesTableBuckets", "api_error", err) + return nil, err + } + + for _, bucket := range output.TableBuckets { + d.StreamListItem(ctx, bucket) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getS3tablesTableBucket(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + arn := d.EqualsQualString("arn") + + // Empty check for required qual + if arn == "" { + return nil, nil + } + + // Create service + svc, err := S3TablesClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table_bucket.getS3tablesTableBucket", "connection_error", err) + return nil, err + } + + if svc == nil { + return nil, nil + } + + // Build the params + params := &s3tables.GetTableBucketInput{ + TableBucketARN: aws.String(arn), + } + + // Get call + data, err := svc.GetTableBucket(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_s3tables_table_bucket.getS3tablesTableBucket", "api_error", err) + return nil, err + } + + if data == nil { + return nil, nil + } + + return data, nil +} diff --git a/aws/table_aws_sagemaker_app.go b/aws/table_aws_sagemaker_app.go index 8a9338cb9..21eda338b 100644 --- a/aws/table_aws_sagemaker_app.go +++ b/aws/table_aws_sagemaker_app.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sagemaker" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" - sagemakerv1 "github.com/aws/aws-sdk-go/service/sagemaker" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,7 +23,7 @@ func tableAwsSageMakerApp(_ context.Context) *plugin.Table { Get: &plugin.GetConfig{ KeyColumns: plugin.AllColumns([]string{"name", "app_type", "domain_id", "user_profile_name"}), IgnoreConfig: &plugin.IgnoreConfig{ - ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException", "NotFoundException", "ResourceNotFound"}), + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException", "NotFoundException", "ResourceNotFound", "UnknownOperationException"}), }, Hydrate: getSageMakerApp, Tags: map[string]string{"service": "sagemaker", "action": "DescribeApp"}, @@ -45,7 +43,7 @@ func tableAwsSageMakerApp(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "DescribeApp"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sagemakerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_SAGEMAKER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -191,6 +189,7 @@ func listSageMakerApps(ctx context.Context, d *plugin.QueryData, h *plugin.Hydra output, err := paginator.NextPage(ctx) if err != nil { + plugin.Logger(ctx).Error("aws_sagemaker_app.listSageMakerApps", "api_error", err) return nil, err } diff --git a/aws/table_aws_sagemaker_domain.go b/aws/table_aws_sagemaker_domain.go index ff7cc5018..1ff78a5e8 100644 --- a/aws/table_aws_sagemaker_domain.go +++ b/aws/table_aws_sagemaker_domain.go @@ -2,12 +2,12 @@ package aws import ( "context" + "errors" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/sagemaker" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" - - sagemakerv1 "github.com/aws/aws-sdk-go/service/sagemaker" + "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -23,7 +23,7 @@ func tableAwsSageMakerDomain(_ context.Context) *plugin.Table { Get: &plugin.GetConfig{ KeyColumns: plugin.SingleColumn("id"), IgnoreConfig: &plugin.IgnoreConfig{ - ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException", "NotFoundException", "ResourceNotFound"}), + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException", "NotFoundException", "ResourceNotFound", "UnknownOperationException"}), }, Hydrate: getAwsSageMakerDomain, Tags: map[string]string{"service": "sagemaker", "action": "DescribeDomain"}, @@ -42,7 +42,7 @@ func tableAwsSageMakerDomain(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sagemakerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_SAGEMAKER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", @@ -243,6 +243,22 @@ func listAwsSageMakerDomains(ctx context.Context, d *plugin.QueryData, _ *plugin output, err := paginator.NextPage(ctx) if err != nil { + // This table is act as parent of Sagemaker App table. + // In the case the ignore config is not working as expected. + // + // AWS SageMaker service is available in the region ap-southeast-5, but the `ListDomains` API is not supported in this regions. + // + // Observed unsupported region error: + // + // - When calling `ListDomains` in an unsupported region: + // Error: aws_nagraj: operation error SageMaker: ListDomains, https response error StatusCode: 400, RequestID: da25f297-1682-4be0-8f85-fc9f0cd39589 + // api error UnknownOperationException: The requested operation is not supported in the called region. (SQLSTATE HV000) + var ae smithy.APIError + if errors.As(err, &ae) { + if ae.ErrorCode() == "UnknownOperationException" { + return nil, nil + } + } plugin.Logger(ctx).Error("aws_sagemaker_domain.listAwsSageMakerDomains", "api_error", err) return nil, err } diff --git a/aws/table_aws_sagemaker_endpoint_configuration.go b/aws/table_aws_sagemaker_endpoint_configuration.go index 99905193e..5ecb9c051 100644 --- a/aws/table_aws_sagemaker_endpoint_configuration.go +++ b/aws/table_aws_sagemaker_endpoint_configuration.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sagemaker" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" - sagemakerv1 "github.com/aws/aws-sdk-go/service/sagemaker" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -45,7 +43,7 @@ func tableAwsSageMakerEndpointConfiguration(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sagemakerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_SAGEMAKER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_sagemaker_model.go b/aws/table_aws_sagemaker_model.go index 0f3e00d30..06eb47b0e 100644 --- a/aws/table_aws_sagemaker_model.go +++ b/aws/table_aws_sagemaker_model.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sagemaker" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" - sagemakerv1 "github.com/aws/aws-sdk-go/service/sagemaker" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -45,7 +43,7 @@ func tableAwsSageMakerModel(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sagemakerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_SAGEMAKER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_sagemaker_notebook_instance.go b/aws/table_aws_sagemaker_notebook_instance.go index 568aad94a..5092e433f 100644 --- a/aws/table_aws_sagemaker_notebook_instance.go +++ b/aws/table_aws_sagemaker_notebook_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sagemaker" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" - sagemakerv1 "github.com/aws/aws-sdk-go/service/sagemaker" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -20,17 +18,26 @@ func tableAwsSageMakerNotebookInstance(_ context.Context) *plugin.Table { return &plugin.Table{ Name: "aws_sagemaker_notebook_instance", Description: "AWS Sagemaker Notebook Instance", + // AWS SageMaker service is available in the region, but the `Notebook Instance` resource type is not supported in all regions. + // + // Observed unsupported region error: + // + // - When calling `ListNotebookInstances` in region `ap-southeast-5`: + // Error: aws: operation error SageMaker: ListNotebookInstances, https response error StatusCode: 400, RequestID: 71e624e7-88a7-41a3-b2c6-8b11d63bd3a2 Get: &plugin.GetConfig{ KeyColumns: plugin.SingleColumn("name"), IgnoreConfig: &plugin.IgnoreConfig{ - ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException", "NotFoundException", "RecordNotFound"}), + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"UnknownOperationException", "ValidationException", "NotFoundException", "RecordNotFound"}), }, Hydrate: getAwsSageMakerNotebookInstance, Tags: map[string]string{"service": "sagemaker", "action": "DescribeNotebookInstance"}, }, List: &plugin.ListConfig{ Hydrate: listAwsSageMakerNotebookInstances, - Tags: map[string]string{"service": "sagemaker", "action": "ListNotebookInstances"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"UnknownOperationException"}), + }, + Tags: map[string]string{"service": "sagemaker", "action": "ListNotebookInstances"}, KeyColumns: []*plugin.KeyColumn{ {Name: "default_code_repository", Require: plugin.Optional}, {Name: "notebook_instance_lifecycle_config_name", Require: plugin.Optional}, @@ -47,7 +54,7 @@ func tableAwsSageMakerNotebookInstance(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sagemakerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_SAGEMAKER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_sagemaker_training_job.go b/aws/table_aws_sagemaker_training_job.go index a0d93351c..61708ec21 100644 --- a/aws/table_aws_sagemaker_training_job.go +++ b/aws/table_aws_sagemaker_training_job.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sagemaker" "github.com/aws/aws-sdk-go-v2/service/sagemaker/types" - sagemakerv1 "github.com/aws/aws-sdk-go/service/sagemaker" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -45,7 +43,7 @@ func tableAwsSageMakerTrainingJob(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "ListTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sagemakerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_API_SAGEMAKER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_savingsplans_savings_plan.go b/aws/table_aws_savingsplans_savings_plan.go new file mode 100644 index 000000000..ed1d95763 --- /dev/null +++ b/aws/table_aws_savingsplans_savings_plan.go @@ -0,0 +1,323 @@ +package aws + +import ( + "context" + "fmt" + "time" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/savingsplans" + "github.com/aws/aws-sdk-go-v2/service/savingsplans/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsSavingsPlan(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_savingsplans_savings_plan", + Description: "AWS Savings Plans Savings Plan", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("savings_plan_id"), + Hydrate: getSavingsPlan, + Tags: map[string]string{"service": "savingsplans", "action": "DescribeSavingsPlans"}, + }, + List: &plugin.ListConfig{ + Hydrate: listSavingsPlans, + Tags: map[string]string{"service": "savingsplans", "action": "DescribeSavingsPlans"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "state", Require: plugin.Optional}, + {Name: "region", Require: plugin.Optional, Operators: []string{"="}}, + {Name: "ec2_instance_family", Require: plugin.Optional, Operators: []string{"="}}, + {Name: "commitment", Require: plugin.Optional, Operators: []string{"="}}, + {Name: "term_duration_in_seconds", Require: plugin.Optional, Operators: []string{"="}}, + {Name: "savings_plan_type", Require: plugin.Optional, Operators: []string{"="}}, + {Name: "payment_option", Require: plugin.Optional, Operators: []string{"="}}, + {Name: "start_time", Require: plugin.Optional, Operators: []string{">="}}, + {Name: "end_time", Require: plugin.Optional, Operators: []string{"<="}}, + }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidParameterValue"}), + }, + }, + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "savings_plan_id", + Description: "The ID of the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) of the Savings Plan.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SavingsPlanArn"), + }, + { + Name: "offering_id", + Description: "The ID of the offering.", + Type: proto.ColumnType_STRING, + }, + { + Name: "savings_plan_type", + Description: "The type of Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "payment_option", + Description: "The payment option for the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "state", + Description: "The state of the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "currency", + Description: "The currency of the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "commitment", + Description: "The hourly commitment amount for the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "upfront_payment_amount", + Description: "The up-front payment amount for the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "recurring_payment_amount", + Description: "The recurring payment amount for the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "term_duration_in_seconds", + Description: "The duration of the Savings Plan term in seconds.", + Type: proto.ColumnType_INT, + }, + { + Name: "start_time", + Description: "The start time of the Savings Plan.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("Start"), // Renamed from 'start' to 'start_time' to avoid SQL reserved keyword conflicts + }, + { + Name: "end_time", + Description: "The end time of the Savings Plan.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromField("End"), // Renamed from 'end' to 'end_time' to avoid SQL reserved keyword conflicts + }, + { + Name: "returnable_until", + Description: "The time until which the Savings Plan can be returned.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "description", + Description: "The description of the Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "ec2_instance_family", + Description: "The instance family of the EC2 Savings Plan.", + Type: proto.ColumnType_STRING, + }, + { + Name: "product_types", + Description: "The product types supported by the Savings Plan.", + Type: proto.ColumnType_JSON, + }, + + // Steampipe standard columns + { + Name: "tags", + Description: "A list of tags associated with the Savings Plan.", + Type: proto.ColumnType_JSON, + }, + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SavingsPlanId"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("SavingsPlanArn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listSavingsPlans(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := SavingsPlansClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_savingsplans_savings_plan.listSavingsPlans", "connection_error", err) + return nil, err + } + + // Limiting the results + // https://docs.aws.amazon.com/savingsplans/latest/APIReference/API_DescribeSavingsPlans.html#API_DescribeSavingsPlans_RequestSyntax + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + maxLimit = limit + } + } + + input := &savingsplans.DescribeSavingsPlansInput{ + MaxResults: aws.Int32(maxLimit), + } + + // Add filters based on optional key columns + if d.EqualsQuals["state"] != nil { + input.States = []types.SavingsPlanState{types.SavingsPlanState(d.EqualsQuals["state"].GetStringValue())} + } + + filters := getSavingsPlanFilter(ctx, d.Quals) + if len(filters) > 0 { + input.Filters = filters + } + + // Handle pagination manually since AWS SDK v2 doesn't have paginator for this API + var nextToken *string + for { + if nextToken != nil { + input.NextToken = nextToken + } + + // Apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := svc.DescribeSavingsPlans(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_savingsplans_savings_plan.listSavingsPlans", "api_error", err) + return nil, err + } + + for _, item := range output.SavingsPlans { + d.StreamListItem(ctx, item) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + + // Check if there are more pages + if output.NextToken == nil { + break + } + nextToken = output.NextToken + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getSavingsPlan(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + savingsPlanId := d.EqualsQuals["savings_plan_id"].GetStringValue() + + // Create service + svc, err := SavingsPlansClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_savingsplans_savings_plan.getSavingsPlan", "connection_error", err) + return nil, err + } + + params := &savingsplans.DescribeSavingsPlansInput{ + SavingsPlanIds: []string{savingsPlanId}, + } + + op, err := svc.DescribeSavingsPlans(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_savingsplans_savings_plan.getSavingsPlan", "api_error", err) + return nil, err + } + + if len(op.SavingsPlans) > 0 { + return op.SavingsPlans[0], nil + } + return nil, nil +} + +//// UTILITY FUNCTIONS + +func getSavingsPlanFilter(ctx context.Context, quals plugin.KeyColumnQualMap) []types.SavingsPlanFilter { + var filters []types.SavingsPlanFilter + + // String-based filter mappings + stringFilterMap := map[string]types.SavingsPlansFilterName{ + "region": types.SavingsPlansFilterNameRegion, + "ec2_instance_family": types.SavingsPlansFilterNameEc2InstanceFamily, + "commitment": types.SavingsPlansFilterNameCommitment, + "payment_option": types.SavingsPlansFilterNamePaymentOption, + "savings_plan_type": types.SavingsPlansFilterNameSavingsPlanType, + } + + // Handle string filters + for columnName, filterName := range stringFilterMap { + if quals[columnName] != nil { + value := getQualsValueByColumn(quals, columnName, "string") + if value != nil { + filter := types.SavingsPlanFilter{ + Name: filterName, + Values: []string{value.(string)}, + } + filters = append(filters, filter) + } + } + } + + // Handle integer filter (term_duration_in_seconds) + if quals["term_duration_in_seconds"] != nil { + value := getQualsValueByColumn(quals, "term_duration_in_seconds", "int64") + if value != nil { + filter := types.SavingsPlanFilter{ + Name: types.SavingsPlansFilterNameTerm, + Values: []string{fmt.Sprint(value)}, + } + filters = append(filters, filter) + } + } + + // DescribeSavingsPlans, https response error StatusCode: 400, RequestID: 95308c00-e832-4571-9a3c-0275d22821f7, ValidationException: The start / end filter values has an invalid format. Please use following format : yyyy-MM-dd'T'HH:mm:ss.SSSZ + timeLayout := "2006-01-02T15:04:05.000-0700" + // Handle time filters + if quals["start_time"] != nil { + value := getQualsValueByColumn(quals, "start_time", "time") + if value != nil { + if timeValue, ok := value.(time.Time); ok && !timeValue.IsZero() { + filter := types.SavingsPlanFilter{ + Name: types.SavingsPlansFilterNameStart, + Values: []string{timeValue.Format(timeLayout)}, + } + filters = append(filters, filter) + } + } + } + + if quals["end_time"] != nil { + value := getQualsValueByColumn(quals, "end_time", "time") + if value != nil { + if timeValue, ok := value.(time.Time); ok && !timeValue.IsZero() { + filter := types.SavingsPlanFilter{ + Name: types.SavingsPlansFilterNameEnd, + Values: []string{timeValue.Format(timeLayout)}, + } + filters = append(filters, filter) + } + } + } + + return filters +} diff --git a/aws/table_aws_scheduler_schedule.go b/aws/table_aws_scheduler_schedule.go index 4eba7fefd..7750d8de1 100644 --- a/aws/table_aws_scheduler_schedule.go +++ b/aws/table_aws_scheduler_schedule.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/scheduler" "github.com/aws/aws-sdk-go-v2/service/scheduler/types" - schedulerv1 "github.com/aws/aws-sdk-go/service/scheduler" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsSchedulerSchedule(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "scheduler", "action": "ListSchedules"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(schedulerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SCHEDULER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_secretsmanager_secret.go b/aws/table_aws_secretsmanager_secret.go index 753ea4ca7..828ae8e66 100644 --- a/aws/table_aws_secretsmanager_secret.go +++ b/aws/table_aws_secretsmanager_secret.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/aws/aws-sdk-go-v2/service/secretsmanager/types" - secretsmanagerv1 "github.com/aws/aws-sdk-go/service/secretsmanager" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsSecretsManagerSecret(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sagemaker", "action": "DescribeSecret"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(secretsmanagerv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECRETSMANAGER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_securityhub_action_target.go b/aws/table_aws_securityhub_action_target.go index ac39c9c0a..b5c755c4d 100644 --- a/aws/table_aws_securityhub_action_target.go +++ b/aws/table_aws_securityhub_action_target.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/securityhub" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsSecurityHubActionTarget(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_securityhub_enabled_product_subscription.go b/aws/table_aws_securityhub_enabled_product_subscription.go index 51cb0f334..95495f35d 100644 --- a/aws/table_aws_securityhub_enabled_product_subscription.go +++ b/aws/table_aws_securityhub_enabled_product_subscription.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/securityhub" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -24,7 +22,7 @@ func tableAwsSecurityhubEnabledProductSubscription(_ context.Context) *plugin.Ta Hydrate: listSecurityHubEnabledProductSubscriptions, Tags: map[string]string{"service": "securityhub", "action": "ListEnabledProductsForImport"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_securityhub_finding.go b/aws/table_aws_securityhub_finding.go index 8eed314e3..071937d52 100644 --- a/aws/table_aws_securityhub_finding.go +++ b/aws/table_aws_securityhub_finding.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/securityhub" "github.com/aws/aws-sdk-go-v2/service/securityhub/types" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -53,7 +51,7 @@ func tableAwsSecurityHubFinding(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAccessException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_securityhub_finding_aggregator.go b/aws/table_aws_securityhub_finding_aggregator.go index 0016b276d..268f85b35 100644 --- a/aws/table_aws_securityhub_finding_aggregator.go +++ b/aws/table_aws_securityhub_finding_aggregator.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/securityhub" "github.com/aws/aws-sdk-go-v2/service/securityhub/types" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsSecurityHubFindingAggregator(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidAccessException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getSecurityHubFindingAggregator, diff --git a/aws/table_aws_securityhub_hub.go b/aws/table_aws_securityhub_hub.go index e43ae9490..970b085cc 100644 --- a/aws/table_aws_securityhub_hub.go +++ b/aws/table_aws_securityhub_hub.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/securityhub" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsSecurityHub(_ context.Context) *plugin.Table { Hydrate: listSecurityHubs, Tags: map[string]string{"service": "securityhub", "action": "DescribeHub"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getSecurityHubAdministratorAccount, @@ -67,7 +65,7 @@ func tableAwsSecurityHub(_ context.Context) *plugin.Table { }, /// Steampie Standard Columns - + { Name: "tags", Description: resourceInterfaceDescription("tags"), diff --git a/aws/table_aws_securityhub_insight.go b/aws/table_aws_securityhub_insight.go index 6b3e76b35..4df2cf357 100644 --- a/aws/table_aws_securityhub_insight.go +++ b/aws/table_aws_securityhub_insight.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/securityhub" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsSecurityHubInsight(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_securityhub_member.go b/aws/table_aws_securityhub_member.go index fe93454c1..3b80b8b81 100644 --- a/aws/table_aws_securityhub_member.go +++ b/aws/table_aws_securityhub_member.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/securityhub" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" @@ -34,7 +32,7 @@ func tableAwsSecurityHubMember(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidInputException", "BadRequestException"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "member_account_id", diff --git a/aws/table_aws_securityhub_product.go b/aws/table_aws_securityhub_product.go index 23e75c767..f63ef9111 100644 --- a/aws/table_aws_securityhub_product.go +++ b/aws/table_aws_securityhub_product.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/securityhub" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsSecurityhubProduct(_ context.Context) *plugin.Table { Hydrate: listSecurityHubProducts, Tags: map[string]string{"service": "securityhub", "action": "DescribeProducts"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_securityhub_standards_control.go b/aws/table_aws_securityhub_standards_control.go index a4fdd613b..083977ccf 100644 --- a/aws/table_aws_securityhub_standards_control.go +++ b/aws/table_aws_securityhub_standards_control.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/securityhub" "github.com/aws/aws-sdk-go-v2/service/securityhub/types" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsSecurityHubStandardsControl(_ context.Context) *plugin.Table { Hydrate: listSecurityHubStandardsControls, Tags: map[string]string{"service": "securityhub", "action": "DescribeStandardsControls"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "control_id", diff --git a/aws/table_aws_securityhub_standards_subscription.go b/aws/table_aws_securityhub_standards_subscription.go index b209ed663..9aec8b921 100644 --- a/aws/table_aws_securityhub_standards_subscription.go +++ b/aws/table_aws_securityhub_standards_subscription.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/securityhub/types" "github.com/aws/smithy-go" - securityhubv1 "github.com/aws/aws-sdk-go/service/securityhub" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -26,7 +24,7 @@ func tableAwsSecurityHubStandardsSubscription(_ context.Context) *plugin.Table { Hydrate: listSecurityHubStandardsSubcriptions, Tags: map[string]string{"service": "securityhub", "action": "GetEnabledStandards"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(securityhubv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYHUB_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: GetEnabledStandards, diff --git a/aws/table_aws_securitylake_data_lake.go b/aws/table_aws_securitylake_data_lake.go index 4bab9fc37..eaf6755e6 100644 --- a/aws/table_aws_securitylake_data_lake.go +++ b/aws/table_aws_securitylake_data_lake.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/securitylake" - securitylakev1 "github.com/aws/aws-sdk-go/service/securitylake" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -22,7 +20,7 @@ func tableAwsSecurityLakeDataLake(_ context.Context) *plugin.Table { Hydrate: getSecurityLakeDataLake, Tags: map[string]string{"service": "securitylake", "action": "ListDataLakes"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(securitylakev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYLAKE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "kms_key_id", diff --git a/aws/table_aws_securitylake_subscriber.go b/aws/table_aws_securitylake_subscriber.go index 2c839b498..e28ab010c 100644 --- a/aws/table_aws_securitylake_subscriber.go +++ b/aws/table_aws_securitylake_subscriber.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/securitylake" - securitylakev1 "github.com/aws/aws-sdk-go/service/securitylake" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,8 +28,11 @@ func tableAwsSecurityLakeSubscriber(_ context.Context) *plugin.Table { List: &plugin.ListConfig{ Hydrate: listSecurityLakeSubscribers, Tags: map[string]string{"service": "securitylake", "action": "ListSubscribers"}, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, }, - GetMatrixItemFunc: SupportedRegionMatrix(securitylakev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SECURITYLAKE_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "subscriber_name", diff --git a/aws/table_aws_serverlessapplicationrepository_application.go b/aws/table_aws_serverlessapplicationrepository_application.go index 6cb7dd317..de9a6ccc1 100644 --- a/aws/table_aws_serverlessapplicationrepository_application.go +++ b/aws/table_aws_serverlessapplicationrepository_application.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository" "github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository/types" - serverlessapplicationrepositoryv1 "github.com/aws/aws-sdk-go/service/serverlessapplicationrepository" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -43,7 +41,7 @@ func tableAwsServerlessApplicationRepositoryApplication(_ context.Context) *plug Tags: map[string]string{"service": "serverlessrepo", "action": "GetApplication"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(serverlessapplicationrepositoryv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVERLESSREPO_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_service_discovery_instance.go b/aws/table_aws_service_discovery_instance.go index c66689b0b..9bc90ede9 100644 --- a/aws/table_aws_service_discovery_instance.go +++ b/aws/table_aws_service_discovery_instance.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicediscovery" "github.com/aws/aws-sdk-go-v2/service/servicediscovery/types" - servicediscoveryv1 "github.com/aws/aws-sdk-go/service/servicediscovery" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsServiceDiscoveryInstance(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicediscoveryv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEDISCOVERY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_service_discovery_namespace.go b/aws/table_aws_service_discovery_namespace.go index e5064e6ba..b304c8c3a 100644 --- a/aws/table_aws_service_discovery_namespace.go +++ b/aws/table_aws_service_discovery_namespace.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicediscovery" "github.com/aws/aws-sdk-go-v2/service/servicediscovery/types" - servicediscoveryv1 "github.com/aws/aws-sdk-go/service/servicediscovery" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -48,7 +46,7 @@ func tableAwsServiceDiscoveryNamespace(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "servicediscovery", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicediscoveryv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEDISCOVERY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_service_discovery_service.go b/aws/table_aws_service_discovery_service.go index bb8a448e0..1ae85ad3b 100644 --- a/aws/table_aws_service_discovery_service.go +++ b/aws/table_aws_service_discovery_service.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicediscovery" "github.com/aws/aws-sdk-go-v2/service/servicediscovery/types" - servicediscoveryv1 "github.com/aws/aws-sdk-go/service/servicediscovery" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -48,7 +46,7 @@ func tableAwsServiceDiscoveryService(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "servicediscovery", "action": "GetService"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicediscoveryv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEDISCOVERY_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_servicecatalog_portfolio.go b/aws/table_aws_servicecatalog_portfolio.go index 434171523..edbc79c08 100644 --- a/aws/table_aws_servicecatalog_portfolio.go +++ b/aws/table_aws_servicecatalog_portfolio.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/servicecatalog" - servicecatalogv1 "github.com/aws/aws-sdk-go/service/servicecatalog" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsServicecatalogPortfolio(_ context.Context) *plugin.Table { Hydrate: listServiceCatalogPortfolios, Tags: map[string]string{"service": "servicecatalog", "action": "ListPortfolios"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicecatalogv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICECATALOG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "display_name", diff --git a/aws/table_aws_servicecatalog_portfolio_share.go b/aws/table_aws_servicecatalog_portfolio_share.go new file mode 100644 index 000000000..e88f05eca --- /dev/null +++ b/aws/table_aws_servicecatalog_portfolio_share.go @@ -0,0 +1,166 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/servicecatalog" + "github.com/aws/aws-sdk-go-v2/service/servicecatalog/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsServicecatalogPortfolioShare(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_servicecatalog_portfolio_share", + Description: "AWS Service Catalog Portfolio Share", + List: &plugin.ListConfig{ + ParentHydrate: listServiceCatalogPortfolios, + Hydrate: listServiceCatalogPortfolioShares, + KeyColumns: plugin.KeyColumnSlice{ + {Name: "type", Require: plugin.Required}, + {Name: "portfolio_id", Require: plugin.Optional}, + }, + Tags: map[string]string{"service": "servicecatalog", "action": "DescribePortfolioShares"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICECATALOG_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "portfolio_id", + Description: "The unique identifier of the portfolio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "portfolio_arn", + Description: "The ARN of the portfolio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "portfolio_display_name", + Description: "The display name of the portfolio.", + Type: proto.ColumnType_STRING, + }, + { + Name: "type", + Description: "The type of the portfolio share.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("PortfolioShareDetail.Type"), + }, + { + Name: "principal_id", + Description: "The identifier of the recipient entity that received the portfolio share.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("PortfolioShareDetail.PrincipalId"), + }, + { + Name: "accepted", + Description: "Indicates whether the shared portfolio is imported by the recipient account.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("PortfolioShareDetail.Accepted"), + }, + { + Name: "share_principals", + Description: "Indicates if Principal sharing is enabled or disabled for the portfolio share.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("PortfolioShareDetail.SharePrincipals"), + }, + { + Name: "share_tag_options", + Description: "Indicates whether TagOptions sharing is enabled or disabled for the portfolio share.", + Type: proto.ColumnType_BOOL, + Transform: transform.FromField("PortfolioShareDetail.ShareTagOptions"), + }, + + // Steampipe standard Columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.From(getServiceCatalogPortfolioShareTitle), + }, + }), + } +} + +//// LIST FUNCTION + +func listServiceCatalogPortfolioShares(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Get portfolio details from parent + portfolio := h.Item.(*servicecatalog.DescribePortfolioOutput) + portfolioId := *portfolio.PortfolioDetail.Id + + if d.EqualsQualString("portfolio_id") != "" && d.EqualsQualString("portfolio_id") != portfolioId { + return nil, nil + } + + // Create service + svc, err := ServiceCatalogClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_servicecatalog_portfolio_share.listServiceCatalogPortfolioShares", "connection_error", err) + return nil, err + } + + // Portfolio share types + shareType := d.EqualsQualString("type") + + params := &servicecatalog.DescribePortfolioSharesInput{ + PortfolioId: aws.String(portfolioId), + Type: types.DescribePortfolioShareType(shareType), + } + + paginator := servicecatalog.NewDescribePortfolioSharesPaginator(svc, params, func(o *servicecatalog.DescribePortfolioSharesPaginatorOptions) { + o.Limit = 100 + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_servicecatalog_portfolio_share.listServiceCatalogPortfolioShares", "api_error", err, "portfolio_id", portfolioId, "type", shareType) + continue + } + + for _, share := range output.PortfolioShareDetails { + // Create a custom struct to include portfolio details + portfolioShareData := &PortfolioShareData{ + PortfolioShareDetail: share, + PortfolioId: portfolioId, + PortfolioArn: *portfolio.PortfolioDetail.ARN, + PortfolioDisplayName: *portfolio.PortfolioDetail.DisplayName, + } + + d.StreamListItem(ctx, portfolioShareData) + + // Check if context is cancelled + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// TRANSFORM FUNCTIONS + +func getServiceCatalogPortfolioShareTitle(ctx context.Context, d *transform.TransformData) (interface{}, error) { + data := d.HydrateItem.(*PortfolioShareData) + + title := data.PortfolioDisplayName + " - " + string(data.PortfolioShareDetail.Type) + " - " + *data.PortfolioShareDetail.PrincipalId + return title, nil +} + +//// STRUCTS + +type PortfolioShareData struct { + PortfolioShareDetail types.PortfolioShareDetail + PortfolioId string + PortfolioArn string + PortfolioDisplayName string +} diff --git a/aws/table_aws_servicecatalog_product.go b/aws/table_aws_servicecatalog_product.go index 6a27cd2b7..78d030eec 100644 --- a/aws/table_aws_servicecatalog_product.go +++ b/aws/table_aws_servicecatalog_product.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicecatalog" "github.com/aws/aws-sdk-go-v2/service/servicecatalog/types" - servicecatalogv1 "github.com/aws/aws-sdk-go/service/servicecatalog" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -58,7 +56,7 @@ func tableAwsServicecatalogProduct(_ context.Context) *plugin.Table { }, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicecatalogv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICECATALOG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_servicecatalog_provisioned_product.go b/aws/table_aws_servicecatalog_provisioned_product.go index 92b9fc627..01225639e 100644 --- a/aws/table_aws_servicecatalog_provisioned_product.go +++ b/aws/table_aws_servicecatalog_provisioned_product.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicecatalog" "github.com/aws/aws-sdk-go-v2/service/servicecatalog/types" - servicecatalogv1 "github.com/aws/aws-sdk-go/service/servicecatalog" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -79,7 +77,7 @@ func tableAwsServicecatalogProvisionedProduct(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "servicecatalog", "action": "DescribeProvisionedProduct"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicecatalogv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICECATALOG_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", @@ -285,7 +283,7 @@ func getServiceCatalogProvisionedProduct(ctx context.Context, d *plugin.QueryDat } if id != "" && name != "" { - return nil, fmt.Errorf("Both ProvisionedProductName and ProvisionedProductId cannot be passed in the where clause simultaneously") + return nil, fmt.Errorf("both 'ProvisionedProductName' and 'ProvisionedProductId' cannot be passed in the where clause simultaneously") } // Create client diff --git a/aws/table_aws_servicequotas_auto_management_configuration.go b/aws/table_aws_servicequotas_auto_management_configuration.go new file mode 100644 index 000000000..169cb9ce6 --- /dev/null +++ b/aws/table_aws_servicequotas_auto_management_configuration.go @@ -0,0 +1,111 @@ +package aws + +import ( + "context" + "fmt" + + "github.com/aws/aws-sdk-go-v2/service/servicequotas" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsServiceQuotasAutoManagementConfiguration(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_servicequotas_auto_management_configuration", + Description: "AWS Service Quotas Auto Management Configuration", + DefaultIgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"NoSuchResourceException"}), + }, + List: &plugin.ListConfig{ + Hydrate: getAutoManagementConfiguration, + Tags: map[string]string{"service": "servicequotas", "action": "GetAutoManagementConfiguration"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEQUOTAS_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "opt_in_status", + Description: "Status on whether Automatic Management is started or stopped.", + Type: proto.ColumnType_STRING, + }, + { + Name: "opt_in_type", + Description: "Information on the opt-in type for Automatic Management. There are two modes: `NotifyOnly` (notify only) and `NotifyAndAdjust` (notify and auto-adjust).", + Type: proto.ColumnType_STRING, + }, + { + Name: "opt_in_level", + Description: "Information on the opt-in level for Automatic Management. Only ACCOUNT level is supported.", + Type: proto.ColumnType_STRING, + }, + { + Name: "notification_arn", + Description: "The User Notifications Amazon Resource Name (ARN) for Automatic Management notifications.", + Type: proto.ColumnType_STRING, + }, + { + Name: "exclusion_list", + Description: "List of Amazon Web Services services excluded from Automatic Management.", + Type: proto.ColumnType_JSON, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromConstant("Auto Management Configuration"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Hydrate: getAutoManagementConfigurationAkas, + Transform: transform.FromValue(), + }, + }), + } +} + +//// LIST FUNCTION + +func getAutoManagementConfiguration(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := ServiceQuotasClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_servicequotas_auto_management_configuration.getAutoManagementConfiguration", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + result, err := svc.GetAutoManagementConfiguration(ctx, &servicequotas.GetAutoManagementConfigurationInput{}) + if err != nil { + plugin.Logger(ctx).Error("aws_servicequotas_auto_management_configuration.getAutoManagementConfiguration", "api_error", err) + return nil, err + } + + d.StreamListItem(ctx, result) + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getAutoManagementConfigurationAkas(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + region := d.EqualsQualString(matrixKeyRegion) + + c, err := getCommonColumns(ctx, d, h) + if err != nil { + plugin.Logger(ctx).Error("aws_servicequotas_auto_management_configuration.getAutoManagementConfigurationAkas", "common_data_error", err) + return nil, err + } + commonColumnData := c.(*awsCommonColumnData) + arn := fmt.Sprintf("arn:%s:servicequotas:%s:%s:auto-management-configuration", commonColumnData.Partition, region, commonColumnData.AccountId) + + return []string{arn}, nil +} diff --git a/aws/table_aws_servicequotas_default_service_quota.go b/aws/table_aws_servicequotas_default_service_quota.go index 36670e3e4..5db4fa11b 100644 --- a/aws/table_aws_servicequotas_default_service_quota.go +++ b/aws/table_aws_servicequotas_default_service_quota.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicequotas" "github.com/aws/aws-sdk-go-v2/service/servicequotas/types" - servicequotasv1 "github.com/aws/aws-sdk-go/service/servicequotas" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsServiceQuotasDefaultServiceQuota(_ context.Context) *plugin.Table { {Name: "service_code", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicequotasv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEQUOTAS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "quota_name", diff --git a/aws/table_aws_servicequotas_service.go b/aws/table_aws_servicequotas_service.go index 83c478048..e5bff9127 100644 --- a/aws/table_aws_servicequotas_service.go +++ b/aws/table_aws_servicequotas_service.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicequotas" "github.com/aws/aws-sdk-go-v2/service/servicequotas/types" - servicequotasv1 "github.com/aws/aws-sdk-go/service/servicequotas" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -23,7 +21,7 @@ func tableAwsServiceQuotasService(_ context.Context) *plugin.Table { Hydrate: listServiceQuotasServices, Tags: map[string]string{"service": "servicequotas", "action": "ListServices"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicequotasv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEQUOTAS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "service_name", diff --git a/aws/table_aws_servicequotas_service_quota.go b/aws/table_aws_servicequotas_service_quota.go index 3e7d12dc7..915a66b43 100644 --- a/aws/table_aws_servicequotas_service_quota.go +++ b/aws/table_aws_servicequotas_service_quota.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicequotas" "github.com/aws/aws-sdk-go-v2/service/servicequotas/types" - servicequotasv1 "github.com/aws/aws-sdk-go/service/servicequotas" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -50,7 +48,7 @@ func tableAwsServiceQuotasServiceQuota(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "servicequotas", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicequotasv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEQUOTAS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "quota_name", diff --git a/aws/table_aws_servicequotas_service_quota_change_request.go b/aws/table_aws_servicequotas_service_quota_change_request.go index e0d95a4a3..225243745 100644 --- a/aws/table_aws_servicequotas_service_quota_change_request.go +++ b/aws/table_aws_servicequotas_service_quota_change_request.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/servicequotas" "github.com/aws/aws-sdk-go-v2/service/servicequotas/types" - servicequotasv1 "github.com/aws/aws-sdk-go/service/servicequotas" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsServiceQuotasServiceQuotaChangeRequest(_ context.Context) *plugin.T {Name: "status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(servicequotasv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SERVICEQUOTAS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_ses_domain_identity.go b/aws/table_aws_ses_domain_identity.go index f8945cd05..2dfa29f53 100644 --- a/aws/table_aws_ses_domain_identity.go +++ b/aws/table_aws_ses_domain_identity.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ses" "github.com/aws/aws-sdk-go-v2/service/ses/types" - sesv1 "github.com/aws/aws-sdk-go/service/ses" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsSESDomainIdentity(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ses", "action": "GetIdentityMailFromDomainAttributes"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EMAIL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "identity", diff --git a/aws/table_aws_ses_email_identity.go b/aws/table_aws_ses_email_identity.go index 5a0aebba8..36e4b1bc5 100644 --- a/aws/table_aws_ses_email_identity.go +++ b/aws/table_aws_ses_email_identity.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ses" "github.com/aws/aws-sdk-go-v2/service/ses/types" - sesv1 "github.com/aws/aws-sdk-go/service/ses" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -32,7 +30,7 @@ func tableAwsSESEmailIdentity(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ses", "action": "GetIdentityNotificationAttributes"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EMAIL_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "identity", diff --git a/aws/table_aws_ses_template.go b/aws/table_aws_ses_template.go new file mode 100644 index 000000000..d68d6b5f3 --- /dev/null +++ b/aws/table_aws_ses_template.go @@ -0,0 +1,154 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/ses" + "github.com/aws/aws-sdk-go-v2/service/ses/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsSESTemplate(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ses_template", + Description: "AWS SES Template", + List: &plugin.ListConfig{ + Hydrate: listSESTemplates, + KeyColumns: []*plugin.KeyColumn{ + { + Name: "name", + Require: plugin.Optional, + }, + }, + Tags: map[string]string{"service": "ses", "action": "ListTemplates"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getSESTemplateDetails, + Tags: map[string]string{"service": "ses", "action": "GetTemplate"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EMAIL_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "name", + Description: "The name of the template.", + Type: proto.ColumnType_STRING, + }, + { + Name: "subject_part", + Description: "The subject line of the email.", + Type: proto.ColumnType_STRING, + Hydrate: getSESTemplateDetails, + }, + { + Name: "text_part", + Description: "The email body that will be visible to recipients whose email clients do not display HTML.", + Type: proto.ColumnType_STRING, + Hydrate: getSESTemplateDetails, + }, + { + Name: "html_part", + Description: "The HTML body of the email.", + Type: proto.ColumnType_STRING, + Hydrate: getSESTemplateDetails, + }, + { + Name: "created_timestamp", + Description: "The time and date the template was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("Name"), + }, + }), + } +} + +//// LIST FUNCTION + +func listSESTemplates(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create Session + svc, err := SESClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ses_template.listSESTemplates", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region check + return nil, nil + } + + maxItems := int32(1000) + // Limiting the results + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + maxItems = limit + } + } + + input := &ses.ListTemplatesInput{ + MaxItems: &maxItems, + } + + // List call + output, err := svc.ListTemplates(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_ses_template.listSESTemplates", "api_error", err) + return nil, err + } + + for _, template := range output.TemplatesMetadata { + d.StreamListItem(ctx, template) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getSESTemplateDetails(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + templateName := h.Item.(types.TemplateMetadata).Name + + if templateName == nil { + return nil, nil + } + if d.EqualsQualString("name") != "" && *templateName != d.EqualsQualString("name") { + return nil, nil + } + + svc, err := SESClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ses_template.getSESTemplateDetails", "connection_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + params := &ses.GetTemplateInput{ + TemplateName: templateName, + } + + op, err := svc.GetTemplate(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ses_template.getSESTemplateDetails", "api_error", err) + return nil, err + } + + return op.Template, nil +} diff --git a/aws/table_aws_sesv2_suppressed_destination.go b/aws/table_aws_sesv2_suppressed_destination.go new file mode 100644 index 000000000..84280e5f6 --- /dev/null +++ b/aws/table_aws_sesv2_suppressed_destination.go @@ -0,0 +1,229 @@ +package aws + +import ( + "context" + "errors" + + "github.com/aws/aws-sdk-go-v2/service/sesv2" + "github.com/aws/aws-sdk-go-v2/service/sesv2/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsSesV2SuppressedDestination(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_sesv2_suppressed_destination", + Description: "AWS SESv2 Suppressed Destination", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("email_address"), + Hydrate: getSuppressedDestination, + Tags: map[string]string{"service": "sesv2", "action": "GetSuppressedDestination"}, + }, + List: &plugin.ListConfig{ + Hydrate: listSesSuppressedDestinations, + Tags: map[string]string{"service": "sesv2", "action": "ListSuppressedDestinations"}, + KeyColumns: []*plugin.KeyColumn{ + { + Name: "reason", + Require: plugin.Optional, + }, + { + Name: "start_date", + Require: plugin.Optional, + Operators: []string{"="}, + }, + { + Name: "end_date", + Require: plugin.Optional, + Operators: []string{"="}, + }, + }, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getSuppressedDestination, + Tags: map[string]string{"service": "sesv2", "action": "GetSuppressedDestination"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EMAIL_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "email_address", + Description: "The email address that is on the suppression list for your account.", + Type: proto.ColumnType_STRING, + }, + { + Name: "reason", + Description: "The reason that the address was added to the suppression list for your account.", + Type: proto.ColumnType_STRING, + }, + { + Name: "last_update_time", + Description: "The date and time when the suppressed destination was last updated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "start_date", + Description: "Used to filter the list of suppressed email addresses so that it only includes addresses that were added to the list after the specified date.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromQual("start_date"), + }, + { + Name: "end_date", + Description: "Used to filter the list of suppressed email addresses so that it only includes addresses that were added to the list before the specified date.", + Type: proto.ColumnType_TIMESTAMP, + Transform: transform.FromQual("end_date"), + }, + + // Hydrated columns from GetSuppressedDestination + { + Name: "suppressed_destination_attributes", + Description: "An object that contains additional attributes that are related to a suppressed destination.", + Type: proto.ColumnType_JSON, + Hydrate: getSuppressedDestination, + }, + { + Name: "message_tag", + Description: "A unique identifier that's generated when an email address is added to the suppression list for your account.", + Type: proto.ColumnType_STRING, + Hydrate: getSuppressedDestination, + Transform: transform.FromField("Attributes.MessageTag"), + }, + { + Name: "feedback_id", + Description: "The unique identifier of the email message that caused the email address to be added to the suppression list for your account.", + Type: proto.ColumnType_STRING, + Hydrate: getSuppressedDestination, + Transform: transform.FromField("Attributes.FeedbackId"), + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("EmailAddress"), + }, + }), + } +} + +//// LIST FUNCTION +func listSesSuppressedDestinations(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := SESV2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_sesv2_suppressed_destination.listSesSuppressedDestinations", "client_error", err) + return nil, err + } + + maxItems := int32(1000) + params := &sesv2.ListSuppressedDestinationsInput{} + + // Handle optional qualifiers + if d.EqualsQuals["reason"] != nil { + reasonStr := d.EqualsQualString("reason") + if reasonStr != "" { + // Convert string to SuppressionListReason enum + switch reasonStr { + case "BOUNCE": + params.Reasons = []types.SuppressionListReason{types.SuppressionListReasonBounce} + case "COMPLAINT": + params.Reasons = []types.SuppressionListReason{types.SuppressionListReasonComplaint} + default: + plugin.Logger(ctx).Warn("aws_sesv2_suppressed_destination.listSesSuppressedDestinations", "invalid_reason", reasonStr) + } + } + } + + if d.EqualsQuals["start_date"] != nil { + if d.EqualsQuals["start_date"].GetTimestampValue() != nil { + startDate := d.EqualsQuals["start_date"].GetTimestampValue().AsTime() + params.StartDate = &startDate + } + } + + if d.EqualsQuals["end_date"] != nil { + if d.EqualsQuals["end_date"].GetTimestampValue() != nil { + endDate := d.EqualsQuals["end_date"].GetTimestampValue().AsTime() + params.EndDate = &endDate + } + } + + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + params.PageSize = &limit + } + } + + paginator := sesv2.NewListSuppressedDestinationsPaginator(svc, params, func(o *sesv2.ListSuppressedDestinationsPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + d.WaitForListRateLimit(ctx) + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_sesv2_suppressed_destination.listSesSuppressedDestinations", "api_error", err) + return nil, err + } + + for _, item := range output.SuppressedDestinationSummaries { + d.StreamListItem(ctx, item) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTION +func getSuppressedDestination(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + svc, err := SESV2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_sesv2_suppressed_destination.getSuppressedDestination", "client_error", err) + return nil, err + } + + var emailAddress string + if h.Item != nil { + // Called from list - extract email address from the list item + if item, ok := h.Item.(types.SuppressedDestinationSummary); ok { + if item.EmailAddress != nil { + emailAddress = *item.EmailAddress + } + } + } else { + // Called from get - extract email address from key columns + emailAddress = d.EqualsQualString("email_address") + } + + if emailAddress == "" { + plugin.Logger(ctx).Error("aws_sesv2_suppressed_destination.getSuppressedDestination", "missing_email_address") + return nil, nil + } + + params := &sesv2.GetSuppressedDestinationInput{ + EmailAddress: &emailAddress, + } + + output, err := svc.GetSuppressedDestination(ctx, params) + if err != nil { + var notFoundErr *types.NotFoundException + if errors.As(err, ¬FoundErr) { + plugin.Logger(ctx).Debug("aws_sesv2_suppressed_destination.getSuppressedDestination", "email_not_found", emailAddress) + } + + plugin.Logger(ctx).Error("aws_sesv2_suppressed_destination.getSuppressedDestination", "api_error", err) + return nil, err + } + + return output.SuppressedDestination, nil +} diff --git a/aws/table_aws_sfn_state_machine.go b/aws/table_aws_sfn_state_machine.go index e5d0aefa1..8fd6308dc 100644 --- a/aws/table_aws_sfn_state_machine.go +++ b/aws/table_aws_sfn_state_machine.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sfn" "github.com/aws/aws-sdk-go-v2/service/sfn/types" - sfnv1 "github.com/aws/aws-sdk-go/service/sfn" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsStepFunctionsStateMachine(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "states", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sfnv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_STATES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_sfn_state_machine_execution.go b/aws/table_aws_sfn_state_machine_execution.go index 6529f0481..699f5e5f1 100644 --- a/aws/table_aws_sfn_state_machine_execution.go +++ b/aws/table_aws_sfn_state_machine_execution.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sfn" "github.com/aws/aws-sdk-go-v2/service/sfn/types" - sfnv1 "github.com/aws/aws-sdk-go/service/sfn" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsStepFunctionsStateMachineExecution(_ context.Context) *plugin.Table Tags: map[string]string{"service": "states", "action": "DescribeExecution"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(sfnv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_STATES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_sfn_state_machine_execution_history.go b/aws/table_aws_sfn_state_machine_execution_history.go index 649668c44..88fb1ae6c 100644 --- a/aws/table_aws_sfn_state_machine_execution_history.go +++ b/aws/table_aws_sfn_state_machine_execution_history.go @@ -12,8 +12,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sfn/types" "github.com/aws/smithy-go" - sfnv1 "github.com/aws/aws-sdk-go/service/sfn" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -28,7 +26,7 @@ func tableAwsStepFunctionsStateMachineExecutionHistory(_ context.Context) *plugi Tags: map[string]string{"service": "states", "action": "ListExecutions"}, ParentHydrate: listStepFunctionsStateMachines, }, - GetMatrixItemFunc: SupportedRegionMatrix(sfnv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_STATES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_simspaceweaver_simulation.go b/aws/table_aws_simspaceweaver_simulation.go index 0b78f7b92..1862f320f 100644 --- a/aws/table_aws_simspaceweaver_simulation.go +++ b/aws/table_aws_simspaceweaver_simulation.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/simspaceweaver" "github.com/aws/aws-sdk-go-v2/service/simspaceweaver/types" - simspaceweaverv1 "github.com/aws/aws-sdk-go/service/simspaceweaver" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsSimSpaceWeaverSimulation(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "simspaceweaver", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(simspaceweaverv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SIMSPACEWEAVER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ssm_association.go b/aws/table_aws_ssm_association.go index 51a71ca86..16b35b070 100644 --- a/aws/table_aws_ssm_association.go +++ b/aws/table_aws_ssm_association.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -46,7 +44,7 @@ func tableAwsSSMAssociation(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm", "action": "DescribeAssociation"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "association_id", diff --git a/aws/table_aws_ssm_document.go b/aws/table_aws_ssm_document.go index 5bc62742b..4202af13a 100644 --- a/aws/table_aws_ssm_document.go +++ b/aws/table_aws_ssm_document.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,7 +45,7 @@ func tableAwsSSMDocument(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm", "action": "DescribeDocument"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "display_name", diff --git a/aws/table_aws_ssm_document_permission.go b/aws/table_aws_ssm_document_permission.go index a8b0f1c18..06ea62f4e 100644 --- a/aws/table_aws_ssm_document_permission.go +++ b/aws/table_aws_ssm_document_permission.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsSSMDocumentPermission(_ context.Context) *plugin.Table { ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidDocument"}), }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "document_name", diff --git a/aws/table_aws_ssm_inventory.go b/aws/table_aws_ssm_inventory.go index 5080229cd..3a9716b74 100644 --- a/aws/table_aws_ssm_inventory.go +++ b/aws/table_aws_ssm_inventory.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -65,7 +63,7 @@ func tableAwsSSMInventory(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm", "action": "GetInventorySchema"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", @@ -433,12 +431,11 @@ func buildSSMInventoryFilter(ctx context.Context, quals *plugin.QueryData) ssm.G shouldFilterKeyValueApplied := quals.EqualsQualString("filter_key") != "" && quals.EqualsQualString("filter_value") != "" - var filterValue, filterOperator = "", "" + var filterValue = "" if quals.EqualsQualString("filter_value") != "" { for _, q := range quals.Quals["filter_value"].Quals { filterValue = q.Value.GetStringValue() - filterOperator = q.Operator } } @@ -451,9 +448,10 @@ func buildSSMInventoryFilter(ctx context.Context, quals *plugin.QueryData) ssm.G Values: []string{quals.EqualsQualString("instance_id")}, }, } - if q.Operator == "=" { + switch q.Operator { + case "=": input.Filters[0].Type = types.InventoryQueryOperatorTypeEqual - } else if q.Operator == "<>" { + case "<>": input.Filters[0].Type = types.InventoryQueryOperatorTypeNotEqual } } @@ -492,9 +490,10 @@ func buildSSMInventoryFilter(ctx context.Context, quals *plugin.QueryData) ssm.G Values: []string{value.(string)}, }, } - if q.Operator == "=" { + switch q.Operator { + case "=": input.Filters[0].Type = types.InventoryQueryOperatorTypeEqual - } else if q.Operator == "<>" { + case "<>": input.Filters[0].Type = types.InventoryQueryOperatorTypeNotEqual } input.Filters = append(input.Filters, inventoryFilter) @@ -504,13 +503,18 @@ func buildSSMInventoryFilter(ctx context.Context, quals *plugin.QueryData) ssm.G if shouldFilterKeyValueApplied { inventoryFilter.Key = aws.String(value.(string)) inventoryFilter.Values = []string{filterValue} - if filterOperator == "=" { + switch q.Operator { + case "=": inventoryFilter.Type = types.InventoryQueryOperatorTypeEqual - } else if filterOperator == "<>" { + case "<>": inventoryFilter.Type = types.InventoryQueryOperatorTypeNotEqual - } else if filterOperator == "<" || filterOperator == "<=" { + case "<": + inventoryFilter.Type = types.InventoryQueryOperatorTypeLessThan + case "<=": inventoryFilter.Type = types.InventoryQueryOperatorTypeLessThan - } else if filterOperator == ">" || filterOperator == ">=" { + case ">": + inventoryFilter.Type = types.InventoryQueryOperatorTypeGreaterThan + case ">=": inventoryFilter.Type = types.InventoryQueryOperatorTypeGreaterThan } input.Filters = append(input.Filters, inventoryFilter) @@ -519,9 +523,12 @@ func buildSSMInventoryFilter(ctx context.Context, quals *plugin.QueryData) ssm.G // Supported type names are: AWS:InstanceInformation, AWS:PatchSummary. Default result type name is AWS:InstanceInformation.Supported pattern is ^(AWS|Custom):.*$ // https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_ResultAttribute.html case "type_name": - if q.Operator == "=" && quals.Table.Name == "aws_ssm_inventory" { - if value.(string) == "AWS:InstanceInformation" || value.(string) == "AWS:PatchSummary" || strings.HasPrefix(value.(string), "Custom:") { - input.ResultAttributes = []types.ResultAttribute{{TypeName: aws.String(value.(string))}} + switch q.Operator { + case "=": + if quals.Table.Name == "aws_ssm_inventory" { + if value.(string) == "AWS:InstanceInformation" || value.(string) == "AWS:PatchSummary" || strings.HasPrefix(value.(string), "Custom:") { + input.ResultAttributes = []types.ResultAttribute{{TypeName: aws.String(value.(string))}} + } } } } @@ -594,7 +601,8 @@ func getFilterKeyWithOperator(ctx context.Context, d *transform.TransformData) ( param := d.Param.(string) data := d.KeyColumnQuals[param] for _, q := range data { - if q.Operator == "=" { + switch q.Operator { + case "=": return q.Value.GetStringValue(), nil } } diff --git a/aws/table_aws_ssm_inventory_entry.go b/aws/table_aws_ssm_inventory_entry.go index c523cabe6..23e92a4c1 100644 --- a/aws/table_aws_ssm_inventory_entry.go +++ b/aws/table_aws_ssm_inventory_entry.go @@ -5,7 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ssm" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -25,7 +24,7 @@ func tableAwsSSMInventoryEntry(_ context.Context) *plugin.Table { {Name: "type_name", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "instance_id", diff --git a/aws/table_aws_ssm_maintenance_window.go b/aws/table_aws_ssm_maintenance_window.go index ea74b081c..25de4b009 100644 --- a/aws/table_aws_ssm_maintenance_window.go +++ b/aws/table_aws_ssm_maintenance_window.go @@ -3,14 +3,13 @@ package aws import ( "context" "slices" + "strconv" "strings" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "golang.org/x/text/cases" "golang.org/x/text/language" @@ -57,7 +56,7 @@ func tableAwsSSMMaintenanceWindow(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm", "action": "DescribeMaintenanceWindowTasks"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", @@ -441,8 +440,8 @@ func buildSSMMaintenanceWindowFilter(quals plugin.KeyColumnQualMap) []types.Main Key: aws.String(filterName), } if slices.Contains(columnBool, columnName) { - value := getQualsValueByColumn(quals, columnName, "boolean").(string) - filter.Values = []string{cases.Title(language.English, cases.NoLower).String(value)} + value := getQualsValueByColumn(quals, columnName, "boolean").(bool) + filter.Values = []string{cases.Title(language.English, cases.NoLower).String(strconv.FormatBool(value))} } else { value := getQualsValueByColumn(quals, columnName, "string") val, ok := value.(string) diff --git a/aws/table_aws_ssm_managed_instance.go b/aws/table_aws_ssm_managed_instance.go index f1a82868f..7eb29b9b4 100644 --- a/aws/table_aws_ssm_managed_instance.go +++ b/aws/table_aws_ssm_managed_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsSSMManagedInstance(_ context.Context) *plugin.Table { {Name: "association_status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ssm_managed_instance_compliance.go b/aws/table_aws_ssm_managed_instance_compliance.go index 4ef3db32d..4de0bc75f 100644 --- a/aws/table_aws_ssm_managed_instance_compliance.go +++ b/aws/table_aws_ssm_managed_instance_compliance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsSSMManagedInstanceCompliance(_ context.Context) *plugin.Table { {Name: "resource_type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_ssm_managed_instance_patch_state.go b/aws/table_aws_ssm_managed_instance_patch_state.go index 390084545..63ac4d125 100644 --- a/aws/table_aws_ssm_managed_instance_patch_state.go +++ b/aws/table_aws_ssm_managed_instance_patch_state.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -28,7 +26,7 @@ func tableAwsSSMManagedInstancePatchState(_ context.Context) *plugin.Table { {Name: "instance_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "instance_id", diff --git a/aws/table_aws_ssm_parameter.go b/aws/table_aws_ssm_parameter.go index 9dc656fe8..497c561d4 100644 --- a/aws/table_aws_ssm_parameter.go +++ b/aws/table_aws_ssm_parameter.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -50,7 +48,7 @@ func tableAwsSSMParameter(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ssm_patch_baseline.go b/aws/table_aws_ssm_patch_baseline.go index 198afd69c..5f36122a0 100644 --- a/aws/table_aws_ssm_patch_baseline.go +++ b/aws/table_aws_ssm_patch_baseline.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssm" "github.com/aws/aws-sdk-go-v2/service/ssm/types" - ssmv1 "github.com/aws/aws-sdk-go/service/ssm" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -47,7 +45,7 @@ func tableAwsSSMPatchBaseline(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_ssm_service_setting.go b/aws/table_aws_ssm_service_setting.go new file mode 100644 index 000000000..d242eb37f --- /dev/null +++ b/aws/table_aws_ssm_service_setting.go @@ -0,0 +1,112 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/ssm" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsSSMServiceSetting(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ssm_service_setting", + Description: "AWS SSM Service Setting", + List: &plugin.ListConfig{ + KeyColumns: plugin.SingleColumn("setting_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ValidationException", "InvalidParameterValue"}), + }, + Hydrate: listSSMServiceSettings, + Tags: map[string]string{"service": "ssm", "action": "GetServiceSetting"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "setting_id", + Description: "The ID of the service setting.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The ARN of the service setting.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ARN"), + }, + { + Name: "setting_value", + Description: "The value of the service setting.", + Type: proto.ColumnType_STRING, + }, + { + Name: "status", + Description: "The status of the service setting. The value can be Default, Customized or PendingUpdate.", + Type: proto.ColumnType_STRING, + }, + { + Name: "last_modified_date", + Description: "The last time the service setting was modified.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "last_modified_user", + Description: "The ARN of the last modified user. This field is populated only if the setting value was overwritten.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe Standard Columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("SettingId"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("ARN").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// List FUNCTION + +func listSSMServiceSettings(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + + settingID := d.EqualsQuals["setting_id"].GetStringValue() + + if settingID == "" { + return nil, nil + } + + // Create service + svc, err := SSMClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ssm_service_setting.listSSMServiceSettings", "connection_error", err) + return nil, err + } + + params := &ssm.GetServiceSettingInput{ + SettingId: aws.String(settingID), + } + + d.WaitForListRateLimit(ctx) + op, err := svc.GetServiceSetting(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_ssm_service_setting.listSSMServiceSettings", "api_error", err) + return nil, err + } + + if op.ServiceSetting != nil { + d.StreamListItem(ctx, op.ServiceSetting) + } + + return nil, nil +} diff --git a/aws/table_aws_ssmincidents_response_plan.go b/aws/table_aws_ssmincidents_response_plan.go index 613b261cb..86e0628c6 100644 --- a/aws/table_aws_ssmincidents_response_plan.go +++ b/aws/table_aws_ssmincidents_response_plan.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssmincidents" "github.com/aws/aws-sdk-go-v2/service/ssmincidents/types" - ssmincidentsv1 "github.com/aws/aws-sdk-go/service/ssmincidents" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsSSMIncidentsResponseaPlan(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ssm-incidents", "action": "GetResponsePlan"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssmincidentsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSM_INCIDENTS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_ssoadmin_account_assignment.go b/aws/table_aws_ssoadmin_account_assignment.go index 310e50c27..375e45255 100644 --- a/aws/table_aws_ssoadmin_account_assignment.go +++ b/aws/table_aws_ssoadmin_account_assignment.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssoadmin" "github.com/aws/aws-sdk-go-v2/service/ssoadmin/types" - ssoadminv1 "github.com/aws/aws-sdk-go/service/ssoadmin" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -29,7 +27,7 @@ func tableAwsSsoAdminAccountAssignment(_ context.Context) *plugin.Table { Hydrate: listSsoAdminAccountAssignments, Tags: map[string]string{"service": "sso", "action": "ListAccountAssignments"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssoadminv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSO_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "target_account_id", diff --git a/aws/table_aws_ssoadmin_customer_policy_attachment.go b/aws/table_aws_ssoadmin_customer_policy_attachment.go new file mode 100644 index 000000000..66c3cebd0 --- /dev/null +++ b/aws/table_aws_ssoadmin_customer_policy_attachment.go @@ -0,0 +1,134 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/ssoadmin" + "github.com/aws/aws-sdk-go-v2/service/ssoadmin/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +func tableAwsSsoAdminCustomerPolicyAttachment(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_ssoadmin_customer_policy_attachment", + Description: "AWS SSO Customer Managed Policy Attachment", + List: &plugin.ListConfig{ + KeyColumns: plugin.AllColumns([]string{"permission_set_arn"}), + Hydrate: listSsoAdminCustomerPolicyAttachments, + Tags: map[string]string{"service": "sso", "action": "ListCustomerManagedPolicyReferencesInPermissionSet"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSO_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "permission_set_arn", + Description: "The ARN of the permission set.", + Type: proto.ColumnType_STRING, + }, + { + Name: "name", + Description: "The name of the customer managed policy.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("CustomerManagedPolicyReference.Name"), + }, + { + Name: "instance_arn", + Description: "The Amazon Resource Name (ARN) of the SSO Instance under which the operation will be executed.", + Type: proto.ColumnType_STRING, + }, + { + Name: "path", + Description: "The path to the customer managed policy.", + Type: proto.ColumnType_STRING, + Transform: transform.FromField("CustomerManagedPolicyReference.Path"), + }, + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("CustomerManagedPolicyReference.Name"), + }, + }), + } +} + +//// LIST FUNCTION + +func listSsoAdminCustomerPolicyAttachments(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + permissionSetArn := d.EqualsQuals["permission_set_arn"].GetStringValue() + instanceArn, err := getSsoInstanceArnFromResourceArn(permissionSetArn) + if err != nil { + return nil, err + } + + // Create session + svc, err := SSOAdminClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_ssoadmin_customer_policy_attachment.listSsoAdminCustomerPolicyAttachments", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Limiting the results + maxLimit := int32(100) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + if limit < 1 { + maxLimit = 1 + } else { + maxLimit = limit + } + } + } + + params := &ssoadmin.ListCustomerManagedPolicyReferencesInPermissionSetInput{ + InstanceArn: aws.String(instanceArn), + PermissionSetArn: aws.String(permissionSetArn), + MaxResults: aws.Int32(maxLimit), + } + + paginator := ssoadmin.NewListCustomerManagedPolicyReferencesInPermissionSetPaginator(svc, params, func(o *ssoadmin.ListCustomerManagedPolicyReferencesInPermissionSetPaginatorOptions) { + o.Limit = maxLimit + o.StopOnDuplicateToken = true + }) + + // List call + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_ssoadmin_customer_policy_attachment.listSsoAdminCustomerPolicyAttachments", "api_error", err) + return nil, err + } + + for _, items := range output.CustomerManagedPolicyReferences { + d.StreamListItem(ctx, &CustomerPolicyAttachment{ + InstanceArn: aws.String(instanceArn), + PermissionSetArn: aws.String(permissionSetArn), + CustomerManagedPolicyReference: items, + }) + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +type CustomerPolicyAttachment struct { + InstanceArn *string + PermissionSetArn *string + CustomerManagedPolicyReference types.CustomerManagedPolicyReference +} diff --git a/aws/table_aws_ssoadmin_instance.go b/aws/table_aws_ssoadmin_instance.go index 3c1f2165d..4547a8651 100644 --- a/aws/table_aws_ssoadmin_instance.go +++ b/aws/table_aws_ssoadmin_instance.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ssoadmin" - ssoadminv1 "github.com/aws/aws-sdk-go/service/ssoadmin" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -21,7 +19,7 @@ func tableAwsSsoAdminInstance(_ context.Context) *plugin.Table { Hydrate: listSsoAdminInstances, Tags: map[string]string{"service": "sso", "action": "ListInstances"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssoadminv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSO_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", @@ -34,6 +32,26 @@ func tableAwsSsoAdminInstance(_ context.Context) *plugin.Table { Description: "The identifier of the identity store that is connected to the SSO instance.", Type: proto.ColumnType_STRING, }, + { + Name: "name", + Description: "The name of the Identity Center instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "created_date", + Description: "The date and time that the Identity Center instance was created.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "owner_account_id", + Description: "The AWS account ID number of the owner of the Identity Center instance.", + Type: proto.ColumnType_STRING, + }, + { + Name: "status", + Description: "The current status of this Identity Center instance.", + Type: proto.ColumnType_STRING, + }, // Standard columns for all tables { diff --git a/aws/table_aws_ssoadmin_managed_policy_attachment.go b/aws/table_aws_ssoadmin_managed_policy_attachment.go index 30b1a311a..cb6e87abe 100644 --- a/aws/table_aws_ssoadmin_managed_policy_attachment.go +++ b/aws/table_aws_ssoadmin_managed_policy_attachment.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssoadmin" "github.com/aws/aws-sdk-go-v2/service/ssoadmin/types" - ssoadminv1 "github.com/aws/aws-sdk-go/service/ssoadmin" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,7 +23,7 @@ func tableAwsSsoAdminManagedPolicyAttachment(_ context.Context) *plugin.Table { Hydrate: listSsoAdminManagedPolicyAttachments, Tags: map[string]string{"service": "sso", "action": "ListManagedPoliciesInPermissionSet"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssoadminv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSO_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "permission_set_arn", diff --git a/aws/table_aws_ssoadmin_permission_set.go b/aws/table_aws_ssoadmin_permission_set.go index 4918f45ec..9055c149f 100644 --- a/aws/table_aws_ssoadmin_permission_set.go +++ b/aws/table_aws_ssoadmin_permission_set.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ssoadmin" "github.com/aws/aws-sdk-go-v2/service/ssoadmin/types" - ssoadminv1 "github.com/aws/aws-sdk-go/service/ssoadmin" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsSsoAdminPermissionSet(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "sso", "action": "ListTagsForResource"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ssoadminv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_SSO_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_tagging_resource.go b/aws/table_aws_tagging_resource.go index ecfb7c9cf..fbd5104f1 100644 --- a/aws/table_aws_tagging_resource.go +++ b/aws/table_aws_tagging_resource.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi" "github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi/types" - resourcegroupstaggingapiv1 "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsTaggingResource(_ context.Context) *plugin.Table { Hydrate: listTaggingResources, Tags: map[string]string{"service": "tag", "action": "GetResources"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(resourcegroupstaggingapiv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_TAGGING_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "name", diff --git a/aws/table_aws_timestreamwrite_database.go b/aws/table_aws_timestreamwrite_database.go index fa5cb66bc..38953f6d9 100644 --- a/aws/table_aws_timestreamwrite_database.go +++ b/aws/table_aws_timestreamwrite_database.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/timestreamwrite" - timestreamwritev1 "github.com/aws/aws-sdk-go/service/timestreamwrite" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsTimestreamwriteDatabase(_ context.Context) *plugin.Table { Hydrate: listAwsTimestreamwriteDatabases, Tags: map[string]string{"service": "timestream-write", "action": "ListDatabases"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(timestreamwritev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INGEST_TIMESTREAM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "database_name", diff --git a/aws/table_aws_timestreamwrite_table.go b/aws/table_aws_timestreamwrite_table.go index 76b3744bb..03d733a02 100644 --- a/aws/table_aws_timestreamwrite_table.go +++ b/aws/table_aws_timestreamwrite_table.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/timestreamwrite" - timestreamwritev1 "github.com/aws/aws-sdk-go/service/timestreamwrite" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsTimestreamwriteTable(_ context.Context) *plugin.Table { }, Tags: map[string]string{"service": "timestream-write", "action": "ListTables"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(timestreamwritev1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_INGEST_TIMESTREAM_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "table_name", diff --git a/aws/table_aws_transfer_connector.go b/aws/table_aws_transfer_connector.go new file mode 100644 index 000000000..d0050c069 --- /dev/null +++ b/aws/table_aws_transfer_connector.go @@ -0,0 +1,297 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/transfer" + "github.com/aws/aws-sdk-go-v2/service/transfer/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsTransferConnector(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_transfer_connector", + Description: "AWS Transfer Connector", + Get: &plugin.GetConfig{ + KeyColumns: plugin.SingleColumn("connector_id"), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException", "ValidationException"}), + }, + Hydrate: getTransferConnector, + Tags: map[string]string{"service": "transfer", "action": "DescribeConnector"}, + }, + List: &plugin.ListConfig{ + Hydrate: listTransferConnectors, + Tags: map[string]string{"service": "transfer", "action": "ListConnectors"}, + }, + HydrateConfig: []plugin.HydrateConfig{ + { + Func: getTransferConnector, + Tags: map[string]string{"service": "transfer", "action": "DescribeConnector"}, + }, + { + Func: getTransferConnectorTags, + Tags: map[string]string{"service": "transfer", "action": "ListTagsForResource"}, + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_TRANSFER_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "connector_id", + Description: "The unique identifier for the connector.", + Type: proto.ColumnType_STRING, + }, + { + Name: "arn", + Description: "The Amazon Resource Name (ARN) for the connector.", + Type: proto.ColumnType_STRING, + }, + { + Name: "url", + Description: "The URL of the partner's AS2 or SFTP endpoint.", + Type: proto.ColumnType_STRING, + }, + { + Name: "access_role", + Description: "The Amazon Resource Name (ARN) of the Identity and Access Management role to use.", + Type: proto.ColumnType_STRING, + Hydrate: getTransferConnector, + }, + { + Name: "logging_role", + Description: "The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events.", + Type: proto.ColumnType_STRING, + Hydrate: getTransferConnector, + }, + { + Name: "security_policy_name", + Description: "The text name of the security policy for the specified connector.", + Type: proto.ColumnType_STRING, + Hydrate: getTransferConnector, + }, + { + Name: "service_managed_egress_ip_addresses", + Description: "The list of egress IP addresses of this connector.", + Type: proto.ColumnType_JSON, + Hydrate: getTransferConnector, + }, + { + Name: "as2_config", + Description: "A structure that contains the parameters for an AS2 connector object.", + Type: proto.ColumnType_JSON, + Hydrate: getTransferConnector, + Transform: transform.FromField("As2Config"), + }, + { + Name: "sftp_config", + Description: "A structure that contains the parameters for an SFTP connector object.", + Type: proto.ColumnType_JSON, + Hydrate: getTransferConnector, + }, + { + Name: "tags_src", + Description: "A list of tags that are attached to the connector.", + Type: proto.ColumnType_JSON, + Hydrate: getTransferConnectorTags, + Transform: transform.FromField("Tags"), + }, + + // Steampipe standard columns + { + Name: "tags", + Description: resourceInterfaceDescription("tags"), + Type: proto.ColumnType_JSON, + Hydrate: getTransferConnectorTags, + Transform: transform.FromValue().Transform(transferConnectorTagListToTurbotTags), + }, + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("ConnectorId"), + }, + { + Name: "akas", + Description: resourceInterfaceDescription("akas"), + Type: proto.ColumnType_JSON, + Transform: transform.FromField("Arn").Transform(transform.EnsureStringArray), + }, + }), + } +} + +//// LIST FUNCTION + +func listTransferConnectors(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + // Create service + svc, err := TransferClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_transfer_connector.listTransferConnectors", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + maxItems := int32(100) + params := &transfer.ListConnectorsInput{ + MaxResults: aws.Int32(maxItems), + } + + // Reduce the basic request limit down if the user has only requested a small number of rows + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxItems { + params.MaxResults = aws.Int32(limit) + } + } + + // Create paginator + paginator := transfer.NewListConnectorsPaginator(svc, params, func(o *transfer.ListConnectorsPaginatorOptions) { + o.Limit = maxItems + o.StopOnDuplicateToken = true + }) + + for paginator.HasMorePages() { + // apply rate limiting + d.WaitForListRateLimit(ctx) + + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_transfer_connector.listTransferConnectors", "api_error", err) + return nil, err + } + + if output != nil && output.Connectors != nil { + for _, connector := range output.Connectors { + d.StreamListItem(ctx, connector) + + // Context may get cancelled due to manual cancellation or if the limit has been reached + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + } + + return nil, nil +} + +//// HYDRATE FUNCTIONS + +func getTransferConnector(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var connectorId string + if h.Item != nil { + switch item := h.Item.(type) { + case types.ListedConnector: + connectorId = *item.ConnectorId + case *types.DescribedConnector: + connectorId = *item.ConnectorId + } + } else { + connectorId = d.EqualsQualString("connector_id") + } + + if connectorId == "" { + return nil, nil + } + + // Create service + svc, err := TransferClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_transfer_connector.getTransferConnector", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &transfer.DescribeConnectorInput{ + ConnectorId: aws.String(connectorId), + } + + // Get connector details + data, err := svc.DescribeConnector(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_transfer_connector.getTransferConnector", "api_error", err) + return nil, err + } + + return data.Connector, nil +} + +func getTransferConnectorTags(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { + var connectorArn string + if h.Item != nil { + switch item := h.Item.(type) { + case types.ListedConnector: + connectorArn = *item.Arn + case *types.DescribedConnector: + connectorArn = *item.Arn + } + } else { + // For get call, we need to get the ARN from the connector details + connector, err := getTransferConnector(ctx, d, h) + if err != nil { + return nil, err + } + if connector == nil { + return nil, nil + } + connectorArn = *connector.(*types.DescribedConnector).Arn + } + + if connectorArn == "" { + return nil, nil + } + + // Create service + svc, err := TransferClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_transfer_connector.getTransferConnectorTags", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Build the params + params := &transfer.ListTagsForResourceInput{ + Arn: aws.String(connectorArn), + } + + // Get connector tags + data, err := svc.ListTagsForResource(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_transfer_connector.getTransferConnectorTags", "api_error", err) + return nil, err + } + + return data, nil +} + +//// TRANSFORM FUNCTIONS + +func transferConnectorTagListToTurbotTags(ctx context.Context, d *transform.TransformData) (interface{}, error) { + tagList := d.HydrateItem.(*transfer.ListTagsForResourceOutput) + + if len(tagList.Tags) > 0 { + turbotTagsMap := map[string]string{} + for _, i := range tagList.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + return turbotTagsMap, nil + } + return nil, nil +} diff --git a/aws/table_aws_transfer_server.go b/aws/table_aws_transfer_server.go index d0ae937dd..31451f564 100644 --- a/aws/table_aws_transfer_server.go +++ b/aws/table_aws_transfer_server.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/transfer" "github.com/aws/aws-sdk-go-v2/service/transfer/types" - transferv1 "github.com/aws/aws-sdk-go/service/transfer" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsTransferServer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "transfer", "action": "DescribeServer"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(transferv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_TRANSFER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", @@ -145,13 +143,21 @@ func tableAwsTransferServer(_ context.Context) *plugin.Table { Type: proto.ColumnType_JSON, Hydrate: getTransferServer, }, + { + Name: "tags_src", + Description: "A list of tags associated with the transfer server.", + Type: proto.ColumnType_JSON, + Hydrate: getTransferServer, + Transform: transform.FromField("Tags"), + }, // Steampipe standard columns { Name: "tags", Description: resourceInterfaceDescription("tags"), Type: proto.ColumnType_JSON, - Transform: transform.FromField("Tags"), + Hydrate: getTransferServer, + Transform: transform.From(transferServerTurbotTags), }, { Name: "title", @@ -259,3 +265,17 @@ func getTransferServer(ctx context.Context, d *plugin.QueryData, h *plugin.Hydra } return nil, nil } + +//// TRANSFORM FUNCTIONS + +func transferServerTurbotTags(_ context.Context, d *transform.TransformData) (interface{}, error) { + tags := d.HydrateItem.(*types.DescribedServer) + var turbotTagsMap map[string]string + if tags.Tags != nil { + turbotTagsMap = map[string]string{} + for _, i := range tags.Tags { + turbotTagsMap[*i.Key] = *i.Value + } + } + return turbotTagsMap, nil +} diff --git a/aws/table_aws_transfer_user.go b/aws/table_aws_transfer_user.go index be3a58543..38be39f37 100644 --- a/aws/table_aws_transfer_user.go +++ b/aws/table_aws_transfer_user.go @@ -5,7 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/transfer" "github.com/aws/aws-sdk-go-v2/service/transfer/types" - transferv1 "github.com/aws/aws-sdk-go/service/transfer" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -47,7 +46,7 @@ func tableAwsTransferUser(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "transfer", "action": "DescribeUser"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(transferv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_TRANSFER_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "arn", diff --git a/aws/table_aws_trusted_advisor_check_result.go b/aws/table_aws_trusted_advisor_check_result.go new file mode 100644 index 000000000..4852e827f --- /dev/null +++ b/aws/table_aws_trusted_advisor_check_result.go @@ -0,0 +1,181 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/support" + "github.com/aws/aws-sdk-go-v2/service/support/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +// TrustedAdvisorCheckResultData represents a flattened structure combining check result data with individual flagged resource details +type TrustedAdvisorCheckResultData struct { + CheckId *string `json:"checkId"` + Timestamp *string `json:"timestamp"` + Status *string `json:"status"` + ResourcesSummary *types.TrustedAdvisorResourcesSummary `json:"resourcesSummary"` + CategorySpecificSummary *types.TrustedAdvisorCategorySpecificSummary `json:"categorySpecificSummary"` + + // Flagged resource properties (flattened from flaggedResources array) + FlaggedResourceId *string `json:"flaggedResourceId"` + FlaggedResourceStatus *string `json:"flaggedResourceStatus"` + FlaggedResourceRegion *string `json:"flaggedResourceRegion"` + FlaggedResourceIsSuppressed bool `json:"flaggedResourceIsSuppressed"` + FlaggedResourceMetadata []*string `json:"flaggedResourceMetadata"` +} + +//// TABLE DEFINITION + +func tableAwsTrustedAdvisorCheckResult(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_trusted_advisor_check_result", + Description: "AWS Trusted Advisor Check Result", + List: &plugin.ListConfig{ + Hydrate: listTrustedAdvisorCheckResults, + Tags: map[string]string{"service": "support", "action": "DescribeTrustedAdvisorCheckResult"}, + KeyColumns: plugin.KeyColumnSlice{ + { + Name: "language", + Require: plugin.Required, + }, + { + Name: "check_id", + Require: plugin.Required, + }, + }, + }, + Columns: awsAccountColumns([]*plugin.Column{ + { + Name: "check_id", + Description: "The unique identifier for the Trusted Advisor check.", + Type: proto.ColumnType_STRING, + }, + { + Name: "language", + Description: "The ISO 639-1 code for the language that you want your checks to appear in.", + Type: proto.ColumnType_STRING, + Transform: transform.FromQual("language"), + }, + { + Name: "status", + Description: "The overall status of the Trusted Advisor check: 'ok' (green), 'warning' (yellow), 'error' (red), or 'not_available'.", + Type: proto.ColumnType_STRING, + }, + { + Name: "timestamp", + Description: "The time when the Trusted Advisor check was last refreshed.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "flagged_resource_id", + Description: "The unique identifier for the flagged resource.", + Type: proto.ColumnType_STRING, + }, + { + Name: "flagged_resource_status", + Description: "The status of the flagged resource: 'ok' (green), 'warning' (yellow), 'error' (red), or 'not_available'.", + Type: proto.ColumnType_STRING, + }, + { + Name: "flagged_resource_region", + Description: "The AWS region of the flagged resource.", + Type: proto.ColumnType_STRING, + }, + { + Name: "flagged_resource_is_suppressed", + Description: "Specifies whether the flagged AWS resource was ignored by Trusted Advisor because it was marked as suppressed by the user.", + Type: proto.ColumnType_BOOL, + }, + { + Name: "flagged_resource_metadata", + Description: "Additional information about the flagged resource. The exact metadata and its order can be obtained by calling DescribeTrustedAdvisorChecks.", + Type: proto.ColumnType_JSON, + }, + { + Name: "resources_summary", + Description: "Summary information about the resources analyzed by the Trusted Advisor check.", + Type: proto.ColumnType_JSON, + }, + { + Name: "category_specific_summary", + Description: "Summary information that relates to the category of the check. Cost Optimizing is the only category that is currently supported.", + Type: proto.ColumnType_JSON, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.FromField("FlaggedResourceId"), + }, + }), + } +} + +//// LIST FUNCTION + +func listTrustedAdvisorCheckResults(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + // Create session + svc, err := SupportClient(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_trusted_advisor_check_result.listTrustedAdvisorCheckResults", "client_error", err) + return nil, err + } + if svc == nil { + return nil, nil + } + + language := d.EqualsQualString("language") + checkId := d.EqualsQualString("check_id") + + // Empty check + if language == "" || checkId == "" { + return nil, nil + } + + input := &support.DescribeTrustedAdvisorCheckResultInput{ + Language: aws.String(language), + CheckId: aws.String(checkId), + } + + // Get call + result, err := svc.DescribeTrustedAdvisorCheckResult(ctx, input) + if err != nil { + plugin.Logger(ctx).Error("aws_trusted_advisor_check_result.listTrustedAdvisorCheckResults", "api_error", err) + return nil, err + } + + if result != nil && result.Result != nil { + checkResult := result.Result + + // Stream each flagged resource as a separate row + for _, resource := range checkResult.FlaggedResources { + resourceData := &TrustedAdvisorCheckResultData{ + CheckId: checkResult.CheckId, + Timestamp: checkResult.Timestamp, + Status: checkResult.Status, + ResourcesSummary: checkResult.ResourcesSummary, + CategorySpecificSummary: checkResult.CategorySpecificSummary, + FlaggedResourceId: resource.ResourceId, + FlaggedResourceStatus: resource.Status, + FlaggedResourceRegion: resource.Region, + FlaggedResourceIsSuppressed: resource.IsSuppressed, + FlaggedResourceMetadata: resource.Metadata, + } + + d.StreamListItem(ctx, resourceData) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} \ No newline at end of file diff --git a/aws/table_aws_vpc.go b/aws/table_aws_vpc.go index 9396681c9..c498e6dbc 100644 --- a/aws/table_aws_vpc.go +++ b/aws/table_aws_vpc.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsVpc(_ context.Context) *plugin.Table { {Name: "state", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "vpc_id", diff --git a/aws/table_aws_vpc_block_public_access_options.go b/aws/table_aws_vpc_block_public_access_options.go new file mode 100644 index 000000000..03f2c4cff --- /dev/null +++ b/aws/table_aws_vpc_block_public_access_options.go @@ -0,0 +1,98 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/service/ec2" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsVpcBlockPublicAccessOptions(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_vpc_block_public_access_options", + Description: "AWS VPC Block Public Access Options", + List: &plugin.ListConfig{ + Hydrate: listVpcBlockPublicAccessOptions, + Tags: map[string]string{"service": "ec2", "action": "DescribeVpcBlockPublicAccessOptions"}, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "exclusions_allowed", + Description: "Determines if exclusions are allowed. If you have [enabled VPC BPA at the Organization level], exclusions may be not-allowed. Otherwise, they are allowed.", + Type: proto.ColumnType_STRING, + }, + { + Name: "internet_gateway_block_mode", + Description: "The current mode of VPC BPA. Possible values are: 'off', 'block-bidirectional', and 'block-ingress'.", + Type: proto.ColumnType_STRING, + }, + { + Name: "last_update_timestamp", + Description: "The last time the VPC BPA mode was updated.", + Type: proto.ColumnType_TIMESTAMP, + }, + { + Name: "managed_by", + Description: "The entity that manages the state of VPC BPA. Possible values include: 'account' and 'declarative-policy'.", + Type: proto.ColumnType_STRING, + }, + { + Name: "reason", + Description: "The reason for the current state.", + Type: proto.ColumnType_STRING, + }, + { + Name: "state", + Description: "The current state of VPC BPA.", + Type: proto.ColumnType_STRING, + }, + + // Steampipe standard columns + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.From(getVPCBlockPublicAccessOptionsTitle), + }, + }), + } +} + +func listVpcBlockPublicAccessOptions(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_vpc_block_public_access_options.listVpcBlockPublicAccessOptions", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + params := &ec2.DescribeVpcBlockPublicAccessOptionsInput{} + + op, err := svc.DescribeVpcBlockPublicAccessOptions(ctx, params) + if err != nil { + plugin.Logger(ctx).Error("aws_vpc_block_public_access_options.listVpcBlockPublicAccessOptions", "api_error", err) + return nil, err + } + + d.StreamListItem(ctx, op.VpcBlockPublicAccessOptions) + + return nil, nil +} + +//// TRANSFORM FUNCTIONS + +func getVPCBlockPublicAccessOptionsTitle(ctx context.Context, d *transform.TransformData) (interface{}, error) { + region := d.MatrixItem[matrixKeyRegion] + + title := region.(string) + " VPC Block Public Access Options" + return title, nil +} diff --git a/aws/table_aws_vpc_customer_gateway.go b/aws/table_aws_vpc_customer_gateway.go index 5f9aa519c..ea26ad14b 100644 --- a/aws/table_aws_vpc_customer_gateway.go +++ b/aws/table_aws_vpc_customer_gateway.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsVpcCustomerGateway(_ context.Context) *plugin.Table { {Name: "type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "customer_gateway_id", diff --git a/aws/table_aws_vpc_dhcp_options.go b/aws/table_aws_vpc_dhcp_options.go index 2a721e1b2..3e228ca29 100644 --- a/aws/table_aws_vpc_dhcp_options.go +++ b/aws/table_aws_vpc_dhcp_options.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsVpcDhcpOptions(_ context.Context) *plugin.Table { {Name: "owner_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "dhcp_options_id", diff --git a/aws/table_aws_vpc_egress_only_internet_gateway.go b/aws/table_aws_vpc_egress_only_internet_gateway.go index 6b5c4d2d3..9b7f315dd 100644 --- a/aws/table_aws_vpc_egress_only_internet_gateway.go +++ b/aws/table_aws_vpc_egress_only_internet_gateway.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsVpcEgressOnlyIGW(_ context.Context) *plugin.Table { Hydrate: listVpcEgressOnlyInternetGateways, Tags: map[string]string{"service": "ec2", "action": "DescribeEgressOnlyInternetGateways"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_vpc_eip.go b/aws/table_aws_vpc_eip.go index 3eaf49a9a..3273bc86f 100644 --- a/aws/table_aws_vpc_eip.go +++ b/aws/table_aws_vpc_eip.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsVpcEip(_ context.Context) *plugin.Table { {Name: "public_ip", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "allocation_id", diff --git a/aws/table_aws_vpc_eip_address_transfer.go b/aws/table_aws_vpc_eip_address_transfer.go index 0262f4213..27eec44c9 100644 --- a/aws/table_aws_vpc_eip_address_transfer.go +++ b/aws/table_aws_vpc_eip_address_transfer.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -25,7 +23,7 @@ func tableAwsVpcEipAddressTransfer(_ context.Context) *plugin.Table { {Name: "allocation_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "allocation_id", diff --git a/aws/table_aws_vpc_endpoint.go b/aws/table_aws_vpc_endpoint.go index 14620ff31..560d6c140 100644 --- a/aws/table_aws_vpc_endpoint.go +++ b/aws/table_aws_vpc_endpoint.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsVpcEndpoint(_ context.Context) *plugin.Table { {Name: "state", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "vpc_endpoint_id", diff --git a/aws/table_aws_vpc_endpoint_service.go b/aws/table_aws_vpc_endpoint_service.go index be44b80cd..f0e2f3209 100644 --- a/aws/table_aws_vpc_endpoint_service.go +++ b/aws/table_aws_vpc_endpoint_service.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsVpcEndpointService(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ec2", "action": "DescribeVpcEndpointConnections"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "service_name", diff --git a/aws/table_aws_vpc_flow_log.go b/aws/table_aws_vpc_flow_log.go index 0efeb7cfe..5db980642 100644 --- a/aws/table_aws_vpc_flow_log.go +++ b/aws/table_aws_vpc_flow_log.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -40,7 +38,7 @@ func tableAwsVpcFlowlog(_ context.Context) *plugin.Table { {Name: "traffic_type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "flow_log_id", diff --git a/aws/table_aws_vpc_flow_log_event.go b/aws/table_aws_vpc_flow_log_event.go index df15ca5a9..44ab2a900 100644 --- a/aws/table_aws_vpc_flow_log_event.go +++ b/aws/table_aws_vpc_flow_log_event.go @@ -9,7 +9,6 @@ import ( "time" "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types" - cloudwatchlogsv1 "github.com/aws/aws-sdk-go/service/cloudwatchlogs" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -59,8 +58,11 @@ func tableAwsVpcFlowLogEvent(_ context.Context) *plugin.Table { Hydrate: listVpcFlowLogEvents, Tags: map[string]string{"service": "logs", "action": "FilterLogEvents"}, KeyColumns: tableAwsVpcFlowLogEventListKeyColumns(), + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"ResourceNotFoundException"}), + }, }, - GetMatrixItemFunc: SupportedRegionMatrix(cloudwatchlogsv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_LOGS_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ // selector / provenance cols {Name: "log_source", Type: proto.ColumnType_STRING, Transform: transform.FromQual("log_source"), Description: "Source of the flow logs: cloudwatch (default) or s3."}, diff --git a/aws/table_aws_vpc_internet_gateway.go b/aws/table_aws_vpc_internet_gateway.go index a2ac2c38e..1bea40410 100644 --- a/aws/table_aws_vpc_internet_gateway.go +++ b/aws/table_aws_vpc_internet_gateway.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -33,7 +31,7 @@ func tableAwsVpcInternetGateway(_ context.Context) *plugin.Table { {Name: "owner_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "internet_gateway_id", diff --git a/aws/table_aws_vpc_nat_gateway.go b/aws/table_aws_vpc_nat_gateway.go index ba27d1ea8..cafc2b652 100644 --- a/aws/table_aws_vpc_nat_gateway.go +++ b/aws/table_aws_vpc_nat_gateway.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsVpcNatGateway(_ context.Context) *plugin.Table { {Name: "vpc_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "nat_gateway_id", diff --git a/aws/table_aws_vpc_network_acl.go b/aws/table_aws_vpc_network_acl.go index d25be2601..a1d6bb32c 100644 --- a/aws/table_aws_vpc_network_acl.go +++ b/aws/table_aws_vpc_network_acl.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsVpcNetworkACL(_ context.Context) *plugin.Table { {Name: "vpc_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "network_acl_id", diff --git a/aws/table_aws_vpc_peering_connection.go b/aws/table_aws_vpc_peering_connection.go index d349e5ae9..f4fdc02f7 100644 --- a/aws/table_aws_vpc_peering_connection.go +++ b/aws/table_aws_vpc_peering_connection.go @@ -6,8 +6,6 @@ import ( "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" @@ -35,7 +33,7 @@ func tableAwsVpcPeeringConnection(_ context.Context) *plugin.Table { {Name: "id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_vpc_route.go b/aws/table_aws_vpc_route.go index 6fa962d99..9ee4e0cd7 100644 --- a/aws/table_aws_vpc_route.go +++ b/aws/table_aws_vpc_route.go @@ -5,8 +5,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -22,7 +20,7 @@ func tableAwsVpcRoute(_ context.Context) *plugin.Table { ParentHydrate: listVpcRouteTables, Hydrate: listAwsVpcRoute, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "route_table_id", diff --git a/aws/table_aws_vpc_route_table.go b/aws/table_aws_vpc_route_table.go index 2f613ec36..e5116da79 100644 --- a/aws/table_aws_vpc_route_table.go +++ b/aws/table_aws_vpc_route_table.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsVpcRouteTable(_ context.Context) *plugin.Table { {Name: "vpc_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "route_table_id", diff --git a/aws/table_aws_vpc_security_group.go b/aws/table_aws_vpc_security_group.go index 0a6e4b91b..890a3f497 100644 --- a/aws/table_aws_vpc_security_group.go +++ b/aws/table_aws_vpc_security_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsVpcSecurityGroup(_ context.Context) *plugin.Table { {Name: "vpc_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "group_name", diff --git a/aws/table_aws_vpc_security_group_rule.go b/aws/table_aws_vpc_security_group_rule.go index 9b84366d2..a841db795 100644 --- a/aws/table_aws_vpc_security_group_rule.go +++ b/aws/table_aws_vpc_security_group_rule.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -46,7 +44,7 @@ func tableAwsVpcSecurityGroupRule(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "ec2", "action": "DescribeSecurityGroups"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "security_group_rule_id", diff --git a/aws/table_aws_vpc_security_group_vpc_association.go b/aws/table_aws_vpc_security_group_vpc_association.go new file mode 100644 index 000000000..0a3eba5ea --- /dev/null +++ b/aws/table_aws_vpc_security_group_vpc_association.go @@ -0,0 +1,157 @@ +package aws + +import ( + "context" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/ec2" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + + "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin" + "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" +) + +//// TABLE DEFINITION + +func tableAwsVpcSecurityGroupVpcAssociation(_ context.Context) *plugin.Table { + return &plugin.Table{ + Name: "aws_vpc_security_group_vpc_association", + Description: "AWS VPC Security Group VPC Association", + List: &plugin.ListConfig{ + Hydrate: listVpcSecurityGroupVpcAssociations, + Tags: map[string]string{"service": "ec2", "action": "DescribeSecurityGroupVpcAssociations"}, + KeyColumns: []*plugin.KeyColumn{ + {Name: "vpc_id", Require: plugin.Optional}, + {Name: "group_id", Require: plugin.Optional}, + {Name: "state", Require: plugin.Optional}, + }, + IgnoreConfig: &plugin.IgnoreConfig{ + ShouldIgnoreErrorFunc: shouldIgnoreErrors([]string{"InvalidFilter"}), + }, + }, + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), + Columns: awsRegionalColumns([]*plugin.Column{ + { + Name: "group_id", + Description: "The ID of the security group.", + Type: proto.ColumnType_STRING, + }, + { + Name: "vpc_id", + Description: "The ID of the VPC.", + Type: proto.ColumnType_STRING, + }, + { + Name: "vpc_owner_id", + Description: "The ID of the AWS account that owns the VPC.", + Type: proto.ColumnType_STRING, + }, + { + Name: "state", + Description: "The state of the association.", + Type: proto.ColumnType_STRING, + }, + + // Standard columns for all tables + { + Name: "title", + Description: resourceInterfaceDescription("title"), + Type: proto.ColumnType_STRING, + Transform: transform.From(getVpcSecurityGroupVpcAssociationTitle), + }, + }), + } +} + +//// LIST FUNCTION + +func listVpcSecurityGroupVpcAssociations(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) { + svc, err := EC2Client(ctx, d) + if err != nil { + plugin.Logger(ctx).Error("aws_vpc_security_group_vpc_association.listVpcSecurityGroupVpcAssociations", "connection_error", err) + return nil, err + } + if svc == nil { + // Unsupported region, return no data + return nil, nil + } + + // Limiting the results + maxLimit := int32(1000) + if d.QueryContext.Limit != nil { + limit := int32(*d.QueryContext.Limit) + if limit < maxLimit { + if limit < 5 { + maxLimit = int32(5) + } else { + maxLimit = limit + } + } + } + + // Build the input parameters + input := &ec2.DescribeSecurityGroupVpcAssociationsInput{ + MaxResults: aws.Int32(maxLimit), + } + + // Add filters if provided + filters := []types.Filter{} + + if d.EqualsQuals["vpc_id"] != nil { + filters = append(filters, types.Filter{ + Name: aws.String("vpc-id"), + Values: []string{d.EqualsQuals["vpc_id"].GetStringValue()}, + }) + } + + if d.EqualsQuals["group_id"] != nil { + filters = append(filters, types.Filter{ + Name: aws.String("group-id"), + Values: []string{d.EqualsQuals["group_id"].GetStringValue()}, + }) + } + + if d.EqualsQuals["state"] != nil { + filters = append(filters, types.Filter{ + Name: aws.String("state"), + Values: []string{d.EqualsQuals["state"].GetStringValue()}, + }) + } + + if len(filters) > 0 { + input.Filters = filters + } + + // Create paginator for DescribeSecurityGroupVpcAssociations + paginator := ec2.NewDescribeSecurityGroupVpcAssociationsPaginator(svc, input, func(o *ec2.DescribeSecurityGroupVpcAssociationsPaginatorOptions) { + o.Limit = maxLimit + }) + + // Iterate through the paginator + for paginator.HasMorePages() { + output, err := paginator.NextPage(ctx) + if err != nil { + plugin.Logger(ctx).Error("aws_vpc_security_group_vpc_association.listVpcSecurityGroupVpcAssociations", "api_error", err) + return nil, err + } + + for _, association := range output.SecurityGroupVpcAssociations { + d.StreamListItem(ctx, association) + + // Context can be cancelled due to manual cancellation or the limit has been hit + if d.RowsRemaining(ctx) == 0 { + return nil, nil + } + } + } + + return nil, nil +} + +//// TRANSFORM FUNCTIONS + +func getVpcSecurityGroupVpcAssociationTitle(_ context.Context, d *transform.TransformData) (interface{}, error) { + association := d.HydrateItem.(types.SecurityGroupVpcAssociation) + return *association.GroupId + " - " + *association.VpcId, nil +} diff --git a/aws/table_aws_vpc_subnet.go b/aws/table_aws_vpc_subnet.go index 0ebf0b084..0e2b100b2 100644 --- a/aws/table_aws_vpc_subnet.go +++ b/aws/table_aws_vpc_subnet.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsVpcSubnet(_ context.Context) *plugin.Table { {Name: "vpc_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "subnet_id", diff --git a/aws/table_aws_vpc_verified_access_endpoint.go b/aws/table_aws_vpc_verified_access_endpoint.go index c13a46f95..afb695524 100644 --- a/aws/table_aws_vpc_verified_access_endpoint.go +++ b/aws/table_aws_vpc_verified_access_endpoint.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsVpcVerifiedAccessEndpoint(_ context.Context) *plugin.Table { {Name: "verified_access_instance_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "verified_access_endpoint_id", diff --git a/aws/table_aws_vpc_verified_access_group.go b/aws/table_aws_vpc_verified_access_group.go index 08267db26..879317fc1 100644 --- a/aws/table_aws_vpc_verified_access_group.go +++ b/aws/table_aws_vpc_verified_access_group.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsVpcVerifiedAccessGroup(_ context.Context) *plugin.Table { {Name: "verified_access_instance_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "verified_access_group_id", diff --git a/aws/table_aws_vpc_verified_access_instance.go b/aws/table_aws_vpc_verified_access_instance.go index 5f670704a..4b08a9603 100644 --- a/aws/table_aws_vpc_verified_access_instance.go +++ b/aws/table_aws_vpc_verified_access_instance.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsVpcVerifiedAccessInstance(_ context.Context) *plugin.Table { {Name: "verified_access_instance_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "verified_access_instance_id", diff --git a/aws/table_aws_vpc_verified_access_trust_provider.go b/aws/table_aws_vpc_verified_access_trust_provider.go index b250113cd..1e774afd6 100644 --- a/aws/table_aws_vpc_verified_access_trust_provider.go +++ b/aws/table_aws_vpc_verified_access_trust_provider.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsVpcVerifiedAccessTrustProvider(_ context.Context) *plugin.Table { {Name: "verified_access_trust_provider_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "verified_access_trust_provider_id", diff --git a/aws/table_aws_vpc_vpn_connection.go b/aws/table_aws_vpc_vpn_connection.go index 7861a2cbd..0eba920f1 100644 --- a/aws/table_aws_vpc_vpn_connection.go +++ b/aws/table_aws_vpc_vpn_connection.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -42,7 +40,7 @@ func tableAwsVpcVpnConnection(_ context.Context) *plugin.Table { {Name: "transit_gateway_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "vpn_connection_id", diff --git a/aws/table_aws_vpc_vpn_gateway.go b/aws/table_aws_vpc_vpn_gateway.go index 2e5b357ce..e47a0fada 100644 --- a/aws/table_aws_vpc_vpn_gateway.go +++ b/aws/table_aws_vpc_vpn_gateway.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/types" - ec2v1 "github.com/aws/aws-sdk-go/service/ec2" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -35,7 +33,7 @@ func tableAwsVpcVpnGateway(_ context.Context) *plugin.Table { {Name: "type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(ec2v1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_EC2_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "vpn_gateway_id", diff --git a/aws/table_aws_wafregional_rule.go b/aws/table_aws_wafregional_rule.go index c221b3cc5..ab80df231 100644 --- a/aws/table_aws_wafregional_rule.go +++ b/aws/table_aws_wafregional_rule.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wafregional" "github.com/aws/aws-sdk-go-v2/service/wafregional/types" - wafregionalv1 "github.com/aws/aws-sdk-go/service/wafregional" - "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -37,7 +35,7 @@ func tableAwsWAFRegionalRule(_ context.Context) *plugin.Table { Hydrate: listAwsWAFRegionalRules, Tags: map[string]string{"service": "waf-regional", "action": "ListRules"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(wafregionalv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WAF_REGIONAL_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getAwsWAFRegionalRule, diff --git a/aws/table_aws_wafregional_rule_group.go b/aws/table_aws_wafregional_rule_group.go index 3d83b6d39..196628caf 100644 --- a/aws/table_aws_wafregional_rule_group.go +++ b/aws/table_aws_wafregional_rule_group.go @@ -6,7 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/wafregional" "github.com/aws/aws-sdk-go-v2/service/wafregional/types" - wafregionalv1 "github.com/aws/aws-sdk-go/service/wafregional" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" @@ -31,7 +30,7 @@ func tableAwsWafRegionalRuleGroup(_ context.Context) *plugin.Table { Hydrate: listWafRegionalRuleGroups, Tags: map[string]string{"service": "waf-regional", "action": "ListRuleGroups"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(wafregionalv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WAF_REGIONAL_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getWafRegionalRuleGroup, diff --git a/aws/table_aws_wafregional_web_acl.go b/aws/table_aws_wafregional_web_acl.go index dfe1fd38a..a910c5399 100644 --- a/aws/table_aws_wafregional_web_acl.go +++ b/aws/table_aws_wafregional_web_acl.go @@ -8,7 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/wafregional" "github.com/aws/aws-sdk-go-v2/service/wafregional/types" - wafregionalv1 "github.com/aws/aws-sdk-go/service/wafregional" "github.com/aws/smithy-go" "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" @@ -34,7 +33,7 @@ func tableAwsWafRegionalWebAcl(_ context.Context) *plugin.Table { Hydrate: listWafRegionalWebAcls, Tags: map[string]string{"service": "waf-regional", "action": "ListWebACLs"}, }, - GetMatrixItemFunc: SupportedRegionMatrix(wafregionalv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WAF_REGIONAL_SERVICE_ID), HydrateConfig: []plugin.HydrateConfig{ { Func: getWafRegionalWebAcl, diff --git a/aws/table_aws_wafv2_web_acl.go b/aws/table_aws_wafv2_web_acl.go index e7f86913a..fe0228f02 100644 --- a/aws/table_aws_wafv2_web_acl.go +++ b/aws/table_aws_wafv2_web_acl.go @@ -98,6 +98,30 @@ func tableAwsWafv2WebAcl(_ context.Context) *plugin.Table { Type: proto.ColumnType_BOOL, Hydrate: getAwsWafv2WebAcl, }, + { + Name: "custom_response_bodies", + Description: "The custom response bodies that AWS WAF returns to web requests when they are blocked.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsWafv2WebAcl, + }, + { + Name: "label_namespace", + Description: "The label namespace prefix for this web ACL.", + Type: proto.ColumnType_STRING, + Hydrate: getAwsWafv2WebAcl, + }, + { + Name: "retrofitted_by_firewall_manager", + Description: "Indicates whether this web ACL has been retrofitted by AWS Firewall Manager.", + Type: proto.ColumnType_BOOL, + Hydrate: getAwsWafv2WebAcl, + }, + { + Name: "token_domains", + Description: "List of domains that are allowed to use tokens for the challenge action.", + Type: proto.ColumnType_JSON, + Hydrate: getAwsWafv2WebAcl, + }, { Name: "associated_resources", Description: "The array of Amazon Resource Names (ARNs) of the associated resources.", diff --git a/aws/table_aws_wellarchitected_answer.go b/aws/table_aws_wellarchitected_answer.go index 10bf90030..5859cf4fc 100644 --- a/aws/table_aws_wellarchitected_answer.go +++ b/aws/table_aws_wellarchitected_answer.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" "github.com/aws/smithy-go" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -50,7 +48,7 @@ func tableAwsWellArchitectedAnswer(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "wellarchitected", "action": "GetAnswer"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "question_id", diff --git a/aws/table_aws_wellarchitected_check_detail.go b/aws/table_aws_wellarchitected_check_detail.go index 69f5cb4d1..bdcbeb3e1 100644 --- a/aws/table_aws_wellarchitected_check_detail.go +++ b/aws/table_aws_wellarchitected_check_detail.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" "github.com/aws/smithy-go" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsWellArchitectedCheckDetail(_ context.Context) *plugin.Table { {Name: "question_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_wellarchitected_check_summary.go b/aws/table_aws_wellarchitected_check_summary.go index 4827723ac..70ca5d098 100644 --- a/aws/table_aws_wellarchitected_check_summary.go +++ b/aws/table_aws_wellarchitected_check_summary.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -36,7 +34,7 @@ func tableAwsWellArchitectedCheckSummary(_ context.Context) *plugin.Table { {Name: "question_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "id", diff --git a/aws/table_aws_wellarchitected_consolidated_report.go b/aws/table_aws_wellarchitected_consolidated_report.go index 79c446a24..70edbe2aa 100644 --- a/aws/table_aws_wellarchitected_consolidated_report.go +++ b/aws/table_aws_wellarchitected_consolidated_report.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsWellArchitectedConsolidatedReport(_ context.Context) *plugin.Table Tags: map[string]string{"service": "wellarchitected", "action": "GetConsolidatedReport"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "workload_name", diff --git a/aws/table_aws_wellarchitected_lens.go b/aws/table_aws_wellarchitected_lens.go index e95e12af1..8658d302e 100644 --- a/aws/table_aws_wellarchitected_lens.go +++ b/aws/table_aws_wellarchitected_lens.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsWellArchitectedLens(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "wellarchitected", "action": "GetLens"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "lens_name", diff --git a/aws/table_aws_wellarchitected_lens_review.go b/aws/table_aws_wellarchitected_lens_review.go index 180ba90ae..3c363a509 100644 --- a/aws/table_aws_wellarchitected_lens_review.go +++ b/aws/table_aws_wellarchitected_lens_review.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -53,7 +51,7 @@ func tableAwsWellArchitectedLensReview(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "wellarchitected", "action": "GetLensReview"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "lens_name", @@ -202,8 +200,7 @@ func listWellArchitectedLensReviews(ctx context.Context, d *plugin.QueryData, h } for _, item := range output.LensReviewSummaries { - d.StreamListItem(ctx, LensReviewInfo{ - MilestoneNumber: *output.MilestoneNumber, + reviewSummary := LensReviewInfo{ WorkloadId: workloadId, LensReview: &types.LensReview{ LensAlias: item.LensAlias, @@ -214,7 +211,11 @@ func listWellArchitectedLensReviews(ctx context.Context, d *plugin.QueryData, h RiskCounts: item.RiskCounts, UpdatedAt: item.UpdatedAt, }, - }) + } + if output.MilestoneNumber != nil { + reviewSummary.MilestoneNumber = *output.MilestoneNumber + } + d.StreamListItem(ctx, reviewSummary) // Context can be cancelled due to manual cancellation or the limit has been hit if d.RowsRemaining(ctx) == 0 { @@ -270,9 +271,12 @@ func getWellArchitectedLensReview(ctx context.Context, d *plugin.QueryData, h *p return nil, err } - return LensReviewInfo{ - MilestoneNumber: *op.MilestoneNumber, + review := LensReviewInfo{ WorkloadId: &workloadId, LensReview: op.LensReview, - }, nil + } + if op.MilestoneNumber != nil { + review.MilestoneNumber = *op.MilestoneNumber + } + return review, nil } diff --git a/aws/table_aws_wellarchitected_lens_review_improvement.go b/aws/table_aws_wellarchitected_lens_review_improvement.go index aa331e269..2fbfc292f 100644 --- a/aws/table_aws_wellarchitected_lens_review_improvement.go +++ b/aws/table_aws_wellarchitected_lens_review_improvement.go @@ -10,8 +10,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" "github.com/aws/smithy-go" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -39,7 +37,7 @@ func tableAwsWellArchitectedLensReviewImprovement(_ context.Context) *plugin.Tab {Name: "pillar_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "lens_alias", @@ -215,13 +213,17 @@ func stereamlistLensReviewImprovements(ctx context.Context, d *plugin.QueryData, output.LensAlias = output.LensArn } - d.StreamListItem(ctx, ReviewImprovementInfo{ + reviewImprovementInfo := ReviewImprovementInfo{ LensAlias: output.LensAlias, LensArn: output.LensArn, - MilestoneNumber: *output.MilestoneNumber, WorkloadId: output.WorkloadId, ImprovementSummary: item, - }) + } + if output.MilestoneNumber != nil { + reviewImprovementInfo.MilestoneNumber = *output.MilestoneNumber + } + + d.StreamListItem(ctx, reviewImprovementInfo) // Context can be cancelled due to manual cancellation or the limit has been hit if d.RowsRemaining(ctx) == 0 { diff --git a/aws/table_aws_wellarchitected_lens_review_report.go b/aws/table_aws_wellarchitected_lens_review_report.go index 4e46dac2e..54505a6c3 100644 --- a/aws/table_aws_wellarchitected_lens_review_report.go +++ b/aws/table_aws_wellarchitected_lens_review_report.go @@ -11,8 +11,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" "github.com/aws/smithy-go" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" ) @@ -37,7 +35,7 @@ func tableAwsWellArchitectedLensReviewReport(_ context.Context) *plugin.Table { {Name: "milestone_number", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "lens_alias", @@ -132,13 +130,17 @@ func getWellArchitectedLensReviewReports(ctx context.Context, d *plugin.QueryDat return nil, err } - d.StreamListItem(ctx, ReviewReportInfo{ + report := ReviewReportInfo{ Base64String: op.LensReviewReport.Base64String, LensAlias: op.LensReviewReport.LensAlias, LensArn: op.LensReviewReport.LensArn, - MilestoneNumber: *op.MilestoneNumber, WorkloadId: op.WorkloadId, - }) + } + if op.MilestoneNumber != nil { + report.MilestoneNumber = *op.MilestoneNumber + } + + d.StreamListItem(ctx, report) // Context can be cancelled due to manual cancellation or the limit has been hit if d.RowsRemaining(ctx) == 0 { diff --git a/aws/table_aws_wellarchitected_lens_share.go b/aws/table_aws_wellarchitected_lens_share.go index 256077a4c..c7fd5e3fc 100644 --- a/aws/table_aws_wellarchitected_lens_share.go +++ b/aws/table_aws_wellarchitected_lens_share.go @@ -9,8 +9,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" "github.com/aws/smithy-go" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -37,7 +35,7 @@ func tableAwsWellArchitectedLensShare(_ context.Context) *plugin.Table { {Name: "status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "lens_alias", @@ -99,7 +97,7 @@ type LensShareInfo struct { //// LIST FUNCTION func listWellArchitectedLensShares(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (interface{}, error) { - lens := h.Item.(types.LensSummary) + lens := h.Item.(LensInfo) lensAlias := d.EqualsQualString("lens_alias") // Reduce the number of API calls if the 'lens_alias' has been provided in the query parameter diff --git a/aws/table_aws_wellarchitected_milestone.go b/aws/table_aws_wellarchitected_milestone.go index a42e9bfcb..87d1579cd 100644 --- a/aws/table_aws_wellarchitected_milestone.go +++ b/aws/table_aws_wellarchitected_milestone.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsWellArchitectedMilestone(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "wellarchitected", "action": "GetMilestone"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "milestone_name", diff --git a/aws/table_aws_wellarchitected_notification.go b/aws/table_aws_wellarchitected_notification.go index d3baef69b..b171142df 100644 --- a/aws/table_aws_wellarchitected_notification.go +++ b/aws/table_aws_wellarchitected_notification.go @@ -6,8 +6,6 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/wellarchitected" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -26,7 +24,7 @@ func tableAwsWellArchitectedNotification(_ context.Context) *plugin.Table { {Name: "workload_id", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "current_lens_version", diff --git a/aws/table_aws_wellarchitected_share_invitation.go b/aws/table_aws_wellarchitected_share_invitation.go index 3f8320f06..f2e1f3d01 100644 --- a/aws/table_aws_wellarchitected_share_invitation.go +++ b/aws/table_aws_wellarchitected_share_invitation.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -30,7 +28,7 @@ func tableAwsWellArchitectedShareInvitation(_ context.Context) *plugin.Table { {Name: "share_resource_type", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "lens_arn", diff --git a/aws/table_aws_wellarchitected_workload.go b/aws/table_aws_wellarchitected_workload.go index 8569946fb..9743318cf 100644 --- a/aws/table_aws_wellarchitected_workload.go +++ b/aws/table_aws_wellarchitected_workload.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -41,7 +39,7 @@ func tableAwsWellArchitectedWorkload(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "wellarchitected", "action": "GetWorkload"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "workload_name", diff --git a/aws/table_aws_wellarchitected_workload_share.go b/aws/table_aws_wellarchitected_workload_share.go index 798d81984..b2b7c1bf7 100644 --- a/aws/table_aws_wellarchitected_workload_share.go +++ b/aws/table_aws_wellarchitected_workload_share.go @@ -8,8 +8,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/wellarchitected" "github.com/aws/aws-sdk-go-v2/service/wellarchitected/types" - wellarchitectedv1 "github.com/aws/aws-sdk-go/service/wellarchitected" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -31,7 +29,7 @@ func tableAwsWellArchitectedWorkloadShare(_ context.Context) *plugin.Table { {Name: "status", Require: plugin.Optional}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(wellarchitectedv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WELLARCHITECTED_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "workload_id", diff --git a/aws/table_aws_workspaces_directory.go b/aws/table_aws_workspaces_directory.go index 32e9d4cf7..0cbf7a270 100644 --- a/aws/table_aws_workspaces_directory.go +++ b/aws/table_aws_workspaces_directory.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/workspaces" "github.com/aws/aws-sdk-go-v2/service/workspaces/types" - workspacesv1 "github.com/aws/aws-sdk-go/service/workspaces" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -38,7 +36,7 @@ func tableAwsWorkspacesDirectory(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "workspaces", "action": "DescribeTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(workspacesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WORKSPACES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "directory_id", diff --git a/aws/table_aws_workspaces_workspace.go b/aws/table_aws_workspaces_workspace.go index 8601003b5..334e678f9 100644 --- a/aws/table_aws_workspaces_workspace.go +++ b/aws/table_aws_workspaces_workspace.go @@ -7,8 +7,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/workspaces" "github.com/aws/aws-sdk-go-v2/service/workspaces/types" - workspacesv1 "github.com/aws/aws-sdk-go/service/workspaces" - "github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto" "github.com/turbot/steampipe-plugin-sdk/v5/plugin" "github.com/turbot/steampipe-plugin-sdk/v5/plugin/transform" @@ -43,7 +41,7 @@ func tableAwsWorkspace(_ context.Context) *plugin.Table { Tags: map[string]string{"service": "workspaces", "action": "DescribeTags"}, }, }, - GetMatrixItemFunc: SupportedRegionMatrix(workspacesv1.EndpointsID), + GetMatrixItemFunc: SupportedRegionMatrix(AWS_WORKSPACES_SERVICE_ID), Columns: awsRegionalColumns([]*plugin.Column{ { Name: "workspace_id", diff --git a/aws/utils.go b/aws/utils.go index ddd27ffb2..ec8f3bad4 100644 --- a/aws/utils.go +++ b/aws/utils.go @@ -89,6 +89,20 @@ func getLastPathElement(path string) string { return pathItems[len(pathItems)-1] } +// removeDuplicates removes duplicates from a slice of strings. +func removeDuplicates(strings []string) []string { + seen := make(map[string]bool) + result := []string{} + + for _, s := range strings { + if _, ok := seen[s]; !ok { + seen[s] = true + result = append(result, s) + } + } + return result +} + func lastPathElement(_ context.Context, d *transform.TransformData) (interface{}, error) { return getLastPathElement(types.SafeString(d.Value)), nil } @@ -165,9 +179,9 @@ func getQualsValueByColumn(equalQuals plugin.KeyColumnQualMap, columnName string if dataType == "boolean" { switch q.Operator { case "<>": - value = "false" + value = !q.Value.GetBoolValue() case "=": - value = "true" + value = q.Value.GetBoolValue() } } if dataType == "int64" { diff --git a/config/aws.spc b/config/aws.spc index b9a7cd544..8796b9dd4 100644 --- a/config/aws.spc +++ b/config/aws.spc @@ -42,6 +42,11 @@ connection "aws" { # By default, common not found error codes are ignored and will still be ignored even if this argument is not set. #ignore_error_codes = ["AccessDenied", "AccessDeniedException", "NotAuthorized", "UnauthorizedOperation", "UnrecognizedClientException", "AuthorizationError"] + # List of regular expressions to match error messages to ignore for all queries. + # When encountering errors matching these patterns, the API call will not be retried and empty results will be returned. + # This allows for more flexible error handling based on error message content rather than just error codes. + #ignore_error_messages = [".*with an explicit deny in a service control policy.*", ".*Support\\s+Subscription\\s+is\\s+required.*"] + # Specify the endpoint URL used when making requests to AWS services. # If not set, the default AWS generated endpoint will be used. # Can also be set with the AWS_ENDPOINT_URL environment variable. diff --git a/docs/index.md b/docs/index.md index acb6bc477..a70d5e0dd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -56,16 +56,17 @@ steampipe plugin install aws ### Credentials -| Item | Description | -| - | - | -| Credentials | Specify a named profile from an AWS credential file with the `profile` argument. | -| Permissions | Grant the `ReadOnlyAccess` policy to your user or role. | -| Radius | Each connection represents a single AWS account. | -| Resolution | 1. Credentials explicitly set in a Steampipe config file (`~/.steampipe/config/aws.spc`).
2. Credentials specified in environment variables, e.g., `AWS_ACCESS_KEY_ID`.
3. Credentials in the credential file (`~/.aws/credentials`) for the profile specified in the `AWS_PROFILE` environment variable.
4. Credentials for the default profile from the credential file.
5. EC2 instance role credentials (if running on an EC2 instance). | +| Item | Description | +| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Credentials | Specify a named profile from an AWS credential file with the `profile` argument. | +| Permissions | Grant the `ReadOnlyAccess` policy to your user or role. | +| Radius | Each connection represents a single AWS account. | +| Resolution | 1. Credentials explicitly set in a Steampipe config file (`~/.steampipe/config/aws.spc`).
2. Credentials specified in environment variables, e.g., `AWS_ACCESS_KEY_ID`.
3. Credentials in the credential file (`~/.aws/credentials`) for the profile specified in the `AWS_PROFILE` environment variable.
4. Credentials for the default profile from the credential file.
5. EC2 instance role credentials (if running on an EC2 instance). | ### Configuration Installing the latest aws plugin will create a config file (`~/.steampipe/config/aws.spc`) with a single connection named `aws`: + ```hcl connection "aws" { plugin = "aws" @@ -113,6 +114,11 @@ connection "aws" { # By default, common not found error codes are ignored and will still be ignored even if this argument is not set. #ignore_error_codes = ["AccessDenied", "AccessDeniedException", "NotAuthorized", "UnauthorizedOperation", "UnrecognizedClientException", "AuthorizationError"] + # List of regular expressions to match error messages to ignore for all queries. + # When encountering errors matching these patterns, the API call will not be retried and empty results will be returned. + # This allows for more flexible error handling based on error message content rather than just error codes. + #ignore_error_messages = [".*with an explicit deny in a service control policy.*", ".*Support\\s+Subscription\\s+is\\s+required.*"] + # Specify the endpoint URL used when making requests to AWS services. # If not set, the default AWS generated endpoint will be used. # Can also be set with the AWS_ENDPOINT_URL environment variable. @@ -130,6 +136,7 @@ By default, all options are commented out in the default connection, thus Steamp ## Multi-Region Connections By default, AWS connections behave like the `aws` cli and connect to a single default region. Alternatively, you may also specify one or more regions with the `regions` argument: + ```hcl connection "aws" { plugin = "aws" @@ -138,6 +145,7 @@ connection "aws" { ``` The `regions` argument supports wildcards: + - All standard regions ```hcl connection "aws" { @@ -187,6 +195,7 @@ Steampipe will automatically guess your `default_region` from your AWS config (e.g. `AWS_REGION` env var) or `regions` list, but you may prefer to specify it to ensure where API calls are made for global resources (e.g. STS, EC2 describe regions): + ```hcl connection "aws" { plugin = "aws" @@ -198,6 +207,7 @@ connection "aws" { ## Multi-Account Connections You may create multiple aws connections: + ```hcl connection "aws_dev" { plugin = "aws" @@ -235,11 +245,13 @@ connection "aws_all" { ``` Querying tables from this connection will return results from the `aws_dev`, `aws_qa`, and `aws_prod` connections: + ```sql select * from aws_all.aws_account ``` Alternatively, can use an unqualified name and it will be resolved according to the [Search Path](https://steampipe.io/docs/guides/search-path). It's a good idea to name your aggregator first alphbetically, so that it is the first connection in the search path (i.e. `aws_all` comes before `aws_dev`): + ```sql select * from aws_account ``` @@ -255,7 +267,8 @@ connection "aws_all" { ``` Aggregators are powerful, but they are not infinitely scalable. Like any other Steampipe connection, they query APIs and are subject to API limits and throttling. Consider as an example and aggregator that includes 3 AWS connections, where each connection queries 16 regions. This means you essentially run the same list API calls 48 times! When using aggregators, it is especially important to: -- Query only what you need! `select * from aws_s3_bucket` must make a list API call in each connection, and then 11 API calls *for each bucket*, where `select name, versioning_enabled from aws_s3_bucket` would only require a single API call per bucket. + +- Query only what you need! `select * from aws_s3_bucket` must make a list API call in each connection, and then 11 API calls _for each bucket_, where `select name, versioning_enabled from aws_s3_bucket` would only require a single API call per bucket. - Consider extending the [cache TTL](https://steampipe.io/docs/reference/config-files#connection-options). The default is currently 300 seconds (5 minutes). Obviously, anytime Steampipe can pull from the cache, its is faster and less impactful to the APIs. If you don't need the most up-to-date results, increase the cache TTL! ## Configuring AWS Credentials @@ -298,6 +311,7 @@ Using named profiles allows Steampipe to work with your existing CLI configurati ### AWS SSO Credentials Steampipe works with [AWS SSO](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#sso-configure-profile-auto) via AWS profiles however: + - You must login to SSO (`aws sso login` ) before starting Steampipe - If your credentials expire, you will need to re-authenticate outside of Steampipe - Steampipe currently cannot re-authenticate you. @@ -407,6 +421,7 @@ If you are using Steampipe on AWS ECS then you need to ensure that have separate The Task Role should have permissions to assume your service role. Additionally your service role needs a trust relationship set up, and have permissions to assume your other roles. #### Task Role IAM Assume Role + ```json { "Version": "2012-10-17" @@ -425,19 +440,20 @@ The Task Role should have permissions to assume your service role. Additionally ``` #### Service Role + ```json { - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "", - "Effect": "Allow", - "Principal": { - "AWS": "arn:aws:iam::111111111111:role/steampipe-ecs-task-role" - }, - "Action": "sts:AssumeRole" - } - ] + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::111111111111:role/steampipe-ecs-task-role" + }, + "Action": "sts:AssumeRole" + } + ] } ``` @@ -525,5 +541,3 @@ connection "aws" { regions = ["eu-west-1", "eu-west-2"] } ``` - - diff --git a/docs/tables/aws_api_gateway_account.md b/docs/tables/aws_api_gateway_account.md new file mode 100644 index 000000000..d403361b3 --- /dev/null +++ b/docs/tables/aws_api_gateway_account.md @@ -0,0 +1,131 @@ +--- +title: "Steampipe Table: aws_api_gateway_account - Query AWS API Gateway Account using SQL" +description: "Allows users to query AWS API Gateway account settings, including throttle limits, CloudWatch role ARN, API key version, and supported features. This table helps DevOps engineers inspect monitoring configurations and feature availability across API Gateway accounts." +folder: "API Gateway" +--- + +# Table: aws_api_gateway_account - Query AWS API Gateway Account using SQL + +AWS API Gateway Account represents the account-level settings for Amazon API Gateway in a specific region. It contains configuration information such as throttle settings, CloudWatch integration role, API key version, and supported features. These settings apply globally to all APIs within the account and region. + +## Table Usage Guide + +The `aws_api_gateway_account` table in Steampipe provides you with information about Account settings within AWS API Gateway. This table allows you, as a DevOps engineer, to query Account-specific details, including throttle settings, CloudWatch role ARN, API key version, and supported features. You can utilize this table to gather insights on Account settings, such as throttle limits, monitoring configuration, and feature availability. The schema outlines the various attributes of the Account for you, including the CloudWatch role ARN, throttle settings, API key version, and supported features. + +## Examples + +### Basic info +Discover the segments that show the configuration of your AWS API Gateway account settings. This query can provide insights into throttle limits, monitoring setup, and feature availability which can be beneficial for optimizing API performance and monitoring. + +```sql+postgres +select + cloudwatch_role_arn, + api_key_version, + throttle_burst_limit, + throttle_rate_limit, + features, + region, + account_id +from + aws_api_gateway_account; +``` + +```sql+sqlite +select + cloudwatch_role_arn, + api_key_version, + throttle_burst_limit, + throttle_rate_limit, + features, + region, + account_id +from + aws_api_gateway_account; +``` + +### Check if CloudWatch logging is configured +Determine if CloudWatch logging is properly configured for API Gateway by checking if a CloudWatch role ARN is set. + +```sql+postgres +select + region, + cloudwatch_role_arn, + case + when cloudwatch_role_arn is not null then 'Configured' + else 'Not Configured' + end as cloudwatch_status +from + aws_api_gateway_account; +``` + +```sql+sqlite +select + region, + cloudwatch_role_arn, + case + when cloudwatch_role_arn is not null then 'Configured' + else 'Not Configured' + end as cloudwatch_status +from + aws_api_gateway_account; +``` + +### View API throttling settings across regions +Assess the throttle configuration across different regions to ensure consistent API rate limiting policies. + +```sql+postgres +select + region, + throttle_rate_limit, + throttle_burst_limit, + case + when throttle_rate_limit > 0 then 'Throttling Enabled' + else 'Throttling Disabled' + end as throttle_status +from + aws_api_gateway_account +order by + region; +``` + +```sql+sqlite +select + region, + throttle_rate_limit, + throttle_burst_limit, + case + when throttle_rate_limit > 0 then 'Throttling Enabled' + else 'Throttling Disabled' + end as throttle_status +from + aws_api_gateway_account +order by + region; +``` + +### Check if API usage plans are enabled +Identify which features are supported in each region, particularly usage plans functionality. + +```sql+postgres +select + region, + features, + case + when features ? 'UsagePlans' then 'Supported' + else 'Not Supported' + end as usage_plans_support +from + aws_api_gateway_account; +``` + +```sql+sqlite +select + region, + features, + case + when json_extract(features, '$[0]') = 'UsagePlans' then 'Supported' + else 'Not Supported' + end as usage_plans_support +from + aws_api_gateway_account; +``` diff --git a/docs/tables/aws_appsync_api.md b/docs/tables/aws_appsync_api.md new file mode 100644 index 000000000..bdff1a988 --- /dev/null +++ b/docs/tables/aws_appsync_api.md @@ -0,0 +1,181 @@ +--- +title: "Steampipe Table: aws_appsync_api - Query AWS AppSync APIs using SQL" +description: "Allows users to query AWS AppSync APIs (Event APIs) to retrieve detailed information about each API configuration." +folder: "AppSync" +--- + +# Table: aws_appsync_api - Query AWS AppSync APIs using SQL + +AWS AppSync is a managed service that provides real-time data and offline capabilities for web and mobile applications. The `aws_appsync_api` table provides information about **AppSync Event APIs**, which are different from GraphQL APIs. Event APIs enable real-time messaging and event-driven architectures with WebSocket connections for publishing and subscribing to events. + +## Table Usage Guide + +The `aws_appsync_api` table in Steampipe provides you with information about **AppSync Event APIs** within AWS. This table allows you, as a DevOps engineer, to query Event API-specific details, including API ID, name, DNS endpoints, event configuration, and associated metadata. You can utilize this table to gather insights on Event APIs, such as their real-time messaging configuration, DNS endpoints, X-Ray tracing settings, and associated tags. + +## Examples + +### Basic info +Explore the features and settings of your AWS AppSync Event APIs to better understand their configuration, such as creation time, DNS endpoints, and regional distribution. This can help in assessing Event API performance and operational efficiency. + +```sql+postgres +select + name, + api_id, + arn, + created, + xray_enabled, + region +from + aws_appsync_api; +``` + +```sql+sqlite +select + name, + api_id, + arn, + created, + xray_enabled, + region +from + aws_appsync_api; +``` + +### List Event APIs with X-Ray tracing enabled +Find AppSync Event APIs that have X-Ray tracing enabled to understand which Event APIs are being monitored for performance and debugging. This is particularly useful for real-time applications where performance monitoring is critical. + +```sql+postgres +select + name, + api_id, + created, + xray_enabled +from + aws_appsync_api +where + xray_enabled = true; +``` + +```sql+sqlite +select + name, + api_id, + created, + xray_enabled +from + aws_appsync_api +where + xray_enabled = 1; +``` + +### Get Event API DNS endpoints +Retrieve DNS endpoints for Event APIs to understand the HTTP and WebSocket endpoints available for real-time communication. Event APIs provide both HTTP endpoints for REST operations and WebSocket endpoints for real-time messaging. + +```sql+postgres +select + name, + api_id, + dns +from + aws_appsync_api +where + dns is not null; +``` + +```sql+sqlite +select + name, + api_id, + dns +from + aws_appsync_api +where + dns is not null; +``` + +### Get Event API details with tags +Retrieve detailed information about Event APIs including their associated tags for resource management and cost allocation. + +```sql+postgres +select + name, + api_id, + owner_contact, + waf_web_acl_arn, + tags +from + aws_appsync_api +where + tags is not null; +``` + +```sql+sqlite +select + name, + api_id, + owner_contact, + waf_web_acl_arn, + tags +from + aws_appsync_api +where + tags is not null; +``` + +### List recently created Event APIs +Find Event APIs that were created recently to track new deployments and changes in your AppSync Event API environment. + +```sql+postgres +select + name, + api_id, + created, + xray_enabled +from + aws_appsync_api +where + created >= now() - interval '30 days' +order by + created desc; +``` + +```sql+sqlite +select + name, + api_id, + created, + xray_enabled +from + aws_appsync_api +where + created >= datetime('now', '-30 days') +order by + created desc; +``` + +### Get Event API configuration details +Retrieve detailed Event API configuration including event settings for real-time messaging capabilities. + +```sql+postgres +select + name, + api_id, + event_config, + dns +from + aws_appsync_api +where + event_config is not null; +``` + +```sql+sqlite +select + name, + api_id, + event_config, + dns +from + aws_appsync_api +where + event_config is not null; +``` diff --git a/docs/tables/aws_athena_workgroup.md b/docs/tables/aws_athena_workgroup.md index 21d2d1b3c..675f71094 100644 --- a/docs/tables/aws_athena_workgroup.md +++ b/docs/tables/aws_athena_workgroup.md @@ -18,28 +18,28 @@ The `aws_athena_workgroup` table in Steampipe provides you with information abou Explore the various workgroups within your AWS Athena service to gain insights into their basic details such as name, description, and creation time. This can be useful for understanding your workgroup configuration and identifying any potential areas for optimization or reorganization. ```sql+postgres -select - name, - description, - effective_engine_version, - output_location, - creation_time -from - aws_athena_workgroup -order by +select + name, + description, + effective_engine_version, + output_location, + creation_time +from + aws_athena_workgroup +order by creation_time; ``` ```sql+sqlite -select - name, - description, - effective_engine_version, - output_location, - creation_time -from - aws_athena_workgroup -order by +select + name, + description, + effective_engine_version, + output_location, + creation_time +from + aws_athena_workgroup +order by creation_time; ``` @@ -47,22 +47,22 @@ order by Determine the areas in which workgroups are utilizing a specific version of the Athena engine. This is useful for assessing upgrade needs or understanding the distribution of engine versions across your workgroups. ```sql+postgres -select - name, - description -from - aws_athena_workgroup -where +select + name, + description +from + aws_athena_workgroup +where effective_engine_version = 'Athena engine version 3'; ``` ```sql+sqlite -select - name, - description -from - aws_athena_workgroup -where +select + name, + description +from + aws_athena_workgroup +where effective_engine_version = 'Athena engine version 3'; ``` @@ -70,22 +70,22 @@ where Assess the distribution of workgroups across different regions to understand workload allocation and capacity planning. This can assist in identifying regions that may be under or over-utilized. ```sql+postgres -select - region, - count(*) -from - aws_athena_workgroup -group by +select + region, + count(*) +from + aws_athena_workgroup +group by region; ``` ```sql+sqlite -select - region, - count(*) -from - aws_athena_workgroup -group by +select + region, + count(*) +from + aws_athena_workgroup +group by region; ``` @@ -93,23 +93,52 @@ group by Determine the areas in which workgroups are inactive, providing insights into resource usage and potential areas for optimization or re-allocation. ```sql+postgres -select - name, - description, +select + name, + description, creation_time -from - aws_athena_workgroup +from + aws_athena_workgroup where state = 'DISABLED'; ``` ```sql+sqlite -select - name, - description, +select + name, + description, creation_time -from - aws_athena_workgroup +from + aws_athena_workgroup where state = 'DISABLED'; +``` + +### List workgroups without encryption at rest +Detect workgroups that are not encrypting query results at rest so you can remediate resources that violate the AWS Config rule `athena-workgroup-encrypted-at-rest`. + +```sql+postgres +select + name, + region, + encryption_option, + result_configuration_kms_key +from + aws_athena_workgroup +where + encryption_option is null + or encryption_option = ''; +``` + +```sql+sqlite +select + name, + region, + encryption_option, + result_configuration_kms_key +from + aws_athena_workgroup +where + encryption_option is null + or encryption_option = ''; ``` \ No newline at end of file diff --git a/docs/tables/aws_batch_queue.md b/docs/tables/aws_batch_queue.md new file mode 100644 index 000000000..3faa8d383 --- /dev/null +++ b/docs/tables/aws_batch_queue.md @@ -0,0 +1,200 @@ +--- +title: "Steampipe Table: aws_batch_queue - Query AWS Batch Job Queues using SQL" +description: "Allows users to query AWS Batch Job Queues for detailed information about queue configurations, statuses, and related attributes." +folder: "Batch" +--- + +# Table: aws_batch_queue + +AWS Batch Job Queues are resources in the AWS Batch service that store jobs until the AWS Batch Scheduler runs them on a compute environment. Job queues have a priority that the scheduler uses to determine which jobs in which queue should be evaluated for execution first. + +## Table Usage Guide + +The `aws_batch_queue` table provides insights into job queue configurations within AWS Batch. As a DevOps engineer, explore queue-specific details through this table, including priority settings, compute environment associations, and queue statuses. Utilize it to monitor queue configurations, verify compute environment associations, and ensure appropriate job queue priorities are set. + +## Examples + +### Basic info +Get a quick overview of all AWS Batch job queues, including their name, state, status, and priority. This is useful for inventory and monitoring purposes. + +```sql+postgres +select + job_queue_name, + state, + status, + priority +from + aws_batch_queue; +``` + +```sql+sqlite +select + job_queue_name, + state, + status, + priority +from + aws_batch_queue; +``` + +### List enabled job queues +Identify all job queues that are currently enabled. This helps you focus on active queues that can accept jobs. + +```sql+postgres +select + job_queue_name, + state, + priority +from + aws_batch_queue +where + state = 'ENABLED'; +``` + +```sql+sqlite +select + job_queue_name, + state, + priority +from + aws_batch_queue +where + state = 'ENABLED'; +``` + +### List job queues by state +See how many job queues exist in each state (ENABLED, DISABLED, etc.). This is useful for capacity planning and operational audits. + +```sql+postgres +select + state, + count(*) as queue_count +from + aws_batch_queue +group by + state +order by + queue_count desc; +``` + +```sql+sqlite +select + state, + count(*) as queue_count +from + aws_batch_queue +group by + state +order by + queue_count desc; +``` + +### Get compute environments associated with each job queue +List the compute environments attached to each job queue and their order of preference. This helps you understand job placement and compute resource allocation. + +```sql+postgres +select + job_queue_name, + state, + c->>'Order' as order_priority, + c->>'ComputeEnvironment' as compute_environment +from + aws_batch_queue, + jsonb_array_elements(compute_environment_order) as c +order by + job_queue_name, + (c->>'Order')::int; +``` + +```sql+sqlite +select + job_queue_name, + state, + json_extract(c.value, '$.Order') as order_priority, + json_extract(c.value, '$.ComputeEnvironment') as compute_environment +from + aws_batch_queue, + json_each(compute_environment_order) as c +order by + job_queue_name, + CAST(json_extract(c.value, '$.Order') as integer); +``` + +### Find job queues with high priority (lower number means higher priority) +Identify job queues with a high priority (lower number). This is useful for understanding which queues are preferred for job scheduling. + +```sql+postgres +select + job_queue_name, + state, + priority +from + aws_batch_queue +where + priority < 50 +order by + priority; +``` + +```sql+sqlite +select + job_queue_name, + state, + priority +from + aws_batch_queue +where + priority < 50 +order by + priority; +``` + +### Find job queues with scheduling policies +Find job queues that have a scheduling policy attached. This helps you identify queues with custom scheduling behavior. + +```sql+postgres +select + job_queue_name, + state, + scheduling_policy_arn +from + aws_batch_queue +where + scheduling_policy_arn is not null; +``` + +```sql+sqlite +select + job_queue_name, + state, + scheduling_policy_arn +from + aws_batch_queue +where + scheduling_policy_arn is not null; +``` + +### List job queues with their tags +Show all job queues that have tags assigned. This is useful for cost allocation, resource organization, and compliance. + +```sql+postgres +select + job_queue_name, + state, + tags +from + aws_batch_queue +where + tags is not null; +``` + +```sql+sqlite +select + job_queue_name, + state, + tags +from + aws_batch_queue +where + tags is not null; +``` diff --git a/docs/tables/aws_bedrock_agent.md b/docs/tables/aws_bedrock_agent.md new file mode 100644 index 000000000..8b338e79a --- /dev/null +++ b/docs/tables/aws_bedrock_agent.md @@ -0,0 +1,173 @@ +--- +title: "Steampipe Table: aws_bedrock_agent - Query AWS Bedrock Agents using SQL" +description: "Allows users to query AWS Bedrock Agents, providing information about AI-powered assistants including their configuration, status, and associated metadata." +folder: "Bedrock" +--- + +# Table: aws_bedrock_agent - Query AWS Bedrock Agents using SQL + +AWS Bedrock Agents are AI-powered assistants that can be customized to perform specific tasks using foundation models. These agents can be configured with specific instructions, foundation models, and security settings to handle various use cases. The service provides a managed environment for creating, deploying, and managing these agents. + +## Table Usage Guide + +The `aws_bedrock_agent` table in Steampipe provides you with information about agents within AWS Bedrock. This table allows you, as a developer or ML engineer, to query agent-specific details, including configuration, status, and associated metadata. You can utilize this table to gather insights on agents, such as their foundation models, instructions, session settings, and more. The schema outlines the various attributes of the agent for you, including the agent ID, name, status, and associated IAM roles. + +## Examples + +### Basic info +Explore the basic details of your Bedrock agents to understand their configuration and status. This can help in managing and monitoring your AI assistants effectively. + +```sql+postgres +select + agent_id, + agent_name, + agent_status, + description, + updated_at +from + aws_bedrock_agent; +``` + +```sql+sqlite +select + agent_id, + agent_name, + agent_status, + description, + updated_at +from + aws_bedrock_agent; +``` + +### List agents with their foundation models and instructions +Analyze the configuration of your agents to understand their underlying models and behavior instructions. + +```sql+postgres +select + agent_name, + foundation_model, + instruction, + agent_status +from + aws_bedrock_agent; +``` + +```sql+sqlite +select + agent_name, + foundation_model, + instruction, + agent_status +from + aws_bedrock_agent; +``` + +### Get details of a specific agent +Retrieve comprehensive information about a particular agent using its ID for in-depth analysis or troubleshooting. + +```sql+postgres +select + agent_name, + agent_id, + arn, + agent_status, + foundation_model, + instruction, + created_at, + updated_at, + description +from + aws_bedrock_agent +where + agent_id = 'example-agent-id'; +``` + +```sql+sqlite +select + agent_name, + agent_id, + arn, + agent_status, + foundation_model, + instruction, + created_at, + updated_at, + description +from + aws_bedrock_agent +where + agent_id = 'example-agent-id'; +``` + +### List agents with their session timeout settings +Monitor agent session configurations to ensure appropriate timeout settings for user interactions. + +```sql+postgres +select + agent_name, + idle_session_ttl_in_seconds, + agent_status +from + aws_bedrock_agent; +``` + +```sql+sqlite +select + agent_name, + idle_session_ttl_in_seconds, + agent_status +from + aws_bedrock_agent; +``` + +### List agents with their IAM roles +Examine the IAM role configurations of your agents to audit security and permissions. + +```sql+postgres +select + agent_name, + agent_resource_role_arn, + agent_status +from + aws_bedrock_agent; +``` + +```sql+sqlite +select + agent_name, + agent_resource_role_arn, + agent_status +from + aws_bedrock_agent; +``` + +### List agents created in the last 30 days +Monitor recently created agents to track new deployments and changes in your AWS Bedrock environment. + +```sql+postgres +select + agent_name, + agent_id, + agent_status, + created_at, + foundation_model, + description +from + aws_bedrock_agent +where + created_at >= now() - interval '30 days'; +``` + +```sql+sqlite +select + agent_name, + agent_id, + agent_status, + created_at, + foundation_model, + description +from + aws_bedrock_agent +where + created_at >= datetime('now', '-30 days'); +``` \ No newline at end of file diff --git a/docs/tables/aws_bedrock_custom_model.md b/docs/tables/aws_bedrock_custom_model.md new file mode 100644 index 000000000..dce6b0e47 --- /dev/null +++ b/docs/tables/aws_bedrock_custom_model.md @@ -0,0 +1,129 @@ +--- +title: "Steampipe Table: aws_bedrock_custom_model - Query AWS Bedrock Custom Models using SQL" +description: "Allows users to query AWS Bedrock Custom Models, providing information about custom foundation models including their configuration, status, and associated metadata." +folder: "Bedrock" +--- + +# Table: aws_bedrock_custom_model - Query AWS Bedrock Custom Models using SQL + +AWS Bedrock Custom Models allows you to customize foundation models for your specific use cases. These custom models are built on top of base models and can be fine-tuned or pre-trained to better suit your specific requirements. The service provides a managed environment for customizing, deploying, and managing these models. + +## Table Usage Guide + +The `aws_bedrock_custom_model` table in Steampipe provides you with information about custom models within AWS Bedrock. This table allows you, as a data scientist or ML engineer, to query custom model-specific details, including model configuration, status, and associated metadata. You can utilize this table to gather insights on custom models, such as their base models, customization types, creation times, and more. The schema outlines the various attributes of the custom model for you, including the model ARN, base model name, creation time, and associated tags. + +## Examples + +### Basic info +Explore the basic details of your custom Bedrock models to understand their configuration and status. This can help in managing and monitoring your AI/ML resources effectively. + +```sql+postgres +select + model_name, + arn, + base_model_name, + customization_type, + model_status +from + aws_bedrock_custom_model; +``` + +```sql+sqlite +select + model_name, + arn, + base_model_name, + customization_type, + model_status +from + aws_bedrock_custom_model; +``` + +### List custom models created in the last 30 days +Identify recently created custom models to track new model deployments and monitor resource usage. + +```sql+postgres +select + model_name, + arn, + base_model_name, + creation_time +from + aws_bedrock_custom_model +where + creation_time >= (current_timestamp - interval '30' day) +order by + creation_time; +``` + +```sql+sqlite +select + model_name, + arn, + base_model_name, + creation_time +from + aws_bedrock_custom_model +where + creation_time >= datetime('now','-30 day') +order by + creation_time; +``` + +### List custom models by base model type +Analyze the distribution of custom models across different base models to understand your model customization patterns. + +```sql+postgres +select + base_model_name, + count(*) as model_count, + array_agg(model_name) as custom_models +from + aws_bedrock_custom_model +group by + base_model_name; +``` + +```sql+sqlite +select + base_model_name, + count(*) as model_count, + group_concat(model_name) as custom_models +from + aws_bedrock_custom_model +group by + base_model_name; +``` + +### Get details of a specific custom model +Retrieve detailed information about a particular custom model using its ARN for in-depth analysis or troubleshooting. + +```sql+postgres +select + model_name, + arn, + base_model_name, + customization_type, + model_status, + creation_time, + owner_account_id +from + aws_bedrock_custom_model +where + arn = 'arn:aws:bedrock:us-east-1:123456789012:custom-model/example-model'; +``` + +```sql+sqlite +select + model_name, + arn, + base_model_name, + customization_type, + model_status, + creation_time, + owner_account_id +from + aws_bedrock_custom_model +where + arn = 'arn:aws:bedrock:us-east-1:123456789012:custom-model/example-model'; +``` \ No newline at end of file diff --git a/docs/tables/aws_bedrock_foundation_model.md b/docs/tables/aws_bedrock_foundation_model.md new file mode 100644 index 000000000..8e5ab43f5 --- /dev/null +++ b/docs/tables/aws_bedrock_foundation_model.md @@ -0,0 +1,220 @@ +--- +title: "Steampipe Table: aws_bedrock_foundation_model - Query AWS Bedrock Foundation Models using SQL" +description: "Allows users to query AWS Bedrock Foundation Models, providing information about pre-trained models including their configuration, status, and associated metadata." +folder: "Bedrock" +--- + +# Table: aws_bedrock_foundation_model + +AWS Bedrock Foundation Models are pre-trained models that serve as the base for various AI/ML applications. These models are provided by AWS and its partners, offering different capabilities and specializations. The service allows you to access and use these models for various AI tasks through a unified API. + +## Table Usage Guide + +The `aws_bedrock_foundation_model` table provides insights into foundation models within AWS Bedrock. As a data scientist or ML engineer, explore model-specific details through this table, including model capabilities, supported modalities, and lifecycle status. Utilize it to monitor model availability, verify supported features, and ensure appropriate model selection for your AI/ML workloads. + +## Examples + +### Basic info +Get a quick overview of all AWS Bedrock foundation models, including their IDs, names, providers, and status. This is useful for inventory and monitoring purposes. + +```sql+postgres +select + model_id, + model_name, + provider_name, + model_lifecycle_status, + customizations_supported +from + aws_bedrock_foundation_model; +``` + +```sql+sqlite +select + model_id, + model_name, + provider_name, + model_lifecycle_status, + customizations_supported +from + aws_bedrock_foundation_model; +``` + +### List models that support text input modality +Identify which foundation models can process text inputs. This helps you select appropriate models for text-based applications. + +```sql+postgres +select + model_id, + model_name, + provider_name, + model_lifecycle_status +from + aws_bedrock_foundation_model +where + input_modalities ? 'TEXT'; +``` + +```sql+sqlite +select + model_id, + model_name, + provider_name, + model_lifecycle_status +from + aws_bedrock_foundation_model +where + json_extract(input_modalities, '$.TEXT') is not null; +``` + +### Get models that support customization +Discover which foundation models can be customized to meet specific requirements. This is useful for identifying models that can be fine-tuned for your use case. + +```sql+postgres +select + model_id, + model_name, + provider_name, + customizations_supported, + model_lifecycle_status +from + aws_bedrock_foundation_model +where + customizations_supported is not null; +``` + +```sql+sqlite +select + model_id, + model_name, + provider_name, + customizations_supported, + model_lifecycle_status +from + aws_bedrock_foundation_model +where + customizations_supported is not null; +``` + +### List models by provider +Analyze the distribution of models across different providers. This helps you understand the available options from each provider. + +```sql+postgres +select + provider_name, + count(*) as model_count, + array_agg(model_name) as models +from + aws_bedrock_foundation_model +group by + provider_name +order by + model_count desc; +``` + +```sql+sqlite +select + provider_name, + count(*) as model_count, + group_concat(model_name, ', ') as models +from + aws_bedrock_foundation_model +group by + provider_name +order by + model_count desc; +``` + +### List active foundation models +Identify all foundation models that are currently active and available for use. This helps ensure you're only using models that are ready for production. + +```sql+postgres +select + model_id, + model_name, + provider_name, + customizations_supported, + input_modalities, + output_modalities +from + aws_bedrock_foundation_model +where + model_lifecycle_status = 'ACTIVE'; +``` + +```sql+sqlite +select + model_id, + model_name, + provider_name, + customizations_supported, + input_modalities, + output_modalities +from + aws_bedrock_foundation_model +where + model_lifecycle_status = 'ACTIVE'; +``` + +### Get details for a specific model +Retrieve comprehensive information about a particular foundation model. This is useful when you need to understand all capabilities and configurations of a specific model. + +```sql+postgres +select + model_id, + model_name, + provider_name, + model_lifecycle_status, + customizations_supported, + input_modalities, + output_modalities, + response_streaming_supported, + inference_types_supported +from + aws_bedrock_foundation_model +where + model_id = 'anthropic.claude-v2'; +``` + +```sql+sqlite +select + model_id, + model_name, + provider_name, + model_lifecycle_status, + customizations_supported, + input_modalities, + output_modalities, + response_streaming_supported, + inference_types_supported +from + aws_bedrock_foundation_model +where + model_id = 'anthropic.claude-v2'; +``` + +### List models with specific inference types +Find models that support specific inference types to ensure compatibility with your application requirements. + +```sql+postgres +select + model_id, + model_name, + provider_name, + inference_types_supported +from + aws_bedrock_foundation_model +where + inference_types_supported ? 'ON_DEMAND'; +``` + +```sql+sqlite +select + model_id, + model_name, + provider_name, + inference_types_supported +from + aws_bedrock_foundation_model +where + json_extract(inference_types_supported, '$.ON_DEMAND') is not null; +``` \ No newline at end of file diff --git a/docs/tables/aws_bedrock_guardrail.md b/docs/tables/aws_bedrock_guardrail.md new file mode 100644 index 000000000..e6b720a01 --- /dev/null +++ b/docs/tables/aws_bedrock_guardrail.md @@ -0,0 +1,356 @@ +--- +title: "Steampipe Table: aws_bedrock_guardrail - Query AWS Bedrock Guardrails using SQL" +description: "Allows users to query AWS Bedrock Guardrails, providing information about content filtering policies, security configurations, and model protection settings." +folder: "Bedrock" +--- + +# Table: aws_bedrock_guardrail - Query AWS Bedrock Guardrails using SQL + +AWS Bedrock Guardrails enable you to implement safeguards for your generative AI applications based on your use cases and responsible AI policies. Guardrails help control the interaction between users and foundation models by filtering undesirable content, redacting personally identifiable information (PII), and blocking topics that are not appropriate for your application. + +## Table Usage Guide + +The `aws_bedrock_guardrail` table in Steampipe provides you with information about guardrails within AWS Bedrock. This table allows you, as a developer, ML engineer, or security administrator, to query guardrail-specific details, including content policies, sensitive information policies, topic policies, and associated metadata. You can utilize this table to gather insights on guardrails, such as their configuration, status, blocked messaging, and policy settings. The schema outlines the various attributes of the guardrail for you, including the guardrail ID, ARN, version, and various policy configurations. + +## Examples + +### Basic info +Explore the basic details of your Bedrock guardrails to understand their configuration and status. This can help in managing and monitoring your content filtering policies effectively. + +```sql+postgres +select + guardrail_id, + name, + status, + version, + description, + created_at, + updated_at +from + aws_bedrock_guardrail; +``` + +```sql+sqlite +select + guardrail_id, + name, + status, + version, + description, + created_at, + updated_at +from + aws_bedrock_guardrail; +``` + +### Get details of a specific guardrail +Retrieve comprehensive information about a particular guardrail using its ARN for in-depth analysis or troubleshooting. + +```sql+postgres +select + name, + guardrail_id, + arn, + status, + version, + blocked_input_messaging, + blocked_outputs_messaging, + kms_key_arn, + created_at, + updated_at +from + aws_bedrock_guardrail +where + arn = 'arn:aws:bedrock:us-east-1:123456789012:guardrail/example-id'; +``` + +```sql+sqlite +select + name, + guardrail_id, + arn, + status, + version, + blocked_input_messaging, + blocked_outputs_messaging, + kms_key_arn, + created_at, + updated_at +from + aws_bedrock_guardrail +where + arn = 'arn:aws:bedrock:us-east-1:123456789012:guardrail/example-id'; +``` + +### List guardrails with their content policies +Analyze the content policy configurations of your guardrails to ensure appropriate content filtering is in place. + +```sql+postgres +select + name, + guardrail_id, + status, + content_policy +from + aws_bedrock_guardrail +where + content_policy is not null; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + content_policy +from + aws_bedrock_guardrail +where + content_policy is not null; +``` + +### List guardrails with sensitive information policies +Identify guardrails that have policies configured to handle sensitive information such as PII. + +```sql+postgres +select + name, + guardrail_id, + status, + sensitive_information_policy +from + aws_bedrock_guardrail +where + sensitive_information_policy is not null; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + sensitive_information_policy +from + aws_bedrock_guardrail +where + sensitive_information_policy is not null; +``` + +### List guardrails with topic blocking policies +Find guardrails that have specific topic-based filtering configured to block certain types of conversations. + +```sql+postgres +select + name, + guardrail_id, + status, + topic_policy +from + aws_bedrock_guardrail +where + topic_policy is not null; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + topic_policy +from + aws_bedrock_guardrail +where + topic_policy is not null; +``` + +### List guardrails with word filtering policies +Examine guardrails that have word-based filtering configured to block specific words or phrases. + +```sql+postgres +select + name, + guardrail_id, + status, + word_policy +from + aws_bedrock_guardrail +where + word_policy is not null; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + word_policy +from + aws_bedrock_guardrail +where + word_policy is not null; +``` + +### List guardrails that are in READY status +Monitor guardrails that are active and ready to be used in your applications. + +```sql+postgres +select + name, + guardrail_id, + status, + version, + updated_at +from + aws_bedrock_guardrail +where + status = 'READY'; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + version, + updated_at +from + aws_bedrock_guardrail +where + status = 'READY'; +``` + +### List guardrails created in the last 30 days +Monitor recently created guardrails to track new deployments and changes in your AWS Bedrock environment. + +```sql+postgres +select + name, + guardrail_id, + status, + created_at, + description +from + aws_bedrock_guardrail +where + created_at >= now() - interval '30 days'; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + created_at, + description +from + aws_bedrock_guardrail +where + created_at >= datetime('now', '-30 days'); +``` + +### List guardrails with encryption enabled +Identify guardrails that have KMS encryption configured for additional security. + +```sql+postgres +select + name, + guardrail_id, + kms_key_arn, + status +from + aws_bedrock_guardrail +where + kms_key_arn is not null; +``` + +```sql+sqlite +select + name, + guardrail_id, + kms_key_arn, + status +from + aws_bedrock_guardrail +where + kms_key_arn is not null; +``` + +### List guardrails with contextual grounding policies +Find guardrails that have contextual grounding policies configured to ensure responses are grounded in provided context. + +```sql+postgres +select + name, + guardrail_id, + status, + contextual_grounding_policy +from + aws_bedrock_guardrail +where + contextual_grounding_policy is not null; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + contextual_grounding_policy +from + aws_bedrock_guardrail +where + contextual_grounding_policy is not null; +``` + +### List guardrails with failure information +Identify guardrails that have failed and review recommendations for resolution. + +```sql+postgres +select + name, + guardrail_id, + status, + status_reasons, + failure_recommendations +from + aws_bedrock_guardrail +where + status = 'FAILED'; +``` + +```sql+sqlite +select + name, + guardrail_id, + status, + status_reasons, + failure_recommendations +from + aws_bedrock_guardrail +where + status = 'FAILED'; +``` + +### Get guardrail custom blocked messages +View the custom messages that are returned when content is blocked by guardrails. + +```sql+postgres +select + name, + guardrail_id, + blocked_input_messaging, + blocked_outputs_messaging +from + aws_bedrock_guardrail; +``` + +```sql+sqlite +select + name, + guardrail_id, + blocked_input_messaging, + blocked_outputs_messaging +from + aws_bedrock_guardrail; +``` + diff --git a/docs/tables/aws_bedrock_imported_model.md b/docs/tables/aws_bedrock_imported_model.md new file mode 100644 index 000000000..29c3a5e7f --- /dev/null +++ b/docs/tables/aws_bedrock_imported_model.md @@ -0,0 +1,176 @@ +--- +title: "Steampipe Table: aws_bedrock_imported_model - Query AWS Bedrock Imported Models using SQL" +description: "Allows users to query AWS Bedrock Imported Models, providing information about models that have been imported into Amazon Bedrock." +folder: "Bedrock" +--- + +# Table: aws_bedrock_imported_model + +Amazon Bedrock Imported Models are custom models that have been imported into the Amazon Bedrock service. These models can be used for various AI/ML tasks through Amazon Bedrock's unified API. The service allows you to import and manage your own models while leveraging AWS's infrastructure and scalability. + +## Table Usage Guide + +The `aws_bedrock_imported_model` table provides insights into imported models within AWS Bedrock. As a data scientist or ML engineer, explore model-specific details through this table, including model names, architectures, and associated metadata. Utilize it to monitor imported models, verify configurations, and ensure appropriate model deployment and management. + +## Examples + +### Basic info +Get a quick overview of all imported models in AWS Bedrock, including their names, ARNs, and key configurations. This is useful for inventory and monitoring purposes. + +```sql+postgres +select + model_name, + arn, + creation_time, + instruct_supported, + model_architecture, + job_arn, + job_name, + model_data_source, + model_kms_key_arn, + custom_model_units +from + aws_bedrock_imported_model; +``` + +```sql+sqlite +select + model_name, + arn, + creation_time, + instruct_supported, + model_architecture, + job_arn, + job_name, + model_data_source, + model_kms_key_arn, + custom_model_units +from + aws_bedrock_imported_model; +``` + +### List models created in the last 7 days +Identify recently imported models to track new additions and monitor recent model imports. This helps in maintaining an up-to-date inventory of your models. + +```sql+postgres +select + model_name, + model_arn, + creation_time, + instruct_supported, + model_architecture +from + aws_bedrock_imported_model +where + creation_time >= now() - interval '7 days'; +``` + +```sql+sqlite +select + model_name, + model_arn, + creation_time, + instruct_supported, + model_architecture +from + aws_bedrock_imported_model +where + creation_time >= datetime('now', '-7 days'); +``` + +### List models that support instructions +Identify which imported models have instruction support capabilities. This helps in selecting models suitable for instruction-based tasks. + +```sql+postgres +select + model_name, + model_arn, + creation_time, + model_architecture, + tags +from + aws_bedrock_imported_model +where + instruct_supported = true; +``` + +```sql+sqlite +select + model_name, + model_arn, + creation_time, + model_architecture, + tags +from + aws_bedrock_imported_model +where + instruct_supported = 1; +``` + +### Get details for a specific model by ARN +Retrieve comprehensive information about a particular model. This is useful when you need to understand all aspects of a specific imported model. + +```sql+postgres +select + model_name, + arn, + creation_time, + instruct_supported, + model_architecture, + job_arn, + job_name, + model_data_source, + model_kms_key_arn, + custom_model_units +from + aws_bedrock_imported_model +where + arn = 'arn:aws:bedrock:us-east-1:123456789012:imported-model/example-model'; +``` + +```sql+sqlite +select + model_name, + arn, + creation_time, + instruct_supported, + model_architecture, + job_arn, + job_name, + model_data_source, + model_kms_key_arn, + custom_model_units +from + aws_bedrock_imported_model +where + arn = 'arn:aws:bedrock:us-east-1:123456789012:imported-model/example-model'; +``` + +### List models by architecture type +Group imported models by their architecture to understand the distribution of different model types in your environment. + +```sql+postgres +select + model_architecture, + count(*) as model_count, + array_agg(model_name) as models +from + aws_bedrock_imported_model +group by + model_architecture +order by + model_count desc; +``` + +```sql+sqlite +select + model_architecture, + count(*) as model_count, + group_concat(model_name, ', ') as models +from + aws_bedrock_imported_model +group by + model_architecture +order by + model_count desc; +``` diff --git a/docs/tables/aws_bedrock_knowledge_base.md b/docs/tables/aws_bedrock_knowledge_base.md new file mode 100644 index 000000000..d79b24127 --- /dev/null +++ b/docs/tables/aws_bedrock_knowledge_base.md @@ -0,0 +1,144 @@ +--- +title: "Steampipe Table: aws_bedrock_knowledge_base - Query AWS Bedrock Knowledge Bases using SQL" +description: "Allows users to query AWS Bedrock Knowledge Bases, providing information about knowledge bases including their configuration, status, and associated metadata." +folder: "Bedrock" +--- + +# Table: aws_bedrock_knowledge_base - Query AWS Bedrock Knowledge Bases using SQL + +Amazon Bedrock Knowledge Base is a feature that enables you to build retrieval augmented generation (RAG) applications by creating a container for your data. It allows you to store, manage, and retrieve information that can be used to enhance the capabilities of foundation models in Amazon Bedrock. + +## Table Usage Guide + +The `aws_bedrock_knowledge_base` table in Steampipe provides you with information about knowledge bases within AWS Bedrock. This table allows you, as a developer or data scientist, to query knowledge base-specific details, including configuration, status, and associated metadata. You can utilize this table to gather insights on knowledge bases, such as their storage configuration, embeddings configuration, and associated roles. The schema outlines the various attributes of the knowledge base for you, including the name, status, creation date, and associated tags. + +## Examples + +### Basic info +Explore the basic details of your AWS Bedrock knowledge bases to understand their current status and when they were created. This can help in managing and monitoring your knowledge base resources effectively. + +```sql+postgres +select + name, + knowledge_base_id, + status, + created_at, + arn +from + aws_bedrock_knowledge_base; +``` + +```sql+sqlite +select + name, + knowledge_base_id, + status, + created_at, + arn +from + aws_bedrock_knowledge_base; +``` + +### List knowledge bases that are not active +Identify knowledge bases that may require attention by finding those that are not in an active state. This can help in troubleshooting or maintenance activities. + +```sql+postgres +select + name, + knowledge_base_id, + status, + created_at, + failure_reasons +from + aws_bedrock_knowledge_base +where + status != 'ACTIVE'; +``` + +```sql+sqlite +select + name, + knowledge_base_id, + status, + created_at, + failure_reasons +from + aws_bedrock_knowledge_base +where + status != 'ACTIVE'; +``` + +### Get knowledge base configuration details +Analyze the configuration settings of your knowledge bases to understand their embeddings setup and other technical specifications. + +```sql+postgres +select + name, + knowledge_base_id, + knowledge_base_configuration, + storage_configuration +from + aws_bedrock_knowledge_base; +``` + +```sql+sqlite +select + name, + knowledge_base_id, + knowledge_base_configuration, + storage_configuration +from + aws_bedrock_knowledge_base; +``` + +### List knowledge bases with their associated IAM roles +Examine the IAM roles associated with your knowledge bases to understand their permissions and access configurations. + +```sql+postgres +select + name, + knowledge_base_id, + role_arn, + status +from + aws_bedrock_knowledge_base; +``` + +```sql+sqlite +select + name, + knowledge_base_id, + role_arn, + status +from + aws_bedrock_knowledge_base; +``` + +### List knowledge bases created in the last 30 days +Identify recently created knowledge bases to monitor new resource creation and track recent changes in your AWS Bedrock environment. + +```sql+postgres +select + name, + knowledge_base_id, + status, + created_at, + arn +from + aws_bedrock_knowledge_base +where + created_at >= now() - interval '30 days'; +``` + +```sql+sqlite +select + name, + knowledge_base_id, + status, + created_at, + arn +from + aws_bedrock_knowledge_base +where + created_at >= datetime('now', '-30 days'); +``` \ No newline at end of file diff --git a/docs/tables/aws_budgets_budget.md b/docs/tables/aws_budgets_budget.md new file mode 100644 index 000000000..c2d9d79ba --- /dev/null +++ b/docs/tables/aws_budgets_budget.md @@ -0,0 +1,154 @@ +--- +title: "Steampipe Table: aws_budgets_budget - Query AWS Budgets using SQL" +description: "Allows users to query AWS Budgets data, providing detailed information about cost and usage budgets, budget limits, and spending notifications. Useful for cost governance, alerting, and optimization workflows." +folder: "Budgets" +--- + +# Table: aws_budgets_budget - Query AWS Budgets using SQL + +AWS Budgets enables you to set custom cost and usage budgets and receive notifications when your usage exceeds the budgeted amounts. This helps you track and control spending across your AWS environment. + +## Table Usage Guide + +The `aws_budgets_budget` table in Steampipe provides you with information about each budget in your AWS account. This table allows you to query budget-specific details, including budget limits, spending amounts, notification settings, and associated metadata. You can utilize this table to gather insights on budget types, time periods, cost filters, and spending forecasts. The schema outlines the various attributes of a budget including the budget name, type, limit, calculated spend, and associated notifications. + +## Examples + +### List all budgets +Retrieve all budgets in your AWS account to get an overview of your cost management setup. + +```sql+postgres +select + name, + type, + limit_amount, + time_unit +from + aws_budgets_budget; +``` + +```sql+sqlite +select + name, + type, + limit_amount, + time_unit +from + aws_budgets_budget; +``` + +### Get budget spending details +View detailed spending information for each budget, including actual spending and forecasted amounts. + +```sql+postgres +select + name, + limit_amount, + calculated_spend_actual_spend, + calculated_spend_forecasted_spend, + time_period_start, + time_period_end +from + aws_budgets_budget; +``` + +```sql+sqlite +select + name, + limit_amount, + calculated_spend_actual_spend, + calculated_spend_forecasted_spend, + time_period_start, + time_period_end +from + aws_budgets_budget; +``` + +### List budgets with notifications +Find all budgets that have associated notifications configured for cost alerts. + +```sql+postgres +select + name, + type, + limit_amount, + notifications +from + aws_budgets_budget +where + notifications is not null; +``` + +```sql+sqlite +select + name, + type, + limit_amount, + notifications +from + aws_budgets_budget +where + notifications is not null; +``` + +### Find budgets approaching their limit +Identify budgets that have reached 80% or more of their configured limit to enable proactive cost management. + +```sql+postgres +select + name, + type, + limit_amount, + calculated_spend_actual_spend, + (cast(calculated_spend_actual_spend as float) / cast(limit_amount as float) * 100) as percent_of_budget +from + aws_budgets_budget +where + cast(calculated_spend_actual_spend as float) > (cast(limit_amount as float) * 0.8); +``` + +```sql+sqlite +select + name, + type, + limit_amount, + calculated_spend_actual_spend, + (cast(calculated_spend_actual_spend as float) / cast(limit_amount as float) * 100) as percent_of_budget +from + aws_budgets_budget +where + cast(calculated_spend_actual_spend as float) > (cast(limit_amount as float) * 0.8); +``` + +### List monthly budgets +Query all budgets configured with a monthly time unit for tracking recurring costs. + +```sql+postgres +select + name, + type, + limit_amount, + time_unit, + time_period_start, + time_period_end +from + aws_budgets_budget +where + time_unit = 'MONTHLY'; +``` + +```sql+sqlite +select + name, + type, + limit_amount, + time_unit, + time_period_start, + time_period_end +from + aws_budgets_budget +where + time_unit = 'MONTHLY'; +``` + + diff --git a/docs/tables/aws_ce_anomaly_monitor.md b/docs/tables/aws_ce_anomaly_monitor.md new file mode 100644 index 000000000..79d2e587c --- /dev/null +++ b/docs/tables/aws_ce_anomaly_monitor.md @@ -0,0 +1,166 @@ +--- +title: "Steampipe Table: aws_ce_anomaly_monitor - Query AWS Cost Explorer Anomaly Monitors using SQL" +description: "Allows users to query Cost Explorer Anomaly Monitors, providing information about anomaly detection configurations, monitor status, and evaluation dates. Useful for cost governance and anomaly detection management." +folder: "Cost Explorer" +--- + +# Table: aws_ce_anomaly_monitor - Query AWS Cost Explorer Anomaly Monitors using SQL + +AWS Cost Anomaly Detection automatically monitors your AWS spending and alerts you when spending patterns are unusual. This helps you quickly identify and investigate unexpected cost spikes using machine learning models. + +## Table Usage Guide + +The `aws_ce_anomaly_monitor` table in Steampipe provides you with information about Cost Explorer Anomaly Monitors in your AWS account. This table allows you to query monitor-specific details, including monitor configuration, type, dimensions, evaluation status, and metadata. You can utilize this table to gather insights on your anomaly detection setup, monitor evaluation history, and anomaly detection dimensions. The schema outlines the various attributes of an anomaly monitor including the monitor ARN, name, type, and evaluation dates. + +## Examples + +### List all anomaly monitors +Retrieve all anomaly monitors configured in your AWS account to review your cost anomaly detection setup. + +```sql+postgres +select + monitor_arn, + monitor_name, + monitor_type, + monitor_dimension, + creation_date, + last_evaluated_date +from + aws_ce_anomaly_monitor; +``` + +```sql+sqlite +select + monitor_arn, + monitor_name, + monitor_type, + monitor_dimension, + creation_date, + last_evaluated_date +from + aws_ce_anomaly_monitor; +``` + +### Get monitor details with specification +View detailed information about anomaly monitors including their monitoring specifications and dimensions. + +```sql+postgres +select + monitor_arn, + monitor_name, + monitor_type, + monitor_specification, + dimensional_value_count, + last_evaluated_date, + last_updated_date +from + aws_ce_anomaly_monitor; +``` + +```sql+sqlite +select + monitor_arn, + monitor_name, + monitor_type, + monitor_specification, + dimensional_value_count, + last_evaluated_date, + last_updated_date +from + aws_ce_anomaly_monitor; +``` + +### Find monitors that have not been evaluated recently +Identify anomaly monitors that haven't been evaluated in the last 7 days to ensure your monitors are actively running. + +```sql+postgres +select + monitor_name, + monitor_type, + creation_date, + last_evaluated_date, + monitor_dimension +from + aws_ce_anomaly_monitor +where + last_evaluated_date < current_date - interval '7 days' +order by + last_evaluated_date; +``` + +```sql+sqlite +select + monitor_name, + monitor_type, + creation_date, + last_evaluated_date, + monitor_dimension +from + aws_ce_anomaly_monitor +where + last_evaluated_date < date('now', '-7 days') +order by + last_evaluated_date; +``` + +### Get monitor by ARN +Retrieve a specific anomaly monitor using its ARN. + +```sql+postgres +select + monitor_arn, + monitor_name, + monitor_type, + creation_date, + last_updated_date, + dimensional_value_count +from + aws_ce_anomaly_monitor +where + monitor_arn = 'arn:aws:ce::123456789012:anomalymonitor/my-monitor'; +``` + +```sql+sqlite +select + monitor_arn, + monitor_name, + monitor_type, + creation_date, + last_updated_date, + dimensional_value_count +from + aws_ce_anomaly_monitor +where + monitor_arn = 'arn:aws:ce::123456789012:anomalymonitor/my-monitor'; +``` + +### List monitors by type +Retrieve anomaly monitors filtered by monitor type (DIMENSIONAL or CUSTOM). + +```sql+postgres +select + monitor_name, + monitor_type, + monitor_dimension, + creation_date +from + aws_ce_anomaly_monitor +where + monitor_type = 'DIMENSIONAL' +order by + creation_date desc; +``` + +```sql+sqlite +select + monitor_name, + monitor_type, + monitor_dimension, + creation_date +from + aws_ce_anomaly_monitor +where + monitor_type = 'DIMENSIONAL' +order by + creation_date desc; +``` diff --git a/docs/tables/aws_ce_cost_allocation_tags.md b/docs/tables/aws_ce_cost_allocation_tags.md new file mode 100644 index 000000000..04d619000 --- /dev/null +++ b/docs/tables/aws_ce_cost_allocation_tags.md @@ -0,0 +1,296 @@ +--- +title: "Steampipe Table: aws_ce_cost_allocation_tags - Query AWS Cost Allocation Tags using SQL" +description: "Allows users to query Cost Allocation Tags, providing information about tag keys, types, and active/inactive status. Useful for cost governance and tag-based cost allocation." +folder: "Cost Explorer" +--- + +# Table: aws_ce_cost_allocation_tags - Query AWS Cost Allocation Tags using SQL + +AWS Cost Allocation Tags help you organize and track your AWS costs by adding user-defined or AWS-generated tags to your resources. Cost Allocation Tags can be activated or deactivated to control which tags are included in your cost allocation reports. + +## Table Usage Guide + +The `aws_ce_cost_allocation_tags` table in Steampipe provides you with information about Cost Allocation Tags in your AWS account. This table allows you to query tag-specific details, including tag keys, tag types, and active/inactive status. You can utilize this table to gather insights on which tags are actively being used for cost allocation, track last used dates, and manage tag statuses. The schema outlines the various attributes of a cost allocation tag including the tag key, type, and update dates. + +## Examples + +### List all cost allocation tags +Retrieve all cost allocation tags configured in your AWS account to review your cost allocation setup. + +```sql+postgres +select + tag_key, + status, + type, + last_updated_date, + last_used_date +from + aws_ce_cost_allocation_tags; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_updated_date, + last_used_date +from + aws_ce_cost_allocation_tags; +``` + +### List active cost allocation tags +Find all tags that are currently active and available for cost allocation. + +```sql+postgres +select + tag_key, + status, + type, + last_updated_date +from + aws_ce_cost_allocation_tags +where + status = 'Active' +order by + tag_key; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_updated_date +from + aws_ce_cost_allocation_tags +where + status = 'Active' +order by + tag_key; +``` + +### List inactive cost allocation tags +Identify tags that are currently inactive or deactivated. + +```sql+postgres +select + tag_key, + status, + type, + last_updated_date +from + aws_ce_cost_allocation_tags +where + status = 'Inactive' +order by + tag_key; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_updated_date +from + aws_ce_cost_allocation_tags +where + status = 'Inactive' +order by + tag_key; +``` + +### List AWS-generated tags +Retrieve only tags that were automatically generated by AWS. + +```sql+postgres +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + type = 'AWSGenerated' +order by + tag_key; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + type = 'AWSGenerated' +order by + tag_key; +``` + +### List user-defined tags +Find all tags that you have manually created and configured. + +```sql+postgres +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + type = 'UserDefined' +order by + tag_key; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + type = 'UserDefined' +order by + tag_key; +``` + +### Find unused tags +Identify tags that have never been used or haven't been used in a long time for potential cleanup. + +```sql+postgres +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + last_used_date is null + or last_used_date < current_date - interval '90 days' +order by + last_used_date; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + last_used_date is null + or last_used_date < date('now', '-90 days') +order by + last_used_date; +``` + +### Find recently updated tags +View tags that have been recently activated or deactivated. + +```sql+postgres +select + tag_key, + status, + type, + last_updated_date +from + aws_ce_cost_allocation_tags +where + last_updated_date >= current_date - interval '30 days' +order by + last_updated_date desc; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_updated_date +from + aws_ce_cost_allocation_tags +where + last_updated_date >= date('now', '-30 days') +order by + last_updated_date desc; +``` + +### Get tag distribution by status and type +Analyze your tags by status and type for better cost allocation governance. + +```sql+postgres +select + status, + type, + count(*) as tag_count +from + aws_ce_cost_allocation_tags +group by + status, + type +order by + status, + type; +``` + +```sql+sqlite +select + status, + type, + count(*) as tag_count +from + aws_ce_cost_allocation_tags +group by + status, + type +order by + status, + type; +``` + +### Find active user-defined tags that are in use +Get tags that are actively being used for cost allocation. + +```sql+postgres +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + status = 'Active' + and type = 'UserDefined' + and last_used_date is not null +order by + last_used_date desc; +``` + +```sql+sqlite +select + tag_key, + status, + type, + last_used_date +from + aws_ce_cost_allocation_tags +where + status = 'Active' + and type = 'UserDefined' + and last_used_date is not null +order by + last_used_date desc; +``` diff --git a/docs/tables/aws_cloudformation_stack.md b/docs/tables/aws_cloudformation_stack.md index ef74e6313..c65ee5871 100644 --- a/docs/tables/aws_cloudformation_stack.md +++ b/docs/tables/aws_cloudformation_stack.md @@ -12,6 +12,10 @@ The AWS CloudFormation Stack is a service that allows you to manage and provisio The `aws_cloudformation_stack` table in Steampipe provides you with information about stacks within AWS CloudFormation. This table enables you as a DevOps engineer to query stack-specific details, including stack name, status, creation time, and associated tags. You can utilize this table to gather insights on stacks, such as stack status, stack resources, stack capabilities, and more. The schema outlines the various attributes of the CloudFormation stack for you, including stack ID, stack name, creation time, stack status, and associated tags. +**Important Notes** +- This table supports the optional list key column `status`. +- For supported values of the `status`, please refer [StackStatusFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ListStacks.html). + ## Examples ### Find the status of each cloudformation stack @@ -35,7 +39,6 @@ from aws_cloudformation_stack; ``` - ### List of cloudformation stack where rollback is disabled Discover the segments that have disabled rollback in their AWS CloudFormation stacks. This can be useful for identifying potential risk areas, as these stacks will not automatically revert to a previous state if an error occurs during stack operations. @@ -59,7 +62,6 @@ where disable_rollback = 1; ``` - ### List of stacks where termination protection is not enabled Discover the segments that have not enabled termination protection in their stacks. This is crucial to identify potential risk areas and ensure the safety of your resources. @@ -83,7 +85,6 @@ where enable_termination_protection = 0; ``` - ### Rollback configuration info for each cloudformation stack Explore the settings of your AWS CloudFormation stacks to understand their rollback configurations, including how long they monitor for signs of trouble and what triggers a rollback. This can help optimize your stack management by adjusting these settings based on your operational needs. @@ -105,7 +106,6 @@ from aws_cloudformation_stack; ``` - ### Resource ARNs where notifications about stack actions will be sent Determine the areas in which notifications related to stack actions will be sent. This is useful for managing and tracking changes in your AWS CloudFormation stacks. @@ -124,4 +124,31 @@ select from aws_cloudformation_stack, json_each(notification_arns); -``` \ No newline at end of file +``` + +### List deleted stacks +Identify CloudFormation stacks that have been successfully deleted. This is useful for cleanup verification and understanding which stacks have been removed from your infrastructure. + +```sql+postgres +select + name, + id, + status, + deletion_time +from + aws_cloudformation_stack +where + status = 'DELETE_COMPLETE'; +``` + +```sql+sqlite +select + name, + id, + status, + deletion_time +from + aws_cloudformation_stack +where + status = 'DELETE_COMPLETE'; +``` diff --git a/docs/tables/aws_cloudformation_stack_resource.md b/docs/tables/aws_cloudformation_stack_resource.md index 2d7e155d8..6cbbd53b4 100644 --- a/docs/tables/aws_cloudformation_stack_resource.md +++ b/docs/tables/aws_cloudformation_stack_resource.md @@ -161,4 +161,37 @@ from aws_cloudformation_stack_resource where resource_status = 'UPDATE_FAILED'; -``` \ No newline at end of file +``` + +### Find stack resource by physical resource ID +Quickly locate a specific CloudFormation resource using its physical resource ID (e.g., ARN, instance ID, etc.). This is useful for mapping physical AWS resources back to their CloudFormation stack and logical resource definition. + +```sql+postgres +select + stack_name, + stack_id, + logical_resource_id, + physical_resource_id, + resource_type, + resource_status, + last_updated_timestamp +from + aws_cloudformation_stack_resource +where + physical_resource_id = 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-target-group/1234567890123456'; +``` + +```sql+sqlite +select + stack_name, + stack_id, + logical_resource_id, + physical_resource_id, + resource_type, + resource_status, + last_updated_timestamp +from + aws_cloudformation_stack_resource +where + physical_resource_id = 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-target-group/1234567890123456'; +``` diff --git a/docs/tables/aws_cloudwatch_event_rule.md b/docs/tables/aws_cloudwatch_event_rule.md new file mode 100644 index 000000000..50606646e --- /dev/null +++ b/docs/tables/aws_cloudwatch_event_rule.md @@ -0,0 +1,146 @@ +--- +title: "Steampipe Table: aws_cloudwatch_event_rule - Query AWS CloudWatch Event Rule using SQL" +description: "Allows users to query AWS CloudWatch Event Rule to access information regarding the event rules defined within an AWS account." +folder: "CloudWatch" +--- + +# Table: aws_cloudwatch_event_rule - Query AWS CloudWatch Event Rule using SQL + +AWS CloudWatch Events delivers a near real-time stream of system events that describe changes in AWS resources. CloudWatch Events allows you to route events to targets like AWS Lambda functions, Amazon SNS topics, Amazon SQS queues, or built-in targets. CloudWatch Events allows you to set up rules to trigger automated actions when an event matches your rule. + +## Table Usage Guide + +The `aws_cloudwatch_event_rule` table in Steampipe provides you with information about CloudWatch Event rules within AWS CloudWatch Events. This table allows you, as a DevOps engineer, to query rule-specific details, including the rule name, ARN, state, description, schedule expression, and associated metadata. You can utilize this table to gather insights on rules, such as the rules associated with a specific event bus, the state of the rules (whether they are enabled or disabled), and more. The schema outlines the various attributes of the CloudWatch Event rule for you, including the rule ARN, event bus name, description, state, and associated tags. + +## Examples + +### Basic info +Gain insights into the status and origins of your AWS CloudWatch Events rules. This query is particularly useful for auditing and maintaining an overview of your event settings. + +```sql+postgres +select + name, + arn, + state, + created_by, + event_bus_name +from + aws_cloudwatch_event_rule; +``` + +```sql+sqlite +select + name, + arn, + state, + created_by, + event_bus_name +from + aws_cloudwatch_event_rule; +``` + +### List disabled rules +Determine the areas in which AWS CloudWatch Events rules are not active. This is useful for identifying potential gaps in event-driven workflows or areas where automation may have been turned off. + +```sql+postgres +select + name, + arn, + state, + created_by +from + aws_cloudwatch_event_rule +where + state != 'ENABLED'; +``` + +```sql+sqlite +select + name, + arn, + state, + created_by +from + aws_cloudwatch_event_rule +where + state != 'ENABLED'; +``` + +### Get the target information for each rule +This query allows you to identify the target details for each rule in your AWS CloudWatch Events service. It's useful for auditing and understanding the relationships and dependencies between different rules and their targets within your AWS infrastructure. + +```sql+postgres +select + name, + cd ->> 'Id' as target_id, + cd ->> 'Arn' as target_arn, + cd ->> 'RoleArn' as role_arn +from + aws_cloudwatch_event_rule, + jsonb_array_elements(targets) as cd; +``` + +```sql+sqlite +select + name, + json_extract(cd.value, '$.Id') as target_id, + json_extract(cd.value, '$.Arn') as target_arn, + json_extract(cd.value, '$.RoleArn') as role_arn +from + aws_cloudwatch_event_rule, + json_each(targets) as cd; +``` + +### List CloudWatch Event rules with schedule expressions +Identify rules that are triggered on a schedule rather than by events, which is useful for understanding time-based automation in your environment. + +```sql+postgres +select + name, + schedule_expression, + state, + description +from + aws_cloudwatch_event_rule +where + schedule_expression is not null; +``` + +```sql+sqlite +select + name, + schedule_expression, + state, + description +from + aws_cloudwatch_event_rule +where + schedule_expression is not null; +``` + +### Find rules with Lambda function targets +Discover which CloudWatch Event rules are triggering Lambda functions, helping to map out serverless event-driven architectures in your AWS environment. + +```sql+postgres +select + r.name as rule_name, + t ->> 'Id' as target_id, + t ->> 'Arn' as lambda_arn +from + aws_cloudwatch_event_rule as r, + jsonb_array_elements(r.targets) as t +where + t ->> 'Arn' like 'arn:aws:lambda:%'; +``` + +```sql+sqlite +select + r.name as rule_name, + json_extract(t.value, '$.Id') as target_id, + json_extract(t.value, '$.Arn') as lambda_arn +from + aws_cloudwatch_event_rule as r, + json_each(r.targets) as t +where + json_extract(t.value, '$.Arn') like 'arn:aws:lambda:%'; +``` diff --git a/docs/tables/aws_codebuild_fleet.md b/docs/tables/aws_codebuild_fleet.md new file mode 100644 index 000000000..c37db4dca --- /dev/null +++ b/docs/tables/aws_codebuild_fleet.md @@ -0,0 +1,249 @@ +--- +title: "Steampipe Table: aws_codebuild_fleet - Query AWS CodeBuild Fleet using SQL" +description: "Allows users to query AWS CodeBuild Fleet resources to obtain details about compute fleets used for CodeBuild projects, including capacity, status, and configuration." +folder: "CodeBuild" +--- + +# Table: aws_codebuild_fleet - Query AWS CodeBuild Fleets using SQL + +AWS CodeBuild Fleet is a feature that allows you to create and manage dedicated compute resources for your CodeBuild projects. Compute fleets enable you to provision capacity ahead of time, reducing wait times for builds and allowing for more predictable build performance. Fleets help optimize build costs and can be configured with various compute types and capacity settings. + +## Table Usage Guide + +The `aws_codebuild_fleet` table in Steampipe provides you with information about compute fleets within AWS CodeBuild service. This table allows you, as a DevOps engineer or administrator, to query fleet-specific details, including capacity configurations, status, compute types, and associated metadata. You can utilize this table to gather insights on fleets, such as their current status, capacity utilization, VPC configuration, and more. The schema outlines the various attributes of the CodeBuild fleet for you, including the fleet name, ARN, creation time, capacities, and associated tags. + +## Examples + +### Basic info +Retrieve fundamental information about all compute fleets in your AWS environment. This query helps you get a quick overview of your fleet configurations, including their names, ARNs, status, and compute specifications. + +```sql+postgres +select + name, + arn, + status, + compute_type, + environment_type, + region +from + aws_codebuild_fleet; +``` + +```sql+sqlite +select + name, + arn, + status, + compute_type, + environment_type, + region +from + aws_codebuild_fleet; +``` + +### List compute fleets by status +Monitor active compute fleets and their creation times. This query is useful for identifying when fleets were created and their current operational status, helping you track fleet lifecycle and troubleshoot any status-related issues. + +```sql+postgres +select + name, + status, + status_reason, + created, + region +from + aws_codebuild_fleet +where + status = 'ACTIVE'; +``` + +```sql+sqlite +select + name, + status, + status_reason, + created, + region +from + aws_codebuild_fleet +where + status = 'ACTIVE'; +``` + +### Get fleet capacity details +Analyze the capacity configurations of your compute fleets. This query helps you understand your fleet's scaling capabilities by showing current, desired, minimum, maximum, and base capacities, which is essential for capacity planning and optimization. + +```sql+postgres +select + name, + current_capacity, + desired_capacity, + min_capacity, + max_capacity, + base_capacity, + region +from + aws_codebuild_fleet +order by + current_capacity desc; +``` + +```sql+sqlite +select + name, + current_capacity, + desired_capacity, + min_capacity, + max_capacity, + base_capacity, + region +from + aws_codebuild_fleet +order by + current_capacity desc; +``` + +### Find fleets with VPC configuration +Identify compute fleets that are configured to run within a VPC. This query is valuable for security and networking teams to ensure proper network isolation and access control for build environments. + +```sql+postgres +select + name, + vpc_config ->> 'VpcId' as vpc_id, + vpc_config ->> 'Subnets' as subnets, + vpc_config ->> 'SecurityGroupIds' as security_group_ids, + region +from + aws_codebuild_fleet +where + vpc_config is not null; +``` + +```sql+sqlite +select + name, + json_extract(vpc_config, '$.VpcId') as vpc_id, + json_extract(vpc_config, '$.Subnets') as subnets, + json_extract(vpc_config, '$.SecurityGroupIds') as security_group_ids, + region +from + aws_codebuild_fleet +where + vpc_config is not null; +``` + +### Get fleets by compute type +Analyze the distribution of compute types across your fleets and their total capacity. This query helps in understanding resource allocation and identifying potential areas for optimization or consolidation. + +```sql+postgres +select + compute_type, + count(*) as fleet_count, + sum(current_capacity) as total_capacity +from + aws_codebuild_fleet +group by + compute_type +order by + total_capacity desc; +``` + +```sql+sqlite +select + compute_type, + count(*) as fleet_count, + sum(current_capacity) as total_capacity +from + aws_codebuild_fleet +group by + compute_type +order by + total_capacity desc; +``` + +### Find recently modified fleets +Track recent changes to your compute fleets. This query helps in change management and auditing by showing fleets that have been modified in the last week, along with their current status and any status-related messages. + +```sql+postgres +select + name, + last_modified, + status, + status_reason, + region +from + aws_codebuild_fleet +where + last_modified > now() - interval '7 days' +order by + last_modified desc; +``` + +```sql+sqlite +select + name, + last_modified, + status, + status_reason, + region +from + aws_codebuild_fleet +where + last_modified > datetime('now', '-7 days') +order by + last_modified desc; +``` + +### List fleets by environment type +Group and analyze fleets based on their environment types. This query helps in understanding the distribution of different build environments across your fleets, which is useful for environment standardization and management. + +```sql+postgres +select + environment_type, + count(*) as fleet_count, + array_agg(name) as fleet_names +from + aws_codebuild_fleet +group by + environment_type; +``` + +```sql+sqlite +select + environment_type, + count(*) as fleet_count, + group_concat(name) as fleet_names +from + aws_codebuild_fleet +group by + environment_type; +``` + +### Find fleets without proper tagging +Identify fleets that may not comply with tagging standards. This query helps maintain consistent resource tagging by finding fleets that are missing required tags like 'Environment' and 'Project', which are important for resource organization and cost allocation. + +```sql+postgres +select + name, + region, + tags +from + aws_codebuild_fleet +where + tags is null + or not tags ? 'Environment' + or not tags ? 'Project'; +``` + +```sql+sqlite +select + name, + region, + tags +from + aws_codebuild_fleet +where + tags is null + or json_extract(tags, '$.Environment') is null + or json_extract(tags, '$.Project') is null; +``` diff --git a/docs/tables/aws_codebuild_report_group.md b/docs/tables/aws_codebuild_report_group.md new file mode 100644 index 000000000..3e98f3611 --- /dev/null +++ b/docs/tables/aws_codebuild_report_group.md @@ -0,0 +1,127 @@ +--- +title: "Steampipe Table: aws_codebuild_report_group - Query AWS CodeBuild Report Groups using SQL" +description: "Allows users to query AWS CodeBuild Report Groups to retrieve detailed information about each report group configuration." +folder: "CodeBuild" +--- + +# Table: aws_codebuild_report_group - Query AWS CodeBuild Report Groups using SQL + +AWS CodeBuild Report Groups are used to collect and store test reports from your build projects. They provide a centralized location for storing test results, code coverage reports, and other build artifacts. Report groups help you track the quality of your code over time and provide insights into your build and test processes. + +## Table Usage Guide + +The `aws_codebuild_report_group` table in Steampipe provides you with information about report groups within AWS CodeBuild. This table allows you, as a DevOps engineer, to query report group-specific details, including report group ARN, creation date, type, export configuration, and associated metadata. You can utilize this table to gather insights on report groups, such as their configuration, export settings, and associated tags. + +## Examples + +### Basic info +Explore the features and settings of your AWS CodeBuild report groups to better understand their configuration, such as export settings, type, and regional distribution. This can help in assessing report group performance and operational efficiency. + +```sql+postgres +select + name, + arn, + type, + created, + last_modified, + region +from + aws_codebuild_report_group; +``` + +```sql+sqlite +select + name, + arn, + type, + created, + last_modified, + region +from + aws_codebuild_report_group; +``` + +### Get export configuration details for each report group +Determine the export configuration for each report group to understand how test reports are being stored and exported. This can help in managing and optimizing the reporting process in AWS CodeBuild. + +```sql+postgres +select + name, + type, + export_config ->> 'ExportConfigType' as export_config_type, + export_config -> 'S3Destination' as s3_destination, + export_config -> 'S3Destination'->>'Bucket' as s3_bucket, + export_config -> 'S3Destination'->>'EncryptionKey' as encryption_key, + export_config -> 'S3Destination'->>'EncryptionDisabled' as encryption_disabled, + export_config -> 'S3Destination'->>'Packaging' as packaging +from + aws_codebuild_report_group; +``` + +```sql+sqlite +select + name, + type, + json_extract(export_config, '$.ExportConfigType') as export_config_type, + json_extract(export_config, '$.S3Destination') as s3_destination, + json_extract(export_config, '$.S3Destination.Bucket') as s3_bucket, + json_extract(export_config, '$.S3Destination.EncryptionKey') as encryption_key, + json_extract(export_config, '$.S3Destination.EncryptionDisabled') as encryption_disabled, + json_extract(export_config, '$.S3Destination.Packaging') as packaging +from + aws_codebuild_report_group; +``` + +### List report groups with specific types +Find report groups with specific types to understand the different kinds of reports being generated and stored in your AWS CodeBuild environment. + +```sql+postgres +select + name, + arn, + type, + created, + last_modified +from + aws_codebuild_report_group +where + type = 'TEST'; +``` + +```sql+sqlite +select + name, + arn, + type, + created, + last_modified +from + aws_codebuild_report_group +where + type = 'TEST'; +``` + +### Find report groups without encryption +Identify report groups that don't have encryption enabled for their export configuration, which could pose security risks. This is useful for compliance audits and security assessments. + +```sql+postgres +select + name, + type, + export_config -> 'S3Destination'->>'EncryptionDisabled' as encryption_disabled +from + aws_codebuild_report_group +where + export_config -> 'S3Destination'->>'EncryptionDisabled' = 'true'; +``` + +```sql+sqlite +select + name, + type, + json_extract(export_config, '$.S3Destination.EncryptionDisabled') as encryption_disabled +from + aws_codebuild_report_group +where + json_extract(export_config, '$.S3Destination.EncryptionDisabled') = 'true'; +``` diff --git a/docs/tables/aws_cognito_user_group.md b/docs/tables/aws_cognito_user_group.md new file mode 100644 index 000000000..03cddf4e6 --- /dev/null +++ b/docs/tables/aws_cognito_user_group.md @@ -0,0 +1,158 @@ +--- +title: "Steampipe Table: aws_cognito_user_group - Query AWS Cognito User Groups using SQL" +description: "Allows users to query AWS Cognito User Groups to retrieve information about group configurations, permissions, and associated user pools." +folder: "Cognito" +--- + +# aws_cognito_user_group + +AWS Cognito user groups provide a way to manage and categorize users in Amazon Cognito user pools. User groups can be used to create collections of users that have similar permissions and characteristics. This allows administrators to set permissions for multiple users at once, assign IAM roles to users, and define precedence for users who might be in multiple groups. + +## Table Usage Guide + +The `aws_cognito_user_group` table provides insights into user groups within Amazon Cognito user pools. As a security administrator or developer, you can query this table to retrieve detailed information about group configurations, including IAM role assignments, precedence values, and descriptions. This can be useful for auditing user permissions, ensuring proper group configurations, and managing access controls within your Cognito user pools. + +## Examples + +### Basic info +This query helps you understand the basic structure and distribution of all Cognito user groups across your user pools. + +```sql+postgres +select + group_name, + user_pool_id, + description, + precedence, + creation_date, + region +from + aws_cognito_user_group; +``` + +```sql+sqlite +select + group_name, + user_pool_id, + description, + precedence, + creation_date, + region +from + aws_cognito_user_group; +``` + +### List all user groups in a specific user pool +This query retrieves all user groups that belong to a specific Cognito user pool, which is useful for auditing access controls within a particular user pool. + +```sql+postgres +select + group_name, + description, + role_arn, + precedence, + creation_date +from + aws_cognito_user_group +where + user_pool_id = 'us-east-1_example123'; +``` + +```sql+sqlite +select + group_name, + description, + role_arn, + precedence, + creation_date +from + aws_cognito_user_group +where + user_pool_id = 'us-east-1_example123'; +``` + +### Find user groups with assigned IAM roles +This example identifies all user groups that have IAM roles assigned to them, which helps in reviewing role-based access control configurations. + +```sql+postgres +select + group_name, + user_pool_id, + role_arn, + precedence, + region +from + aws_cognito_user_group +where + role_arn is not null; +``` + +```sql+sqlite +select + group_name, + user_pool_id, + role_arn, + precedence, + region +from + aws_cognito_user_group +where + role_arn is not null; +``` + +### Groups created in the last 30 days +This query identifies recently created user groups in your Cognito user pools, which can help track changes in your identity management infrastructure. + +```sql+postgres +select + group_name, + user_pool_id, + description, + creation_date, + region +from + aws_cognito_user_group +where + creation_date > current_date - interval '30 days'; +``` + +```sql+sqlite +select + group_name, + user_pool_id, + description, + creation_date, + region +from + aws_cognito_user_group +where + creation_date > date('now', '-30 days'); +``` + +### Count of user groups per user pool +This query provides a count of how many user groups exist in each Cognito user pool, helping you understand the distribution and complexity of your group management. + +```sql+postgres +select + user_pool_id, + count(*) as group_count, + region +from + aws_cognito_user_group +group by + user_pool_id, region +order by + group_count desc; +``` + +```sql+sqlite +select + user_pool_id, + count(*) as group_count, + region +from + aws_cognito_user_group +group by + user_pool_id, region +order by + group_count desc; +``` diff --git a/docs/tables/aws_config_rule_compliance_detail.md b/docs/tables/aws_config_rule_compliance_detail.md new file mode 100644 index 000000000..c59214f69 --- /dev/null +++ b/docs/tables/aws_config_rule_compliance_detail.md @@ -0,0 +1,273 @@ +--- +title: "Steampipe Table: aws_config_rule_compliance_detail - Query AWS Config Rule Compliance Details using SQL" +description: "Allows users to query AWS Config Rule Compliance Details to get detailed evaluation results for AWS Config rules." +folder: "Config" +--- + +# Table: aws_config_rule_compliance_detail - Query AWS Config Rule Compliance Details using SQL + +AWS Config Rule Compliance Details provide detailed evaluation results for a specific AWS Config rule. This includes which AWS resources were evaluated, when each resource was last evaluated, and whether each resource complies with the rule. This table is useful for in-depth compliance auditing and tracking individual resource compliance status. + +## Table Usage Guide + +The `aws_config_rule_compliance_detail` table in Steampipe provides detailed compliance evaluation results for AWS Config rules. This table allows you, as a DevOps engineer, compliance officer, or security auditor, to query resource-level compliance details, including evaluation results, timestamps, and compliance status for each resource evaluated by a Config rule. You can utilize this table to identify non-compliant resources, track compliance changes over time, and audit your AWS environment's adherence to compliance standards. + +**Important:** This table uses `aws_config_rule` as a parent hydrate, which means: +- Without any filters, it will list compliance details for **all** Config rules in your account +- You can optionally filter by `config_rule_name` to get details for a specific rule +- You can filter by `compliance_type` to only see compliant or non-compliant resources + +## Examples + +### List all compliance details across all Config rules +Get compliance details for all resources evaluated by all Config rules in your account. + +```sql+postgres +select + config_rule_name, + resource_type, + resource_id, + compliance_type, + result_recorded_time +from + aws_config_rule_compliance_detail +order by + config_rule_name, + compliance_type; +``` + +```sql+sqlite +select + config_rule_name, + resource_type, + resource_id, + compliance_type, + result_recorded_time +from + aws_config_rule_compliance_detail +order by + config_rule_name, + compliance_type; +``` + +### Get compliance details for a specific Config rule +Retrieve all evaluation results for a specific AWS Config rule to see which resources are compliant or non-compliant. + +```sql+postgres +select + config_rule_name, + resource_type, + resource_id, + compliance_type, + config_rule_invoked_time, + result_recorded_time +from + aws_config_rule_compliance_detail +where + config_rule_name = 'required-tags-check'; +``` + +```sql+sqlite +select + config_rule_name, + resource_type, + resource_id, + compliance_type, + config_rule_invoked_time, + result_recorded_time +from + aws_config_rule_compliance_detail +where + config_rule_name = 'required-tags-check'; +``` + +### List all non-compliant resources across all Config rules +Identify all non-compliant resources across your entire AWS Config setup for prioritized remediation. + +```sql+postgres +select + config_rule_name, + resource_type, + resource_id, + annotation, + result_recorded_time +from + aws_config_rule_compliance_detail +where + compliance_type = 'NON_COMPLIANT' +order by + result_recorded_time desc; +``` + +```sql+sqlite +select + config_rule_name, + resource_type, + resource_id, + annotation, + result_recorded_time +from + aws_config_rule_compliance_detail +where + compliance_type = 'NON_COMPLIANT' +order by + result_recorded_time desc; +``` + +### Find recently evaluated non-compliant resources +Identify resources that were recently found to be non-compliant for immediate action. + +```sql+postgres +select + config_rule_name, + resource_type, + resource_id, + compliance_type, + annotation, + result_recorded_time +from + aws_config_rule_compliance_detail +where + config_rule_name = 'ec2-instance-managed-by-ssm' + and compliance_type = 'NON_COMPLIANT' + and result_recorded_time >= now() - interval '7 days' +order by + result_recorded_time desc; +``` + +```sql+sqlite +select + config_rule_name, + resource_type, + resource_id, + compliance_type, + annotation, + result_recorded_time +from + aws_config_rule_compliance_detail +where + config_rule_name = 'ec2-instance-managed-by-ssm' + and compliance_type = 'NON_COMPLIANT' + and result_recorded_time >= datetime('now', '-7 days') +order by + result_recorded_time desc; +``` + +### Group non-compliant resources by resource type +Understand which resource types have the most compliance issues for a specific rule. + +```sql+postgres +select + config_rule_name, + resource_type, + count(*) as non_compliant_count +from + aws_config_rule_compliance_detail +where + config_rule_name = 'required-tags-check' + and compliance_type = 'NON_COMPLIANT' +group by + config_rule_name, + resource_type +order by + non_compliant_count desc; +``` + +```sql+sqlite +select + config_rule_name, + resource_type, + count(*) as non_compliant_count +from + aws_config_rule_compliance_detail +where + config_rule_name = 'required-tags-check' + and compliance_type = 'NON_COMPLIANT' +group by + config_rule_name, + resource_type +order by + non_compliant_count desc; +``` + +### Join with config rule table to get rule details +Combine compliance details with Config rule metadata for comprehensive reporting. + +```sql+postgres +select + d.config_rule_name, + r.description as rule_description, + d.resource_type, + d.resource_id, + d.compliance_type, + d.annotation, + d.result_recorded_time +from + aws_config_rule_compliance_detail as d + inner join aws_config_rule as r on d.config_rule_name = r.name +where + d.config_rule_name = 's3-bucket-ssl-requests-only' + and d.compliance_type = 'NON_COMPLIANT'; +``` + +```sql+sqlite +select + d.config_rule_name, + r.description as rule_description, + d.resource_type, + d.resource_id, + d.compliance_type, + d.annotation, + d.result_recorded_time +from + aws_config_rule_compliance_detail as d + inner join aws_config_rule as r on d.config_rule_name = r.name +where + d.config_rule_name = 's3-bucket-ssl-requests-only' + and d.compliance_type = 'NON_COMPLIANT'; +``` + +### Track compliance changes over time +Analyze when resources were last evaluated to track compliance monitoring patterns. + +```sql+postgres +select + config_rule_name, + resource_type, + compliance_type, + date_trunc('day', result_recorded_time) as evaluation_date, + count(*) as evaluation_count +from + aws_config_rule_compliance_detail +where + config_rule_name = 'iam-password-policy' + and result_recorded_time >= now() - interval '30 days' +group by + config_rule_name, + resource_type, + compliance_type, + date_trunc('day', result_recorded_time) +order by + evaluation_date desc; +``` + +```sql+sqlite +select + config_rule_name, + resource_type, + compliance_type, + date(result_recorded_time) as evaluation_date, + count(*) as evaluation_count +from + aws_config_rule_compliance_detail +where + config_rule_name = 'iam-password-policy' + and result_recorded_time >= datetime('now', '-30 days') +group by + config_rule_name, + resource_type, + compliance_type, + date(result_recorded_time) +order by + evaluation_date desc; +``` diff --git a/docs/tables/aws_connect_instance.md b/docs/tables/aws_connect_instance.md new file mode 100644 index 000000000..d7113f647 --- /dev/null +++ b/docs/tables/aws_connect_instance.md @@ -0,0 +1,355 @@ +--- +title: "Steampipe Table: aws_connect_instance - Query AWS Connect Instances using SQL" +description: "Allows users to query AWS Connect instances to retrieve detailed information about each contact center instance configuration." +folder: "Connect" +--- + +# Table: aws_connect_instance - Query AWS Connect Instances using SQL + +AWS Connect is a cloud contact center service that makes it easy for any business to deliver better customer service at lower cost. The `aws_connect_instance` table provides information about Connect instances, including their configuration, status, and metadata. + +## Table Usage Guide + +The `aws_connect_instance` table in Steampipe provides you with information about Connect instances within AWS. This table allows you, as a DevOps engineer, to query instance-specific details, including instance ID, alias, status, identity management type, and associated metadata. You can utilize this table to gather insights on Connect instances, such as their current status, call configuration, access URLs, and associated tags. + +## Examples + +### Basic info +Explore the features and settings of your AWS Connect instances to better understand their configuration, such as status, identity management type, and regional distribution. This can help in assessing instance performance and operational efficiency. + +```sql+postgres +select + instance_alias, + id, + arn, + instance_status, + identity_management_type, + region +from + aws_connect_instance; +``` + +```sql+sqlite +select + instance_alias, + id, + arn, + instance_status, + identity_management_type, + region +from + aws_connect_instance; +``` + +### List active Connect instances +Find Connect instances that are currently active to understand which contact centers are operational. + +```sql+postgres +select + instance_alias, + id, + instance_status, + created_time +from + aws_connect_instance +where + instance_status = 'ACTIVE'; +``` + +```sql+sqlite +select + instance_alias, + id, + instance_status, + created_time +from + aws_connect_instance +where + instance_status = 'ACTIVE'; +``` + +### Find instances with both inbound and outbound calls enabled +Identify Connect instances that have both inbound and outbound calling capabilities enabled for comprehensive contact center functionality. + +```sql+postgres +select + instance_alias, + id, + inbound_calls_enabled, + outbound_calls_enabled, + instance_access_url +from + aws_connect_instance +where + inbound_calls_enabled = true + and outbound_calls_enabled = true; +``` + +```sql+sqlite +select + instance_alias, + id, + inbound_calls_enabled, + outbound_calls_enabled, + instance_access_url +from + aws_connect_instance +where + inbound_calls_enabled = 1 + and outbound_calls_enabled = 1; +``` + +### Get instance details with tags +Retrieve detailed information about Connect instances including their associated tags for resource management and cost allocation. + +```sql+postgres +select + instance_alias, + id, + service_role, + tags +from + aws_connect_instance +where + tags is not null; +``` + +```sql+sqlite +select + instance_alias, + id, + service_role, + tags +from + aws_connect_instance +where + tags is not null; +``` + +### List recently created instances +Find Connect instances that were created recently to track new deployments and changes in your contact center environment. + +```sql+postgres +select + instance_alias, + id, + created_time, + instance_status +from + aws_connect_instance +where + created_time >= now() - interval '30 days' +order by + created_time desc; +``` + +```sql+sqlite +select + instance_alias, + id, + created_time, + instance_status +from + aws_connect_instance +where + created_time >= datetime('now', '-30 days') +order by + created_time desc; +``` + +### Find instances with status issues +Identify Connect instances that may have status issues or failed creation attempts for troubleshooting. + +```sql+postgres +select + instance_alias, + id, + instance_status, + status_reason +from + aws_connect_instance +where + status_reason is not null; +``` + +```sql+sqlite +select + instance_alias, + id, + instance_status, + status_reason +from + aws_connect_instance +where + status_reason is not null; +``` + +### Find instances with specific call configurations +Identify Connect instances with specific call configurations, such as inbound and outbound calling capabilities. + +```sql+postgres +select + instance_alias, + id, + inbound_calls_enabled, + outbound_calls_enabled, + instance_access_url +from + aws_connect_instance +where + inbound_calls_enabled = true + and outbound_calls_enabled = true; +``` + +```sql+sqlite +select + instance_alias, + id, + inbound_calls_enabled, + outbound_calls_enabled, + instance_access_url +from + aws_connect_instance +where + inbound_calls_enabled = 1 + and outbound_calls_enabled = 1; +``` + +### Get instance configuration summary +Retrieve a summary of Connect instance configurations including status, creation time, and service role. + +```sql+postgres +select + instance_alias, + id, + instance_status, + created_time, + service_role, + identity_management_type +from + aws_connect_instance +order by + created_time desc; +``` + +```sql+sqlite +select + instance_alias, + id, + instance_status, + created_time, + service_role, + identity_management_type +from + aws_connect_instance +order by + created_time desc; +``` + +### Find instances by identity management type +Identify Connect instances by their identity management type to understand authentication configurations. + +```sql+postgres +select + instance_alias, + id, + identity_management_type, + instance_status +from + aws_connect_instance +where + identity_management_type = 'SAML'; +``` + +```sql+sqlite +select + instance_alias, + id, + identity_management_type, + instance_status +from + aws_connect_instance +where + identity_management_type = 'SAML'; +``` + +### Check instance status distribution +Analyze the distribution of Connect instance statuses across your AWS environment. + +```sql+postgres +select + instance_status, + count(*) as instance_count +from + aws_connect_instance +group by + instance_status +order by + instance_count desc; +``` + +```sql+sqlite +select + instance_status, + count(*) as instance_count +from + aws_connect_instance +group by + instance_status +order by + instance_count desc; +``` + +### Find instances with status issues +Identify Connect instances that may have status issues or failed creation attempts for troubleshooting. + +```sql+postgres +select + instance_alias, + id, + instance_status, + status_reason +from + aws_connect_instance +where + status_reason is not null; +``` + +```sql+sqlite +select + instance_alias, + id, + instance_status, + status_reason +from + aws_connect_instance +where + status_reason is not null; +``` + +### Get attribute information for all instances +Combine instance data with attribute information to get a comprehensive view of Connect instances and their configurations. + +```sql+postgres +select + i.instance_alias, + i.id, + i.instance_status, + a.attribute_type, + a.value +from + aws_connect_instance as i + right join aws_connect_instance_attribute as a on a.instance_id = i.id; +``` + +```sql+sqlite +select + i.instance_alias, + i.id, + i.instance_status, + a.attribute_type, + a.value +from + aws_connect_instance as i + right aws_connect_instance_attribute as a on i.id = a.instance_id; +``` diff --git a/docs/tables/aws_connect_instance_attribute.md b/docs/tables/aws_connect_instance_attribute.md new file mode 100644 index 000000000..5744c9a3e --- /dev/null +++ b/docs/tables/aws_connect_instance_attribute.md @@ -0,0 +1,302 @@ +--- +title: "Steampipe Table: aws_connect_instance_attribute - Query AWS Connect Instance Attributes using SQL" +description: "Allows users to query AWS Connect Instance Attributes for detailed information about each attribute configuration and value." +folder: "Connect" +--- + +# Table: aws_connect_instance_attribute - Query AWS Connect Instance Attributes using SQL + +The AWS Connect Instance Attribute is a component of Amazon Connect that represents individual feature toggles and configuration settings for a Connect instance. Each attribute controls specific functionality such as Contact Lens, auto-resolve best voices, custom TTS voices, and other instance-level features. This table provides granular access to these configuration settings. + +## Table Usage Guide + +The `aws_connect_instance_attribute` table in Steampipe provides you with information about individual attributes within AWS Connect instances. This table allows you, as a DevOps engineer, to query attribute-specific details, including attribute types, values, and associated instance information. You can utilize this table to gather insights on Connect instance configurations, such as which features are enabled, attribute values, and more. The schema outlines the various attributes of the Connect instance attribute for you, including the instance ID, attribute type, and value. + +## Examples + +### Basic info +Explore which attributes are configured for your AWS Connect instances. This query can be particularly useful in understanding the feature configuration across your Connect instances. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute; +``` + +### List attributes for a specific instance +Identify all attributes configured for a specific Connect instance. This helps in understanding the complete configuration of a particular instance. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + instance_id = '3f276507-1576-4a30-bc23-f6388cec8893'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + instance_id = '3f276507-1576-4a30-bc23-f6388cec8893'; +``` + +### Find instances with Contact Lens enabled +Identify Connect instances that have Contact Lens feature enabled. This is useful for understanding which instances have advanced analytics capabilities. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'CONTACT_LENS' + and value = 'true'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'CONTACT_LENS' + and value = 'true'; +``` + +### Check auto-resolve best voices configuration +Analyze which Connect instances have auto-resolve best voices enabled. This feature helps in automatically selecting the best voice for text-to-speech. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'AUTO_RESOLVE_BEST_VOICES'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'AUTO_RESOLVE_BEST_VOICES'; +``` + +### Find instances with custom TTS voices +Identify Connect instances that have custom text-to-speech voices enabled. This helps in understanding which instances use custom voice configurations. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'USE_CUSTOM_TTS_VOICES' + and value = 'true'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'USE_CUSTOM_TTS_VOICES' + and value = 'true'; +``` + +### Check early media configuration +Analyze which Connect instances have early media enabled. This feature allows media to be sent before the call is answered. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'EARLY_MEDIA'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'EARLY_MEDIA'; +``` + +### Find instances with multi-party conference enabled +Identify Connect instances that support multi-party conference calls. This helps in understanding which instances have advanced calling capabilities. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'MULTI_PARTY_CONFERENCE' + and value = 'true'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'MULTI_PARTY_CONFERENCE' + and value = 'true'; +``` + +### Check contact flow logs configuration +Analyze which Connect instances have contact flow logs enabled. This feature provides detailed logging for contact flow execution. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'CONTACTFLOW_LOGS'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'CONTACTFLOW_LOGS'; +``` + +### Find instances with high volume outbound enabled +Identify Connect instances that have high volume outbound calling enabled. This feature is useful for instances that need to make large numbers of outbound calls. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'HIGH_VOLUME_OUTBOUND' + and value = 'true'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'HIGH_VOLUME_OUTBOUND' + and value = 'true'; +``` + +### Check enhanced contact monitoring configuration +Analyze which Connect instances have enhanced contact monitoring enabled. This feature provides additional monitoring capabilities for contacts. + +```sql+postgres +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'ENHANCED_CONTACT_MONITORING'; +``` + +```sql+sqlite +select + instance_id, + attribute_type, + value +from + aws_connect_instance_attribute +where + attribute_type = 'ENHANCED_CONTACT_MONITORING'; +``` + +### Get attribute information for all instances +Combine attribute data with instance information to get a comprehensive view of Connect instances and their configurations. + +```sql+postgres +select + a.instance_id, + i.instance_alias, + i.instance_status, + a.attribute_type, + a.value +from + aws_connect_instance_attribute as a + left join aws_connect_instance as i on a.instance_id = i.id +order by + a.instance_id, + a.attribute_type; +``` + +```sql+sqlite +select + a.instance_id, + i.instance_alias, + i.instance_status, + a.attribute_type, + a.value +from + aws_connect_instance_attribute as a + left join aws_connect_instance as i on a.instance_id = i.id +order by + a.instance_id, + a.attribute_type; +``` diff --git a/docs/tables/aws_cost_by_account_daily.md b/docs/tables/aws_cost_by_account_daily.md index 9ff6aa303..6c3b62f5e 100644 --- a/docs/tables/aws_cost_by_account_daily.md +++ b/docs/tables/aws_cost_by_account_daily.md @@ -16,6 +16,9 @@ Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -31,7 +34,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_account_daily order by linked_account_id, @@ -47,7 +50,7 @@ select CAST(amortized_cost_amount AS REAL) AS amortized_cost_amount, CAST(net_unblended_cost_amount AS REAL) AS net_unblended_cost_amount, CAST(net_amortized_cost_amount AS REAL) AS net_amortized_cost_amount -from +from aws_cost_by_account_daily order by linked_account_id, @@ -63,7 +66,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_account_daily group by linked_account_id @@ -77,7 +80,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_account_daily group by linked_account_id @@ -96,7 +99,7 @@ with ranked_costs as ( period_start, unblended_cost_amount::numeric::money, rank() over(partition by linked_account_id order by unblended_cost_amount desc) - from + from aws_cost_by_account_daily ) select * from ranked_costs where rank <= 10; @@ -104,4 +107,45 @@ select * from ranked_costs where rank <= 10; ```sql+sqlite Error: SQLite does not support the rank window function. +``` + +### Get the specific costs within a given time frame +Analyze your AWS accounts' daily specific expenditure to identify the minimum, maximum, and average costs whin a given time frame. + +```sql+postgres +select + linked_account_id, + period_start, + blended_cost_amount::numeric::money, + unblended_cost_amount::numeric::money, + amortized_cost_amount::numeric::money, + net_unblended_cost_amount::numeric::money, + net_amortized_cost_amount::numeric::money +from + aws_cost_by_account_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; +``` + +```sql+sqlite +select + linked_account_id, + period_start, + blended_cost_amount::numeric::money, + unblended_cost_amount::numeric::money, + amortized_cost_amount::numeric::money, + net_unblended_cost_amount::numeric::money, + net_amortized_cost_amount::numeric::money +from + aws_cost_by_account_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_account_monthly.md b/docs/tables/aws_cost_by_account_monthly.md index b0a490311..24bc7318c 100644 --- a/docs/tables/aws_cost_by_account_monthly.md +++ b/docs/tables/aws_cost_by_account_monthly.md @@ -12,14 +12,19 @@ The AWS Cost Explorer Service provides insights into your AWS costs and usage. I The `aws_cost_by_account_monthly` table in Steampipe provides you with information about your monthly AWS costs per account. This table allows you, as a financial analyst or DevOps engineer, to query cost-specific details, including the total amount spent, the currency code, and the associated AWS account. You can utilize this table to gain insights on your AWS spending and to manage your budget more effectively. The schema outlines the various attributes of your AWS cost, including the account ID, the month, the total amount, and the currency code. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_account_monthly` table provides a simplified view of cost for your account (or all linked accounts when run against the organization master), summarized by month, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_account_monthly` table provides a simplified view of cost for your account (or all linked accounts when run against the organization master), summarized by month, for the last year. **Important Notes** + - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples ### Basic info + This query allows you to analyze the monthly costs associated with each linked account on AWS. It helps in understanding the financial impact of different accounts and provides insights for better cost management. ```sql+postgres @@ -31,7 +36,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_account_monthly order by linked_account_id, @@ -47,16 +52,15 @@ select CAST(amortized_cost_amount AS REAL) AS amortized_cost_amount, CAST(net_unblended_cost_amount AS REAL) AS net_unblended_cost_amount, CAST(net_amortized_cost_amount AS REAL) AS net_amortized_cost_amount -from +from aws_cost_by_account_monthly order by linked_account_id, period_start; ``` - - ### Min, Max, and average monthly unblended_cost_amount by account + Analyze your AWS accounts' monthly expenditure to identify the minimum, maximum, and average costs. This information can help in budgeting and managing your cloud expenses more effectively. ```sql+postgres @@ -65,7 +69,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_account_monthly group by linked_account_id @@ -79,7 +83,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_account_monthly group by linked_account_id @@ -87,8 +91,8 @@ order by linked_account_id; ``` - ### Ranked - Most expensive months (unblended_cost_amount) by account + Analyze your spending patterns by identifying the months with the highest costs for each linked AWS account. This can help manage your budget by highlighting periods of increased expenditure. ```sql+postgres @@ -97,7 +101,7 @@ select period_start, unblended_cost_amount::numeric::money, rank() over(partition by linked_account_id order by unblended_cost_amount desc) -from +from aws_cost_by_account_monthly; ``` @@ -106,6 +110,7 @@ Error: SQLite does not support the rank window function. ``` ### Month on month growth (unblended_cost_amount) by account + This query is designed to analyze monthly expenditure trends across different accounts. It helps users identify any significant changes in costs, which can be useful for budgeting and cost management purposes. ```sql+postgres @@ -114,7 +119,7 @@ with cost_data as ( linked_account_id, period_start, unblended_cost_amount as this_month, - lag(unblended_cost_amount,-1) over(partition by linked_account_id order by period_start desc) as previous_month + lag(unblended_cost_amount, -1) over(partition by linked_account_id order by period_start desc) as previous_month from aws_cost_by_account_monthly ) @@ -138,7 +143,7 @@ with cost_data as ( period_start, unblended_cost_amount as this_month, lag(unblended_cost_amount, -1) over(partition by linked_account_id order by period_start desc) as previous_month - from + from aws_cost_by_account_monthly ) select @@ -151,4 +156,45 @@ from cost_data order by linked_account_id; -``` \ No newline at end of file +``` + +### Get the specific costs within a given time frame +Analyze your AWS accounts' monthly specific expenditure to identify the minimum, maximum, and average costs whin a given time frame. + +```sql+postgres +select + linked_account_id, + period_start, + blended_cost_amount::numeric::money, + unblended_cost_amount::numeric::money, + amortized_cost_amount::numeric::money, + net_unblended_cost_amount::numeric::money, + net_amortized_cost_amount::numeric::money +from + aws_cost_by_account_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; +``` + +```sql+sqlite +select + linked_account_id, + period_start, + blended_cost_amount AS blended_cost_amount, + unblended_cost_amount AS unblended_cost_amount, + amortized_cost_amount AS amortized_cost_amount, + net_unblended_cost_amount AS net_unblended_cost_amount, + net_amortized_cost_amount AS net_amortized_cost_amount +from + aws_cost_by_account_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; +``` diff --git a/docs/tables/aws_cost_by_record_type_daily.md b/docs/tables/aws_cost_by_record_type_daily.md index 321bac164..6d45c8b86 100644 --- a/docs/tables/aws_cost_by_record_type_daily.md +++ b/docs/tables/aws_cost_by_record_type_daily.md @@ -12,10 +12,13 @@ The AWS Cost and Usage Report is a comprehensive resource that provides detailed The `aws_cost_by_record_type_daily` table in Steampipe provides you with information about AWS costs incurred per record type on a daily basis. This table allows you as a financial analyst, DevOps engineer, or other professional to query cost-specific details, including the linked account, service, usage type, and operation. You can utilize this table to gather insights on cost distribution, such as costs associated with different services, usage types, and operations. The schema outlines the various attributes of the cost record, including the record id, record type, billing period start date, and cost. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_record_type_daily` table provides a simplified view of cost for your account (or all linked accounts when run against the organization master) as per record types (fees, usage, costs, tax refunds, and credits), summarized by day, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_record_type_daily` table provides a simplified view of cost for your account (or all linked accounts when run against the organization master) as per record types (fees, usage, costs, tax refunds, and credits), summarized by day, for the last year. **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -32,7 +35,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_record_type_daily order by linked_account_id, @@ -49,7 +52,7 @@ select CAST(amortized_cost_amount AS REAL) AS amortized_cost_amount, CAST(net_unblended_cost_amount AS REAL) AS net_unblended_cost_amount, CAST(net_amortized_cost_amount AS REAL) AS net_amortized_cost_amount -from +from aws_cost_by_record_type_daily order by linked_account_id, @@ -66,7 +69,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_record_type_daily group by linked_account_id, @@ -82,7 +85,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_record_type_daily group by linked_account_id, @@ -102,7 +105,7 @@ with ranked_costs as ( period_start, unblended_cost_amount::numeric::money, rank() over(partition by linked_account_id, record_type order by unblended_cost_amount desc) - from + from aws_cost_by_record_type_daily ) select * from ranked_costs where rank <= 10; @@ -110,4 +113,39 @@ select * from ranked_costs where rank <= 10; ```sql+sqlite Error: SQLite does not support the rank window function. +``` + +### Get only daily amortized cost details by account and record type within a custom time frame +Focusing on amortized costs by account and record type, organizations can achieve a clearer, more detailed understanding of their spending patterns. + +```sql+postgres +select + linked_account_id, + record_type, + period_start, + amortized_cost_amount::numeric::money +from + aws_cost_by_record_type_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; +``` + +```sql+sqlite +select + linked_account_id, + record_type, + period_start, + case(amortized_cost_amount as real) as amortized_cost_amount +from + aws_cost_by_record_type_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_record_type_monthly.md b/docs/tables/aws_cost_by_record_type_monthly.md index 16d3c1867..c8030d603 100644 --- a/docs/tables/aws_cost_by_record_type_monthly.md +++ b/docs/tables/aws_cost_by_record_type_monthly.md @@ -12,10 +12,13 @@ The AWS Cost and Usage Report service provides comprehensive cost and usage data The `aws_cost_by_record_type_monthly` table in Steampipe provides you with information about AWS Cost and Usage Report Records, specifically detailing costs incurred by different record types on a monthly basis. This table allows you, whether you're a DevOps engineer or a financial analyst, to query cost-specific details, including service usage, cost allocation, and associated metadata. You can utilize this table to gather insights on AWS costs, such as costs associated with specific AWS services, cost trends over time, and cost allocation across different record types. The schema outlines the various attributes of the cost and usage report record, including the record type, usage type, operation, and cost. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_record_type_monthly` table provides a simplified view of cost for your account (or all linked accounts when run against the organization master) as per record types (fees, usage, costs, tax refunds, and credits), summarized by month, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_record_type_monthly` table provides a simplified view of cost for your account (or all linked accounts when run against the organization master) as per record types (fees, usage, costs, tax refunds, and credits), summarized by month, for the last year. **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request will incur a cost of $0.01 for you. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -32,7 +35,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_record_type_monthly order by linked_account_id, @@ -49,7 +52,7 @@ select CAST(amortized_cost_amount AS REAL) AS amortized_cost_amount, CAST(net_unblended_cost_amount AS REAL) AS net_unblended_cost_amount, CAST(net_amortized_cost_amount AS REAL) AS net_amortized_cost_amount -from +from aws_cost_by_record_type_monthly order by linked_account_id, @@ -66,7 +69,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_record_type_monthly group by linked_account_id, @@ -82,7 +85,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_record_type_monthly group by linked_account_id, @@ -101,7 +104,7 @@ select period_start, unblended_cost_amount::numeric::money, rank() over(partition by linked_account_id, record_type order by unblended_cost_amount desc) -from +from aws_cost_by_record_type_monthly; ``` @@ -112,13 +115,48 @@ select period_start, unblended_cost_amount, ( - select count(*) + 1 + select count(*) + 1 from aws_cost_by_record_type_monthly as b - where - a.linked_account_id = b.linked_account_id and - a.record_type = b.record_type and + where + a.linked_account_id = b.linked_account_id and + a.record_type = b.record_type and a.unblended_cost_amount < b.unblended_cost_amount ) -from +from aws_cost_by_record_type_monthly as a; +``` + +### Get only monthly amortized cost details by account and record type within a custom time frame +Focusing on amortized costs by account and record type, organizations can achieve a clearer, more detailed understanding of their spending patterns. + +```sql+postgres +select + linked_account_id, + record_type, + period_start, + amortized_cost_amount::numeric::money +from + aws_cost_by_record_type_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; +``` + +```sql+sqlite +select + linked_account_id, + record_type, + period_start, + case(amortized_cost_amount as real) as amortized_cost_amount +from + aws_cost_by_record_type_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + linked_account_id, + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_region_monthly.md b/docs/tables/aws_cost_by_region_monthly.md index 49a658d4e..f9fb7ff54 100644 --- a/docs/tables/aws_cost_by_region_monthly.md +++ b/docs/tables/aws_cost_by_region_monthly.md @@ -17,6 +17,8 @@ Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `region` with supported operators `=` and `<>`. ## Examples diff --git a/docs/tables/aws_cost_by_resource_daily.md b/docs/tables/aws_cost_by_resource_daily.md new file mode 100644 index 000000000..6a6873ef8 --- /dev/null +++ b/docs/tables/aws_cost_by_resource_daily.md @@ -0,0 +1,313 @@ +--- +title: "Steampipe Table: aws_cost_by_resource_daily - Query Daily AWS Cost Explorer Resource Costs using SQL" +description: "Allows users to query AWS Cost Explorer Resource Costs on a daily basis, providing detailed cost information for individual AWS resources." +folder: "Cost Explorer" +--- + +# Table: aws_cost_by_resource_daily - Query AWS Cost Explorer Resource Costs using SQL + +AWS Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The Resource Cost feature provides detailed cost information at the individual resource level, helping you identify specific resources that drive your AWS costs. + +## Table Usage Guide + +The `aws_cost_by_resource_daily` table provides insights into resource-level costs within AWS Cost Explorer. This table allows you, as a financial analyst or cloud administrator, to query daily cost details for specific AWS resources, helping you understand spending patterns and identify cost optimization opportunities. The schema outlines various cost metrics including unblended cost, amortized cost, and usage quantity, along with resource identifiers and time periods. + +**Important Notes** + +- The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- By default, the table shows resource-level data with `dimension_key = 'LINKED_ACCOUNT'` and `dimension_value` set to the caller's AWS account ID for the last 14 days. Resource-level data at daily granularity is limited to the most recent **14 days**, and **there is no option to extend** this retention period, even if cost allocation data is enabled in AWS Cost Explorer. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `resource_id` with supported operators `=` and `<>`. + - `dimension_key` with supported operator `=`. + - `dimension_value` with supported operator `=`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + +## Examples + +### Basic info +Get a simple overview of daily resource costs with essential fields. + +```sql+postgres +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost +from + aws_cost_by_resource_daily +where + period_start >= current_date - interval '14 days' +order by + period_start desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost +from + aws_cost_by_resource_daily +where + period_start >= date('now', '-14 days') +order by + period_start desc; +``` + +### Daily cost for a specific EC2 instance in a region +Explore the daily costs associated with a particular EC2 instance in a specific region to track its financial impact over time. + +```sql+postgres +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + amortized_cost_amount::numeric::money as amortized_cost, + net_amortized_cost_amount::numeric::money as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_daily +where + resource_id = 'i-1234567890abcdef0' + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' + and period_start >= current_date - interval '14 days' +order by + period_start desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + cast(amortized_cost_amount as decimal) as amortized_cost, + cast(net_amortized_cost_amount as decimal) as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_daily +where + resource_id = 'i-1234567890abcdef0' + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' + and period_start >= date('now', '-14 days') +order by + period_start desc; +``` + +### Top 10 most expensive resources yesterday by region +Identify the resources that generated the highest costs yesterday in a specific region to focus cost optimization efforts. + +```sql+postgres +select + resource_id, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + amortized_cost_amount::numeric::money as amortized_cost, + net_amortized_cost_amount::numeric::money as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_daily +where + period_start = date_trunc('day', current_timestamp - interval '1 day') + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' +order by + blended_cost_amount desc +limit 10; +``` + +```sql+sqlite +select + resource_id, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + cast(amortized_cost_amount as decimal) as amortized_cost, + cast(net_amortized_cost_amount as decimal) as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_daily +where + period_start = date('now', '-1 day') + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' +order by + blended_cost_amount desc +limit 10; +``` + +### Daily costs for a specific resource by linked account +Analyze how costs for a particular resource are distributed across different linked accounts. + +```sql+postgres +select + resource_id, + period_start, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_daily +where + resource_id = 'arn:aws:rds:us-east-1:123456789012:db:my-database' + and dimension_key = 'LINKED_ACCOUNT' + and dimension_value = '123456789012' + and period_start >= date_trunc('month', current_date) +order by + period_start desc, + blended_cost_amount desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_daily +where + resource_id = 'arn:aws:rds:us-east-1:123456789012:db:my-database' + and dimension_key = 'LINKED_ACCOUNT' + and dimension_value = '123456789012' + and period_start >= date('now', 'start of month') +order by + period_start desc, + blended_cost_amount desc; +``` + +### Resources with unusual cost patterns by service +Identify resources that have experienced significant cost increases compared to their previous day within a specific service. + +```sql+postgres +with daily_costs as ( + select + resource_id, + dimension_key, + dimension_value, + period_start, + blended_cost_amount::numeric as cost, + net_unblended_cost_amount::numeric as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + lag(blended_cost_amount::numeric) over (partition by resource_id order by period_start) as previous_day_cost + from + aws_cost_by_resource_daily + where + period_start >= date_trunc('month', current_date) + and dimension_key = 'SERVICE' + and dimension_value = 'Amazon Elastic Compute Cloud - Compute' +) +select + resource_id, + dimension_key, + dimension_value, + period_start, + cost::money as cost, + net_cost::money as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + previous_day_cost::money as previous_day_cost, + ((cost - previous_day_cost) / nullif(previous_day_cost, 0) * 100)::numeric(10,2) as cost_increase_percent +from + daily_costs +where + previous_day_cost > 0 + and cost > previous_day_cost * 2 +order by + cost_increase_percent desc; +``` + +```sql+sqlite +with daily_costs as ( + select + resource_id, + dimension_key, + dimension_value, + period_start, + cast(blended_cost_amount as decimal) as cost, + cast(net_unblended_cost_amount as decimal) as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + lag(cast(blended_cost_amount as decimal)) over (partition by resource_id order by period_start) as previous_day_cost + from + aws_cost_by_resource_daily + where + period_start >= date('now', 'start of month') + and dimension_key = 'SERVICE' + and dimension_value = 'Amazon Elastic Compute Cloud - Compute' +) +select + resource_id, + dimension_key, + dimension_value, + period_start, + cost, + net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + previous_day_cost, + round(((cost - previous_day_cost) / case when previous_day_cost = 0 then null else previous_day_cost end * 100), 2) as cost_increase_percent +from + daily_costs +where + previous_day_cost > 0 + and cost > previous_day_cost * 2 +order by + cost_increase_percent desc; +``` diff --git a/docs/tables/aws_cost_by_resource_hourly.md b/docs/tables/aws_cost_by_resource_hourly.md new file mode 100644 index 000000000..15a73b81b --- /dev/null +++ b/docs/tables/aws_cost_by_resource_hourly.md @@ -0,0 +1,311 @@ +--- +title: "Steampipe Table: aws_cost_by_resource_hourly - Query Hourly AWS Cost Explorer Resource Costs using SQL" +description: "Allows users to query AWS Cost Explorer Resource Costs on an hourly basis, providing detailed cost information for individual AWS resources." +folder: "Cost Explorer" +--- + +# Table: aws_cost_by_resource_hourly - Query AWS Cost Explorer Resource Costs using SQL + +AWS Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The Resource Cost feature provides detailed cost information at the individual resource level with hourly granularity, helping you identify specific resources that drive your AWS costs and understand usage patterns throughout the day. + +## Table Usage Guide + +The `aws_cost_by_resource_hourly` table provides insights into resource-level costs within AWS Cost Explorer with hourly granularity. This table allows you, as a financial analyst or cloud administrator, to query hourly cost details for specific AWS resources, helping you understand intraday spending patterns and identify cost optimization opportunities. The schema outlines various cost metrics including unblended cost, amortized cost, and usage quantity, along with resource identifiers and time periods. + +**Important Notes** + +- The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- By default, the table shows resource-level data with `dimension_key = 'LINKED_ACCOUNT'` and `dimension_value` set to the caller's AWS account ID for the last 14 days. Even if hourly cost allocation data is enabled in AWS Cost Explorer, resource-level data remains limited to the most recent **14 days only** and **cannot be extended beyond that**. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `resource_id` with supported operators `=` and `<>`. + - `dimension_key` with supported operator `=`. + - `dimension_value` with supported operator `=`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + +## Examples + +### Basic info +Get a simple overview of hourly resource costs with essential fields. + +```sql+postgres +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost +from + aws_cost_by_resource_hourly +where + period_start >= current_date - interval '14 days' +order by + period_start desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost +from + aws_cost_by_resource_hourly +where + period_start >= date('now', '-14 days') +order by + period_start desc; +``` + +### Hourly cost for a specific EC2 instance in a region today +Explore the hour-by-hour costs of a particular EC2 instance in a specific region to track its financial impact throughout the day. + +```sql+postgres +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + amortized_cost_amount::numeric::money as amortized_cost, + net_amortized_cost_amount::numeric::money as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_hourly +where + resource_id = 'i-1234567890abcdef0' + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' + and period_start >= current_date - interval '14 days' +order by + period_start desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + cast(amortized_cost_amount as decimal) as amortized_cost, + cast(net_amortized_cost_amount as decimal) as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_hourly +where + resource_id = 'i-1234567890abcdef0' + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' + and period_start >= date('now', '-14 days') +order by + period_start desc; +``` + +### Peak cost hours for resources by service +Identify the hours when resources generate their highest costs within a specific service to optimize scheduling and usage patterns. + +```sql+postgres +select + resource_id, + dimension_key, + dimension_value, + period_start, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + extract(hour from period_start) as hour_of_day +from + aws_cost_by_resource_hourly +where + period_start >= date_trunc('day', current_timestamp - interval '1 day') + and dimension_key = 'SERVICE' + and dimension_value = 'Amazon Elastic Compute Cloud - Compute' + and blended_cost_amount > 0 +order by + blended_cost_amount desc +limit 10; +``` + +```sql+sqlite +select + resource_id, + dimension_key, + dimension_value, + period_start, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + strftime('%H', period_start) as hour_of_day +from + aws_cost_by_resource_hourly +where + period_start >= date('now', '-1 day') + and dimension_key = 'SERVICE' + and dimension_value = 'Amazon Elastic Compute Cloud - Compute' + and blended_cost_amount > 0 +order by + blended_cost_amount desc +limit 10; +``` + +### Average hourly costs by hour of day for a linked account +Analyze cost patterns across different hours of the day for a specific linked account to identify peak usage times and potential cost optimization opportunities. + +```sql+postgres +select + extract(hour from period_start) as hour_of_day, + count(*) as sample_count, + avg(blended_cost_amount)::numeric::money as avg_hourly_cost, + avg(net_unblended_cost_amount)::numeric::money as avg_net_cost, + sum(blended_cost_amount)::numeric::money as total_cost, + sum(net_unblended_cost_amount)::numeric::money as total_net_cost, + sum(usage_quantity_amount) as total_usage, + sum(normalized_usage_amount) as total_normalized_usage +from + aws_cost_by_resource_hourly +where + period_start >= date_trunc('day', current_timestamp - interval '7 days') + and dimension_key = 'LINKED_ACCOUNT' + and dimension_value = '123456789012' +group by + hour_of_day +order by + hour_of_day; +``` + +```sql+sqlite +select + strftime('%H', period_start) as hour_of_day, + count(*) as sample_count, + round(avg(cast(blended_cost_amount as decimal)), 2) as avg_hourly_cost, + round(avg(cast(net_unblended_cost_amount as decimal)), 2) as avg_net_cost, + round(sum(cast(blended_cost_amount as decimal)), 2) as total_cost, + round(sum(cast(net_unblended_cost_amount as decimal)), 2) as total_net_cost, + sum(usage_quantity_amount) as total_usage, + sum(normalized_usage_amount) as total_normalized_usage +from + aws_cost_by_resource_hourly +where + period_start >= date('now', '-7 days') + and dimension_key = 'LINKED_ACCOUNT' + and dimension_value = '123456789012' +group by + hour_of_day +order by + hour_of_day; +``` + +### Resources with unusual cost spikes by region +Identify resources that have experienced significant cost increases compared to their previous hour within a specific region. + +```sql+postgres +with hourly_costs as ( + select + resource_id, + dimension_key, + dimension_value, + period_start, + blended_cost_amount::numeric as cost, + net_unblended_cost_amount::numeric as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + lag(blended_cost_amount::numeric) over (partition by resource_id order by period_start) as previous_hour_cost + from + aws_cost_by_resource_hourly + where + period_start >= date_trunc('day', current_timestamp - interval '1 day') + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' +) +select + resource_id, + dimension_key, + dimension_value, + period_start, + cost::money as cost, + net_cost::money as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + previous_hour_cost::money as previous_hour_cost, + ((cost - previous_hour_cost) / nullif(previous_hour_cost, 0) * 100)::numeric(10,2) as cost_increase_percent +from + hourly_costs +where + previous_hour_cost > 0 + and cost > previous_hour_cost * 2 +order by + cost_increase_percent desc; +``` + +```sql+sqlite +with hourly_costs as ( + select + resource_id, + dimension_key, + dimension_value, + period_start, + cast(blended_cost_amount as decimal) as cost, + cast(net_unblended_cost_amount as decimal) as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + lag(cast(blended_cost_amount as decimal)) over (partition by resource_id order by period_start) as previous_hour_cost + from + aws_cost_by_resource_hourly + where + period_start >= date('now', '-1 day') + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' +) +select + resource_id, + dimension_key, + dimension_value, + period_start, + cost, + net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + previous_hour_cost, + round(((cost - previous_hour_cost) / case when previous_hour_cost = 0 then null else previous_hour_cost end * 100), 2) as cost_increase_percent +from + hourly_costs +where + previous_hour_cost > 0 + and cost > previous_hour_cost * 2 +order by + cost_increase_percent desc; +``` diff --git a/docs/tables/aws_cost_by_resource_monthly.md b/docs/tables/aws_cost_by_resource_monthly.md new file mode 100644 index 000000000..7964c3e37 --- /dev/null +++ b/docs/tables/aws_cost_by_resource_monthly.md @@ -0,0 +1,337 @@ +--- +title: "Steampipe Table: aws_cost_by_resource_monthly - Query Monthly AWS Cost Explorer Resource Costs using SQL" +description: "Allows users to query AWS Cost Explorer Resource Costs on a monthly basis, providing detailed cost information for individual AWS resources." +folder: "Cost Explorer" +--- + +# Table: aws_cost_by_resource_monthly - Query AWS Cost Explorer Resource Costs using SQL + +AWS Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The Resource Cost feature provides detailed cost information at the individual resource level with monthly granularity, helping you identify specific resources that drive your AWS costs and understand long-term cost patterns. + +## Table Usage Guide + +The `aws_cost_by_resource_monthly` table provides insights into resource-level costs within AWS Cost Explorer with monthly granularity. This table allows you, as a financial analyst or cloud administrator, to query monthly cost details for specific AWS resources, helping you understand long-term spending patterns and identify cost optimization opportunities. The schema outlines various cost metrics including unblended cost, amortized cost, and usage quantity, along with resource identifiers and time periods. + +**Important Notes** + +- The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- By default, the table shows resource-level data with `dimension_key = 'LINKED_ACCOUNT'` and `dimension_value` set to the caller's AWS account ID for the last 14 days. To access monthly resource-level data beyond 14 days, you must enable **historical cost allocation data** in your AWS Cost Explorer settings, which extends data retention up to **38 months**. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `resource_id` with supported operators `=` and `<>`. + - `dimension_key` with supported operator `=`. + - `dimension_value` with supported operator `=`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + +## Examples + +### Basic info +Get a simple overview of resource costs with essential fields. + +```sql+postgres +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost +from + aws_cost_by_resource_monthly +where + period_start >= current_date - interval '14 days' +order by + period_start desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost +from + aws_cost_by_resource_monthly +where + period_start >= date('now', '-14 days') +order by + period_start desc; +``` + +### Monthly cost trend for a specific EC2 instance in a region +Analyze the month-over-month cost trend for a particular EC2 instance in a specific region to track its financial impact over time. + +```sql+postgres +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + amortized_cost_amount::numeric::money as amortized_cost, + net_amortized_cost_amount::numeric::money as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_monthly +where + resource_id = 'i-1234567890abcdef0' + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' + and period_start >= date_trunc('year', current_date) +order by + period_start desc; +``` + +```sql+sqlite +select + resource_id, + period_start, + period_end, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + cast(amortized_cost_amount as decimal) as amortized_cost, + cast(net_amortized_cost_amount as decimal) as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_monthly +where + resource_id = 'i-1234567890abcdef0' + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' + and period_start >= date('now', 'start of year') +order by + period_start desc; +``` + +### Top 10 most expensive resources this month by service +Identify the resources that are generating the highest costs in the current month within a specific service to focus cost optimization efforts. + +```sql+postgres +select + resource_id, + dimension_key, + dimension_value, + blended_cost_amount::numeric::money as blended_cost, + unblended_cost_amount::numeric::money as unblended_cost, + net_unblended_cost_amount::numeric::money as net_unblended_cost, + amortized_cost_amount::numeric::money as amortized_cost, + net_amortized_cost_amount::numeric::money as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_monthly +where + period_start = date_trunc('month', current_date) + and dimension_key = 'SERVICE' + and dimension_value = 'Amazon Elastic Compute Cloud - Compute' +order by + blended_cost_amount desc +limit 10; +``` + +```sql+sqlite +select + resource_id, + dimension_key, + dimension_value, + cast(blended_cost_amount as decimal) as blended_cost, + cast(unblended_cost_amount as decimal) as unblended_cost, + cast(net_unblended_cost_amount as decimal) as net_unblended_cost, + cast(amortized_cost_amount as decimal) as amortized_cost, + cast(net_amortized_cost_amount as decimal) as net_amortized_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit +from + aws_cost_by_resource_monthly +where + period_start = date('now', 'start of month') + and dimension_key = 'SERVICE' + and dimension_value = 'Amazon Elastic Compute Cloud - Compute' +order by + blended_cost_amount desc +limit 10; +``` + +### Cost trend analysis by resource type and linked account +Analyze how costs for different types of resources have changed over time within a specific linked account to identify trends and potential areas for optimization. + +```sql+postgres +with monthly_costs as ( + select + split_part(resource_id, '/', 1) as resource_type, + period_start, + sum(blended_cost_amount)::numeric::money as total_cost, + sum(net_unblended_cost_amount)::numeric::money as net_cost, + sum(usage_quantity_amount) as total_usage, + sum(normalized_usage_amount) as total_normalized_usage, + count(distinct resource_id) as resource_count + from + aws_cost_by_resource_monthly + where + period_start >= date_trunc('year', current_date) + and dimension_key = 'LINKED_ACCOUNT' + and dimension_value = '123456789012' + group by + resource_type, + period_start +) +select + resource_type, + period_start, + total_cost, + net_cost, + total_usage, + total_normalized_usage, + resource_count, + lag(total_cost) over (partition by resource_type order by period_start) as previous_month_cost +from + monthly_costs +order by + resource_type, + period_start desc; +``` + +```sql+sqlite +with monthly_costs as ( + select + substr(resource_id, 1, instr(resource_id, '/') - 1) as resource_type, + period_start, + round(sum(cast(blended_cost_amount as decimal)), 2) as total_cost, + round(sum(cast(net_unblended_cost_amount as decimal)), 2) as net_cost, + sum(usage_quantity_amount) as total_usage, + sum(normalized_usage_amount) as total_normalized_usage, + count(distinct resource_id) as resource_count + from + aws_cost_by_resource_monthly + where + period_start >= date('now', 'start of year') + and dimension_key = 'LINKED_ACCOUNT' + and dimension_value = '123456789012' + group by + resource_type, + period_start +) +select + resource_type, + period_start, + total_cost, + net_cost, + total_usage, + total_normalized_usage, + resource_count, + lag(total_cost) over (partition by resource_type order by period_start) as previous_month_cost +from + monthly_costs +order by + resource_type, + period_start desc; +``` + +### Resources with significant month-over-month cost increases by region +Identify resources that have experienced substantial cost increases compared to the previous month within a specific region, which might indicate potential issues or optimization opportunities. + +```sql+postgres +with monthly_costs as ( + select + resource_id, + dimension_key, + dimension_value, + period_start, + blended_cost_amount::numeric as cost, + net_unblended_cost_amount::numeric as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + lag(blended_cost_amount::numeric) over (partition by resource_id order by period_start) as previous_month_cost + from + aws_cost_by_resource_monthly + where + period_start >= date_trunc('year', current_date) + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' +) +select + resource_id, + dimension_key, + dimension_value, + period_start, + cost::money as cost, + net_cost::money as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + previous_month_cost::money as previous_month_cost, + ((cost - previous_month_cost) / nullif(previous_month_cost, 0) * 100)::numeric(10,2) as cost_increase_percent +from + monthly_costs +where + previous_month_cost > 0 + and cost > previous_month_cost * 1.5 +order by + cost_increase_percent desc; +``` + +```sql+sqlite +with monthly_costs as ( + select + resource_id, + dimension_key, + dimension_value, + period_start, + cast(blended_cost_amount as decimal) as cost, + cast(net_unblended_cost_amount as decimal) as net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + lag(cast(blended_cost_amount as decimal)) over (partition by resource_id order by period_start) as previous_month_cost + from + aws_cost_by_resource_monthly + where + period_start >= date('now', 'start of year') + and dimension_key = 'REGION' + and dimension_value = 'us-east-1' +) +select + resource_id, + dimension_key, + dimension_value, + period_start, + cost, + net_cost, + usage_quantity_amount, + usage_quantity_unit, + normalized_usage_amount, + normalized_usage_unit, + previous_month_cost, + round(((cost - previous_month_cost) / case when previous_month_cost = 0 then null else previous_month_cost end * 100), 2) as cost_increase_percent +from + monthly_costs +where + previous_month_cost > 0 + and cost > previous_month_cost * 1.5 +order by + cost_increase_percent desc; +``` diff --git a/docs/tables/aws_cost_by_service_daily.md b/docs/tables/aws_cost_by_service_daily.md index c2d6c5106..abb64d4a9 100644 --- a/docs/tables/aws_cost_by_service_daily.md +++ b/docs/tables/aws_cost_by_service_daily.md @@ -12,10 +12,14 @@ The AWS Cost Explorer is a tool that allows you to visualize, understand, and ma The `aws_cost_by_service_daily` table in Steampipe provides you with information about the daily cost breakdown by AWS service within AWS Cost Explorer. This table allows you, as a financial analyst or cloud administrator, to query cost-specific details, including total cost, unit, and service name on a daily basis. You can utilize this table to track your spending on AWS services, monitor cost trends, and identify potential cost-saving opportunities. The schema outlines the various attributes of your cost data, including your linked account, service, currency, and amount. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_daily` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by day, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_daily` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by day, for the last year. **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `service` with supported operators `=` and `<>`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -31,7 +35,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_service_daily order by service, @@ -47,7 +51,7 @@ select cast(amortized_cost_amount as decimal), cast(net_unblended_cost_amount as decimal), cast(net_amortized_cost_amount as decimal) -from +from aws_cost_by_service_daily order by service, @@ -63,7 +67,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_daily group by service @@ -77,7 +81,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_daily group by service @@ -93,7 +97,7 @@ select service, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_daily group by service @@ -107,7 +111,7 @@ select service, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_daily group by service @@ -124,7 +128,7 @@ select service, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_daily group by service @@ -138,7 +142,7 @@ select service, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_daily group by service @@ -158,7 +162,7 @@ with ranked_costs as ( period_start, unblended_cost_amount::numeric::money, rank() over(partition by service order by unblended_cost_amount desc) - from + from aws_cost_by_service_daily ) select * from ranked_costs where rank <= 10; @@ -166,4 +170,39 @@ select * from ranked_costs where rank <= 10; ```sql+sqlite Error: SQLite does not support the rank window function. +``` + +### Get only daily blended and unblended cost details for the services within a custom time frame +Focusing on blended and unblended costs within a custom time frame offers a clear, detailed perspective on where money is being spent in the cloud, enabling more strategic financial planning and better resource allocation. + +```sql+postgres +select + service, + period_start, + blended_cost_amount::numeric::money, + unblended_cost_amount::numeric::money +from + aws_cost_by_service_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + service, + period_start; +``` + +```sql+sqlite +select + service, + period_start, + cast(blended_cost_amount as decimal), + cast(unblended_cost_amount as decimal) +from + aws_cost_by_service_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + service, + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_service_monthly.md b/docs/tables/aws_cost_by_service_monthly.md index b318db0db..4574d8792 100644 --- a/docs/tables/aws_cost_by_service_monthly.md +++ b/docs/tables/aws_cost_by_service_monthly.md @@ -12,11 +12,15 @@ The AWS Cost Explorer Service provides detailed information about your AWS costs The `aws_cost_by_service_monthly` table in Steampipe provides you with information about the monthly cost breakdown by service within AWS Cost Explorer. This table allows you, as a financial analyst, DevOps engineer, or other stakeholder, to query cost-specific details, including the service name, the cost associated with it, and the currency code. You can utilize this table to gather insights on cost management, such as tracking AWS expenses, identifying cost trends, and auditing. The schema outlines the various attributes of the cost information, including the service name, cost, and currency code. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_monthly` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by month, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_monthly` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by month, for the last year. **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `service` with supported operators `=` and `<>`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -32,7 +36,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_service_monthly order by service, @@ -48,7 +52,7 @@ select cast(amortized_cost_amount as decimal), cast(net_unblended_cost_amount as decimal), cast(net_amortized_cost_amount as decimal) -from +from aws_cost_by_service_monthly order by service, @@ -66,7 +70,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_monthly group by service @@ -80,7 +84,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_monthly group by service @@ -96,7 +100,7 @@ select service, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_monthly group by service @@ -110,7 +114,7 @@ select service, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_monthly group by service @@ -128,7 +132,7 @@ select service, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_monthly group by service @@ -142,7 +146,7 @@ select service, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_monthly group by service @@ -162,7 +166,7 @@ with ranked_costs as ( period_start, unblended_cost_amount::numeric::money, rank() over(partition by service order by unblended_cost_amount desc) - from + from aws_cost_by_service_monthly ) select * from ranked_costs where rank = 1; @@ -181,8 +185,8 @@ with cost_data as ( service, period_start, unblended_cost_amount as this_month, - lag(unblended_cost_amount,-1) over(partition by service order by period_start desc) as previous_month - from + lag(unblended_cost_amount, -1) over(partition by service order by period_start desc) as previous_month + from aws_cost_by_service_monthly ) select @@ -190,10 +194,10 @@ select period_start, this_month::numeric::money, previous_month::numeric::money, - case + case when previous_month = 0 and this_month = 0 then 0 when previous_month = 0 then 999 - else round((100 * ( (this_month - previous_month) / previous_month))::numeric, 2) + else round((100 * ( (this_month - previous_month) / previous_month))::numeric, 2) end as percent_change from cost_data @@ -208,8 +212,8 @@ with cost_data as ( service, period_start, unblended_cost_amount as this_month, - lag(unblended_cost_amount,-1) over(partition by service order by period_start desc) as previous_month - from + lag(unblended_cost_amount, -1) over(partition by service order by period_start desc) as previous_month + from aws_cost_by_service_monthly ) select @@ -217,14 +221,49 @@ select period_start, this_month, previous_month, - case + case when previous_month = 0 and this_month = 0 then 0 when previous_month = 0 then 999 - else round((100 * ( (this_month - previous_month) / previous_month)), 2) + else round((100 * ( (this_month - previous_month) / previous_month)), 2) end as percent_change from cost_data order by service, period_start; +``` + +### Get only monthly blended and unblended cost details for the services within a custom time frame +Focusing on blended and unblended costs within a custom time frame offers a clear, detailed perspective on where money is being spent in the cloud, enabling more strategic financial planning and better resource allocation. + +```sql+postgres +select + service, + period_start, + blended_cost_amount::numeric::money, + unblended_cost_amount::numeric::money +from + aws_cost_by_service_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + service, + period_start; +``` + +```sql+sqlite +select + service, + period_start, + cast(blended_cost_amount as decimal), + cast(unblended_cost_amount as decimal) +from + aws_cost_by_service_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +order by + service, + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_service_usage_type_daily.md b/docs/tables/aws_cost_by_service_usage_type_daily.md index 525014c7f..4e5799b2c 100644 --- a/docs/tables/aws_cost_by_service_usage_type_daily.md +++ b/docs/tables/aws_cost_by_service_usage_type_daily.md @@ -12,10 +12,15 @@ The AWS Cost Explorer Service usage type daily is a feature of AWS Cost Manageme The `aws_cost_by_service_usage_type_daily` table in Steampipe provides you with information about daily usage type and costs for each AWS service within AWS Cost Explorer. This table allows you, as a DevOps engineer, financial analyst, or cloud architect, to query daily-specific details, including usage amount, usage unit, and the corresponding service cost. You can utilize this table to gather insights on daily usage and costs, such as identifying high-cost services, tracking usage patterns, and managing your AWS expenses. The schema outlines the various attributes of the AWS service cost, including the service name, usage type, usage amount, usage start and end dates, and the unblended cost. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_usage_type_daily` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by day, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_usage_type_daily` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by day, for the last year. **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `service` with supported operators `=` and `<>`. + - `usage_type` with supported operators `=` and `<>`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -32,7 +37,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_service_usage_type_daily order by service, @@ -49,7 +54,7 @@ select CAST(amortized_cost_amount AS NUMERIC) AS amortized_cost_amount, CAST(net_unblended_cost_amount AS NUMERIC) AS net_unblended_cost_amount, CAST(net_amortized_cost_amount AS NUMERIC) AS net_amortized_cost_amount -from +from aws_cost_by_service_usage_type_daily order by service, @@ -68,7 +73,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_usage_type_daily group by service, @@ -85,7 +90,7 @@ select min(unblended_cost_amount) as min, max(unblended_cost_amount) as max, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_usage_type_daily group by service, @@ -104,7 +109,7 @@ select usage_type, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_usage_type_daily group by service, @@ -120,7 +125,7 @@ select usage_type, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_usage_type_daily group by service, @@ -140,7 +145,7 @@ select usage_type, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_usage_type_daily group by service, @@ -156,7 +161,7 @@ select usage_type, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_usage_type_daily group by service, @@ -164,4 +169,47 @@ group by order by sum desc limit 10; +``` + +### Min, Max, and average daily blended_cost_amount by service and usage type for a specific time range +Gain insights into your AWS service usage by evaluating the minimum, maximum, and average monthly blended costs associated with each service and usage type. + +```sql+postgres +select + service, + usage_type, + min(blended_cost_amount)::numeric::money as min, + max(blended_cost_amount)::numeric::money as max, + avg(blended_cost_amount)::numeric::money as average +from + aws_cost_by_service_usage_type_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +group by + service, + usage_type +order by + service, + usage_type; +``` + +```sql+sqlite +select + service, + usage_type, + min(cast(blended_cost_amount as numeric)) as min, + max(cast(blended_cost_amount as numeric)) as max, + avg(cast(blended_cost_amount as numeric)) as average +from + aws_cost_by_service_usage_type_daily +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +group by + service, + usage_type +order by + service, + usage_type; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_service_usage_type_monthly.md b/docs/tables/aws_cost_by_service_usage_type_monthly.md index 89b59acca..9ef9a7690 100644 --- a/docs/tables/aws_cost_by_service_usage_type_monthly.md +++ b/docs/tables/aws_cost_by_service_usage_type_monthly.md @@ -12,10 +12,15 @@ The AWS Cost Explorer Service is a tool that enables you to view and analyze you The `aws_cost_by_service_usage_type_monthly` table in Steampipe provides you with information about the monthly cost data per service and usage type within AWS Cost Explorer Service. This table allows you, as a financial analyst or cloud cost manager, to query detailed cost data, including the service name, usage type, cost, and currency. You can utilize this table to gather insights on monthly AWS costs, such as cost per service, cost per usage type, and the total monthly cost. The schema outlines the various attributes of the cost data, including the service name, usage type, cost, and the currency used. -Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_usage_type_monthly` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by month, for the last year. +Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs and usage. The `aws_cost_by_service_usage_type_monthly` table provides you with a simplified view of cost for services in your account (or all linked accounts when run against the organization master), summarized by month, for the last year. **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `service` with supported operators `=` and `<>`. + - `usage_type` with supported operators `=` and `<>`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -32,7 +37,7 @@ select amortized_cost_amount::numeric::money, net_unblended_cost_amount::numeric::money, net_amortized_cost_amount::numeric::money -from +from aws_cost_by_service_usage_type_monthly order by service, @@ -49,7 +54,7 @@ select cast(amortized_cost_amount as decimal), cast(net_unblended_cost_amount as decimal), cast(net_amortized_cost_amount as decimal) -from +from aws_cost_by_service_usage_type_monthly order by service, @@ -66,7 +71,7 @@ select min(unblended_cost_amount)::numeric::money as min, max(unblended_cost_amount)::numeric::money as max, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_usage_type_monthly group by service, @@ -83,7 +88,7 @@ select min(cast(unblended_cost_amount as numeric)) as min, max(cast(unblended_cost_amount as numeric)) as max, avg(cast(unblended_cost_amount as numeric)) as average -from +from aws_cost_by_service_usage_type_monthly group by service, @@ -102,7 +107,7 @@ select usage_type, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_usage_type_monthly group by service, @@ -118,7 +123,7 @@ select usage_type, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_usage_type_monthly group by service, @@ -137,7 +142,7 @@ select usage_type, sum(unblended_cost_amount)::numeric::money as sum, avg(unblended_cost_amount)::numeric::money as average -from +from aws_cost_by_service_usage_type_monthly group by service, @@ -153,7 +158,7 @@ select usage_type, sum(unblended_cost_amount) as sum, avg(unblended_cost_amount) as average -from +from aws_cost_by_service_usage_type_monthly group by service, @@ -161,4 +166,47 @@ group by order by sum desc limit 10; +``` + +### Min, Max, and average monthly blended_cost_amount by service and usage type for a specific time range +Gain insights into your AWS service usage by evaluating the minimum, maximum, and average monthly blended costs associated with each service and usage type. + +```sql+postgres +select + service, + usage_type, + min(blended_cost_amount)::numeric::money as min, + max(blended_cost_amount)::numeric::money as max, + avg(blended_cost_amount)::numeric::money as average +from + aws_cost_by_service_usage_type_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +group by + service, + usage_type +order by + service, + usage_type; +``` + +```sql+sqlite +select + service, + usage_type, + min(cast(blended_cost_amount as numeric)) as min, + max(cast(blended_cost_amount as numeric)) as max, + avg(cast(blended_cost_amount as numeric)) as average +from + aws_cost_by_service_usage_type_monthly +where + period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +group by + service, + usage_type +order by + service, + usage_type; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_by_tag.md b/docs/tables/aws_cost_by_tag.md index 5707c1315..841c94eee 100644 --- a/docs/tables/aws_cost_by_tag.md +++ b/docs/tables/aws_cost_by_tag.md @@ -17,6 +17,10 @@ Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `tag_key_2` with supported operators `=` and `<>`. + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -126,4 +130,40 @@ where ```sql+sqlite Error: SQLite does not support the rank window function. -``` \ No newline at end of file +``` + +### Get only blended cost and usage details within a custom time frame +This query is useful for organizations to get only blended cost and usage, within a specified time frame, and on a daily granularity. + +```sql+postgres +select + tag_key_1, + tag_value_1, + period_start, + blended_cost_amount::numeric::money +from + aws_cost_by_tag +where + granularity = 'DAILY' + and period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +and + tag_key_1 = 'Name'; +``` + +```sql+sqlite +select + tag_key_1, + tag_value_1, + period_start, + cast(blended_cost_amount as numeric) as blended_cost_amount +from + aws_cost_by_tag +where + granularity = 'DAILY' + and period_start = '2023-05-01T05:30:00+05:30' + and period_end = '2023-05-05T05:30:00+05:30' +and + tag_key_1 = 'Name'; +``` + diff --git a/docs/tables/aws_cost_forecast_daily.md b/docs/tables/aws_cost_forecast_daily.md index fc0aa9a4f..d3b473569 100644 --- a/docs/tables/aws_cost_forecast_daily.md +++ b/docs/tables/aws_cost_forecast_daily.md @@ -16,6 +16,9 @@ Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -24,23 +27,54 @@ Explore the daily cost forecast for AWS, allowing you to understand and predict ```sql+postgres -select +select period_start, period_end, - mean_value::numeric::money -from + mean_value::numeric::money +from aws_cost_forecast_daily order by period_start; ``` ```sql+sqlite -select +select period_start, period_end, - cast(mean_value as decimal) as mean_value -from + cast(mean_value as decimal) as mean_value +from aws_cost_forecast_daily order by period_start; +``` + +### Get forecast cost and usage details within a custom time frame +This query is useful for organizations to get a forecast, within a specified time frame, and on a daily granularity. + +```sql+postgres +select + period_start, + period_end, + mean_value::numeric::money +from + aws_cost_forecast_daily +where + period_start = '2024-05-01T05:30:00+05:30' + and period_end = '2024-05-05T05:30:00+05:30' +order by + period_start; +``` + +```sql+sqlite +select + period_start, + period_end, + cast(mean_value as real) as mean_value +from + aws_cost_forecast_daily +where + period_start = '2024-05-01T05:30:00+05:30' + and period_end = '2024-05-05T05:30:00+05:30' +order by + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_forecast_monthly.md b/docs/tables/aws_cost_forecast_monthly.md index ac0c43b87..adc535fb9 100644 --- a/docs/tables/aws_cost_forecast_monthly.md +++ b/docs/tables/aws_cost_forecast_monthly.md @@ -17,6 +17,9 @@ Amazon Cost Explorer helps you visualize, understand, and manage your AWS costs **Important Notes** - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request you make will incur a cost of $0.01. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -25,30 +28,28 @@ Assess the elements within your AWS cost forecast on a monthly basis to better u ```sql+postgres -select +select period_start, period_end, - mean_value::numeric::money -from + mean_value::numeric::money +from aws_cost_forecast_monthly order by period_start; ``` ```sql+sqlite -select +select period_start, period_end, cast(mean_value as real) as mean_value -from +from aws_cost_forecast_monthly order by period_start; ``` - - ### Month on month forecasted growth Gain insights into the monthly growth forecast by comparing the current month's mean value with the previous month's. This allows for a clear understanding of the growth percentage change, which can aid in future planning and budgeting. @@ -58,17 +59,17 @@ with cost_data as ( period_start, mean_value as this_month, lag(mean_value,-1) over(order by period_start desc) as previous_month - from + from aws_cost_forecast_monthly ) select period_start, this_month::numeric::money, previous_month::numeric::money, - case + case when previous_month = 0 and this_month = 0 then 0 when previous_month = 0 then 999 - else round((100 * ( (this_month - previous_month) / previous_month))::numeric, 2) + else round((100 * ( (this_month - previous_month) / previous_month))::numeric, 2) end as percent_change from cost_data @@ -82,20 +83,51 @@ with cost_data as ( period_start, mean_value as this_month, lag(mean_value,-1) over(order by period_start desc) as previous_month - from + from aws_cost_forecast_monthly ) select period_start, this_month, previous_month, - case + case when previous_month = 0 and this_month = 0 then 0 when previous_month = 0 then 999 - else round((100 * ( (this_month - previous_month) / previous_month)), 2) + else round((100 * ( (this_month - previous_month) / previous_month)), 2) end as percent_change from cost_data order by period_start; +``` + +### Get forecast cost and usage details within a custom time frame +This query is useful for organizations to get a forecast, within a specified time frame, and on a monthly granularity. + +```sql+postgres +select + period_start, + period_end, + mean_value::numeric::money +from + aws_cost_forecast_monthly +where + period_start = '2024-05-01T05:30:00+05:30' + and period_end = '2024-05-05T05:30:00+05:30' +order by + period_start; +``` + +```sql+sqlite +select + period_start, + period_end, + cast(mean_value as real) as mean_value +from + aws_cost_forecast_monthly +where + period_start = '2024-05-01T05:30:00+05:30' + and period_end = '2024-05-05T05:30:00+05:30' +order by + period_start; ``` \ No newline at end of file diff --git a/docs/tables/aws_cost_usage.md b/docs/tables/aws_cost_usage.md index b3518863f..6d668c9d8 100644 --- a/docs/tables/aws_cost_usage.md +++ b/docs/tables/aws_cost_usage.md @@ -15,8 +15,12 @@ The `aws_cost_usage` table in Steampipe provides you with information about cost Amazon Cost Explorer assists you in visualizing, understanding, and managing your AWS costs and usage. The `aws_cost_usage` table offers you a simplified yet flexible view of cost for your account (or all linked accounts when run against the organization master). You need to specify a granularity (`MONTHLY`, `DAILY`), and 2 dimension types (`AZ` , `INSTANCE_TYPE`, `LEGAL_ENTITY_NAME`, `LINKED_ACCOUNT`, `OPERATION`, `PLATFORM`, `PURCHASE_TYPE`, `SERVICE`, `TENANCY`, `RECORD_TYPE`, and `USAGE_TYPE`) **Important Notes** + - This table requires an '=' qualifier for all of the following columns: granularity, dimension_type_1, dimension_type_2. - The [pricing for the Cost Explorer API](https://aws.amazon.com/aws-cost-management/pricing/) is per API request - Each request will incur a cost of $0.01 for you. +- This table supports optional quals. Queries with optional quals are optimised to reduce query time and cost. Optional quals are supported for the following columns: + - `period_start` with supported operators `=`, `>=`, `>`, `<=`, and `<`. + - `period_end` with supported operators `=`, `>=`, `>`, `<=`, and `<`. ## Examples @@ -57,6 +61,49 @@ order by period_start; ``` +### Get unblended cost and usage details within a custom time frame +This query is useful for organizations looking to gain a detailed understanding of their AWS costs on a per-service and per-account basis, within a specified time frame, and on a monthly granularity. + +```sql+postgres +select + period_start, + period_end, + dimension_1 as account_id, + dimension_2 as service_name, + net_unblended_cost_amount::numeric::money +from + aws_cost_usage +where + granularity = 'MONTHLY' + and dimension_type_1 = 'LINKED_ACCOUNT' + and dimension_type_2 = 'SERVICE' + and period_start = '2023-04-01T05:30:00+05:30' + and period_end = '2023-04-05T05:30:00+05:30' +order by + dimension_1, + period_start; +``` + +```sql+sqlite +select + period_start, + period_end, + dimension_1 as account_id, + dimension_2 as service_name, + net_unblended_cost_amount::numeric::money +from + aws_cost_usage +where + granularity = 'MONTHLY' + and dimension_type_1 = 'LINKED_ACCOUNT' + and dimension_type_2 = 'SERVICE' + and period_start = '2023-04-01T05:30:00+05:30' + and period_end = '2023-04-05T05:30:00+05:30' +order by + dimension_1, + period_start; +``` + ### Top 5 most expensive services (net unblended cost) in each account Identify the top five most costly services in each account to manage and optimize your AWS expenses effectively. @@ -84,7 +131,7 @@ select * from ranked_costs where rank <=5 ``` ```sql+sqlite -Error: SQLite does not support rank window functions. +Error: SQLite does not support the rank window function. ``` ### Monthly net unblended cost by account and record type @@ -161,4 +208,4 @@ where order by dimension_1, period_start; -``` \ No newline at end of file +``` diff --git a/docs/tables/aws_datasync_task.md b/docs/tables/aws_datasync_task.md new file mode 100644 index 000000000..bbef77c29 --- /dev/null +++ b/docs/tables/aws_datasync_task.md @@ -0,0 +1,174 @@ +--- +title: "Steampipe Table: aws_datasync_task - Query AWS DataSync Tasks using SQL" +description: "Allows users to query AWS DataSync Tasks to retrieve detailed information about each task configuration." +folder: "DataSync" +--- + +# Table: aws_datasync_task - Query AWS DataSync Tasks using SQL + +AWS DataSync is a data transfer service that makes it easy and fast to move data between on-premises storage systems and AWS Storage services, as well as between AWS Storage services. DataSync Tasks define the data transfer operations, including source and destination locations, transfer options, and scheduling. + +## Table Usage Guide + +The `aws_datasync_task` table in Steampipe provides you with information about DataSync tasks within AWS. This table allows you, as a DevOps engineer, to query task-specific details, including task ARN, status, source and destination locations, transfer options, and associated metadata. You can utilize this table to gather insights on tasks, such as their current status, error details, transfer configurations, and associated tags. + +## Examples + +### Basic info +Explore the features and settings of your AWS DataSync tasks to better understand their configuration, such as status, source and destination locations, and regional distribution. This can help in assessing task performance and operational efficiency. + +```sql+postgres +select + name, + arn, + status, + source_location_arn, + destination_location_arn, + creation_time, + region +from + aws_datasync_task; +``` + +```sql+sqlite +select + name, + arn, + status, + source_location_arn, + destination_location_arn, + creation_time, + region +from + aws_datasync_task; +``` + +### Get task options configuration details +Determine the transfer options for each task to understand how data is being transferred, including bandwidth limits, verification settings, and other configuration options. + +```sql+postgres +select + name, + status, + options::json ->> 'VerifyMode' as verify_mode, + options::json ->> 'Atime' as atime, + options::json ->> 'Mtime' as mtime, + options::json ->> 'Uid' as uid, + options::json ->> 'Gid' as gid, + options::json ->> 'PreserveDeletedFiles' as preserve_deleted_files, + options::json ->> 'PreserveDevices' as preserve_devices, + options::json ->> 'PosixPermissions' as posix_permissions, + options::json ->> 'BytesPerSecond' as bytes_per_second, + options::json ->> 'TaskQueueing' as task_queueing, + options::json ->> 'LogLevel' as log_level, + options::json ->> 'TransferMode' as transfer_mode +from + aws_datasync_task; +``` + +```sql+sqlite +select + name, + status, + json_extract(options, '$.VerifyMode') as verify_mode, + json_extract(options, '$.Atime') as atime, + json_extract(options, '$.Mtime') as mtime, + json_extract(options, '$.Uid') as uid, + json_extract(options, '$.Gid') as gid, + json_extract(options, '$.PreserveDeletedFiles') as preserve_deleted_files, + json_extract(options, '$.PreserveDevices') as preserve_devices, + json_extract(options, '$.PosixPermissions') as posix_permissions, + json_extract(options, '$.BytesPerSecond') as bytes_per_second, + json_extract(options, '$.TaskQueueing') as task_queueing, + json_extract(options, '$.LogLevel') as log_level, + json_extract(options, '$.TransferMode') as transfer_mode +from + aws_datasync_task; +``` + +### List tasks with errors +Identify DataSync tasks that have encountered errors during execution. This is useful for troubleshooting and monitoring task health. + +```sql+postgres +select + name, + arn, + status, + error_code, + error_detail, + creation_time +from + aws_datasync_task +where + error_code is not null; +``` + +```sql+sqlite +select + name, + arn, + status, + error_code, + error_detail, + creation_time +from + aws_datasync_task +where + error_code is not null; +``` + +### Find tasks with specific transfer modes +Find DataSync tasks with specific transfer modes to understand how data is being transferred and optimize transfer strategies. + +```sql+postgres +select + name, + status, + options::json ->> 'TransferMode' as transfer_mode, + source_location_arn, + destination_location_arn +from + aws_datasync_task +where + options::json ->> 'TransferMode' = 'CHANGED'; +``` + +```sql+sqlite +select + name, + status, + json_extract(options, '$.TransferMode') as transfer_mode, + source_location_arn, + destination_location_arn +from + aws_datasync_task +where + json_extract(options, '$.TransferMode') = 'CHANGED'; +``` + +### List tasks with bandwidth limits +Identify DataSync tasks that have bandwidth limits configured to understand network usage and optimize transfer performance. + +```sql+postgres +select + name, + status, + options::json ->> 'BytesPerSecond' as bytes_per_second, + creation_time +from + aws_datasync_task +where + options::json ->> 'BytesPerSecond' is not null; +``` + +```sql+sqlite +select + name, + status, + json_extract(options, '$.BytesPerSecond') as bytes_per_second, + creation_time +from + aws_datasync_task +where + json_extract(options, '$.BytesPerSecond') is not null; +``` diff --git a/docs/tables/aws_ec2_classic_load_balancer.md b/docs/tables/aws_ec2_classic_load_balancer.md index 55f1dc990..00f176b20 100644 --- a/docs/tables/aws_ec2_classic_load_balancer.md +++ b/docs/tables/aws_ec2_classic_load_balancer.md @@ -56,7 +56,6 @@ where access_log_enabled = 'false'; ``` - ### Security groups attached to each classic load balancer Identify the security groups associated with each classic load balancer to ensure proper access control and minimize potential security risks. @@ -133,4 +132,33 @@ select unhealthy_threshold from aws_ec2_classic_load_balancer; -``` \ No newline at end of file +``` + +### Get policy description details for each classic load balancer +Extract detailed information from policy descriptions by iterating over the policy_descriptions array to understand the configuration of load balancer policies including their names, types, and attribute details. + +```sql+postgres +select + name, + policy_detail ->> 'PolicyName' as policy_name, + policy_detail ->> 'PolicyTypeName' as policy_type_name, + policy_detail -> 'PolicyAttributeDescriptions' as policy_attributes +from + aws_ec2_classic_load_balancer + cross join jsonb_array_elements(policy_descriptions) as policy_detail +where + policy_descriptions is not null; +``` + +```sql+sqlite +select + name, + json_extract(policy_detail.value, '$.PolicyName') as policy_name, + json_extract(policy_detail.value, '$.PolicyTypeName') as policy_type_name, + json_extract(policy_detail.value, '$.PolicyAttributeDescriptions') as policy_attributes +from + aws_ec2_classic_load_balancer, + json_each(policy_descriptions) as policy_detail +where + policy_descriptions is not null; +``` diff --git a/docs/tables/aws_ec2_fleet.md b/docs/tables/aws_ec2_fleet.md new file mode 100644 index 000000000..8db15ad44 --- /dev/null +++ b/docs/tables/aws_ec2_fleet.md @@ -0,0 +1,278 @@ +--- +title: "Steampipe Table: aws_ec2_fleet - Query AWS EC2 Fleets using SQL" +description: "Allows users to query AWS EC2 Fleets to retrieve information about EC2 Fleet configurations, capacity, and instances." +folder: "EC2" +--- + +# Table: aws_ec2_fleet - Query AWS EC2 Fleets using SQL + +An AWS EC2 Fleet contains the configuration information to launch a fleet—or group—of instances. In a single API call, a fleet can launch multiple instance types across multiple Availability Zones, using the On-Demand Instance, Reserved Instance, and Spot Instance purchasing options together. Using EC2 Fleet, you can define separate On-Demand and Spot capacity targets, specify the instance types that work best for your applications, and specify how Amazon EC2 should distribute your fleet capacity within each purchasing option. + +## Table Usage Guide + +The `aws_ec2_fleet` table in Steampipe provides you with information about EC2 Fleets within AWS Elastic Compute Cloud (EC2). This table allows you, as a DevOps engineer, to query fleet-specific details, including fleet state, capacity specifications, launch template configurations, and associated metadata. You can utilize this table to gather insights on fleets, such as fleet capacity utilization, instance distribution, spot vs on-demand allocation, and more. The schema outlines the various attributes of the EC2 Fleet for you, including the fleet ID, creation time, target capacity, and associated tags. + +**Important:** EC2 Fleets of type `instant` are not returned by the list operation. To query an instant fleet, you must specify the `fleet_id` in the WHERE clause. + +## Examples + +### Basic info +Explore the status and type of your EC2 fleets to understand their current operational state and configuration. This can help in managing resources and planning capacity. + +```sql+postgres +select + fleet_id, + arn, + fleet_state, + type, + create_time +from + aws_ec2_fleet; +``` + +```sql+sqlite +select + fleet_id, + arn, + fleet_state, + type, + create_time +from + aws_ec2_fleet; +``` + +### List active EC2 fleets +Identify active EC2 fleets to monitor ongoing fleet operations and ensure they are functioning as expected. + +```sql+postgres +select + fleet_id, + arn, + fleet_state, + activity_status, + type +from + aws_ec2_fleet +where + fleet_state = 'active'; +``` + +```sql+sqlite +select + fleet_id, + arn, + fleet_state, + activity_status, + type +from + aws_ec2_fleet +where + fleet_state = 'active'; +``` + +### List fleets with unfulfilled capacity +Discover fleets that have not yet reached their target capacity, which may indicate issues with instance availability or configuration. + +```sql+postgres +select + fleet_id, + fleet_state, + fulfilled_capacity, + target_capacity_specification ->> 'TotalTargetCapacity' as total_target_capacity +from + aws_ec2_fleet +where + fulfilled_capacity < (target_capacity_specification ->> 'TotalTargetCapacity')::float; +``` + +```sql+sqlite +select + fleet_id, + fleet_state, + fulfilled_capacity, + json_extract(target_capacity_specification, '$.TotalTargetCapacity') as total_target_capacity +from + aws_ec2_fleet +where + fulfilled_capacity < cast(json_extract(target_capacity_specification, '$.TotalTargetCapacity') as real); +``` + +### Get target capacity details for each fleet +Analyze the target capacity configuration of your EC2 fleets to understand the distribution between On-Demand and Spot instances. + +```sql+postgres +select + fleet_id, + fleet_state, + target_capacity_specification ->> 'TotalTargetCapacity' as total_target_capacity, + target_capacity_specification ->> 'OnDemandTargetCapacity' as on_demand_target_capacity, + target_capacity_specification ->> 'SpotTargetCapacity' as spot_target_capacity, + target_capacity_specification ->> 'DefaultTargetCapacityType' as default_target_capacity_type +from + aws_ec2_fleet; +``` + +```sql+sqlite +select + fleet_id, + fleet_state, + json_extract(target_capacity_specification, '$.TotalTargetCapacity') as total_target_capacity, + json_extract(target_capacity_specification, '$.OnDemandTargetCapacity') as on_demand_target_capacity, + json_extract(target_capacity_specification, '$.SpotTargetCapacity') as spot_target_capacity, + json_extract(target_capacity_specification, '$.DefaultTargetCapacityType') as default_target_capacity_type +from + aws_ec2_fleet; +``` + +### List fleets that will terminate instances on expiration +Identify fleets configured to automatically terminate instances when the fleet expires, which is important for cost management. + +```sql+postgres +select + fleet_id, + fleet_state, + type, + terminate_instances_with_expiration, + valid_until +from + aws_ec2_fleet +where + terminate_instances_with_expiration = true; +``` + +```sql+sqlite +select + fleet_id, + fleet_state, + type, + terminate_instances_with_expiration, + valid_until +from + aws_ec2_fleet +where + terminate_instances_with_expiration = 1; +``` + +### Get spot options for each fleet +Examine the Spot Instance configuration for your EC2 fleets to understand allocation strategies and pricing settings. + +```sql+postgres +select + fleet_id, + fleet_state, + spot_options ->> 'AllocationStrategy' as spot_allocation_strategy, + spot_options ->> 'InstanceInterruptionBehavior' as instance_interruption_behavior, + spot_options ->> 'MaxTotalPrice' as spot_max_total_price +from + aws_ec2_fleet +where + spot_options is not null; +``` + +```sql+sqlite +select + fleet_id, + fleet_state, + json_extract(spot_options, '$.AllocationStrategy') as spot_allocation_strategy, + json_extract(spot_options, '$.InstanceInterruptionBehavior') as instance_interruption_behavior, + json_extract(spot_options, '$.MaxTotalPrice') as spot_max_total_price +from + aws_ec2_fleet +where + spot_options is not null; +``` + +### List fleets with errors +Identify fleets that encountered errors during instance launch, which can help troubleshoot capacity or configuration issues. + +```sql+postgres +select + fleet_id, + fleet_state, + e ->> 'ErrorCode' as error_code, + e ->> 'ErrorMessage' as error_message +from + aws_ec2_fleet, + jsonb_array_elements(errors) as e +where + errors is not null + and jsonb_array_length(errors) > 0; +``` + +```sql+sqlite +select + fleet_id, + fleet_state, + json_extract(e.value, '$.ErrorCode') as error_code, + json_extract(e.value, '$.ErrorMessage') as error_message +from + aws_ec2_fleet, + json_each(errors) as e +where + errors is not null + and json_array_length(errors) > 0; +``` + +### Get EC2 fleet by ID +Retrieve details for a specific EC2 fleet using its fleet ID. + +```sql+postgres +select + fleet_id, + arn, + fleet_state, + type, + create_time, + target_capacity_specification +from + aws_ec2_fleet +where + fleet_id = 'fleet-12345678901234567'; +``` + +```sql+sqlite +select + fleet_id, + arn, + fleet_state, + type, + create_time, + target_capacity_specification +from + aws_ec2_fleet +where + fleet_id = 'fleet-12345678901234567'; +``` + +### Get instant fleet by ID +Retrieve details for an instant EC2 fleet. Note that instant fleets are not returned by the list operation and must be queried by their fleet ID. + +```sql+postgres +select + fleet_id, + arn, + fleet_state, + type, + create_time, + instances, + target_capacity_specification +from + aws_ec2_fleet +where + fleet_id = 'fleet-219fbc9f-31a4-6e8d-aeb0-2b0854a6eea7'; +``` + +```sql+sqlite +select + fleet_id, + arn, + fleet_state, + type, + create_time, + instances, + target_capacity_specification +from + aws_ec2_fleet +where + fleet_id = 'fleet-219fbc9f-31a4-6e8d-aeb0-2b0854a6eea7'; +``` diff --git a/docs/tables/aws_ec2_placement_group.md b/docs/tables/aws_ec2_placement_group.md new file mode 100644 index 000000000..d683b1e1a --- /dev/null +++ b/docs/tables/aws_ec2_placement_group.md @@ -0,0 +1,113 @@ +--- +title: "Steampipe Table: aws_ec2_placement_group - Query AWS EC2 Placement Groups using SQL" +description: "Allows users to query AWS EC2 Placement Groups, providing information about placement strategies, state, and configuration." +folder: "EC2" +--- + +# Table: aws_ec2_placement_group - Query AWS EC2 Placement Groups using SQL + +The AWS EC2 Placement Group is a logical grouping of instances within a single Availability Zone or across partitions or racks, depending on the strategy. Placement groups help you influence the placement of a group of interdependent instances to meet the needs of your workload. + +## Table Usage Guide + +The `aws_ec2_placement_group` table in Steampipe provides you with information about Placement Groups within AWS EC2. This table allows you, as a DevOps engineer, cloud architect, or system administrator, to query placement group-specific details, including strategy, partition count, spread level, state, and associated tags. You can utilize this table to gather insights on placement groups, such as their configuration, current state, and more. The schema outlines the various attributes of the EC2 placement group for you, including the group name, strategy, and tags. + +## Examples + +### List all placement groups and their strategies +Discover all EC2 placement groups in your account, including their placement strategy and current state. This helps you understand how your workloads are distributed and managed. + +```sql+postgres +select + group_name, + strategy, + state, + region +from + aws_ec2_placement_group; +``` + +```sql+sqlite +select + group_name, + strategy, + state, + region +from + aws_ec2_placement_group; +``` + +### List all available partition placement groups +Find all partition placement groups that are currently available. This is useful for identifying groups that can be used for high-availability workloads. + +```sql+postgres +select + group_name, + partition_count, + state +from + aws_ec2_placement_group +where + strategy = 'partition' + and state = 'available'; +``` + +```sql+sqlite +select + group_name, + partition_count, + state +from + aws_ec2_placement_group +where + strategy = 'partition' + and state = 'available'; +``` + +### Count of placement groups by strategy +See how many placement groups use each strategy (cluster, partition, or spread). This helps you assess your architecture's distribution and redundancy. + +```sql+postgres +select + strategy, + count(*) as count +from + aws_ec2_placement_group +group by + strategy; +``` + +```sql+sqlite +select + strategy, + count(*) as count +from + aws_ec2_placement_group +group by + strategy; +``` + +### List placement groups with fewer than 3 partitions +Identify partition placement groups that have fewer than 3 partitions. This can help you find groups that may not meet your high-availability requirements. + +```sql+postgres +select + group_name, + partition_count, + strategy +from + aws_ec2_placement_group +where + partition_count < 3; +``` + +```sql+sqlite +select + group_name, + partition_count, + strategy +from + aws_ec2_placement_group +where + partition_count < 3; +``` \ No newline at end of file diff --git a/docs/tables/aws_ec2_spot_fleet_request.md b/docs/tables/aws_ec2_spot_fleet_request.md new file mode 100644 index 000000000..1aa1e3dbd --- /dev/null +++ b/docs/tables/aws_ec2_spot_fleet_request.md @@ -0,0 +1,319 @@ +--- +title: "Steampipe Table: aws_ec2_spot_fleet_request - Query AWS EC2 Spot Fleet Requests using SQL" +description: "Allows users to query AWS EC2 Spot Fleet Requests for comprehensive data on each spot fleet request, including configuration, state, capacity, and more." +folder: "EC2" +--- + +# Table: aws_ec2_spot_fleet_request - Query AWS EC2 Spot Fleet Requests using SQL + +The AWS EC2 Spot Fleet Request is a component of Amazon's Elastic Compute Cloud (EC2) that allows you to request and manage a fleet of Spot Instances. Spot Fleet is a collection of Spot Instances and optionally On-Demand Instances that automatically maintains the target capacity of your workload. It provides a way to launch and maintain the desired number of instances by automatically replenishing any interrupted Spot Instances. + +## Table Usage Guide + +The `aws_ec2_spot_fleet_request` table in Steampipe provides you with information about Spot Fleet requests within AWS Elastic Compute Cloud (EC2). This table allows you, as a DevOps engineer, to query spot fleet request-specific details, including request state, configuration, capacity settings, and associated metadata. You can utilize this table to gather insights on spot fleet requests, such as their current state, allocation strategies, pricing configurations, and more. The schema outlines the various attributes of the EC2 spot fleet request for you, including the request ID, state, target capacity, and associated tags. + +## Examples + +### Basic info +Explore which spot fleet requests exist in your AWS EC2 service and their current states. This query can be particularly useful in understanding the distribution of spot fleet resources and their operational status. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + activity_status, + type, + target_capacity, + allocation_strategy, + create_time +from + aws_ec2_spot_fleet_request; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + activity_status, + type, + target_capacity, + allocation_strategy, + create_time +from + aws_ec2_spot_fleet_request; +``` + +### List active spot fleet requests +Identify spot fleet requests that are currently active and running. This can be useful for monitoring active workloads and understanding current resource utilization. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + activity_status, + target_capacity, + fulfilled_capacity, + on_demand_target_capacity, + on_demand_fulfilled_capacity +from + aws_ec2_spot_fleet_request +where + spot_fleet_request_state = 'active'; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + activity_status, + target_capacity, + fulfilled_capacity, + on_demand_target_capacity, + on_demand_fulfilled_capacity +from + aws_ec2_spot_fleet_request +where + spot_fleet_request_state = 'active'; +``` + +### Spot fleet requests with pricing information +Analyze spot fleet requests to understand their pricing configuration and cost management settings. This helps in optimizing costs and understanding spending patterns. + +```sql+postgres +select + spot_fleet_request_id, + spot_price, + spot_max_total_price, + on_demand_max_total_price, + allocation_strategy, + target_capacity +from + aws_ec2_spot_fleet_request +where + spot_price is not null + or spot_max_total_price is not null + or on_demand_max_total_price is not null; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_price, + spot_max_total_price, + on_demand_max_total_price, + allocation_strategy, + target_capacity +from + aws_ec2_spot_fleet_request +where + spot_price is not null + or spot_max_total_price is not null + or on_demand_max_total_price is not null; +``` + +### Spot fleet requests by allocation strategy +Group spot fleet requests by their allocation strategy to understand how different strategies are being used across your infrastructure. This can help in optimizing resource allocation and cost management. + +```sql+postgres +select + allocation_strategy, + count(*) as request_count, + sum(target_capacity) as total_target_capacity, + avg(target_capacity) as avg_target_capacity +from + aws_ec2_spot_fleet_request +group by + allocation_strategy +order by + request_count desc; +``` + +```sql+sqlite +select + allocation_strategy, + count(*) as request_count, + sum(target_capacity) as total_target_capacity, + avg(target_capacity) as avg_target_capacity +from + aws_ec2_spot_fleet_request +group by + allocation_strategy +order by + request_count desc; +``` + +### Spot fleet requests with maintenance strategies +Identify spot fleet requests that have maintenance strategies configured. This is important for understanding how your infrastructure handles instance interruptions and maintenance events. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + spot_maintenance_strategies, + instance_interruption_behavior, + replace_unhealthy_instances +from + aws_ec2_spot_fleet_request +where + spot_maintenance_strategies is not null; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + spot_maintenance_strategies, + instance_interruption_behavior, + replace_unhealthy_instances +from + aws_ec2_spot_fleet_request +where + spot_maintenance_strategies is not null; +``` + +### Spot fleet requests with load balancer configuration +Find spot fleet requests that are configured with load balancers. This helps in understanding how your spot fleet workloads are distributed and load balanced. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + load_balancers_config, + target_capacity +from + aws_ec2_spot_fleet_request +where + load_balancers_config is not null; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + load_balancers_config, + target_capacity +from + aws_ec2_spot_fleet_request +where + load_balancers_config is not null; +``` + +### Spot fleet requests with expiration dates +Identify spot fleet requests that have expiration dates set. This is important for understanding which requests will automatically terminate and when. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + valid_from, + valid_until, + terminate_instances_with_expiration +from + aws_ec2_spot_fleet_request +where + valid_until is not null +order by + valid_until; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + valid_from, + valid_until, + terminate_instances_with_expiration +from + aws_ec2_spot_fleet_request +where + valid_until is not null +order by + valid_until; +``` + +### Spot fleet requests with launch template configurations +Analyze spot fleet requests that use launch templates for instance configuration. This provides insights into how instances are being launched and configured. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + launch_template_configs, + launch_specifications +from + aws_ec2_spot_fleet_request +where + launch_template_configs is not null + or launch_specifications is not null; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + launch_template_configs, + launch_specifications +from + aws_ec2_spot_fleet_request +where + launch_template_configs is not null + or launch_specifications is not null; +``` + +### Spot fleet requests by creation date +Analyze spot fleet requests by their creation date to understand trends in spot fleet usage over time. This can help in capacity planning and resource management. + +```sql+postgres +select + date_trunc('day', create_time) as creation_date, + count(*) as request_count, + sum(target_capacity) as total_target_capacity +from + aws_ec2_spot_fleet_request +group by + date_trunc('day', create_time) +order by + creation_date desc; +``` + +```sql+sqlite +select + date(create_time) as creation_date, + count(*) as request_count, + sum(target_capacity) as total_target_capacity +from + aws_ec2_spot_fleet_request +group by + date(create_time) +order by + creation_date desc; +``` + +### Spot fleet requests with excess capacity termination policy +Identify spot fleet requests that have specific policies for handling excess capacity. This is important for understanding how your infrastructure scales down when demand decreases. + +```sql+postgres +select + spot_fleet_request_id, + spot_fleet_request_state, + excess_capacity_termination_policy, + target_capacity, + fulfilled_capacity +from + aws_ec2_spot_fleet_request +where + excess_capacity_termination_policy is not null; +``` + +```sql+sqlite +select + spot_fleet_request_id, + spot_fleet_request_state, + excess_capacity_termination_policy, + target_capacity, + fulfilled_capacity +from + aws_ec2_spot_fleet_request +where + excess_capacity_termination_policy is not null; +``` diff --git a/docs/tables/aws_ec2_target_group.md b/docs/tables/aws_ec2_target_group.md index 5222751bd..24f3bdc1c 100644 --- a/docs/tables/aws_ec2_target_group.md +++ b/docs/tables/aws_ec2_target_group.md @@ -128,4 +128,33 @@ select from aws_ec2_target_group, json_each(target_health_descriptions) as target; +``` + +### Target group attributes +Explore the configuration attributes of target groups such as deregistration delay, stickiness settings, and load balancing algorithm. This is useful for understanding and auditing the behavior of your load balancers. + +```sql+postgres +select + target_group_name, + target_type, + attributes ->> 'deregistration_delay.timeout_seconds' as deregistration_delay, + attributes ->> 'stickiness.enabled' as stickiness_enabled, + attributes ->> 'stickiness.type' as stickiness_type, + attributes ->> 'load_balancing.algorithm.type' as load_balancing_algorithm, + attributes ->> 'preserve_client_ip.enabled' as preserve_client_ip +from + aws_ec2_target_group; +``` + +```sql+sqlite +select + target_group_name, + target_type, + json_extract(attributes, '$.deregistration_delay.timeout_seconds') as deregistration_delay, + json_extract(attributes, '$.stickiness.enabled') as stickiness_enabled, + json_extract(attributes, '$.stickiness.type') as stickiness_type, + json_extract(attributes, '$.load_balancing.algorithm.type') as load_balancing_algorithm, + json_extract(attributes, '$.preserve_client_ip.enabled') as preserve_client_ip +from + aws_ec2_target_group; ``` \ No newline at end of file diff --git a/docs/tables/aws_ec2_transit_gateway_vpc_attachment.md b/docs/tables/aws_ec2_transit_gateway_vpc_attachment.md index 6d1bb468d..6382fbedb 100644 --- a/docs/tables/aws_ec2_transit_gateway_vpc_attachment.md +++ b/docs/tables/aws_ec2_transit_gateway_vpc_attachment.md @@ -63,4 +63,27 @@ from aws_ec2_transit_gateway_vpc_attachment group by resource_type; +``` + +### View attachment options configuration +Query the configuration options for your transit gateway VPC attachments, including DNS support, IPv6 support, security group referencing, and appliance mode settings. + +```sql+postgres +select + transit_gateway_attachment_id, + resource_id, + state, + options +from + aws_ec2_transit_gateway_vpc_attachment; +``` + +```sql+sqlite +select + transit_gateway_attachment_id, + resource_id, + state, + options +from + aws_ec2_transit_gateway_vpc_attachment; ``` \ No newline at end of file diff --git a/docs/tables/aws_ecr_image_scan_finding.md b/docs/tables/aws_ecr_image_scan_finding.md index d9f894a7c..dd3675793 100644 --- a/docs/tables/aws_ecr_image_scan_finding.md +++ b/docs/tables/aws_ecr_image_scan_finding.md @@ -14,6 +14,7 @@ The `aws_ecr_image_scan_finding` table in Steampipe provides you with informatio **Important Notes** - You or your roles that have the AWS managed `ReadOnlyAccess` policy attached also need to attach the AWS managed `AmazonInspector2ReadOnlyAccess` policy to query this table. +- You must specify a `repository_name` and either `image_tag` or `image_digest` in a `where` or `join` clause to query this table. ## Examples diff --git a/docs/tables/aws_eks_access_entry.md b/docs/tables/aws_eks_access_entry.md new file mode 100644 index 000000000..993d4420a --- /dev/null +++ b/docs/tables/aws_eks_access_entry.md @@ -0,0 +1,209 @@ +--- +title: "Steampipe Table: aws_eks_access_entry - Query AWS EKS Access Entries using SQL" +description: "Allows users to query AWS EKS Access Entries to retrieve information about IAM principals that have been granted access to Amazon EKS clusters." +folder: "EKS" +--- + +# Table: aws_eks_access_entry - Query AWS EKS Access Entries using SQL + +AWS EKS Access Entries provide a way to grant IAM principals (users or roles) access to your Amazon EKS clusters. Access entries allow you to manage cluster authentication and authorization by associating IAM principals with Kubernetes groups and access policies, enabling fine-grained access control to your EKS cluster resources. + +## Table Usage Guide + +The `aws_eks_access_entry` table in Steampipe provides you with information about access entries associated with each Amazon EKS cluster. This table allows you, as a DevOps engineer or security administrator, to query access entry-specific details, including the IAM principal ARN, associated Kubernetes groups, access policies, and associated metadata. You can utilize this table to gather insights on cluster access management, such as which IAM principals have access to specific clusters, what type of access they have, and the Kubernetes groups they are associated with. The schema outlines the various attributes of the EKS access entry for you, including the principal ARN, access entry type, username, Kubernetes groups, and associated tags. + +## Examples + +### Basic info +Explore which IAM principals have access to your AWS EKS clusters and understand their access configuration. + +```sql+postgres +select + cluster_name, + principal_arn, + type, + username, + kubernetes_groups, + created_at +from + aws_eks_access_entry; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + type, + username, + kubernetes_groups, + created_at +from + aws_eks_access_entry; +``` + +### List access entries for a specific cluster +Identify all IAM principals that have been granted access to a particular EKS cluster. + +```sql+postgres +select + cluster_name, + principal_arn, + type, + username, + kubernetes_groups +from + aws_eks_access_entry +where + cluster_name = 'my-eks-cluster'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + type, + username, + kubernetes_groups +from + aws_eks_access_entry +where + cluster_name = 'my-eks-cluster'; +``` + +### List access entries by type +Determine which access entries are of a specific type (e.g., STANDARD, EC2_LINUX, FARGATE_LINUX). + +```sql+postgres +select + cluster_name, + principal_arn, + type, + username +from + aws_eks_access_entry +where + type = 'STANDARD'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + type, + username +from + aws_eks_access_entry +where + type = 'STANDARD'; +``` + +### Get count of access entries by cluster +Determine the total number of access entries per cluster to understand cluster access distribution. + +```sql+postgres +select + cluster_name, + count(*) as access_entry_count +from + aws_eks_access_entry +group by + cluster_name; +``` + +```sql+sqlite +select + cluster_name, + count(*) as access_entry_count +from + aws_eks_access_entry +group by + cluster_name; +``` + +### List access entries created in the last 30 days +Identify recently created access entries to monitor new cluster access grants. + +```sql+postgres +select + cluster_name, + principal_arn, + type, + username, + created_at +from + aws_eks_access_entry +where + created_at >= now() - interval '30 days'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + type, + username, + created_at +from + aws_eks_access_entry +where + created_at >= datetime('now', '-30 days'); +``` + +### List access entries with specific Kubernetes groups +Find access entries that grant access to specific Kubernetes groups for role-based access control. + +```sql+postgres +select + cluster_name, + principal_arn, + username, + kubernetes_groups +from + aws_eks_access_entry +where + kubernetes_groups @> '["system:masters"]'::jsonb; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + username, + kubernetes_groups +from + aws_eks_access_entry +where + json_extract(kubernetes_groups, '$') like '%system:masters%'; +``` + +### Get access entries with their associated IAM role details +Join access entries with IAM roles to get comprehensive access information. + +```sql+postgres +select + ae.cluster_name, + ae.principal_arn, + ae.type, + ae.username, + ae.kubernetes_groups, + r.create_date as role_created_at, + r.max_session_duration +from + aws_eks_access_entry ae + left join aws_iam_role r on ae.principal_arn = r.arn; +``` + +```sql+sqlite +select + ae.cluster_name, + ae.principal_arn, + ae.type, + ae.username, + ae.kubernetes_groups, + r.create_date as role_created_at, + r.max_session_duration +from + aws_eks_access_entry ae + left join aws_iam_role r on ae.principal_arn = r.arn; +``` + diff --git a/docs/tables/aws_eks_access_policy_association.md b/docs/tables/aws_eks_access_policy_association.md new file mode 100644 index 000000000..77f535a16 --- /dev/null +++ b/docs/tables/aws_eks_access_policy_association.md @@ -0,0 +1,280 @@ +--- +title: "Steampipe Table: aws_eks_access_policy_association - Query AWS EKS Access Policy Associations using SQL" +description: "Allows users to query AWS EKS Access Policy Associations to retrieve information about access policies associated with IAM principals in Amazon EKS clusters." +folder: "EKS" +--- + +# Table: aws_eks_access_policy_association - Query AWS EKS Access Policy Associations using SQL + +AWS EKS Access Policy Associations link access policies to IAM principals (users or roles) for Amazon EKS clusters. These associations define the scope of access (cluster-wide or namespace-specific) and enable fine-grained access control for EKS cluster resources through AWS-managed access policies. + +## Table Usage Guide + +The `aws_eks_access_policy_association` table in Steampipe provides you with information about access policy associations for each Amazon EKS access entry. This table allows you, as a DevOps engineer or security administrator, to query association-specific details, including the policy ARN, access scope type, namespaces, and association timestamps. You can utilize this table to gather insights on access policy assignments, such as which policies are associated with specific IAM principals, the scope of access granted, and when policies were associated or modified. The schema outlines the various attributes of the EKS access policy association for you, including the cluster name, principal ARN, policy ARN, access scope, and timestamps. + +## Examples + +### Basic info +Explore which access policies are associated with IAM principals in your EKS clusters. + +```sql+postgres +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + associated_at, + modified_at +from + aws_eks_access_policy_association; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + associated_at, + modified_at +from + aws_eks_access_policy_association; +``` + +### List policy associations for a specific cluster +Identify all access policy associations for a particular EKS cluster. + +```sql+postgres +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + access_scope_namespaces +from + aws_eks_access_policy_association +where + cluster_name = 'my-eks-cluster'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + access_scope_namespaces +from + aws_eks_access_policy_association +where + cluster_name = 'my-eks-cluster'; +``` + +### List policy associations for a specific IAM principal +Find all access policies associated with a specific IAM role or user. + +```sql+postgres +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + access_scope_namespaces +from + aws_eks_access_policy_association +where + principal_arn = 'arn:aws:iam::123456789012:role/my-eks-role'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + access_scope_namespaces +from + aws_eks_access_policy_association +where + principal_arn = 'arn:aws:iam::123456789012:role/my-eks-role'; +``` + +### List namespace-scoped policy associations +Determine which policy associations are limited to specific Kubernetes namespaces. + +```sql+postgres +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + access_scope_namespaces +from + aws_eks_access_policy_association +where + access_scope_type = 'namespace'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + access_scope_namespaces +from + aws_eks_access_policy_association +where + access_scope_type = 'namespace'; +``` + +### List cluster-wide policy associations +Find policy associations that grant cluster-wide access. + +```sql+postgres +select + cluster_name, + principal_arn, + policy_arn, + associated_at +from + aws_eks_access_policy_association +where + access_scope_type = 'cluster'; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + policy_arn, + associated_at +from + aws_eks_access_policy_association +where + access_scope_type = 'cluster'; +``` + +### Get count of policy associations per cluster +Determine the distribution of access policy associations across clusters. + +```sql+postgres +select + cluster_name, + count(*) as policy_association_count +from + aws_eks_access_policy_association +group by + cluster_name +order by + policy_association_count desc; +``` + +```sql+sqlite +select + cluster_name, + count(*) as policy_association_count +from + aws_eks_access_policy_association +group by + cluster_name +order by + policy_association_count desc; +``` + +### Get count of policy associations per principal +Identify how many access policies are associated with each IAM principal. + +```sql+postgres +select + principal_arn, + count(*) as policy_count +from + aws_eks_access_policy_association +group by + principal_arn +order by + policy_count desc; +``` + +```sql+sqlite +select + principal_arn, + count(*) as policy_count +from + aws_eks_access_policy_association +group by + principal_arn +order by + policy_count desc; +``` + +### List recently modified policy associations +Identify policy associations that have been recently updated. + +```sql+postgres +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + modified_at +from + aws_eks_access_policy_association +where + modified_at >= now() - interval '7 days' +order by + modified_at desc; +``` + +```sql+sqlite +select + cluster_name, + principal_arn, + policy_arn, + access_scope_type, + modified_at +from + aws_eks_access_policy_association +where + modified_at >= datetime('now', '-7 days') +order by + modified_at desc; +``` + +### Get policy associations with access entry details +Join policy associations with access entry information for comprehensive access insights. + +```sql+postgres +select + apa.cluster_name, + apa.principal_arn, + apa.policy_arn, + apa.access_scope_type, + apa.access_scope_namespaces, + ae.type as access_entry_type, + ae.username, + ae.kubernetes_groups +from + aws_eks_access_policy_association apa + left join aws_eks_access_entry ae + on apa.cluster_name = ae.cluster_name + and apa.principal_arn = ae.principal_arn; +``` + +```sql+sqlite +select + apa.cluster_name, + apa.principal_arn, + apa.policy_arn, + apa.access_scope_type, + apa.access_scope_namespaces, + ae.type as access_entry_type, + ae.username, + ae.kubernetes_groups +from + aws_eks_access_policy_association apa + left join aws_eks_access_entry ae + on apa.cluster_name = ae.cluster_name + and apa.principal_arn = ae.principal_arn; +``` diff --git a/docs/tables/aws_elasticache_serverless_cache.md b/docs/tables/aws_elasticache_serverless_cache.md new file mode 100644 index 000000000..6ecafd513 --- /dev/null +++ b/docs/tables/aws_elasticache_serverless_cache.md @@ -0,0 +1,148 @@ +--- +title: "Steampipe Table: aws_elasticache_serverless_cache - Query AWS ElastiCache Serverless Cache using SQL" +description: "Allows users to query AWS ElastiCache Serverless Cache data, providing information about each serverless cache within the AWS account." +folder: "ElastiCache" +--- + +# Table: aws_elasticache_serverless_cache - Query AWS ElastiCache Serverless Cache using SQL + +AWS ElastiCache Serverless Cache is a fully managed, serverless cache service that automatically scales to meet your application's needs. It provides a simple, cost-effective way to add caching to your applications without managing infrastructure. Serverless cache automatically scales up and down based on your application's demand, and you only pay for the data you store and the compute resources you use. + +## Table Usage Guide + +The `aws_elasticache_serverless_cache` table in Steampipe provides you with information about each serverless cache within your AWS account. This table enables you, as a DevOps engineer, database administrator, or other IT professional, to query serverless cache-specific details, including configuration, status, and associated metadata. You can utilize this table to gather insights on serverless caches, such as their status, engine version, usage limits, and more. The schema outlines the various attributes of the serverless cache for you, including the cache name, creation date, current status, and associated tags. + +## Examples + +### List all serverless caches +Discover all serverless caches in your AWS account to understand your caching infrastructure. + +```sql+postgres +select + serverless_cache_name, + status, + engine, + full_engine_version, + create_time, + region, + account_id +from + aws_elasticache_serverless_cache; +``` + +```sql+sqlite +select + serverless_cache_name, + status, + engine, + full_engine_version, + create_time, + region, + account_id +from + aws_elasticache_serverless_cache; +``` + +### List serverless caches that are not in available status +Identify serverless caches that may be experiencing issues or are in a transitional state. + +```sql+postgres +select + serverless_cache_name, + status, + engine, + create_time, + description +from + aws_elasticache_serverless_cache +where + status != 'available'; +``` + +```sql+sqlite +select + serverless_cache_name, + status, + engine, + create_time, + description +from + aws_elasticache_serverless_cache +where + status != 'available'; +``` + +### List serverless caches with their usage limits +Understand the capacity and usage limits of your serverless caches to ensure they meet your application requirements. + +```sql+postgres +select + serverless_cache_name, + status, + cache_usage_limits, + daily_snapshot_time, + snapshot_retention_limit +from + aws_elasticache_serverless_cache; +``` + +```sql+sqlite +select + serverless_cache_name, + status, + cache_usage_limits, + daily_snapshot_time, + snapshot_retention_limit +from + aws_elasticache_serverless_cache; +``` + +### List serverless caches with their security configurations +Review the security settings of your serverless caches to ensure they follow security best practices. + +```sql+postgres +select + serverless_cache_name, + status, + security_group_ids, + subnet_ids, + kms_key_id +from + aws_elasticache_serverless_cache; +``` + +```sql+sqlite +select + serverless_cache_name, + status, + security_group_ids, + subnet_ids, + kms_key_id +from + aws_elasticache_serverless_cache; +``` + +### List serverless caches with their endpoint information +Get connection details for your serverless caches to configure your applications. + +```sql+postgres +select + serverless_cache_name, + status, + endpoint, + reader_endpoint, + user_group_id +from + aws_elasticache_serverless_cache; +``` + +```sql+sqlite +select + serverless_cache_name, + status, + endpoint, + reader_endpoint, + user_group_id +from + aws_elasticache_serverless_cache; +``` \ No newline at end of file diff --git a/docs/tables/aws_emr_studio.md b/docs/tables/aws_emr_studio.md new file mode 100644 index 000000000..ecd9acbc9 --- /dev/null +++ b/docs/tables/aws_emr_studio.md @@ -0,0 +1,243 @@ +--- +title: "Steampipe Table: aws_emr_studio - Query AWS EMR Studio using SQL" +description: "Allows users to query AWS EMR Studio for detailed information about the configuration, security settings, and other metadata of each studio." +folder: "EMR" +--- + +# Table: aws_emr_studio - Query AWS EMR Studio using SQL + +AWS EMR Studio is an integrated development environment (IDE) that makes it easy for data scientists and data engineers to develop, visualize, and debug data engineering and data science applications written in R, Python, Scala, and SQL. EMR Studio provides fully managed Jupyter notebooks and tools to help you develop and debug applications. + +## Table Usage Guide + +The `aws_emr_studio` table in Steampipe provides you with information about EMR Studios within AWS Elastic MapReduce (EMR). This table allows you, as a DevOps engineer or data engineer, to query studio-specific details, including authentication settings, security configurations, and associated metadata. You can utilize this table to gather insights on studios, such as their authentication mode, security group configurations, and network settings. The schema outlines the various attributes of the EMR Studio for you, including the studio ID, name, ARN, and associated security and network configurations. + +## Examples + +### Basic info +Explore the basic information about your EMR Studios, including their names, IDs, ARNs, and authentication modes. This can help you understand the configuration of your studios at a glance. + +```sql+postgres +select + name, + studio_id, + arn, + auth_mode, + url, + creation_time +from + aws_emr_studio; +``` + +```sql+sqlite +select + name, + studio_id, + arn, + auth_mode, + url, + creation_time +from + aws_emr_studio; +``` + +### Find studio by ARN +Retrieve a studio by its ARN, which is useful for automation and scripting scenarios. + +```sql+postgres +select + name, + studio_id, + arn, + auth_mode +from + aws_emr_studio +where + arn = 'arn:aws:emr:us-east-1:123456789012:studio/es-EXAMPLE1234567890'; +``` + +```sql+sqlite +select + name, + studio_id, + arn, + auth_mode +from + aws_emr_studio +where + arn = 'arn:aws:emr:us-east-1:123456789012:studio/es-EXAMPLE1234567890'; +``` + +### List studios with IAM authentication +Identify studios that use IAM for authentication. This can be useful for understanding your authentication setup and ensuring proper security configurations. + +```sql+postgres +select + name, + studio_id, + auth_mode, + service_role, + user_role +from + aws_emr_studio +where + auth_mode = 'IAM'; +``` + +```sql+sqlite +select + name, + studio_id, + auth_mode, + service_role, + user_role +from + aws_emr_studio +where + auth_mode = 'IAM'; +``` + +### Get security group details for studios +Explore the security group configurations for your EMR Studios to ensure proper network security settings are in place. + +```sql+postgres +select + name, + studio_id, + engine_security_group_id, + workspace_security_group_id, + vpc_id +from + aws_emr_studio; +``` + +```sql+sqlite +select + name, + studio_id, + engine_security_group_id, + workspace_security_group_id, + vpc_id +from + aws_emr_studio; +``` + +### List studios with specific VPC +Find studios that are associated with a particular VPC to understand your network configuration and resource organization. + +```sql+postgres +select + name, + studio_id, + vpc_id, + subnet_ids +from + aws_emr_studio +where + vpc_id = 'vpc-1234567890abcdef0'; +``` + +```sql+sqlite +select + name, + studio_id, + vpc_id, + subnet_ids +from + aws_emr_studio +where + vpc_id = 'vpc-1234567890abcdef0'; +``` + +### Get identity provider configuration details +Examine the identity provider settings for studios using IAM Identity Center for authentication. + +```sql+postgres +select + name, + studio_id, + auth_mode, + idp_auth_url, + idp_relay_state_parameter_name +from + aws_emr_studio +where + auth_mode = 'SSO'; +``` + +```sql+sqlite +select + name, + studio_id, + auth_mode, + idp_auth_url, + idp_relay_state_parameter_name +from + aws_emr_studio +where + auth_mode = 'SSO'; +``` + +### List studios with default S3 location configuration +Find studios that have been configured with a default S3 location for workspace backups and notebook files. + +```sql+postgres +select + name, + studio_id, + default_s3_location, + creation_time +from + aws_emr_studio +where + default_s3_location is not null; +``` + +```sql+sqlite +select + name, + studio_id, + default_s3_location, + creation_time +from + aws_emr_studio +where + default_s3_location is not null; +``` + +### Find studios with missing security configurations +Identify studios that might be missing critical security configurations, such as security groups or VPC settings. + +```sql+postgres +select + name, + studio_id, + engine_security_group_id, + workspace_security_group_id, + vpc_id, + subnet_ids +from + aws_emr_studio +where + engine_security_group_id is null + or workspace_security_group_id is null + or vpc_id is null + or subnet_ids is null; +``` + +```sql+sqlite +select + name, + studio_id, + engine_security_group_id, + workspace_security_group_id, + vpc_id, + subnet_ids +from + aws_emr_studio +where + engine_security_group_id is null + or workspace_security_group_id is null + or vpc_id is null + or json_array_length(subnet_ids) = 0; +``` \ No newline at end of file diff --git a/docs/tables/aws_glue_ml_transform.md b/docs/tables/aws_glue_ml_transform.md new file mode 100644 index 000000000..95830ab15 --- /dev/null +++ b/docs/tables/aws_glue_ml_transform.md @@ -0,0 +1,352 @@ +--- +title: "Steampipe Table: aws_glue_ml_transform - Query AWS Glue ML Transforms using SQL" +description: "Allows users to query AWS Glue ML Transforms, including transform details, parameters, and status information." +folder: "Glue" +--- + +# Table: aws_glue_ml_transform - Query AWS Glue ML Transforms using SQL + +AWS Glue ML Transforms are machine learning transforms that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by Glue and can be used to process data. + +## Table Usage Guide + +The `aws_glue_ml_transform` table in Steampipe provides you with information about ML Transforms within AWS Glue. This table allows you, as a DevOps engineer, data engineer, or ML engineer, to query transform details including configuration parameters, status, performance metrics, and resource allocation. You can utilize this table to gather insights on ML transforms, such as transform status, worker configuration, input/output schemas, evaluation metrics, and associated tags. + +**Important notes:** +- This table supports optional quals. Queries with optional quals are optimised to use AWS Glue filters. Optional quals are supported for the following columns: + - `name` + - `status` + - `transform_type` + - `glue_version` + - `created_on` + - `last_modified_on` + +## Examples + +### Basic info +Analyze the ML transforms to understand their configuration, status, and resource allocation. This is useful for monitoring transform health and performance. + +```sql+postgres +select + name, + transform_id, + status, + glue_version, + max_capacity, + number_of_workers, + worker_type, + timeout, + created_on, + last_modified_on +from + aws_glue_ml_transform; +``` + +```sql+sqlite +select + name, + transform_id, + status, + glue_version, + max_capacity, + number_of_workers, + worker_type, + timeout, + created_on, + last_modified_on +from + aws_glue_ml_transform; +``` + +### List ML transforms that are in ready state +Identify ML transforms that are ready to be used for data processing. This helps in understanding which transforms are available for immediate use. + +```sql+postgres +select + name, + transform_id, + status, + description, + label_count, + created_on +from + aws_glue_ml_transform +where + status = 'READY'; +``` + +```sql+sqlite +select + name, + transform_id, + status, + description, + label_count, + created_on +from + aws_glue_ml_transform +where + status = 'READY'; +``` + +### Check the resource allocation of ML transforms +Review the resource allocation for ML transforms to understand compute capacity and worker configuration. + +```sql+postgres +select + name, + transform_id, + max_capacity, + number_of_workers, + worker_type, + max_retries, + timeout, + case + when max_capacity is not null then 'MaxCapacity mode' + when number_of_workers is not null then 'Worker mode' + else 'Default mode' + end as allocation_mode +from + aws_glue_ml_transform; +``` + +```sql+sqlite +select + name, + transform_id, + max_capacity, + number_of_workers, + worker_type, + max_retries, + timeout, + case + when max_capacity is not null then 'MaxCapacity mode' + when number_of_workers is not null then 'Worker mode' + else 'Default mode' + end as allocation_mode +from + aws_glue_ml_transform; +``` + +### Find transforms with evaluation metrics +Identify ML transforms that have evaluation metrics available, which indicates they have been trained and evaluated. + +```sql+postgres +select + name, + transform_id, + status, + evaluation_metrics, + label_count +from + aws_glue_ml_transform +where + evaluation_metrics is not null; +``` + +```sql+sqlite +select + name, + transform_id, + status, + evaluation_metrics, + label_count +from + aws_glue_ml_transform +where + evaluation_metrics is not null; +``` + +### Review the input and output schemas for ML transforms +Review the input and output schemas for ML transforms to understand data structure requirements. + +```sql+postgres +select + name, + transform_id, + input_record_tables, + schema, + parameters +from + aws_glue_ml_transform; +``` + +```sql+sqlite +select + name, + transform_id, + input_record_tables, + schema, + parameters +from + aws_glue_ml_transform; +``` + +### List transforms by worker type +Group ML transforms by their worker type to understand resource allocation patterns. + +```sql+postgres +select + worker_type, + count(*) as transform_count, + avg(max_capacity) as avg_max_capacity, + avg(number_of_workers) as avg_workers +from + aws_glue_ml_transform +group by + worker_type +order by + transform_count desc; +``` + +```sql+sqlite +select + worker_type, + count(*) as transform_count, + avg(max_capacity) as avg_max_capacity, + avg(number_of_workers) as avg_workers +from + aws_glue_ml_transform +group by + worker_type +order by + transform_count desc; +``` + +### Check transform encryption settings +Review the encryption settings for ML transforms to ensure data security compliance. + +```sql+postgres +select + name, + transform_id, + transform_encryption, + role +from + aws_glue_ml_transform +where + transform_encryption is not null; +``` + +```sql+sqlite +select + name, + transform_id, + transform_encryption, + role +from + aws_glue_ml_transform +where + transform_encryption is not null; +``` + + +### Filter transforms by status +Find transforms with a specific status using the optional qualifier. + +```sql+postgres +select + name, + transform_id, + status, + created_on +from + aws_glue_ml_transform +where + status = 'READY'; +``` + +```sql+sqlite +select + name, + transform_id, + status, + created_on +from + aws_glue_ml_transform +where + status = 'READY'; +``` + +### Filter transforms by creation date +Find transforms created after a specific date using the optional qualifier with operators. + +```sql+postgres +select + name, + transform_id, + status, + created_on +from + aws_glue_ml_transform +where + created_on >= '2024-01-01'; +``` + +```sql+sqlite +select + name, + transform_id, + status, + created_on +from + aws_glue_ml_transform +where + created_on >= '2024-01-01'; +``` + +### Filter transforms by last modification date +Find transforms modified within a specific time range using the optional qualifier with operators. + +```sql+postgres +select + name, + transform_id, + status, + last_modified_on +from + aws_glue_ml_transform +where + last_modified_on >= '2024-01-01' + and last_modified_on <= '2024-12-31'; +``` + +```sql+sqlite +select + name, + transform_id, + status, + last_modified_on +from + aws_glue_ml_transform +where + last_modified_on >= '2024-01-01' + and last_modified_on <= '2024-12-31'; +``` + +### Filter transforms by Glue version +Find transforms compatible with a specific Glue version using the optional qualifier. + +```sql+postgres +select + name, + transform_id, + glue_version, + status +from + aws_glue_ml_transform +where + glue_version = '3.0'; +``` + +```sql+sqlite +select + name, + transform_id, + glue_version, + status +from + aws_glue_ml_transform +where + glue_version = '3.0'; +``` diff --git a/docs/tables/aws_iam_instance_profile.md b/docs/tables/aws_iam_instance_profile.md new file mode 100644 index 000000000..ddd27123a --- /dev/null +++ b/docs/tables/aws_iam_instance_profile.md @@ -0,0 +1,218 @@ +--- +title: "Steampipe Table: aws_iam_instance_profile - Query AWS Identity and Access Management (IAM) Instance Profiles using SQL" +description: "Allows users to query IAM Instance Profiles to gain insights into their configurations, associated roles, and metadata." +folder: "IAM" +--- + +# Table: aws_iam_instance_profile - Query AWS Identity and Access Management (IAM) Instance Profiles using SQL + +An IAM instance profile is a container for an IAM role that you can use to pass role information to an EC2 instance when the instance starts. An instance profile can contain only one role, and that limit cannot be increased. If you create a role by using the IAM console, the console creates an instance profile automatically and gives it the same name as the role to which it corresponds. + +## Table Usage Guide + +The `aws_iam_instance_profile` table in Steampipe provides you with information about IAM instance profiles within AWS Identity and Access Management (IAM). This table allows you, as a DevOps engineer, to query instance profile-specific details, including associated roles, creation date, and associated metadata. You can utilize this table to gather insights on instance profiles, such as which roles are attached to each instance profile, identify instance profiles without roles, verification of instance profile configurations, and more. The schema outlines the various attributes of the IAM instance profile for you, including the instance profile ARN, creation date, associated roles, and associated tags. + +## Examples + +### List all IAM instance profiles +Discover all IAM instance profiles in your AWS account to understand what roles are available for EC2 instances. + +```sql+postgres +select + instance_profile_name, + arn, + create_date, + path +from + aws_iam_instance_profile +order by + instance_profile_name; +``` + +```sql+sqlite +select + instance_profile_name, + arn, + create_date, + path +from + aws_iam_instance_profile +order by + instance_profile_name; +``` + +### List instance profiles with their associated roles +Identify the relationships between instance profiles and their associated IAM roles to understand permission assignments. + +```sql+postgres +select + ip.instance_profile_name as instance_profile_name, + ip.arn as instance_profile_arn, + role ->> 'RoleName' as role_name, + role ->> 'Arn' as role_arn +from + aws_iam_instance_profile as ip, + jsonb_array_elements(roles) as role; +``` + +```sql+sqlite +select + ip.instance_profile_name as instance_profile_name, + ip.arn as instance_profile_arn, + json_extract(role.value, '$.RoleName') as role_name, + json_extract(role.value, '$.Arn') as role_arn +from + aws_iam_instance_profile as ip, + json_each(roles) as role; +``` + +### Find instance profiles without any associated roles +Identify instance profiles that don't have any roles attached, which may indicate incomplete configurations. + +```sql+postgres +select + instance_profile_name, + arn, + create_date +from + aws_iam_instance_profile +where + roles is null + or jsonb_array_length(roles) = 0; +``` + +```sql+sqlite +select + instance_profile_name, + arn, + create_date +from + aws_iam_instance_profile +where + roles is null + or json_array_length(roles) = 0; +``` + +### List instance profiles created in the last 30 days +Identify recently created instance profiles to track new configurations and potential security implications. + +```sql+postgres +select + instance_profile_name, + arn, + create_date, + path +from + aws_iam_instance_profile +where + create_date >= now() - interval '30 days' +order by + create_date desc; +``` + +```sql+sqlite +select + instance_profile_name, + arn, + create_date, + path +from + aws_iam_instance_profile +where + create_date >= datetime('now', '-30 days') +order by + create_date desc; +``` + +### Get instance profiles with specific tags +Find instance profiles that have specific tags to understand organization and categorization. + +```sql+postgres +select + instance_profile_name, + arn, + tags +from + aws_iam_instance_profile +where + tags ->> 'Environment' = 'Production'; +``` + +```sql+sqlite +select + instance_profile_name, + arn, + tags +from + aws_iam_instance_profile +where + json_extract(tags, '$.Environment') = 'Production'; +``` + +### List instance profiles with roles that have specific permissions +Identify instance profiles whose associated roles have specific policies attached. + +```sql+postgres +select + ip.instance_profile_name as instance_profile_name, + role ->> 'RoleName' as role_name, + p.policy_name +from + aws_iam_instance_profile as ip, + jsonb_array_elements(roles) as role, + aws_iam_role as r, + jsonb_array_elements_text(r.attached_policy_arns) as policy_arn, + aws_iam_policy as p +where + r.arn = role ->> 'Arn' + and p.arn = policy_arn + and p.policy_name like '%EC2%'; +``` + +```sql+sqlite +select + ip.instance_profile_name as instance_profile_name, + json_extract(role.value, '$.RoleName') as role_name, + p.policy_name +from + aws_iam_instance_profile as ip, + json_each(roles) as role, + aws_iam_role as r, + json_each(r.attached_policy_arns) as policy_arn, + aws_iam_policy as p +where + r.arn = json_extract(role.value, '$.Arn') + and p.arn = policy_arn.value + and p.policy_name like '%EC2%'; +``` + +### Count instance profiles by path prefix +Analyze the distribution of instance profiles across different organizational paths. + +```sql+postgres +select + substring(path from 1 for position('/' in substring(path from 2)) + 1) as path_prefix, + count(*) as instance_profile_count +from + aws_iam_instance_profile +where + path != '/' +group by + path_prefix +order by + instance_profile_count desc; +``` + +```sql+sqlite +select + substr(path, 1, instr(substr(path, 2), '/') + 1) as path_prefix, + count(*) as instance_profile_count +from + aws_iam_instance_profile +where + path != '/' +group by + path_prefix +order by + instance_profile_count desc; +``` diff --git a/docs/tables/aws_inspector2_organization_configuration.md b/docs/tables/aws_inspector2_organization_configuration.md new file mode 100644 index 000000000..0186b4268 --- /dev/null +++ b/docs/tables/aws_inspector2_organization_configuration.md @@ -0,0 +1,262 @@ +--- +title: "Steampipe Table: aws_inspector2_organization_configuration - Query AWS Inspector2 Regional Organization Configuration using SQL" +description: "Allows users to query AWS Inspector2 regional organization configuration, including auto-enable settings for scan types and account limit status per region." +folder: "Inspector2" +--- + +# Table: aws_inspector2_organization_configuration - Query AWS Inspector2 Regional Organization Configuration using SQL + +The AWS Inspector2 Regional Organization Configuration contains settings that determine which scan types are automatically enabled for new members of your organization within a specific region and whether the organization has reached its account limit. These configurations help manage the security posture across your AWS organization on a regional basis. + +## Table Usage Guide + +The `aws_inspector2_organization_configuration` table in Steampipe provides you with information about the regional organization configuration of Amazon Inspector2. This table allows you, as a cloud administrator, security team member, or compliance officer, to query regional organization settings, including which scan types are automatically enabled for new members and whether the organization has reached its account limit. You can utilize this table to gather insights on regional organization configuration, such as EC2, ECR, Lambda, and Lambda Code scan auto-enablement status, account limit status, and region information. The schema outlines the various attributes of the regional organization configuration for you, including the region, scan type auto-enablement settings, and account limit status. + +**Important Notes** +- To query this table, the account must be registered as the delegated administrator. For more details, see: https://docs.aws.amazon.com/inspector/latest/user/admin-member-relationship.html + +## Examples + +### Basic info +Analyze the regional organization configuration to understand which scan types are automatically enabled for new members and whether the organization has reached its account limit. This is useful for ensuring your security posture is properly configured across regions. + +```sql+postgres +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable, + max_account_limit_reached, + title +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable, + max_account_limit_reached, + title +from + aws_inspector2_organization_configuration; +``` + +### List regions with scan type auto-enablement settings +Identify which scan types are automatically enabled for new members of your organization across all regions. This helps in understanding the default security posture for new accounts. + +```sql+postgres +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable +from + aws_inspector2_organization_configuration; +``` + +### List regions with organization account limit status +Determine whether your organization has reached the maximum AWS account limit for Amazon Inspector across all regions. This is important for capacity planning and understanding organizational constraints. + +```sql+postgres +select + region, + max_account_limit_reached, + case + when max_account_limit_reached then 'Organization has reached maximum account limit' + else 'Organization can add more accounts' + end as limit_status +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + max_account_limit_reached, + case + when max_account_limit_reached then 'Organization has reached maximum account limit' + else 'Organization can add more accounts' + end as limit_status +from + aws_inspector2_organization_configuration; +``` + +### List regions with comprehensive scan type coverage +Identify regions that have all scan types (EC2, ECR, Lambda, and Lambda Code) automatically enabled for new members. This indicates a comprehensive security posture across regions. + +```sql+postgres +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable, + case + when ec2_auto_enable + and ecr_auto_enable + and lambda_auto_enable + and lambda_code_auto_enable + then 'All scan types enabled' + else 'Some scan types disabled' + end as scan_coverage +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable, + case + when ec2_auto_enable + and ecr_auto_enable + and lambda_auto_enable + and lambda_code_auto_enable + then 'All scan types enabled' + else 'Some scan types disabled' + end as scan_coverage +from + aws_inspector2_organization_configuration; +``` + +### List regions with EC2 scan auto-enablement status +Focus specifically on EC2 scan configuration to understand if EC2 scans are automatically enabled for new members across regions. + +```sql+postgres +select + region, + ec2_auto_enable, + case + when ec2_auto_enable then 'EC2 scans are auto-enabled' + else 'EC2 scans are not auto-enabled' + end as ec2_status +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + ec2_auto_enable, + case + when ec2_auto_enable then 'EC2 scans are auto-enabled' + else 'EC2 scans are not auto-enabled' + end as ec2_status +from + aws_inspector2_organization_configuration; +``` + +### List regions with ECR scan auto-enablement status +Focus specifically on ECR scan configuration to understand if ECR scans are automatically enabled for new members across regions. + +```sql+postgres +select + region, + ecr_auto_enable, + case + when ecr_auto_enable then 'ECR scans are auto-enabled' + else 'ECR scans are not auto-enabled' + end as ecr_status +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + ecr_auto_enable, + case + when ecr_auto_enable then 'ECR scans are auto-enabled' + else 'ECR scans are not auto-enabled' + end as ecr_status +from + aws_inspector2_organization_configuration; +``` + +### List regions with Lambda scan auto-enablement status +Focus specifically on Lambda scan configuration to understand if Lambda scans are automatically enabled for new members across regions. + +```sql+postgres +select + region, + lambda_auto_enable, + lambda_code_auto_enable, + case + when lambda_auto_enable and lambda_code_auto_enable + then 'Both Lambda and Lambda Code scans are enabled' + when lambda_auto_enable + then 'Only Lambda scans are enabled' + when lambda_code_auto_enable + then 'Only Lambda Code scans are enabled' + else 'No Lambda scans are enabled' + end as lambda_scan_status +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + lambda_auto_enable, + lambda_code_auto_enable, + case + when lambda_auto_enable and lambda_code_auto_enable + then 'Both Lambda and Lambda Code scans are enabled' + when lambda_auto_enable + then 'Only Lambda scans are enabled' + when lambda_code_auto_enable + then 'Only Lambda Code scans are enabled' + else 'No Lambda scans are enabled' + end as lambda_scan_status +from + aws_inspector2_organization_configuration; +``` + +### List complete regional organization configurations +Retrieve the complete organization configuration including all auto-enable settings and account limit status for comprehensive analysis across all regions. + +```sql+postgres +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable, + max_account_limit_reached, + title +from + aws_inspector2_organization_configuration; +``` + +```sql+sqlite +select + region, + ec2_auto_enable, + ecr_auto_enable, + lambda_auto_enable, + lambda_code_auto_enable, + max_account_limit_reached, + title +from + aws_inspector2_organization_configuration; +``` diff --git a/docs/tables/aws_lambda_alias.md b/docs/tables/aws_lambda_alias.md index eb6684c1d..0b1085946 100644 --- a/docs/tables/aws_lambda_alias.md +++ b/docs/tables/aws_lambda_alias.md @@ -96,4 +96,31 @@ select url_config from aws_lambda_alias; +``` + +### List aliases with traffic routing configurations +Identify Lambda aliases that use traffic routing between multiple function versions. This helps in understanding and managing gradual deployments and version transitions. + +```sql+postgres +select + name, + function_name, + function_version as primary_version, + jsonb_pretty(routing_config) as routing_config +from + aws_lambda_alias +where + routing_config is not null; +``` + +```sql+sqlite +select + name, + function_name, + function_version as primary_version, + routing_config +from + aws_lambda_alias +where + routing_config is not null; ``` \ No newline at end of file diff --git a/docs/tables/aws_macie2_finding.md b/docs/tables/aws_macie2_finding.md new file mode 100644 index 000000000..36f9fbaa3 --- /dev/null +++ b/docs/tables/aws_macie2_finding.md @@ -0,0 +1,346 @@ +--- +title: "Steampipe Table: aws_macie2_finding - Query AWS Macie2 Findings using SQL" +description: "Allows users to query AWS Macie2 Findings to retrieve detailed information about security and data privacy findings, including their type, severity, status, and associated metadata." +folder: "Macie2" +--- + +# Table: aws_macie2_finding - Query AWS Macie2 Findings using SQL + +AWS Macie2 is a data security and data privacy service that uses machine learning and pattern matching to discover and protect your sensitive data in AWS. It automatically discovers, classifies, and protects sensitive data stored in Amazon S3. The `aws_macie2_finding` table provides information about security and data privacy findings that Macie2 has generated, including details about sensitive data discovery, policy violations, and other security-related events. + +## Table Usage Guide + +The `aws_macie2_finding` table in Steampipe provides you with information about security and data privacy findings within AWS Macie2. This table allows you, as a security analyst, compliance officer, or DevOps engineer, to query finding-specific details, including the finding type, severity, status, and associated metadata. You can utilize this table to gather insights on findings, such as identifying sensitive data exposure, monitoring policy violations, and tracking remediation efforts. The schema outlines the various attributes of the Macie2 finding for you, including the finding ID, type, severity, status, and associated tags. + +## Examples + +### List all findings +Retrieve basic information about your AWS Macie2 findings, including their type, severity, and status. This can be useful for getting an overview of security and data privacy issues in your AWS account. + +```sql+postgres +select + id, + type, + severity, + status, + created_at +from + aws_macie2_finding; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + created_at +from + aws_macie2_finding; +``` + +### Get details of a specific finding +Query detailed information about a specific finding to understand its impact and required actions. + +```sql+postgres +select + id, + type, + severity, + status, + description, + category, + count, + resources_affected +from + aws_macie2_finding +where + id = '12345678901234567890123456789012'; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + description, + category, + count, + resources_affected +from + aws_macie2_finding +where + id = '12345678901234567890123456789012'; +``` + +### List high severity findings +Identify findings that require immediate attention based on their severity level. + +```sql+postgres +select + id, + type, + severity, + status, + created_at, + description +from + aws_macie2_finding +where + severity = 'HIGH'; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + created_at, + description +from + aws_macie2_finding +where + severity = 'HIGH'; +``` + +### List findings by type +Filter findings by their type to focus on specific categories of security or data privacy issues. + +```sql+postgres +select + id, + type, + severity, + status, + created_at, + description +from + aws_macie2_finding +where + type = 'SensitiveData:S3Object/Multiple'; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + created_at, + description +from + aws_macie2_finding +where + type = 'SensitiveData:S3Object/Multiple'; +``` + +### List active findings +Monitor currently active findings that require attention or remediation. + +```sql+postgres +select + id, + type, + severity, + status, + created_at, + description +from + aws_macie2_finding +where + status = 'ACTIVE'; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + created_at, + description +from + aws_macie2_finding +where + status = 'ACTIVE'; +``` + +### List findings with remediation information +Review findings that include specific remediation steps or recommendations. + +```sql+postgres +select + id, + type, + severity, + status, + remediation +from + aws_macie2_finding +where + remediation is not null; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + remediation +from + aws_macie2_finding +where + remediation is not null; +``` + +### List findings with classification details +Examine findings that include detailed classification information about the discovered data. + +```sql+postgres +select + id, + type, + severity, + status, + classification_details +from + aws_macie2_finding +where + classification_details is not null; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + classification_details +from + aws_macie2_finding +where + classification_details is not null; +``` + +### List findings by date range +Monitor findings generated within a specific time period. + +```sql+postgres +select + id, + type, + severity, + status, + created_at +from + aws_macie2_finding +where + created_at >= now() - interval '7 days'; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + created_at +from + aws_macie2_finding +where + created_at >= datetime('now', '-7 days'); +``` + +### List findings with affected resources +Identify findings that include information about affected AWS resources. + +```sql+postgres +select + id, + type, + severity, + status, + resources_affected +from + aws_macie2_finding +where + resources_affected is not null; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + resources_affected +from + aws_macie2_finding +where + resources_affected is not null; +``` + +### List findings with sample data +Review findings that include sample data to better understand the nature of the discovered sensitive information. + +```sql+postgres +select + id, + type, + severity, + status, + sample +from + aws_macie2_finding +where + sample is not null; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + sample +from + aws_macie2_finding +where + sample is not null; +``` + +### List findings by account and region +Filter findings by specific AWS account and region to focus on particular environments. + +```sql+postgres +select + id, + type, + severity, + status, + source_account_id, + source_region +from + aws_macie2_finding +where + source_account_id = '123456789012' + and source_region = 'us-east-1'; +``` + +```sql+sqlite +select + id, + type, + severity, + status, + source_account_id, + source_region +from + aws_macie2_finding +where + source_account_id = '123456789012' + and source_region = 'us-east-1'; +``` diff --git a/docs/tables/aws_mskconnect_connector.md b/docs/tables/aws_mskconnect_connector.md new file mode 100644 index 000000000..03d67de00 --- /dev/null +++ b/docs/tables/aws_mskconnect_connector.md @@ -0,0 +1,318 @@ +--- +title: "Steampipe Table: aws_mskconnect_connector - Query AWS MSK Connect Connectors using SQL" +description: "Allows users to query AWS MSK Connect connectors to retrieve detailed information about each connector configuration, state, and associated metadata." +folder: "MSK" +--- + +# Table: aws_mskconnect_connector - Query AWS MSK Connect Connectors using SQL + +AWS MSK Connect is a fully managed service that makes it easy to deploy and run Apache Kafka Connect applications on AWS. It allows you to easily move data between Apache Kafka clusters and other data stores using pre-built connectors. The `aws_mskconnect_connector` table provides information about MSK Connect connectors, including their configuration, state, and metadata. + +## Table Usage Guide + +The `aws_mskconnect_connector` table in Steampipe provides you with information about MSK Connect connectors within AWS. This table allows you, as a DevOps engineer, to query connector-specific details, including connector ARN, name, state, configuration, and associated metadata. You can utilize this table to gather insights on connectors, such as their current state, Kafka cluster connections, plugin configurations, and more. The schema outlines the various attributes of the MSK Connect connector for you, including the connector name, ARN, state, capacity settings, and associated tags. + +## Examples + +### Basic info +Explore the status and details of your AWS MSK Connect connectors to understand their configuration and operational state. This can be useful for auditing purposes or to identify potential issues with connector setup. + +```sql+postgres +select + connector_name, + arn, + connector_state, + creation_time, + current_version, + kafka_connect_version +from + aws_mskconnect_connector; +``` + +```sql+sqlite +select + connector_name, + arn, + connector_state, + creation_time, + current_version, + kafka_connect_version +from + aws_mskconnect_connector; +``` + +### List active connectors +Identify MSK Connect connectors that are currently active and operational. + +```sql+postgres +select + connector_name, + arn, + connector_state, + creation_time +from + aws_mskconnect_connector +where + connector_state = 'RUNNING'; +``` + +```sql+sqlite +select + connector_name, + arn, + connector_state, + creation_time +from + aws_mskconnect_connector +where + connector_state = 'RUNNING'; +``` + +### Find connectors with specific Kafka Connect versions +Identify connectors using specific versions of Kafka Connect for version management and compatibility assessment. + +```sql+postgres +select + connector_name, + arn, + kafka_connect_version, + connector_state +from + aws_mskconnect_connector +where + kafka_connect_version = '2.7.1'; +``` + +```sql+sqlite +select + connector_name, + arn, + kafka_connect_version, + connector_state +from + aws_mskconnect_connector +where + kafka_connect_version = '2.7.1'; +``` + +### Get connector configuration details +Retrieve detailed configuration information for connectors including their settings and parameters. + +```sql+postgres +select + connector_name, + arn, + connector_configuration, + capacity +from + aws_mskconnect_connector +where + connector_configuration is not null; +``` + +```sql+sqlite +select + connector_name, + arn, + connector_configuration, + capacity +from + aws_mskconnect_connector +where + connector_configuration is not null; +``` + +### List connectors with CloudWatch log delivery enabled +Identify connectors that have log delivery to CloudWatch Logs configured for monitoring and debugging. + +```sql+postgres +select + connector_name, + arn, + log_delivery, + connector_state +from + aws_mskconnect_connector +where + log_delivery is not null; +``` + +```sql+sqlite +select + connector_name, + arn, + log_delivery, + connector_state +from + aws_mskconnect_connector +where + log_delivery is not null; +``` + +### Find connectors with specific authentication types +Identify connectors using specific authentication methods for Kafka cluster connections. + +```sql+postgres +select + connector_name, + arn, + kafka_cluster_client_authentication, + connector_state +from + aws_mskconnect_connector +where + kafka_cluster_client_authentication is not null; +``` + +```sql+sqlite +select + connector_name, + arn, + kafka_cluster_client_authentication, + connector_state +from + aws_mskconnect_connector +where + kafka_cluster_client_authentication is not null; +``` + +### List recently created connectors +Find connectors that were created recently to track new deployments and changes in your data pipeline environment. + +```sql+postgres +select + connector_name, + arn, + creation_time, + connector_state +from + aws_mskconnect_connector +where + creation_time >= now() - interval '30 days' +order by + creation_time desc; +``` + +```sql+sqlite +select + connector_name, + arn, + creation_time, + connector_state +from + aws_mskconnect_connector +where + creation_time >= datetime('now', '-30 days') +order by + creation_time desc; +``` + +### Find connectors with state issues +Identify connectors that may have state issues or failed operations for troubleshooting. + +```sql+postgres +select + connector_name, + arn, + connector_state, + state_description +from + aws_mskconnect_connector +where + connector_state not in ('RUNNING', 'CREATING') + and state_description is not null; +``` + +```sql+sqlite +select + connector_name, + arn, + connector_state, + state_description +from + aws_mskconnect_connector +where + connector_state not in ('RUNNING', 'CREATING') + and state_description is not null; +``` + +### Check connector capacity settings +Analyze the capacity settings of connectors to understand their resource allocation and scaling configuration. + +```sql+postgres +select + connector_name, + arn, + capacity, + connector_state +from + aws_mskconnect_connector +where + capacity is not null; +``` + +```sql+sqlite +select + connector_name, + arn, + capacity, + connector_state +from + aws_mskconnect_connector +where + capacity is not null; +``` + +### List connectors by service execution role +Identify connectors by their IAM service execution roles for security and access control analysis. + +```sql+postgres +select + connector_name, + arn, + service_execution_role_arn, + connector_state +from + aws_mskconnect_connector +where + service_execution_role_arn is not null; +``` + +```sql+sqlite +select + connector_name, + arn, + service_execution_role_arn, + connector_state +from + aws_mskconnect_connector +where + service_execution_role_arn is not null; +``` + +### Monitor connector state distribution +Analyze the distribution of connector states across your MSK Connect environment for operational insights. + +```sql+postgres +select + connector_state, + count(*) as connector_count +from + aws_mskconnect_connector +group by + connector_state +order by + connector_count desc; +``` + +```sql+sqlite +select + connector_state, + count(*) as connector_count +from + aws_mskconnect_connector +group by + connector_state +order by + connector_count desc; +``` diff --git a/docs/tables/aws_opensearch_reserved_instance.md b/docs/tables/aws_opensearch_reserved_instance.md new file mode 100644 index 000000000..9acd26b3f --- /dev/null +++ b/docs/tables/aws_opensearch_reserved_instance.md @@ -0,0 +1,218 @@ +--- +title: "Steampipe Table: aws_opensearch_reserved_instance - Query AWS OpenSearch Reserved Instances using SQL" +description: "Allows users to query AWS OpenSearch Reserved Instances and provides information about each Reserved Instance within an AWS account." +folder: "OpenSearch" +--- + +# Table: aws_opensearch_reserved_instance - Query AWS OpenSearch Reserved Instances using SQL + +An AWS OpenSearch Reserved Instance provides a significant discount compared to On-Demand instance pricing in exchange for a commitment to use the instance for a one or three year term. This table allows you to query details about Reserved Instances that have been purchased for OpenSearch domains. + +## Table Usage Guide + +The `aws_opensearch_reserved_instance` table in Steampipe provides you with information about Reserved Instances within AWS OpenSearch. This table allows you, as a DevOps engineer, financial analyst, or other technical professional, to query Reserved Instance-specific details, including instance type, start time, duration, pricing information, and current state. You can utilize this table to gather insights on Reserved Instances, such as tracking reservation usage, analyzing cost savings, monitoring expiration dates, and auditing payment options. The schema outlines the various attributes of the Reserved Instance for you, including the reservation ID, instance type, duration, fixed price, usage price, and associated metadata. + +## Examples + +### Basic Reserved Instance info +Explore which OpenSearch Reserved Instances are active in your account, including their type, state, and pricing details. + +```sql+postgres +select + reserved_instance_id, + reservation_name, + instance_type, + state, + instance_count, + payment_option, + currency_code +from + aws_opensearch_reserved_instance; +``` + +```sql+sqlite +select + reserved_instance_id, + reservation_name, + instance_type, + state, + instance_count, + payment_option, + currency_code +from + aws_opensearch_reserved_instance; +``` + +### List all active Reserved Instances +Discover which OpenSearch Reserved Instances are currently active and in use. + +```sql+postgres +select + reserved_instance_id, + reservation_name, + instance_type, + instance_count, + start_time, + duration +from + aws_opensearch_reserved_instance +where + state = 'active'; +``` + +```sql+sqlite +select + reserved_instance_id, + reservation_name, + instance_type, + instance_count, + start_time, + duration +from + aws_opensearch_reserved_instance +where + state = 'active'; +``` + +### Calculate cost savings and analyze Reserved Instance pricing +Analyze the financial aspects of your Reserved Instances by examining upfront costs, hourly rates, and payment options. + +```sql+postgres +select + reserved_instance_id, + reservation_name, + instance_type, + payment_option, + fixed_price, + usage_price, + duration, + (fixed_price + (usage_price * duration / 3600)) as total_cost +from + aws_opensearch_reserved_instance +order by + total_cost desc; +``` + +```sql+sqlite +select + reserved_instance_id, + reservation_name, + instance_type, + payment_option, + fixed_price, + usage_price, + duration, + (fixed_price + (usage_price * duration / 3600.0)) as total_cost +from + aws_opensearch_reserved_instance +order by + total_cost desc; +``` + +### Reserved Instances expiring soon +Identify Reserved Instances that will expire in the next 90 days so you can plan for renewals or capacity adjustments. + +```sql+postgres +select + reserved_instance_id, + reservation_name, + instance_type, + instance_count, + start_time, + start_time + (duration || ' seconds')::interval as end_time, + extract(days from (start_time + (duration || ' seconds')::interval - now())) as days_until_expiration +from + aws_opensearch_reserved_instance +where + start_time + (duration || ' seconds')::interval <= now() + interval '90 days' + and state = 'active' +order by + days_until_expiration; +``` + +```sql+sqlite +select + reserved_instance_id, + reservation_name, + instance_type, + instance_count, + start_time, + datetime(start_time, '+' || duration || ' seconds') as end_time, + julianday(datetime(start_time, '+' || duration || ' seconds')) - julianday('now') as days_until_expiration +from + aws_opensearch_reserved_instance +where + datetime(start_time, '+' || duration || ' seconds') <= datetime('now', '+90 days') + and state = 'active' +order by + days_until_expiration; +``` + +### Group Reserved Instances by instance type +Analyze your Reserved Instance portfolio by grouping reservations by instance type to understand capacity distribution. + +```sql+postgres +select + instance_type, + count(*) as reservation_count, + sum(instance_count) as total_instances, + sum(fixed_price) as total_upfront_cost, + avg(usage_price) as avg_hourly_rate +from + aws_opensearch_reserved_instance +where + state = 'active' +group by + instance_type +order by + total_instances desc; +``` + +```sql+sqlite +select + instance_type, + count(*) as reservation_count, + sum(instance_count) as total_instances, + sum(fixed_price) as total_upfront_cost, + avg(usage_price) as avg_hourly_rate +from + aws_opensearch_reserved_instance +where + state = 'active' +group by + instance_type +order by + total_instances desc; +``` + +### Analyze recurring charges +Examine the recurring charges associated with your Reserved Instances to understand ongoing costs. + +```sql+postgres +select + reserved_instance_id, + reservation_name, + instance_type, + payment_option, + jsonb_pretty(recurring_charges) as recurring_charges_detail +from + aws_opensearch_reserved_instance +where + recurring_charges is not null + and jsonb_array_length(recurring_charges) > 0; +``` + +```sql+sqlite +select + reserved_instance_id, + reservation_name, + instance_type, + payment_option, + recurring_charges as recurring_charges_detail +from + aws_opensearch_reserved_instance +where + recurring_charges is not null + and json_array_length(recurring_charges) > 0; +``` + diff --git a/docs/tables/aws_organizations_delegated_administrator.md b/docs/tables/aws_organizations_delegated_administrator.md new file mode 100644 index 000000000..eaa8ed0a5 --- /dev/null +++ b/docs/tables/aws_organizations_delegated_administrator.md @@ -0,0 +1,85 @@ +--- +title: "Steampipe Table: aws_organizations_delegated_administrator - Query AWS Organizations Delegated Administrators using SQL" +description: "Allows users to query AWS Organizations Delegated Administrators and provides information about each account delegated administrative privileges within an AWS Organization." +folder: "Organizations" +--- + +# Table: aws_organizations_delegated_administrator - Query AWS Organizations Delegated Administrators using SQL + +The AWS Organizations Delegated Administrator is a resource within AWS Organizations service that allows you to query details about your delegated administrator accounts, including their status, the date delegation was enabled, and associated metadata. This is useful for managing and auditing delegated administration within your organization. + +## Table Usage Guide + +The `aws_organizations_delegated_administrator` table in Steampipe lets you query details of accounts designated as delegated administrators in AWS Organizations. This table allows you, as a DevOps engineer, to identify accounts with specific statuses, view the date delegation was enabled, and gather other relevant account information. The schema outlines various attributes of each delegated administrator account. + +**Important Notes:** +* This table returns details about *delegated administrator* accounts, **not** the management account executing the API call. +* The `account_id` column shows the ID of the account that made the API request (typically the management account). To retrieve the ID of the delegated administrator (member account), refer to the `id` column. + +## Examples + +### Basic info +Retrieve basic information about all delegated administrators in your organization. + +```sql+postgres +select + id, + arn, + email, + joined_method, + joined_timestamp, + name, + status, + delegation_enabled_date +from + aws_organizations_delegated_administrator; +``` + +```sql+sqlite +select + id, + arn, + email, + joined_method, + joined_timestamp, + name, + status, + delegation_enabled_date +from + aws_organizations_delegated_administrator; +``` + +### List delegated administrators with a specific status +Identify delegated administrators with a particular status (e.g., ACTIVE, SUSPENDED, PENDING_CLOSURE). + +```sql+postgres +select + id, + name, + arn, + email, + joined_method, + joined_timestamp, + status, + delegation_enabled_date +from + aws_organizations_delegated_administrator +where + status = 'ACTIVE'; +``` + +```sql+sqlite +select + id, + name, + arn, + email, + joined_method, + joined_timestamp, + status, + delegation_enabled_date +from + aws_organizations_delegated_administrator +where + status = 'ACTIVE'; +``` \ No newline at end of file diff --git a/docs/tables/aws_organizations_delegated_services_for_account.md b/docs/tables/aws_organizations_delegated_services_for_account.md new file mode 100644 index 000000000..1b0e1acf4 --- /dev/null +++ b/docs/tables/aws_organizations_delegated_services_for_account.md @@ -0,0 +1,65 @@ +--- +title: "Steampipe Table: aws_organizations_delegated_services_for_account - Query AWS Organizations Delegated Services for an Account using SQL" +description: "Allows users to query AWS Organizations delegated services for a specific account, providing details on which services have been granted delegated administrative privileges." +folder: "Organizations" +--- + +# Table: aws_organizations_delegated_services_for_account - Query AWS Organizations Delegated Services for an Account using SQL + +The AWS Organizations Delegated Services for an Account is a resource that allows you to query information about the services that have been delegated administrative privileges for a given AWS account within an AWS Organization service. This allows you to query details about these services, including the service principal and the date the delegation was enabled. This is useful for managing and auditing delegated service administration within your organization. + +## Table Usage Guide + +The `aws_organizations_delegated_administrator` table in Steampipe lets you query the services granted delegated administration access to a specific account. You specify the delegated account ID, and the table returns a list of services and their delegation status. The schema outlines various attributes of each delegated service. + +**Important Notes:** +- This table supports the optional list key column `delegated_account_id`. +- The `delegated_account_id` is the ID of the account which has been granted delegated administration, *not* the management account making the API calls. + +## Examples + +### Basic info +Retrieve basic information about all delegated services. + +```sql+postgres +select + delegated_account_id, + service_principal, + delegation_enabled_date +from + aws_organizations_delegated_services_for_account +``` + +```sql+sqlite +select + delegated_account_id, + service_principal, + delegation_enabled_date +from + aws_organizations_delegated_services_for_account +``` + +### Basic info for a specific account +Retrieve basic information about all delegated services for a specific account. + +```sql+postgres +select + delegated_account_id, + service_principal, + delegation_enabled_date +from + aws_organizations_delegated_services_for_account +where + delegated_account_id = '123456789012'; +``` + +```sql+sqlite +select + delegated_account_id, + service_principal, + delegation_enabled_date +from + aws_organizations_delegated_services_for_account +where + delegated_account_id = '123456789012'; +``` \ No newline at end of file diff --git a/docs/tables/aws_resource_explorer_resource.md b/docs/tables/aws_resource_explorer_resource.md new file mode 100644 index 000000000..43a7ce2e9 --- /dev/null +++ b/docs/tables/aws_resource_explorer_resource.md @@ -0,0 +1,141 @@ +--- +title: "Steampipe Table: aws_resource_explorer_resource - Query AWS Resource Explorer Resources using SQL" +description: "Allows users to query AWS Resource Explorer Resources, providing comprehensive information about AWS resources across regions in your account." +folder: "Resource Explorer" +--- + +# Table: aws_resource_explorer_resource - Query AWS Resource Explorer Resources using SQL + +AWS Resource Explorer is a resource search and discovery service that helps you find and explore resources across your AWS account. It provides an internet search engine-like experience for discovering and exploring AWS resources like EC2 instances, S3 buckets, Lambda functions, and more. Resource Explorer maintains an index of your resources and their metadata, enabling quick and efficient searches. + +## Table Usage Guide + +The `aws_resource_explorer_resource` table provides insights into resources indexed by AWS Resource Explorer. As a cloud administrator or DevOps engineer, you can use this table to explore and discover resources across your AWS account, helping with tasks such as: + +**Important Notes** +- For improved performance, it is advised that you use the optional qual `filter` to limit the result set. For information about the supported syntax, see [Search query reference for Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html) in the AWS Resource Explorer User Guide. +- This table supports optional quals. Queries with optional quals are optimised. Optional quals are supported for the following columns: + - `filter` + - `view_arn` + +## Examples + +### Basic info +Get a simple overview of resources with essential fields. + +```sql+postgres +select + arn, + resource_type, + service, + region, + title +from + aws_resource_explorer_resource +limit 10; +``` + +```sql+sqlite +select + arn, + resource_type, + service, + region, + title +from + aws_resource_explorer_resource +limit 10; +``` + +### List all EC2 instances +Find all EC2 instances across regions in your account. + +```sql+postgres +select + arn, + region, + title, + properties +from + aws_resource_explorer_resource +where + resource_type = 'AWS::EC2::Instance' +order by + region; +``` + +```sql+sqlite +select + arn, + region, + title, + properties +from + aws_resource_explorer_resource +where + resource_type = 'AWS::EC2::Instance' +order by + region; +``` + +### Count resources by type and region +Get a summary of resource distribution across types and regions. + +```sql+postgres +select + resource_type, + region, + count(*) as resource_count +from + aws_resource_explorer_resource +group by + resource_type, + region +order by + resource_count desc; +``` + +```sql+sqlite +select + resource_type, + region, + count(*) as resource_count +from + aws_resource_explorer_resource +group by + resource_type, + region +order by + resource_count desc; +``` + +### List all EC2 resources +Find all EC2 resources across regions in your account. + +```sql+postgres +select + arn, + region, + title, + properties +from + aws_resource_explorer_resource +where + filter = 'service:EC2' +order by + region; +``` + +```sql+sqlite +select + arn, + region, + title, + properties +from + aws_resource_explorer_resource +where + filter = 'service:EC2' +order by + region; +``` diff --git a/docs/tables/aws_rolesanywhere_profile.md b/docs/tables/aws_rolesanywhere_profile.md new file mode 100644 index 000000000..edaf4016c --- /dev/null +++ b/docs/tables/aws_rolesanywhere_profile.md @@ -0,0 +1,91 @@ +--- +title: "Steampipe Table: aws_rolesanywhere_profile - Query AWS Roles Anywhere Trust Profiles using SQL" +description: "Allows users to query Roles Anywhere for detailed information about the profile configurations." +folder: "Roles Anywhere" +--- + +# Table: aws_rolesanywhere_profile - Query AWS Roles Anywhere Profiles using SQL + +AWS Roles Anywhere enables trusted entities outside of an AWS account to carry out operations within that account by using certificates for IAM Role assumption. Profiles can be used to control the role sessions for a Trust Anchor by configuring features like boundary policies. + +## Table Usage Guide + +The `aws_rolesanywhere_profile` table in Steampipe provides you with information about Roles Anywhere Profiles. This table allows you, as a DevOps engineer, to query Profile-specific details, including boundary policy, certificate field mappings, and associated metadata. You can utilize this table to gather insights on Profiles, such as the IAM roles a Profile can access, which permission restrictions apply to role sessions, and more. The schema outlines the various attributes of the Profile for you, including the ARN, attribute mappings, IAM information, and create and update times. + +## Examples + +### List enabled Profiles. +Determine the Profiles that are currently enabled. +This can be useful to determine which Profiles can create temporary session in the account. + +```sql+postgres +select + arn, + role_arns +from + aws_rolesanywhere_profile +where + enabled; +``` + +```sql+sqlite +select + arn, + role_arns +from + aws_rolesanywhere_profile +where + enabled; +``` + +### Find IAM Roles that can be assumed by Profiles +Determine the IAM Roles that can be assumed by a Profile and their attached/inline IAM policies. +This can be useful to determine the effective permissions for a Trust Anchor's Profile. + +```sql+postgres +select + profile.arn as profile_arn, + role.arn as role_arn, + role.attached_policy_arns as policy_arns, + role.inline_policies as inline_policies +from + aws_rolesanywhere_profile as profile, + jsonb_array_elements_text(profile.role_arns) as role_arn + join aws_iam_role as role on role_arn = role.arn +``` + +```sql+sqlite +select + profile.arn as profile_arn, + role.arn as role_arn, + role.attached_policy_arns as policy_arns, + role.inline_policies as inline_policies +from + aws_rolesanywhere_profile as profile, + json_each(profile.role_arns) as role_arn + join aws_iam_role as role on role_arn = role.arn +``` + +### List Profiles that have a session policy. +Determine the Profiles that have a session policy configured. +This can be useful to determine if temporary role sessions created using the Profile have restricted permissions relative to the role's identity policy(s). + +```sql+postgres +select + arn, + session_policy +from + aws_rolesanywhere_profile +where + session_policy is not null; +``` + +```sql+sqlite +select + arn, + session_policy +from + aws_rolesanywhere_profile +where + session_policy is not null; +``` diff --git a/docs/tables/aws_rolesanywhere_trust_anchor.md b/docs/tables/aws_rolesanywhere_trust_anchor.md new file mode 100644 index 000000000..9d9a11120 --- /dev/null +++ b/docs/tables/aws_rolesanywhere_trust_anchor.md @@ -0,0 +1,89 @@ +--- +title: "Steampipe Table: aws_rolesanywhere_trust_anchor - Query AWS Roles Anywhere Trust Anchors using SQL" +description: "Allows users to query Roles Anywhere for detailed information about the Trust Anchor configurations." +folder: "Roles Anywhere" +--- + +# Table: aws_rolesanywhere_trust_anchor - Query AWS Roles Anywhere Trust Anchors using SQL + +AWS Roles Anywhere enables trusted entities outside of an AWS account to carry out operations within that account by using certificates for IAM Role assumption. Trust Anchors contain the certificate bundle information used for those Role session creations. + +## Table Usage Guide + +The `aws_rolesanywhere_trust_anchor` table in Steampipe provides you with information about Trust Anchors with Roles Anywhere. This table allows you, as a DevOps engineer, to query Anchor-specific details, including certificate bundles, expiry notification settings, and associated metadata. You can utilize this table to gather insights on Trust Anchors, such as Anchors configured to use self-signed bundles vs ACM bundles, certificates not configured to notify on expiration, and more. The schema outlines the various attributes of the Trust Anchor for you, including the ARN, certificate data, and create and update times. + +## Examples + +### List enabled Trust Anchors. +Determine the Trust Anchors that are currently enabled. +This can be useful to determine which certificates can access the account. + +```sql+postgres +select + arn, + source_type, + source_data +from + aws_rolesanywhere_trust_anchor +where + enabled; +``` + +```sql+sqlite +select + arn, + source_type, + source_data +from + aws_rolesanywhere_trust_anchor +where + enabled; +``` + +### List Trust Anchors not using an ACM Private CA. +Determine the Trust Anchors that are not configured to use a Certificate Manager (ACM) Private Certificate Authority (PCA). +This can be useful to determine which Anchors are using an uploaded certificate bundle. + +```sql+postgres +select + arn +from + aws_rolesanywhere_trust_anchor +where + source_type <> 'AWS_ACM_PCA'; +``` + +```sql+sqlite +select + arn +from + aws_rolesanywhere_trust_anchor +where + source_type <> 'AWS_ACM_PCA'; +``` + +### List enabled Trust Anchor notifications +Determine the notification events that are enabled for each Trust Anchor. +This can be useful to determine which expiry events will trigger a notification. + +```sql+postgres +select + arn, + notification_setting -> 'Event' as event +from + aws_rolesanywhere_trust_anchor as anchor, + jsonb_array_elements(notification_settings) as notification_setting +where + notification_setting -> 'Enabled' = 'true' +``` + +```sql+sqlite +select + arn, + json_extract(notification_setting, '$.Event') as event +from + aws_rolesanywhere_trust_anchor as anchor, + json_each(notification_settings) as notification_setting +where + json_extract(notification_setting, '$.Enabled') = 'true' +``` diff --git a/docs/tables/aws_s3_directory_bucket.md b/docs/tables/aws_s3_directory_bucket.md new file mode 100644 index 000000000..b95154c91 --- /dev/null +++ b/docs/tables/aws_s3_directory_bucket.md @@ -0,0 +1,347 @@ +--- +title: "Steampipe Table: aws_s3_directory_bucket - Query AWS S3 Directory Buckets using SQL" +description: "Allows users to query AWS S3 directory buckets for detailed information about their configuration and properties." +folder: "S3" +--- + +# Table: aws_s3_directory_bucket - Query AWS S3 Directory Buckets using SQL + +An AWS S3 Directory Bucket is a high-performance storage option for applications that need consistent single-digit millisecond data access. Directory buckets are designed for applications that require high throughput and low latency, such as machine learning training, real-time analytics, and high-performance computing workloads. + +## Table Usage Guide + +The `aws_s3_directory_bucket` table in Steampipe provides you with information about S3 directory buckets within Amazon Simple Storage Service (S3). This table allows you, as a DevOps engineer, to query directory bucket-specific details, including their names, creation dates, and regional information. You can utilize this table to gather insights on directory buckets, such as their distribution across regions and creation timelines. + +## Examples + +### Basic info +Explore which AWS S3 directory buckets exist in different regions to understand your high-performance storage distribution across your AWS infrastructure. + +```sql+postgres +select + name, + region, + account_id, + creation_date +from + aws_s3_directory_bucket; +``` + +```sql+sqlite +select + name, + region, + account_id, + creation_date +from + aws_s3_directory_bucket; +``` + +### List directory buckets created in the last 30 days +Discover the segments that were created recently in your Amazon S3 directory buckets. This could be useful for tracking new high-performance storage deployments. + +```sql+postgres +select + name, + region, + account_id, + creation_date +from + aws_s3_directory_bucket +where + creation_date >= now() - interval '30 days'; +``` + +```sql+sqlite +select + name, + region, + account_id, + creation_date +from + aws_s3_directory_bucket +where + creation_date >= datetime('now', '-30 days'); +``` + +### Count directory buckets by region +Analyze the distribution of your S3 directory buckets across different AWS regions to understand your high-performance storage footprint. + +```sql+postgres +select + region, + count(*) as bucket_count +from + aws_s3_directory_bucket +group by + region +order by + bucket_count desc; +``` + +```sql+sqlite +select + region, + count(*) as bucket_count +from + aws_s3_directory_bucket +group by + region +order by + bucket_count desc; +``` + +### List directory buckets with specific naming patterns +Identify directory buckets that follow specific naming conventions, which can be useful for organizational and security audits. + +```sql+postgres +select + name, + region, + creation_date +from + aws_s3_directory_bucket +where + name like 'prod-%' or name like 'dev-%'; +``` + +```sql+sqlite +select + name, + region, + creation_date +from + aws_s3_directory_bucket +where + name like 'prod-%' or name like 'dev-%'; +``` + +### List directory buckets with encryption configuration +Find directory buckets that have server-side encryption configured for enhanced security. + +```sql+postgres +select + name, + region, + server_side_encryption_configuration +from + aws_s3_directory_bucket +where + server_side_encryption_configuration is not null; +``` + +```sql+sqlite +select + name, + region, + server_side_encryption_configuration +from + aws_s3_directory_bucket +where + server_side_encryption_configuration is not null; +``` + +### List directory buckets with lifecycle rules +Identify directory buckets that have lifecycle management policies configured. + +```sql+postgres +select + name, + region, + lifecycle_rules +from + aws_s3_directory_bucket +where + lifecycle_rules is not null; +``` + +```sql+sqlite +select + name, + region, + lifecycle_rules +from + aws_s3_directory_bucket +where + lifecycle_rules is not null; +``` + +### List directory buckets with bucket policies +Identify directory buckets that have bucket policies configured for access control. + +```sql+postgres +select + name, + region, + policy +from + aws_s3_directory_bucket +where + policy is not null; +``` + +```sql+sqlite +select + name, + region, + policy +from + aws_s3_directory_bucket +where + policy is not null; +``` + +### List directory buckets with all lifecycle rules +Extract all lifecycle rules from directory buckets, creating a row for each rule. + +```sql+postgres +select + name, + region, + jsonb_array_elements(lifecycle_rules) ->> 'ID' as lifecycle_rule_id, + jsonb_array_elements(lifecycle_rules) ->> 'Status' as lifecycle_status, + jsonb_array_elements(lifecycle_rules) -> 'Expiration' ->> 'Days' as expiration_days, + jsonb_array_elements(lifecycle_rules) -> 'Expiration' ->> 'Date' as expiration_date +from + aws_s3_directory_bucket +where + lifecycle_rules is not null; +``` + +```sql+sqlite +select + name, + region, + json_extract(value, '$.ID') as lifecycle_rule_id, + json_extract(value, '$.Status') as lifecycle_status, + json_extract(value, '$.Expiration.Days') as expiration_days, + json_extract(value, '$.Expiration.Date') as expiration_date +from + aws_s3_directory_bucket, + json_each(lifecycle_rules) +where + lifecycle_rules is not null; +``` + +### List directory buckets with all encryption configurations +Extract all encryption configuration details from directory buckets. + +```sql+postgres +select + name, + region, + jsonb_array_elements(server_side_encryption_configuration) ->> 'BucketKeyEnabled' as bucket_key_enabled, + jsonb_array_elements(server_side_encryption_configuration) -> 'ApplyServerSideEncryptionByDefault' ->> 'SSEAlgorithm' as encryption_algorithm, + jsonb_array_elements(server_side_encryption_configuration) -> 'ApplyServerSideEncryptionByDefault' ->> 'KMSMasterKeyID' as kms_key_id +from + aws_s3_directory_bucket +where + server_side_encryption_configuration is not null; +``` + +```sql+sqlite +select + name, + region, + json_extract(value, '$.BucketKeyEnabled') as bucket_key_enabled, + json_extract(value, '$.ApplyServerSideEncryptionByDefault.SSEAlgorithm') as encryption_algorithm, + json_extract(value, '$.ApplyServerSideEncryptionByDefault.KMSMasterKeyID') as kms_key_id +from + aws_s3_directory_bucket, + json_each(server_side_encryption_configuration) +where + server_side_encryption_configuration is not null; +``` + +### List directory buckets with all policy statements +Extract all policy statements from bucket policies, creating a row for each statement. + +```sql+postgres +select + name, + region, + jsonb_array_elements(policy -> 'Statement') ->> 'Sid' as policy_statement_id, + jsonb_array_elements(policy -> 'Statement') ->> 'Effect' as policy_effect, + jsonb_array_elements(policy -> 'Statement') -> 'Action' as policy_actions, + jsonb_array_elements(policy -> 'Statement') -> 'Resource' as policy_resources +from + aws_s3_directory_bucket +where + policy is not null; +``` + +```sql+sqlite +select + name, + region, + json_extract(value, '$.Sid') as policy_statement_id, + json_extract(value, '$.Effect') as policy_effect, + json_extract(value, '$.Action') as policy_actions, + json_extract(value, '$.Resource') as policy_resources +from + aws_s3_directory_bucket, + json_each(policy, '$.Statement') +where + policy is not null; +``` + +### Comprehensive directory bucket analysis +Extract and analyze all configuration details from directory buckets in a single query. + +```sql+postgres +with bucket_configs as ( + select + name, + region, + jsonb_array_elements(lifecycle_rules) as lifecycle_rule, + jsonb_array_elements(server_side_encryption_configuration) as encryption_config, + jsonb_array_elements(policy -> 'Statement') as policy_statement + from + aws_s3_directory_bucket + where + lifecycle_rules is not null + and server_side_encryption_configuration is not null + and policy is not null +) +select + name, + region, + lifecycle_rule ->> 'ID' as lifecycle_rule_id, + lifecycle_rule ->> 'Status' as lifecycle_status, + lifecycle_rule -> 'Expiration' ->> 'Days' as expiration_days, + encryption_config ->> 'BucketKeyEnabled' as bucket_key_enabled, + encryption_config -> 'ApplyServerSideEncryptionByDefault' ->> 'SSEAlgorithm' as encryption_algorithm, + policy_statement ->> 'Sid' as policy_statement_id, + policy_statement ->> 'Effect' as policy_effect +from + bucket_configs; +``` + +```sql+sqlite +with bucket_configs as ( + select + name, + region, + json_each(lifecycle_rules) as lifecycle_rule, + json_each(server_side_encryption_configuration) as encryption_config, + json_each(policy, '$.Statement') as policy_statement + from + aws_s3_directory_bucket + where + lifecycle_rules is not null + and server_side_encryption_configuration is not null + and policy is not null +) +select + name, + region, + json_extract(lifecycle_rule.value, '$.ID') as lifecycle_rule_id, + json_extract(lifecycle_rule.value, '$.Status') as lifecycle_status, + json_extract(lifecycle_rule.value, '$.Expiration.Days') as expiration_days, + json_extract(encryption_config.value, '$.BucketKeyEnabled') as bucket_key_enabled, + json_extract(encryption_config.value, '$.ApplyServerSideEncryptionByDefault.SSEAlgorithm') as encryption_algorithm, + json_extract(policy_statement.value, '$.Sid') as policy_statement_id, + json_extract(policy_statement.value, '$.Effect') as policy_effect +from + bucket_configs; +``` diff --git a/docs/tables/aws_s3tables_namespace.md b/docs/tables/aws_s3tables_namespace.md new file mode 100644 index 000000000..a3cdfa2b8 --- /dev/null +++ b/docs/tables/aws_s3tables_namespace.md @@ -0,0 +1,195 @@ +--- +title: "Steampipe Table: aws_s3tables_namespace - Query AWS S3 Tables Namespaces using SQL" +description: "Allows users to query AWS S3 Tables Namespaces, providing information about the configuration, settings, and properties of your S3 namespaces." +folder: "S3Tables" +--- + +# aws_s3tables_namespace - Query AWS S3 Tables Namespaces using SQL + +Amazon S3 Tables provide storage that's optimized for analytics workloads, with built-in Apache Iceberg support and features designed to continuously improve query performance and reduce storage costs for tables. Namespaces in S3 Tables help organize and categorize tables, providing a logical grouping mechanism. + +The `aws_s3tables_namespace` table provides insights into namespaces within your AWS account. This is useful for monitoring namespace configurations, analyzing organizational structures, and ensuring proper resource ownership and access control. + +## Table Usage Guide + +The `aws_s3tables_namespace` table provides information about namespaces in Amazon S3 Tables within your AWS account. As a data engineer or cloud administrator, this table helps you manage and monitor your namespace resources. You can use this table to identify namespaces, analyze their properties, verify owner information, and understand how tables are organized within your S3 Tables environment. + +## Examples + +### Basic info +Retrieves fundamental information about all S3 Tables namespaces in your AWS account, including their names, IDs, creation dates, and owner account IDs. + +```sql+postgres +select + namespace, + namespace_id, + created_at, + owner_account_id, + table_bucket_arn +from + aws_s3tables_namespace; +``` + +```sql+sqlite +select + namespace, + namespace_id, + created_at, + owner_account_id, + table_bucket_arn +from + aws_s3tables_namespace; +``` + +### Find recently created namespaces +Identify namespaces that have been created recently, which may indicate new data organization initiatives or projects. + +```sql+postgres +select + namespace, + namespace_id, + created_at, + table_bucket_arn +from + aws_s3tables_namespace +where + created_at > (current_date - interval '30 days') +order by + created_at desc; +``` + +```sql+sqlite +select + namespace, + namespace_id, + created_at, + table_bucket_arn +from + aws_s3tables_namespace +where + created_at > datetime('now', '-30 days') +order by + created_at desc; +``` + +### Count tables in each namespace +Analyze the distribution of tables across namespaces to understand your data organization. + +```sql+postgres +select + n.namespace, + count(t.name) as table_count +from + aws_s3tables_namespace n +left join + aws_s3tables_table t on t.namespace_id = n.namespace_id +group by + n.namespace +order by + table_count desc; +``` + +```sql+sqlite +select + n.namespace, + count(t.name) as table_count +from + aws_s3tables_namespace n +left join + aws_s3tables_table t on t.namespace_id = n.namespace_id +group by + n.namespace +order by + table_count desc; +``` + +### Get namespaces and their associated table buckets +Examine the relationships between namespaces and table buckets to understand your S3 Tables resource organization. + +```sql+postgres +select + n.namespace, + n.namespace_id, + n.table_bucket_arn +from + aws_s3tables_namespace n +order by + namespace; +``` + +```sql+sqlite +select + n.namespace, + n.namespace_id, + n.table_bucket_arn +from + aws_s3tables_namespace n +order by + namespace; +``` + +### Find namespaces in a specific table bucket +Identify all namespaces within a specific table bucket to understand the namespace organization. + +```sql+postgres +select + namespace, + namespace_id, + created_at, + owner_account_id, + table_bucket_arn +from + aws_s3tables_namespace +where + table_bucket_arn = 'arn:aws:s3tables:us-east-1:123456789012:tablebucket/my-table-bucket'; +``` + +```sql+sqlite +select + namespace, + namespace_id, + created_at, + owner_account_id, + table_bucket_arn +from + aws_s3tables_namespace +where + table_bucket_arn = 'arn:aws:s3tables:us-east-1:123456789012:tablebucket/my-table-bucket'; +``` + +### Join namespaces with table buckets and tables for a complete hierarchy +Provides a comprehensive view of your S3 Tables organization, showing the relationships between table buckets, namespaces, and tables. + +```sql+postgres +select + b.name as bucket_name, + n.namespace as namespace_name, + t.name as table_name, + t.type as table_type, + t.format as table_format, + n.created_at as namespace_created_at, + t.created_at as table_created_at +from + aws_s3tables_namespace n + join aws_s3tables_table_bucket b on n.table_bucket_id = b.table_bucket_id + left join aws_s3tables_table t on n.namespace_id = t.namespace_id +order by + b.name, n.namespace, t.name; +``` + +```sql+sqlite +select + b.name as bucket_name, + n.namespace as namespace_name, + t.name as table_name, + t.type as table_type, + t.format as table_format, + n.created_at as namespace_created_at, + t.created_at as table_created_at +from + aws_s3tables_namespace n + join aws_s3tables_table_bucket b on n.table_bucket_id = b.table_bucket_id + left join aws_s3tables_table t on n.namespace_id = t.namespace_id +order by + b.name, n.namespace, t.name; +``` diff --git a/docs/tables/aws_s3tables_table.md b/docs/tables/aws_s3tables_table.md new file mode 100644 index 000000000..c3d9d24b3 --- /dev/null +++ b/docs/tables/aws_s3tables_table.md @@ -0,0 +1,229 @@ +--- +title: "Steampipe Table: aws_s3tables_table - Query AWS S3 Tables Tables using SQL" +description: "Allows users to query AWS S3 Tables Tables, providing information about the configuration, settings, and properties of your S3 tables." +folder: "S3Tables" +--- + +# aws_s3tables_table - Query AWS S3 Tables Tables using SQL + +Amazon S3 Tables provide storage that's optimized for analytics workloads, with built-in Apache Iceberg support and features designed to continuously improve query performance and reduce storage costs for tables. Tables are structured datasets that define how to interpret data stored in S3. + +The `aws_s3tables_table` table provides insights into tables within your AWS account. This is useful for monitoring table configurations, analyzing storage properties, and ensuring proper resource ownership and access control. + +## Table Usage Guide + +The `aws_s3tables_table` table provides information about tables in Amazon S3 Tables within your AWS account. As a data engineer or cloud administrator, this table helps you manage and monitor your table resources. You can use this table to identify tables, analyze their properties, verify owner information, and understand relationships with namespaces and table buckets. + +The table uses a parent/child hydration pattern, listing tables for each S3 table bucket, which means queries will be optimized when filtering by table bucket information. + +## Examples + +### Basic info +Retrieves fundamental information about all S3 Tables tables in your AWS account, including their names, ARNs, creation dates, and namespace information. + +```sql+postgres +select + name, + arn, + namespace, + created_at, + table_bucket_arn +from + aws_s3tables_table; +``` + +```sql+sqlite +select + name, + arn, + namespace, + created_at, + table_bucket_arn +from + aws_s3tables_table; +``` + +### List tables with creation and modification details + +View tables along with who created them and when they were last modified. + +```sql+postgres +select + name, + created_at, + created_by, + modified_at, + modified_by, + namespace +from + aws_s3tables_table +order by + modified_at desc; +``` + +```sql+sqlite +select + name, + created_at, + created_by, + modified_at, + modified_by, + namespace +from + aws_s3tables_table +order by + modified_at desc; +``` + +### Find tables in a specific table bucket +Get all tables within a specific table bucket to understand their relationships and structure. + +```sql+postgres +select + name, + namespace, + format, + created_at, + type +from + aws_s3tables_table +where + table_bucket_arn = 'arn:aws:s3tables:us-east-1:123456789012:tablebucket/my-table-bucket'; +``` + +```sql+sqlite +select + name, + namespace, + format, + created_at, + type +from + aws_s3tables_table +where + table_bucket_arn = 'arn:aws:s3tables:us-east-1:123456789012:tablebucket/my-table-bucket'; +``` + +### Find recently modified tables +Identify tables that have been modified recently, which may indicate active development or data updates. + +```sql+postgres +select + name, + created_at, + modified_at, + modified_by, + table_bucket_arn +from + aws_s3tables_table +where + modified_at > (current_date - interval '7 days') +order by + modified_at desc; +``` + +```sql+sqlite +select + name, + created_at, + modified_at, + modified_by, + table_bucket_arn +from + aws_s3tables_table +where + modified_at > datetime('now', '-7 days') +order by + modified_at desc; +``` + +### Get table details including format and metadata location +Examine the details of tables including their format and metadata location to better understand how data is stored and accessed. + +```sql+postgres +select + name, + namespace, + format, + metadata_location, + warehouse_location, + version_token +from + aws_s3tables_table; +``` + +```sql+sqlite +select + name, + namespace, + format, + metadata_location, + warehouse_location, + version_token +from + aws_s3tables_table; +``` + +### Filter tables by namespace name +Find all tables within a specific namespace to analyze related data collections. + +```sql+postgres +select + name, + created_at, + format, + metadata_location +from + aws_s3tables_table +where + namespace = 'my-namespace'; +``` + +```sql+sqlite +select + name, + created_at, + format, + metadata_location +from + aws_s3tables_table +where + namespace = 'my-namespace'; +``` + +### Get namespace info for the tables +Get a complete view of tables with their associated namespaces and table buckets to understand the full hierarchy. + +```sql+postgres +select + t.name as table_name, + t.format as table_format, + t.type as table_type, + n.namespace as namespace_name, + b.name as bucket_name, + t.created_at, + t.modified_at +from + aws_s3tables_table t + join aws_s3tables_namespace n on t.namespace_id = n.namespace_id + join aws_s3tables_table_bucket b on n.table_bucket_id = b.table_bucket_id +order by + b.name, n.namespace, t.name; +``` + +```sql+sqlite +select + t.name as table_name, + t.format as table_format, + t.type as table_type, + n.namespace as namespace_name, + b.name as bucket_name, + t.created_at, + t.modified_at +from + aws_s3tables_table t + join aws_s3tables_namespace n on t.namespace_id = n.namespace_id + join aws_s3tables_table_bucket b on n.table_bucket_id = b.table_bucket_id +order by + b.name, n.namespace, t.name; +``` diff --git a/docs/tables/aws_s3tables_table_bucket.md b/docs/tables/aws_s3tables_table_bucket.md new file mode 100644 index 000000000..b95980ce0 --- /dev/null +++ b/docs/tables/aws_s3tables_table_bucket.md @@ -0,0 +1,189 @@ +--- +title: "Steampipe Table: aws_s3tables_table_bucket - Query AWS S3 Tables Table Buckets using SQL" +description: "Allows users to query AWS S3 Tables Table Buckets, providing information about the configuration, settings, and properties of your S3 table buckets." +folder: "S3Tables" +--- + +# aws_s3tables_table_bucket - Query AWS S3 Tables Table Buckets using SQL + +Amazon S3 Tables provide storage that's optimized for analytics workloads, with built-in Apache Iceberg support and features designed to continuously improve query performance and reduce storage costs for tables. S3 Tables store tabular data in table buckets, which are purpose-built for tables and provide higher transactions per second (TPS) and better query throughput compared to self-managed tables in S3 general purpose buckets. + +The `aws_s3tables_table_bucket` table provides insights into table buckets within your AWS account. This is useful for monitoring table bucket configurations, analyzing storage properties, and ensuring proper resource ownership and access control. + +## Table Usage Guide + +The `aws_s3tables_table_bucket` table provides information about S3 Tables table buckets in your AWS account. As a data engineer or cloud administrator, this table helps you manage and monitor your table bucket resources. You can use this table to identify table buckets, analyze their properties, and verify owner information. + +## Examples + +### Basic info +Retrieves fundamental information about all S3 Tables table buckets in your AWS account, including their names, ARNs, creation dates, and owner account IDs. This provides a quick overview of all table buckets you have access to. + +```sql+postgres +select + name, + arn, + created_at, + owner_account_id +from + aws_s3tables_table_bucket; +``` + +```sql+sqlite +select + name, + arn, + created_at, + owner_account_id +from + aws_s3tables_table_bucket; +``` + +### Get details for a specific table bucket +Show detailed information about a specific table bucket by name. This is useful when you need to examine the properties of a particular table bucket. + +```sql+postgres +select + name, + arn, + created_at, + table_bucket_id, + owner_account_id +from + aws_s3tables_table_bucket +where + name = 'my-table-bucket'; +``` + +```sql+sqlite +select + name, + arn, + created_at, + table_bucket_id, + owner_account_id +from + aws_s3tables_table_bucket +where + name = 'my-table-bucket'; +``` + +### Count table buckets by region +Aggregates and counts table buckets by AWS region, ordering the results by count in descending order. This helps you understand the distribution of your table buckets across different regions. + +```sql+postgres +select + region, + count(*) as bucket_count +from + aws_s3tables_table_bucket +group by + region +order by + bucket_count desc; +``` + +```sql+sqlite +select + region, + count(*) as bucket_count +from + aws_s3tables_table_bucket +group by + region +order by + bucket_count desc; +``` + +### Find table buckets created in the last 30 days +Identifies table buckets that were created within the last 30 days, ordered by creation date. This is helpful for tracking recent bucket creations and monitoring new resources. + +```sql+postgres +select + name, + arn, + created_at, + region +from + aws_s3tables_table_bucket +where + created_at > (current_date - interval '30' day) +order by + created_at desc; +``` + +```sql+sqlite +select + name, + arn, + created_at, + region +from + aws_s3tables_table_bucket +where + created_at > datetime('now', '-30 day') +order by + created_at desc; +``` + +### List table buckets belonging to a specific account +Table buckets to show only those owned by a specific AWS account. This is useful for multi-account environments where you need to identify resources associated with a particular account. + +```sql+postgres +select + name, + arn, + region, + created_at +from + aws_s3tables_table_bucket +where + owner_account_id = '123456789012'; +``` + +```sql+sqlite +select + name, + arn, + region, + created_at +from + aws_s3tables_table_bucket +where + owner_account_id = '123456789012'; +``` + +### Join with tables and namespaces to view complete hierarchy +Shows the hierarchical relationship between table buckets, namespaces, and tables, providing a complete view of your S3 Tables resources. + +```sql+postgres +select + b.name as bucket_name, + n.namespace as namespace_name, + t.name as table_name, + t.type as table_type, + t.format as table_format, + t.created_at as table_created_at +from + aws_s3tables_table_bucket b + left join aws_s3tables_namespace n on b.table_bucket_id = n.table_bucket_id + left join aws_s3tables_table t on n.namespace_id = t.namespace_id +order by + b.name, n.namespace, t.name; +``` + +```sql+sqlite +select + b.name as bucket_name, + n.namespace as namespace_name, + t.name as table_name, + t.type as table_type, + t.format as table_format, + t.created_at as table_created_at +from + aws_s3tables_table_bucket b + left join aws_s3tables_namespace n on b.table_bucket_id = n.table_bucket_id + left join aws_s3tables_table t on n.namespace_id = t.namespace_id +order by + b.name, n.namespace, t.name; +``` diff --git a/docs/tables/aws_savingsplans_savings_plan.md b/docs/tables/aws_savingsplans_savings_plan.md new file mode 100644 index 000000000..87d2f739c --- /dev/null +++ b/docs/tables/aws_savingsplans_savings_plan.md @@ -0,0 +1,360 @@ +--- +title: "Steampipe Table: aws_savingsplans_savings_plan - Query AWS Savings Plans using SQL" +description: "Allows users to query AWS Savings Plans to retrieve information about purchased savings plans, including commitment amounts, payment options, and coverage details." +folder: "Savings Plans" +--- + +# Table: aws_savingsplans_savings_plan - Query AWS Savings Plans using SQL + +AWS Savings Plans offer a flexible pricing model that provides significant savings on AWS usage. They provide lower prices on Amazon EC2 instances usage, AWS Lambda, and AWS Fargate, regardless of instance family, size, OS, tenancy, or region. Savings Plans come in three types: Compute Savings Plans, EC2 Instance Savings Plans, and SageMaker Savings Plans. + +## Table Usage Guide + +The `aws_savingsplans_savings_plan` table in Steampipe provides you with information about AWS Savings Plans within your AWS account. This table allows you, as a DevOps engineer, cloud architect, or financial analyst, to query savings plan details, including commitment amounts, payment options, duration terms, and current states. You can utilize this table to gather insights on cost optimization, track savings plan utilization, and manage financial commitments. The schema outlines the various attributes of the savings plan, including the plan ID, type, payment details, and coverage information. + +**Important Notes** +- This table supports optional quals. Queries with optional quals are optimized to reduce query time and cost. Optional quals are supported for the following columns: + - `commitment` - Filter by commitment amount (using `=` operator) + - `ec2_instance_family` - Filter by EC2 instance family (using `=` operator) + - `end_time` - Filter by end time (using `<=` operator) + - `payment_option` - Filter by payment option (using `=` operator) + - `region` - Filter by AWS region (using `=` operator) + - `savings_plan_type` - Filter by savings plan type (using `=` operator) + - `start_time` - Filter by start time (using `>=` operator) + - `state` - Filter by savings plan state + - `term_duration_in_seconds` - Filter by term duration (using `=` operator) + +## Examples + +### Basic info +Explore your AWS Savings Plans to understand their current state, commitment amounts, and terms. This helps in tracking your cost optimization commitments and their effectiveness. + +```sql+postgres +select + savings_plan_id, + arn, + savings_plan_type, + state, + commitment, + currency, + payment_option, + start_time, + end_time +from + aws_savingsplans_savings_plan +order by + start_time desc; +``` + +```sql+sqlite +select + savings_plan_id, + arn, + savings_plan_type, + state, + commitment, + currency, + payment_option, + start_time, + end_time +from + aws_savingsplans_savings_plan +order by + start_time desc; +``` + +### List active savings plans +Identify all currently active savings plans to understand your ongoing commitments and their coverage periods. + +```sql+postgres +select + savings_plan_id, + savings_plan_type, + commitment, + currency, + start_time, + end_time, + extract(days from (end_time - start_time)) as duration_days +from + aws_savingsplans_savings_plan +where + state = 'active' +order by + commitment desc; +``` + +```sql+sqlite +select + savings_plan_id, + savings_plan_type, + commitment, + currency, + start_time, + end_time, + julianday(end_time) - julianday(start_time) as duration_days +from + aws_savingsplans_savings_plan +where + state = 'active' +order by + commitment desc; +``` + +### Get savings plans by payment option +Analyze your savings plans based on different payment options to understand your financial commitment structure. + +```sql+postgres +select + payment_option, + count(*) as plan_count, + sum(commitment::numeric) as total_commitment, + sum(upfront_payment_amount::numeric) as total_upfront_payment, + sum(recurring_payment_amount::numeric) as total_recurring_payment +from + aws_savingsplans_savings_plan +group by + payment_option +order by + total_commitment desc; +``` + +```sql+sqlite +select + payment_option, + count(*) as plan_count, + sum(cast(commitment as decimal)) as total_commitment, + sum(cast(upfront_payment_amount as decimal)) as total_upfront_payment, + sum(cast(recurring_payment_amount as decimal)) as total_recurring_payment +from + aws_savingsplans_savings_plan +group by + payment_option +order by + total_commitment desc; +``` + +### Find savings plans nearing expiration +Identify savings plans that are approaching their end date to help with renewal planning and continued cost optimization. + +```sql+postgres +select + savings_plan_id, + savings_plan_type, + state, + commitment, + currency, + end_time, + extract(days from (end_time - now())) as days_until_expiration +from + aws_savingsplans_savings_plan +where + state = 'active' + and end_time <= now() + interval '90 days' +order by + end_time asc; +``` + +```sql+sqlite +select + savings_plan_id, + savings_plan_type, + state, + commitment, + currency, + end_time, + julianday(end_time) - julianday('now') as days_until_expiration +from + aws_savingsplans_savings_plan +where + state = 'active' + and julianday(end_time) <= julianday('now', '+90 days') +order by + end_time asc; +``` + +### Get EC2 instance savings plans by family +Analyze EC2 Instance Savings Plans grouped by instance family to understand your compute savings strategy. + +```sql+postgres +select + ec2_instance_family, + count(*) as plan_count, + sum(commitment::numeric) as total_commitment, + avg(commitment::numeric) as avg_commitment, + string_agg(distinct state, ', ') as states +from + aws_savingsplans_savings_plan +where + savings_plan_type = 'EC2Instance' + and ec2_instance_family is not null +group by + ec2_instance_family +order by + total_commitment desc; +``` + +```sql+sqlite +select + ec2_instance_family, + count(*) as plan_count, + sum(cast(commitment as decimal)) as total_commitment, + avg(cast(commitment as decimal)) as avg_commitment, + group_concat(distinct state, ', ') as states +from + aws_savingsplans_savings_plan +where + savings_plan_type = 'EC2Instance' + and ec2_instance_family is not null +group by + ec2_instance_family +order by + total_commitment desc; +``` + +### List savings plans with tags +Explore savings plans that have been tagged for better resource management and cost allocation. + +```sql+postgres +select + savings_plan_id, + savings_plan_type, + state, + commitment, + tags +from + aws_savingsplans_savings_plan +where + tags is not null + and jsonb_array_length(tags) > 0 +order by + savings_plan_id; +``` + +```sql+sqlite +select + savings_plan_id, + savings_plan_type, + state, + commitment, + tags +from + aws_savingsplans_savings_plan +where + tags is not null + and json_array_length(tags) > 0 +order by + savings_plan_id; +``` + +### Get savings plans by region +Analyze the distribution of your savings plans across different AWS regions to understand regional cost optimization coverage. + +```sql+postgres +select + region, + count(*) as plan_count, + sum(commitment::numeric) as total_commitment, + string_agg(distinct savings_plan_type, ', ') as plan_types +from + aws_savingsplans_savings_plan +group by + region +order by + total_commitment desc; +``` + +```sql+sqlite +select + region, + count(*) as plan_count, + sum(cast(commitment as decimal)) as total_commitment, + group_concat(distinct savings_plan_type, ', ') as plan_types +from + aws_savingsplans_savings_plan +group by + region +order by + total_commitment desc; +``` + +### Get returnable savings plans +Identify savings plans that can still be returned, which is useful for adjusting your savings commitments if needed. + +```sql+postgres +select + savings_plan_id, + savings_plan_type, + state, + commitment, + currency, + start_time, + returnable_until, + extract(days from (returnable_until - now())) as days_until_return_deadline +from + aws_savingsplans_savings_plan +where + returnable_until is not null + and returnable_until > now() +order by + returnable_until asc; +``` + +```sql+sqlite +select + savings_plan_id, + savings_plan_type, + state, + commitment, + currency, + start_time, + returnable_until, + julianday(returnable_until) - julianday('now') as days_until_return_deadline +from + aws_savingsplans_savings_plan +where + returnable_until is not null + and returnable_until > datetime('now') +order by + returnable_until asc; +``` + +### Filter savings plans by time range +Query savings plans that started within a specific time period and are set to end before a certain date. This example demonstrates how to use timestamp filtering with the optional quals. + +```sql+postgres +select + savings_plan_id, + savings_plan_type, + state, + commitment, + currency, + start_time, + end_time, + extract(days from (end_time - start_time)) as duration_days +from + aws_savingsplans_savings_plan +where + start_time >= '2023-01-01T00:00:00Z' + and end_time <= '2025-12-31T23:59:59Z' +order by + start_time desc; +``` + +```sql+sqlite +select + savings_plan_id, + savings_plan_type, + state, + commitment, + currency, + start_time, + end_time, + julianday(end_time) - julianday(start_time) as duration_days +from + aws_savingsplans_savings_plan +where + start_time >= '2023-01-01T00:00:00Z' + and end_time <= '2025-12-31T23:59:59Z' +order by + start_time desc; +``` diff --git a/docs/tables/aws_servicecatalog_portfolio_share.md b/docs/tables/aws_servicecatalog_portfolio_share.md new file mode 100644 index 000000000..f4b85b69d --- /dev/null +++ b/docs/tables/aws_servicecatalog_portfolio_share.md @@ -0,0 +1,329 @@ +--- +title: "Steampipe Table: aws_servicecatalog_portfolio_share - Query AWS Service Catalog Portfolio Shares using SQL" +description: "Allows users to query AWS Service Catalog Portfolio Shares, providing information about portfolio sharing configurations and access permissions." +folder: "Service Catalog" +--- + +# Table: aws_servicecatalog_portfolio_share - Query AWS Service Catalog Portfolio Shares using SQL + +AWS Service Catalog Portfolio Shares define how portfolios are shared with different entities such as accounts, organizations, organizational units, or organization member accounts. These shares control access to portfolios and their associated products, allowing organizations to manage portfolio distribution across their AWS environment. + +## Table Usage Guide + +The `aws_servicecatalog_portfolio_share` table in Steampipe provides you with information about portfolio shares within your AWS Service Catalog. This table allows you, as a cloud administrator or DevOps engineer, to query portfolio share details including share types, recipient entities, acceptance status, and sharing permissions. You can utilize this table to gather insights on portfolio sharing, such as which portfolios are shared with which entities, whether shares have been accepted, and what permissions are granted through the shares. + +**Important notes:** +- In order to query portfolio shares, the `type` column must be specified in the WHERE clause. The table requires a specific share type to retrieve the corresponding portfolio share information. Valid values are: + - `ACCOUNT` - External account to account shares + - `ORGANIZATION` - Shares to an organization + - `ORGANIZATIONAL_UNIT` - Shares to organizational units + - `ORGANIZATION_MEMBER_ACCOUNT` - Shares to organization member accounts + +## Examples + +### List all portfolio shares by type +Analyze portfolio shares for a specific type to understand sharing configurations across your Service Catalog portfolios. This is useful for auditing portfolio access and permissions. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + share_principals, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT'; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + share_principals, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT'; +``` + +### Find accepted portfolio shares +Identify portfolio shares that have been accepted by recipient entities. This helps track which shares are actively being used. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT' + and accepted = true; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT' + and accepted = 1; +``` + +### Check organization shares +Review portfolio shares that are shared with organizations. This is useful for understanding organization-wide portfolio access. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + share_principals, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATION'; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + share_principals, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATION'; +``` + +### Find shares with principal sharing enabled +Identify portfolio shares that have principal sharing enabled, allowing recipients to share the portfolio with other entities. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + share_principals, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATION' + and share_principals = true; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + share_principals, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATION' + and share_principals = 1; +``` + +### Check account-specific shares +Review portfolio shares that are shared with specific AWS accounts. This helps track cross-account portfolio access. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT'; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT'; +``` + +### Find shares with tag options sharing enabled +Identify portfolio shares that have tag options sharing enabled, allowing recipients to access and use tag options associated with the portfolio. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATIONAL_UNIT' + and share_tag_options = true; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + share_tag_options, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATIONAL_UNIT' + and share_tag_options = 1; +``` + +### Get specific portfolio share +Retrieve details for a specific portfolio share using the portfolio ID, type, and principal ID. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + share_principals, + share_tag_options, + portfolio_arn, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT' + and portfolio_id = 'port-1234567890abcdef' + and principal_id = '123456789012'; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + share_principals, + share_tag_options, + portfolio_arn, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ACCOUNT' + and portfolio_id = 'port-1234567890abcdef' + and principal_id = '123456789012'; +``` + +### Check organizational unit shares +Review portfolio shares that are shared with organizational units. This helps understand OU-level portfolio access. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATIONAL_UNIT'; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATIONAL_UNIT'; +``` + +### Find pending portfolio shares +Identify portfolio shares that have not been accepted yet. This helps track shares that are awaiting recipient approval. + +```sql+postgres +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATION_MEMBER_ACCOUNT' + and accepted = false; +``` + +```sql+sqlite +select + portfolio_display_name, + portfolio_id, + type, + principal_id, + accepted, + region +from + aws_servicecatalog_portfolio_share +where + type = 'ORGANIZATION_MEMBER_ACCOUNT' + and accepted = 0; +``` diff --git a/docs/tables/aws_servicequotas_auto_management_configuration.md b/docs/tables/aws_servicequotas_auto_management_configuration.md new file mode 100644 index 000000000..3c84b9558 --- /dev/null +++ b/docs/tables/aws_servicequotas_auto_management_configuration.md @@ -0,0 +1,88 @@ +--- +title: "Steampipe Table: aws_servicequotas_auto_management_configuration - Query AWS Service Quotas Auto Management Configuration using SQL" +description: "Allows users to query AWS Service Quotas Automatic Management configuration, providing details on opt-in status, notification settings, and exclusion lists." +folder: "Service Quotas" +--- + +# Table: aws_servicequotas_auto_management_configuration - Query AWS Service Quotas Auto Management Configuration using SQL + +AWS Service Quotas Automatic Management monitors your quota utilization and can automatically request increases when quotas approach their limits. This table returns the account-level configuration for Automatic Management per region. + +## Table Usage Guide + +The `aws_servicequotas_auto_management_configuration` table in Steampipe provides you with the Automatic Management configuration for each AWS region. This is a singleton table that returns one row per region, reflecting the current opt-in status, notification ARN, and any excluded services. + +## Examples + +### Check auto-management status across all regions +Determine the Automatic Management opt-in status for each region. + +```sql+postgres +select + region, + opt_in_status, + opt_in_type, + opt_in_level +from + aws_servicequotas_auto_management_configuration; +``` + +```sql+sqlite +select + region, + opt_in_status, + opt_in_type, + opt_in_level +from + aws_servicequotas_auto_management_configuration; +``` + +### Find regions with auto-management enabled +Identify regions where Automatic Management is active. + +```sql+postgres +select + region, + opt_in_type, + notification_arn +from + aws_servicequotas_auto_management_configuration +where + opt_in_status = 'ENABLED'; +``` + +```sql+sqlite +select + region, + opt_in_type, + notification_arn +from + aws_servicequotas_auto_management_configuration +where + opt_in_status = 'ENABLED'; +``` + +### View exclusion list details +Explore which services are excluded from Automatic Management. + +```sql+postgres +select + region, + opt_in_status, + exclusion_list +from + aws_servicequotas_auto_management_configuration +where + exclusion_list is not null; +``` + +```sql+sqlite +select + region, + opt_in_status, + exclusion_list +from + aws_servicequotas_auto_management_configuration +where + exclusion_list is not null; +``` diff --git a/docs/tables/aws_ses_template.md b/docs/tables/aws_ses_template.md new file mode 100644 index 000000000..39ac11c1f --- /dev/null +++ b/docs/tables/aws_ses_template.md @@ -0,0 +1,146 @@ +--- +title: "Steampipe Table: aws_ses_template - Query AWS SES Templates using SQL" +description: "Allows users to query AWS SES Templates and retrieve detailed information about each template, including its name, subject, content, and timestamps." +folder: "SES" +--- + +# Table: aws_ses_template - Query AWS SES Templates using SQL + +The AWS SES Template is a feature of Amazon Simple Email Service (SES) that allows you to create and manage email templates. These templates can include both HTML and text content, along with variables that can be replaced with actual values when sending emails. Templates help maintain consistent branding and messaging across your email communications while simplifying the email sending process. + +## Table Usage Guide + +The `aws_ses_template` table in Steampipe provides you with information about email templates within AWS Simple Email Service (SES). This table allows you, as a DevOps engineer or email administrator, to query template-specific details, including the template name, subject line, HTML and text content, and creation timestamp. You can utilize this table to gather insights on your email templates, such as their content, creation dates, and usage patterns. The schema outlines the various attributes of the SES template for you, including the template name, subject part, text part, HTML part, and associated metadata. + +## Examples + +### Basic info +Explore the basic information of your AWS SES templates, including their names, subjects, and creation timestamps. This can help you maintain an overview of your email templates and their metadata. + +```sql+postgres +select + name, + subject_part, + created_timestamp +from + aws_ses_template; +``` + +```sql+sqlite +select + name, + subject_part, + created_timestamp +from + aws_ses_template; +``` + +### Get template details by name +Retrieve detailed information about a specific template, including its subject line and content. This is useful for reviewing or updating specific templates. + +```sql+postgres +select + name, + subject_part, + text_part, + html_part, + created_timestamp +from + aws_ses_template +where + name = 'MyTemplate'; +``` + +```sql+sqlite +select + name, + subject_part, + text_part, + html_part, + created_timestamp +from + aws_ses_template +where + name = 'MyTemplate'; +``` + +### List templates created in the last 30 days +Identify recently created templates to track new additions to your email template library. This can help in maintaining an up-to-date inventory of your email templates. + +```sql+postgres +select + name, + subject_part, + created_timestamp +from + aws_ses_template +where + created_timestamp >= now() - interval '30 days' +order by + created_timestamp desc; +``` + +```sql+sqlite +select + name, + subject_part, + created_timestamp +from + aws_ses_template +where + created_timestamp >= datetime('now', '-30 days') +order by + created_timestamp desc; +``` + +### List templates with HTML content +Find templates that include HTML formatting, which is useful for identifying templates that require special rendering or may need additional testing across different email clients. + +```sql+postgres +select + name, + subject_part, + html_part +from + aws_ses_template +where + html_part is not null; +``` + +```sql+sqlite +select + name, + subject_part, + html_part +from + aws_ses_template +where + html_part is not null; +``` + +### List templates with text-only content +Identify templates that contain only plain text content, which can be useful for ensuring accessibility and compatibility with all email clients. + +```sql+postgres +select + name, + subject_part, + text_part +from + aws_ses_template +where + html_part is null + and text_part is not null; +``` + +```sql+sqlite +select + name, + subject_part, + text_part +from + aws_ses_template +where + html_part is null + and text_part is not null; +``` \ No newline at end of file diff --git a/docs/tables/aws_sesv2_suppressed_destination.md b/docs/tables/aws_sesv2_suppressed_destination.md new file mode 100644 index 000000000..f814739b9 --- /dev/null +++ b/docs/tables/aws_sesv2_suppressed_destination.md @@ -0,0 +1,150 @@ +--- +title: "Steampipe Table: aws_sesv2_suppressed_destination - Query AWS SES suppressed destinations using SQL" +description: "Allows users to query the account-level suppression list for AWS Simple Email Service (SES)." +folder: "SES" +--- + +# Table: aws_sesv2_suppressed_destination - Query AWS SES Suppressed Destinations using SQL + +AWS Simple Email Service (SES) is a cloud-based email sending service designed to help digital marketers and application developers send marketing, notification, and transactional emails. The service includes a suppression list to help manage bounces and complaints automatically. + +## Table Usage Guide + +The `aws_sesv2_suppressed_destination` table in Steampipe provides information about email addresses on the account-level suppression list in AWS SES. This table allows you, as a DevOps engineer or an email administrator, to query suppression details, including the reason for suppression and when the address was last updated. You can use this table to monitor email deliverability health and manage your suppression lists. + +## Examples + +### Basic info +Explore which email addresses are on the suppression list in a specific region. + +```sql+postgres +select + email_address, + reason, + last_update_time, + region +from + aws_sesv2_suppressed_destination +where + region = 'us-east-1'; +``` + +```sql+sqlite +select + email_address, + reason, + last_update_time, + region +from + aws_sesv2_suppressed_destination +where + region = 'us-east-1'; +``` + +### List suppressed destinations ordered by last update time +This query is useful for identifying the most recently added email addresses to the suppression list. + +```sql+postgres +select + email_address, + reason, + last_update_time +from + aws_sesv2_suppressed_destination +order by + last_update_time desc; +``` + +```sql+sqlite +select + email_address, + reason, + last_update_time +from + aws_sesv2_suppressed_destination +order by + last_update_time desc; +``` + +### Count suppressed destinations by reason +This query helps in understanding the primary reasons for email delivery failures, such as bounces versus complaints. + +```sql+postgres +select + reason, + count(*) as total +from + aws_sesv2_suppressed_destination +group by + reason +order by + total desc; +``` + +```sql+sqlite +select + reason, + count(*) as total +from + aws_sesv2_suppressed_destination +group by + reason +order by + total desc; +``` + +### Find all destinations suppressed due to complaints +This query allows you to get a specific list of all email addresses that were added to the suppression list because the recipient marked an email as spam. + +```sql+postgres +select + email_address, + last_update_time, + region +from + aws_sesv2_suppressed_destination +where + reason = 'COMPLAINT'; +``` + +```sql+sqlite +select + email_address, + last_update_time, + region +from + aws_sesv2_suppressed_destination +where + reason = 'COMPLAINT'; +``` + +### Find suppressed destinations within a date range +This query allows you to filter suppressed destinations that were last updated before a specific date, useful for cleanup or analysis of older suppressions. + +```sql+postgres +select + email_address, + reason, + last_update_time, + region +from + aws_sesv2_suppressed_destination +where + last_update_time <= '2024-01-01T00:00:00Z' +order by + last_update_time desc; +``` + +```sql+sqlite +select + email_address, + reason, + last_update_time, + region +from + aws_sesv2_suppressed_destination +where + last_update_time <= '2024-01-01 00:00:00' +order by + last_update_time desc; +``` diff --git a/docs/tables/aws_ssm_service_setting.md b/docs/tables/aws_ssm_service_setting.md new file mode 100644 index 000000000..a2cb1da1b --- /dev/null +++ b/docs/tables/aws_ssm_service_setting.md @@ -0,0 +1,221 @@ +--- +title: "Steampipe Table: aws_ssm_service_setting - Query AWS SSM Service Settings using SQL" +description: "Allows users to query AWS SSM Service Settings, providing information about account-level settings for AWS Systems Manager services." +folder: "SSM" +--- + +# Table: aws_ssm_service_setting - Query AWS SSM Service Settings using SQL + +AWS SSM Service Settings are regional settings for AWS Systems Manager services that apply to each region. These settings define how users interact with or use a service or a feature of a service within a specific region. Service settings are managed by AWS service teams and can be customized by users with appropriate permissions. + +## Table Usage Guide + +The `aws_ssm_service_setting` table in Steampipe provides you with information about SSM service settings within your AWS account. This table allows you, as a DevOps engineer or system administrator, to query service setting details including setting values, status, modification history, and more. You can utilize this table to gather insights on service settings, such as default parameter tiers, automation configurations, and managed instance settings. + +**Important Notes** +- In order to query service settings, the `setting_id` column must be specified in the WHERE clause. The table requires a specific setting ID to retrieve the corresponding service setting information. +- The following setting IDs are supported, for reference see: [AWS SSM Service Setting](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetServiceSetting.html#API_GetServiceSetting_RequestSyntax): + - `/ssm/managed-instance/default-ec2-instance-management-role` + - `/ssm/automation/customer-script-log-destination` + - `/ssm/automation/customer-script-log-group-name` + - `/ssm/documents/console/public-sharing-permission` + - `/ssm/managed-instance/activation-tier` + - `/ssm/opsinsights/opscenter` + - `/ssm/parameter-store/default-parameter-tier` + - `/ssm/parameter-store/high-throughput-enabled` + +## Examples + +### Get a specific service setting across regions +Retrieve details for a specific service setting using the setting ID. This is useful for auditing individual service configurations. + +```sql+postgres +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier'; +``` + +```sql+sqlite +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier'; +``` + +### Check parameter store settings +Review Parameter Store service settings to understand default parameter tiers and high-throughput configurations. + +```sql+postgres +select + setting_id, + setting_value, + status, + last_modified_date, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and region = 'us-east-1'; +``` + +```sql+sqlite +select + setting_id, + setting_value, + status, + last_modified_date, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and region = 'us-east-1'; +``` + +### Find customized settings +Identify service settings that have been customized from their default values. This helps track which settings have been modified by users. + +```sql+postgres +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and status = 'Customized'; +``` + +```sql+sqlite +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and status = 'Customized'; +``` + +### Check managed instance settings for a region +Review managed instance service settings to understand EC2 instance management role and activation tier configurations. + +```sql+postgres +select + setting_id, + setting_value, + status, + last_modified_date, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/managed-instance/default-ec2-instance-management-role' + and region = 'us-west-2'; +``` + +```sql+sqlite +select + setting_id, + setting_value, + status, + last_modified_date, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/managed-instance/default-ec2-instance-management-role' + and region = 'us-west-2'; +``` + +### Find a recently modified setting across regions +Identify service settings that have been modified recently. This is useful for tracking configuration changes. + +```sql+postgres +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and last_modified_date >= now() - interval '30 days'; +``` + +```sql+sqlite +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and last_modified_date >= datetime('now', '-30 days'); +``` + +### Get service setting with ARN for a region +Retrieve details for a specific service setting including the ARN for reference. + +```sql+postgres +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + arn, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and region = 'us-east-1'; +``` + +```sql+sqlite +select + setting_id, + setting_value, + status, + last_modified_date, + last_modified_user, + arn, + region +from + aws_ssm_service_setting +where + setting_id = '/ssm/parameter-store/default-parameter-tier' + and region = 'us-east-1'; +``` diff --git a/docs/tables/aws_ssoadmin_customer_policy_attachment.md b/docs/tables/aws_ssoadmin_customer_policy_attachment.md new file mode 100644 index 000000000..a6815610f --- /dev/null +++ b/docs/tables/aws_ssoadmin_customer_policy_attachment.md @@ -0,0 +1,41 @@ +--- +title: "Steampipe Table: aws_ssoadmin_customer_policy_attachment - Query AWS SSO Customer Managed Policy Attachments using SQL" +description: "Allows users to query AWS SSO Customer Managed Policy Attachments, providing information about the customer managed policy attachments of AWS SSO permission sets." +folder: "SSO" +--- + +# Table: aws_ssoadmin_customer_policy_attachment - Query AWS SSO Customer Managed Policy Attachments using SQL + +The AWS SSO Customer Managed Policy Attachment is a feature of AWS Single Sign-On (SSO) service. It allows you to attach and manage access permissions for AWS SSO users and groups through customer managed policies. This helps in streamlining the process of assigning permissions, ensuring secure access to AWS resources. + +## Table Usage Guide + +The `aws_ssoadmin_customer_policy_attachment` table in Steampipe provides you with information about the customer managed policy attachments of AWS SSO permission sets. This table allows you, as a DevOps engineer, to query policy-specific details, including the instance ARN, permission set ARN, policy name, and policy path. You can utilize this table to gather insights on policy attachments, such as the attached customer managed policies for each permission set, and more. The schema outlines the various attributes of the customer managed policy attachment for you, including the instance ARN, permission set ARN, policy name, and policy path. + +## Examples + +### Basic info +Analyze the connection between AWS SSO customer managed policy attachments and permission sets to understand the allocation of permissions within your AWS environment. This can help you maintain security and compliance by ensuring correct policy attachments. + +```sql+postgres +select + cpa.name, + cpa.path, + cpa.permission_set_arn +from + aws_ssoadmin_customer_policy_attachment as cpa +join + aws_ssoadmin_permission_set as ps on cpa.permission_set_arn = ps.arn; +``` + +```sql+sqlite +select + cpa.name, + cpa.path, + cpa.permission_set_arn +from + aws_ssoadmin_customer_policy_attachment as cpa +join + aws_ssoadmin_permission_set as ps on cpa.permission_set_arn = ps.arn; +``` + diff --git a/docs/tables/aws_ssoadmin_instance.md b/docs/tables/aws_ssoadmin_instance.md index 8a935aa44..69dcda360 100644 --- a/docs/tables/aws_ssoadmin_instance.md +++ b/docs/tables/aws_ssoadmin_instance.md @@ -10,7 +10,7 @@ The AWS SSO Admin Instance is a component of AWS Single Sign-On (SSO) service th ## Table Usage Guide -The `aws_ssoadmin_instance` table in Steampipe provides you with information about each AWS SSO instance in your AWS account. This table allows you, as a DevOps engineer, to query instance-specific details, including the instance ARN, identity store ID, and associated metadata. You can utilize this table to gather insights on instances, such as instance status, instance creation time, and more. The schema outlines the various attributes of the SSO admin instance for you, including the instance ARN, identity store ID, and instance status. +The `aws_ssoadmin_instance` table in Steampipe provides you with information about each AWS SSO instance in your AWS account. This table allows you, as a DevOps engineer, to query instance-specific details, including the instance ARN, name, identity store ID, creation date, owner account ID, status, and associated metadata. You can utilize this table to gather insights on instances, such as instance status, instance creation time, ownership, and more. The schema outlines the various attributes of the SSO admin instance for you, including the instance ARN, name, identity store ID, owner account ID, creation date, and instance status. ## Examples @@ -31,4 +31,62 @@ select identity_store_id from aws_ssoadmin_instance +``` + +### List instances with status and ownership details +Explore which AWS Identity Center (SSO) instances exist in your account, including their operational status, creation date, and ownership information. This is useful for auditing instance configurations and understanding your Identity Center deployment. + +```sql+postgres +select + name, + status, + created_date, + owner_account_id, + arn, + identity_store_id, + region +from + aws_ssoadmin_instance; +``` + +```sql+sqlite +select + name, + status, + created_date, + owner_account_id, + arn, + identity_store_id, + region +from + aws_ssoadmin_instance; +``` + +### List instances ordered by creation date +Identify the most recently created Identity Center instances to track deployment history and understand when SSO was enabled in your organization. + +```sql+postgres +select + name, + status, + created_date, + owner_account_id, + region +from + aws_ssoadmin_instance +order by + created_date desc; +``` + +```sql+sqlite +select + name, + status, + created_date, + owner_account_id, + region +from + aws_ssoadmin_instance +order by + created_date desc; ``` \ No newline at end of file diff --git a/docs/tables/aws_transfer_connector.md b/docs/tables/aws_transfer_connector.md new file mode 100644 index 000000000..c64f2a5e7 --- /dev/null +++ b/docs/tables/aws_transfer_connector.md @@ -0,0 +1,258 @@ +--- +title: "Steampipe Table: aws_transfer_connector - Query AWS Transfer Connectors using SQL" +description: "Allows users to query AWS Transfer Connectors and retrieve detailed information about AS2 and SFTP connectors in their AWS account." +folder: "Transfer Family" +--- + +# Table: aws_transfer_connector - Query AWS Transfer Connectors using SQL + +AWS Transfer Connector is a resource that enables you to send files using either the AS2 or SFTP protocol. Connectors are used to transfer files between your AWS Transfer Family server and external partners or systems. + +## Table Usage Guide + +The `aws_transfer_connector` table in Steampipe provides you with information about AS2 and SFTP connectors within AWS Transfer Family. This table allows you, as a DevOps engineer, to query connector-specific details, including connector configurations, endpoint details, and associated metadata. You can utilize this table to gather insights on connectors, such as connector states, protocol configurations, egress IP addresses, and more. The schema outlines the various attributes of the connector for you, including the connector ID, ARN, URL, access role, and associated tags. + +## Examples + +### Basic info +Explore which AWS transfer connectors are being used, identifying their associated URLs and the types of access roles and security policies they utilize. This allows for better management and configuration of file transfer processes. + +```sql+postgres +select + connector_id, + arn, + url, + access_role, + logging_role, + security_policy_name +from + aws_transfer_connector; +``` + +```sql+sqlite +select + connector_id, + arn, + url, + access_role, + logging_role, + security_policy_name +from + aws_transfer_connector; +``` + +### List connectors with AS2 configuration +Identify connectors that are configured for AS2 protocol, which is commonly used for secure business-to-business file transfers. This helps in understanding which connectors are set up for AS2-based file exchanges. + +```sql+postgres +select + connector_id, + arn, + url, + as2_config +from + aws_transfer_connector +where + as2_config is not null; +``` + +```sql+sqlite +select + connector_id, + arn, + url, + as2_config +from + aws_transfer_connector +where + as2_config is not null; +``` + +### List connectors with SFTP configuration +Identify connectors that are configured for SFTP protocol, which is commonly used for secure file transfers over SSH. This helps in understanding which connectors are set up for SFTP-based file exchanges. + +```sql+postgres +select + connector_id, + arn, + url, + sftp_config +from + aws_transfer_connector +where + sftp_config is not null; +``` + +```sql+sqlite +select + connector_id, + arn, + url, + sftp_config +from + aws_transfer_connector +where + sftp_config is not null; +``` + +### List connectors with their egress IP addresses +Explore which connectors have assigned egress IP addresses for outbound connections. This information is useful for network security and firewall configuration. + +```sql+postgres +select + connector_id, + arn, + service_managed_egress_ip_addresses +from + aws_transfer_connector +where + service_managed_egress_ip_addresses is not null; +``` + +```sql+sqlite +select + connector_id, + arn, + service_managed_egress_ip_addresses +from + aws_transfer_connector +where + service_managed_egress_ip_addresses is not null; +``` + +### Find connectors by tag +Discover connectors that have specific tags assigned, such as environment tags. This helps in organizing and filtering connectors based on their purpose or environment. + +```sql+postgres +select + connector_id, + arn, + tags +from + aws_transfer_connector +where + tags ->> 'Environment' = 'Production'; +``` + +```sql+sqlite +select + connector_id, + arn, + tags +from + aws_transfer_connector +where + json_extract(tags, '$.Environment') = 'Production'; +``` + +### List connectors with specific security policy +Identify connectors that are using a particular security policy. This helps in ensuring consistent security configurations across your connectors. + +```sql+postgres +select + connector_id, + arn, + security_policy_name +from + aws_transfer_connector +where + security_policy_name = 'TransferSecurityPolicy-2020-06'; +``` + +```sql+sqlite +select + connector_id, + arn, + security_policy_name +from + aws_transfer_connector +where + security_policy_name = 'TransferSecurityPolicy-2020-06'; +``` + +### List connectors with access role information +Explore connectors that have access roles configured, which are essential for proper authentication and authorization. This helps in understanding the IAM setup for your connectors. + +```sql+postgres +select + connector_id, + arn, + access_role, + logging_role +from + aws_transfer_connector +where + access_role is not null; +``` + +```sql+sqlite +select + connector_id, + arn, + access_role, + logging_role +from + aws_transfer_connector +where + access_role is not null; +``` + +### List connectors with their full configuration details +Get a comprehensive view of all connector configurations including their protocols, roles, security policies, and network settings. This is useful for auditing and compliance purposes. + +```sql+postgres +select + connector_id, + arn, + url, + access_role, + logging_role, + security_policy_name, + service_managed_egress_ip_addresses, + as2_config, + sftp_config, + tags +from + aws_transfer_connector; +``` + +```sql+sqlite +select + connector_id, + arn, + url, + access_role, + logging_role, + security_policy_name, + service_managed_egress_ip_addresses, + as2_config, + sftp_config, + tags +from + aws_transfer_connector; +``` + +### Find connectors by URL pattern +Search for connectors based on their endpoint URL patterns. This helps in identifying connectors that use specific protocols or partner endpoints. + +```sql+postgres +select + connector_id, + arn, + url +from + aws_transfer_connector +where + url like '%sftp%'; +``` + +```sql+sqlite +select + connector_id, + arn, + url +from + aws_transfer_connector +where + url like '%sftp%'; +``` \ No newline at end of file diff --git a/docs/tables/aws_trusted_advisor_check_result.md b/docs/tables/aws_trusted_advisor_check_result.md new file mode 100644 index 000000000..9856b8a25 --- /dev/null +++ b/docs/tables/aws_trusted_advisor_check_result.md @@ -0,0 +1,277 @@ +--- +title: "Steampipe Table: aws_trusted_advisor_check_result - Query AWS Trusted Advisor Check Results using SQL" +description: "Allows users to query AWS Trusted Advisor Check Results, providing detailed information about individual flagged resources identified by Trusted Advisor checks." +folder: "Support" +--- + +# Table: aws_trusted_advisor_check_result - Query AWS Trusted Advisor Check Results using SQL + +AWS Trusted Advisor is a real-time guidance tool that helps you provision your resources following AWS best practices. It inspects your AWS environment and makes recommendations for saving money, improving system performance and reliability, and closing security gaps. The `aws_trusted_advisor_check_result` table provides information about individual flagged resources identified by Trusted Advisor checks. + +## Table Usage Guide + +The `aws_trusted_advisor_check_result` table in Steampipe provides you with information about individual flagged resources from AWS Trusted Advisor checks. This table allows you, as a DevOps engineer, cloud administrator, or security analyst, to query resource-specific details identified by Trusted Advisor, including resource IDs, statuses, regions, and metadata. You can utilize this table to gather insights on flagged resources, such as identifying critical issues, analyzing resource distribution across regions, and tracking resource-level recommendations. The schema outlines the various attributes of flagged resources, including the check ID, resource information, suppression status, and associated metadata. + +**Important Notes** +- You must specify both `language` and `check_id` in the WHERE clause to query this table. +- Each row represents an individual flagged resource rather than a check summary. +- You must have a Business, Enterprise On-Ramp, or Enterprise Support plan to use AWS Trusted Advisor. +- Amazon Web Services Support API currently supports the following languages for Trusted Advisor: + - Chinese, Simplified - zh + - Chinese, Traditional - zh_TW + - English - en + - French - fr + - German - de + - Indonesian - id + - Italian - it + - Japanese - ja + - Korean - ko + - Portuguese, Brazilian - pt_BR + - Spanish - es + +## Examples + +### Basic info +Retrieve fundamental information about flagged resources for a specific Trusted Advisor check, including resource IDs, statuses, and regions. + +```sql+postgres +select + check_id, + flagged_resource_id, + flagged_resource_status, + flagged_resource_region, + flagged_resource_is_suppressed +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5'; +``` + +```sql+sqlite +select + check_id, + flagged_resource_id, + flagged_resource_status, + flagged_resource_region, + flagged_resource_is_suppressed +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5'; +``` + +### Get error status resources only +Identify resources that are flagged with an error status, indicating critical issues that need immediate attention. + +```sql+postgres +select + check_id, + flagged_resource_id, + flagged_resource_status, + flagged_resource_region, + flagged_resource_metadata +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' + and flagged_resource_status = 'error'; +``` + +```sql+sqlite +select + check_id, + flagged_resource_id, + flagged_resource_status, + flagged_resource_region, + flagged_resource_metadata +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' + and flagged_resource_status = 'error'; +``` + +### Count flagged resources by status +Get a summary count of flagged resources grouped by their status to understand the distribution of issues. + +```sql+postgres +select + flagged_resource_status, + count(*) as resource_count +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' +group by + flagged_resource_status +order by + resource_count desc; +``` + +```sql+sqlite +select + flagged_resource_status, + count(*) as resource_count +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' +group by + flagged_resource_status +order by + resource_count desc; +``` + +### List flagged resources by region +Analyze the regional distribution of flagged resources to identify regions with the most issues. + +```sql+postgres +select + flagged_resource_region, + flagged_resource_status, + count(*) as resource_count +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' +group by + flagged_resource_region, + flagged_resource_status +order by + flagged_resource_region, + resource_count desc; +``` + +```sql+sqlite +select + flagged_resource_region, + flagged_resource_status, + count(*) as resource_count +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' +group by + flagged_resource_region, + flagged_resource_status +order by + flagged_resource_region, + resource_count desc; +``` + +### Get suppressed resources +Identify resources that have been suppressed by users, indicating issues that have been acknowledged but not resolved. + +```sql+postgres +select + check_id, + flagged_resource_id, + flagged_resource_region, + flagged_resource_status, + flagged_resource_metadata +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' + and flagged_resource_is_suppressed = true; +``` + +```sql+sqlite +select + check_id, + flagged_resource_id, + flagged_resource_region, + flagged_resource_status, + flagged_resource_metadata +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' + and flagged_resource_is_suppressed = 1; +``` + +### View check summary information +Get an overview of the overall check status and resource summary statistics along with individual flagged resources. + +```sql+postgres +select + check_id, + status as check_status, + timestamp as check_timestamp, + resources_summary, + category_specific_summary, + count(*) as total_flagged_resources +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' +group by + check_id, + status, + timestamp, + resources_summary, + category_specific_summary; +``` + +```sql+sqlite +select + check_id, + status as check_status, + timestamp as check_timestamp, + resources_summary, + category_specific_summary, + count(*) as total_flagged_resources +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' +group by + check_id, + status, + timestamp, + resources_summary, + category_specific_summary; +``` + +### Analyze cost optimization opportunities +For cost optimization checks, examine the category-specific summary along with flagged resources to understand potential savings. + +```sql+postgres +select + check_id, + flagged_resource_id, + flagged_resource_metadata, + category_specific_summary +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' + and category_specific_summary is not null; +``` + +```sql+sqlite +select + check_id, + flagged_resource_id, + flagged_resource_metadata, + category_specific_summary +from + aws_trusted_advisor_check_result +where + language = 'en' + and check_id = 'L4dfs2Q4C5' + and category_specific_summary is not null; +``` diff --git a/docs/tables/aws_vpc_block_public_access_options.md b/docs/tables/aws_vpc_block_public_access_options.md new file mode 100644 index 000000000..36c18fd33 --- /dev/null +++ b/docs/tables/aws_vpc_block_public_access_options.md @@ -0,0 +1,214 @@ +--- +title: "Steampipe Table: aws_vpc_block_public_access_options - Query AWS VPC Block Public Access Options using SQL" +description: "Allows users to query AWS VPC Block Public Access Options to retrieve details about the block public access configurations for VPCs." +folder: "VPC" +--- + +# Table: aws_vpc_block_public_access_options - Query AWS VPC Block Public Access Options using SQL + +The AWS VPC Block Public Access Options is a regional security feature that helps protect your VPC resources from public accessibility. It allows you to control the inbound network connections to Amazon VPCs at the regional level, preventing unauthorized access. This regional configuration is crucial for ensuring the security and privacy of your network resources on AWS across entire regions. + +## Table Usage Guide + +The `aws_vpc_block_public_access_options` table in Steampipe provides you with information about the regional VPC Block Public Access (BPA) configurations. This table allows you, as a cloud administrator, security team member, or DevOps engineer, to query regional configuration details, including the VPC BPA mode, exclusions allowed status, and management information. You can utilize this table to gather insights on regional configurations, such as which regions have public access blocked, the current state of VPC BPA, and who manages the configuration. The schema outlines the various attributes of the regional block public access configuration for you, including the internet gateway block mode, exclusions allowed status, and management details. + +## Examples + +### Basic settings info +Analyze the VPC Block Public Access settings to understand the security configuration across your AWS regions. This is useful for ensuring your VPC resources are properly protected and for maintaining compliance with your organization's security policies. + +```sql+postgres +select + region, + exclusions_allowed, + internet_gateway_block_mode, + last_update_timestamp, + managed_by, + reason, + state +from + aws_vpc_block_public_access_options; +``` + +```sql+sqlite +select + region, + exclusions_allowed, + internet_gateway_block_mode, + last_update_timestamp, + managed_by, + reason, + state +from + aws_vpc_block_public_access_options; +``` + +### Find regions with internet gateway blocking enabled +Identify regions where VPC Block Public Access has internet gateway blocking enabled. This is useful for maintaining network security by ensuring that public access through internet gateways is properly blocked. + +```sql+postgres +select + region, + internet_gateway_block_mode, + state, + managed_by +from + aws_vpc_block_public_access_options +where + internet_gateway_block_mode != 'off'; +``` + +```sql+sqlite +select + region, + internet_gateway_block_mode, + state, + managed_by +from + aws_vpc_block_public_access_options +where + internet_gateway_block_mode != 'off'; +``` + +### Find regions managed by declarative policies +Discover regions where VPC Block Public Access configurations are managed by declarative policies. This is useful for understanding your security setup and identifying which regions are centrally managed through policy-based controls. + +```sql+postgres +select + region, + managed_by, + state, + reason +from + aws_vpc_block_public_access_options +where + managed_by = 'declarative-policy'; +``` + +```sql+sqlite +select + region, + managed_by, + state, + reason +from + aws_vpc_block_public_access_options +where + managed_by = 'declarative-policy'; +``` + +### Find regions with bidirectional internet gateway blocking +Explore regions where VPC Block Public Access has bidirectional internet gateway blocking enabled. This provides maximum security against public access and is useful for environments requiring the highest level of network protection. + +```sql+postgres +select + region, + internet_gateway_block_mode, + state, + exclusions_allowed +from + aws_vpc_block_public_access_options +where + internet_gateway_block_mode = 'block-bidirectional'; +``` + +```sql+sqlite +select + region, + internet_gateway_block_mode, + state, + exclusions_allowed +from + aws_vpc_block_public_access_options +where + internet_gateway_block_mode = 'block-bidirectional'; +``` + +### Check BPA configuration status across regions +Analyze the current status of VPC Block Public Access configurations across all regions. This is useful for understanding your security posture and ensuring consistent protection across your AWS environment. + +```sql+postgres +select + region, + state, + internet_gateway_block_mode, + managed_by, + last_update_timestamp +from + aws_vpc_block_public_access_options +order by + region; +``` + +```sql+sqlite +select + region, + state, + internet_gateway_block_mode, + managed_by, + last_update_timestamp +from + aws_vpc_block_public_access_options +order by + region; +``` + +### Find regions with exclusions set to not allowed +Identify regions where VPC Block Public Access exclusions are not allowed. This indicates strict security policies and is useful for compliance auditing and security assessment. + +```sql+postgres +select + region, + exclusions_allowed, + internet_gateway_block_mode, + managed_by +from + aws_vpc_block_public_access_options +where + exclusions_allowed = 'not-allowed'; +``` + +```sql+sqlite +select + region, + exclusions_allowed, + internet_gateway_block_mode, + managed_by +from + aws_vpc_block_public_access_options +where + exclusions_allowed = 'not-allowed'; +``` + +### Monitor recent BPA configuration changes across regions +Track recent changes to VPC Block Public Access configurations across regions. This is useful for security auditing and maintaining an audit trail of configuration modifications. + +```sql+postgres +select + region, + last_update_timestamp, + internet_gateway_block_mode, + state, + reason +from + aws_vpc_block_public_access_options +where + last_update_timestamp >= now() - interval '30 days' +order by + last_update_timestamp desc; +``` + +```sql+sqlite +select + region, + last_update_timestamp, + internet_gateway_block_mode, + state, + reason +from + aws_vpc_block_public_access_options +where + last_update_timestamp >= datetime('now', '-30 days') +order by + last_update_timestamp desc; +``` diff --git a/docs/tables/aws_vpc_security_group_vpc_association.md b/docs/tables/aws_vpc_security_group_vpc_association.md new file mode 100644 index 000000000..e137cfe95 --- /dev/null +++ b/docs/tables/aws_vpc_security_group_vpc_association.md @@ -0,0 +1,121 @@ +--- +title: "Steampipe Table: aws_vpc_security_group_vpc_association - Query AWS VPC Security Group VPC Associations using SQL" +description: "Allows users to query AWS VPC Security Group VPC Associations to retrieve details about the associations between security groups and VPCs." +folder: "Config" +--- + +# Table: aws_vpc_security_group_vpc_association - Query AWS VPC Security Group VPC Associations using SQL + +The AWS VPC Security Group VPC Association is a feature that allows security groups to be associated with multiple VPCs. This enables you to use the same security group rules across different VPCs, providing consistent security policies and simplifying security group management. + +## Table Usage Guide + +The `aws_vpc_security_group_vpc_association` table in Steampipe provides you with information about the associations between security groups and VPCs. This table allows you, as a DevOps engineer, to query association-specific details, including which security groups are associated with which VPCs, the state of these associations, and the VPC owner information. You can utilize this table to gather insights on security group usage across VPCs, identify cross-VPC security group associations, and more. + +## Examples + +### Basic info +Determine the associations between security groups and VPCs, and gain insights into the security group usage across your AWS infrastructure. This can help enhance your understanding of the security group distribution and identify potential security considerations. + +```sql+postgres +select + group_id, + vpc_id, + vpc_owner_id, + state +from + aws_vpc_security_group_vpc_association +order by + group_id, + vpc_id; +``` + +```sql+sqlite +select + group_id, + vpc_id, + vpc_owner_id, + state +from + aws_vpc_security_group_vpc_association +order by + group_id, + vpc_id; +``` + +### List security group associations for a specific VPC +Identify all security groups associated with a specific VPC, allowing you to understand the security group coverage for that VPC. + +```sql+postgres +select + group_id, + vpc_id, + state +from + aws_vpc_security_group_vpc_association +where + vpc_id = 'vpc-0841c64fb5d4f3f43'; +``` + +```sql+sqlite +select + group_id, + vpc_id, + state +from + aws_vpc_security_group_vpc_association +where + vpc_id = 'vpc-0841c64fb5d4f3f43'; +``` + +### List VPC associations for a specific security group +Discover all VPCs that a specific security group is associated with, helping you understand the scope of that security group's usage. + +```sql+postgres +select + group_id, + vpc_id, + vpc_owner_id, + state +from + aws_vpc_security_group_vpc_association +where + group_id = 'sg-0be099bd3551846d1'; +``` + +```sql+sqlite +select + group_id, + vpc_id, + vpc_owner_id, + state +from + aws_vpc_security_group_vpc_association +where + group_id = 'sg-0be099bd3551846d1'; +``` + +### List active security group VPC associations +Explore security groups that are actively associated with VPCs, providing insights into current security group usage. + +```sql+postgres +select + group_id, + vpc_id, + vpc_owner_id +from + aws_vpc_security_group_vpc_association +where + state = 'associated'; +``` + +```sql+sqlite +select + group_id, + vpc_id, + vpc_owner_id +from + aws_vpc_security_group_vpc_association +where + state = 'associated'; +``` diff --git a/go.mod b/go.mod index babedd0a0..ab7e42daa 100644 --- a/go.mod +++ b/go.mod @@ -1,31 +1,35 @@ module github.com/turbot/steampipe-plugin-aws -go 1.23.1 +go 1.24 -toolchain go1.23.2 +toolchain go1.24.1 require ( - github.com/aws/aws-sdk-go v1.51.19 - github.com/aws/aws-sdk-go-v2 v1.27.0 - github.com/aws/aws-sdk-go-v2/config v1.27.16 - github.com/aws/aws-sdk-go-v2/credentials v1.17.16 + github.com/aws/aws-sdk-go v1.44.183 + github.com/aws/aws-sdk-go-v2 v1.41.1 + github.com/aws/aws-sdk-go-v2/config v1.29.14 + github.com/aws/aws-sdk-go-v2/credentials v1.17.67 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21 github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.1 github.com/aws/aws-sdk-go-v2/service/account v1.16.4 - github.com/aws/aws-sdk-go-v2/service/acm v1.25.4 + github.com/aws/aws-sdk-go-v2/service/acm v1.33.1 github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.4 github.com/aws/aws-sdk-go-v2/service/amplify v1.21.5 - github.com/aws/aws-sdk-go-v2/service/apigateway v1.23.6 + github.com/aws/aws-sdk-go-v2/service/apigateway v1.38.2 github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.20.4 github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.2 github.com/aws/aws-sdk-go-v2/service/applicationautoscaling v1.27.4 github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.8 github.com/aws/aws-sdk-go-v2/service/appstream v1.34.4 - github.com/aws/aws-sdk-go-v2/service/appsync v1.31.4 - github.com/aws/aws-sdk-go-v2/service/athena v1.40.4 + github.com/aws/aws-sdk-go-v2/service/appsync v1.47.4 + github.com/aws/aws-sdk-go-v2/service/athena v1.55.9 github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.4 github.com/aws/aws-sdk-go-v2/service/autoscaling v1.40.5 github.com/aws/aws-sdk-go-v2/service/backup v1.34.2 + github.com/aws/aws-sdk-go-v2/service/batch v1.37.4 + github.com/aws/aws-sdk-go-v2/service/bedrock v1.48.2 + github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.45.1 + github.com/aws/aws-sdk-go-v2/service/budgets v1.41.3 github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.18.4 github.com/aws/aws-sdk-go-v2/service/cloudformation v1.49.0 github.com/aws/aws-sdk-go-v2/service/cloudfront v1.35.4 @@ -42,16 +46,18 @@ require ( github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.23.6 github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.36.3 github.com/aws/aws-sdk-go-v2/service/configservice v1.46.4 + github.com/aws/aws-sdk-go-v2/service/connect v1.131.1 github.com/aws/aws-sdk-go-v2/service/costexplorer v1.37.1 github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.7 github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.38.4 + github.com/aws/aws-sdk-go-v2/service/datasync v1.50.1 github.com/aws/aws-sdk-go-v2/service/dax v1.19.4 github.com/aws/aws-sdk-go-v2/service/directoryservice v1.24.4 github.com/aws/aws-sdk-go-v2/service/dlm v1.24.4 github.com/aws/aws-sdk-go-v2/service/docdb v1.34.0 github.com/aws/aws-sdk-go-v2/service/drs v1.25.3 github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.1 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.156.0 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.236.0 github.com/aws/aws-sdk-go-v2/service/ecr v1.27.4 github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.4 github.com/aws/aws-sdk-go-v2/service/ecs v1.41.7 @@ -64,20 +70,21 @@ require ( github.com/aws/aws-sdk-go-v2/service/elasticsearchservice v1.28.4 github.com/aws/aws-sdk-go-v2/service/emr v1.39.5 github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.4 - github.com/aws/aws-sdk-go-v2/service/firehose v1.28.5 + github.com/aws/aws-sdk-go-v2/service/firehose v1.37.4 github.com/aws/aws-sdk-go-v2/service/fms v1.31.4 github.com/aws/aws-sdk-go-v2/service/fsx v1.43.4 github.com/aws/aws-sdk-go-v2/service/glacier v1.22.4 github.com/aws/aws-sdk-go-v2/service/globalaccelerator v1.23.1 github.com/aws/aws-sdk-go-v2/service/glue v1.78.0 github.com/aws/aws-sdk-go-v2/service/guardduty v1.41.1 - github.com/aws/aws-sdk-go-v2/service/health v1.24.4 + github.com/aws/aws-sdk-go-v2/service/health v1.35.0 github.com/aws/aws-sdk-go-v2/service/iam v1.31.4 github.com/aws/aws-sdk-go-v2/service/identitystore v1.23.5 github.com/aws/aws-sdk-go-v2/service/inspector v1.21.4 github.com/aws/aws-sdk-go-v2/service/inspector2 v1.24.4 github.com/aws/aws-sdk-go-v2/service/iot v1.53.3 github.com/aws/aws-sdk-go-v2/service/kafka v1.31.2 + github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.23.6 github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.8 github.com/aws/aws-sdk-go-v2/service/kinesis v1.27.4 github.com/aws/aws-sdk-go-v2/service/kinesisanalyticsv2 v1.25.2 @@ -94,8 +101,8 @@ require ( github.com/aws/aws-sdk-go-v2/service/neptune v1.31.6 github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.38.5 github.com/aws/aws-sdk-go-v2/service/oam v1.10.1 - github.com/aws/aws-sdk-go-v2/service/opensearch v1.32.4 - github.com/aws/aws-sdk-go-v2/service/organizations v1.27.3 + github.com/aws/aws-sdk-go-v2/service/opensearch v1.52.6 + github.com/aws/aws-sdk-go-v2/service/organizations v1.46.2 github.com/aws/aws-sdk-go-v2/service/pinpoint v1.29.0 github.com/aws/aws-sdk-go-v2/service/pipes v1.11.4 github.com/aws/aws-sdk-go-v2/service/pricing v1.28.1 @@ -104,14 +111,17 @@ require ( github.com/aws/aws-sdk-go-v2/service/rds v1.77.0 github.com/aws/aws-sdk-go-v2/service/redshift v1.43.5 github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.17.4 - github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.10.5 + github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.17.4 github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.4 + github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.11.4 github.com/aws/aws-sdk-go-v2/service/route53 v1.40.4 github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.4 github.com/aws/aws-sdk-go-v2/service/route53resolver v1.27.4 github.com/aws/aws-sdk-go-v2/service/s3 v1.54.3 github.com/aws/aws-sdk-go-v2/service/s3control v1.44.4 + github.com/aws/aws-sdk-go-v2/service/s3tables v1.3.0 github.com/aws/aws-sdk-go-v2/service/sagemaker v1.135.0 + github.com/aws/aws-sdk-go-v2/service/savingsplans v1.23.3 github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.8 github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 github.com/aws/aws-sdk-go-v2/service/securityhub v1.47.2 @@ -119,8 +129,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/serverlessapplicationrepository v1.20.4 github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.28.4 github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.29.5 - github.com/aws/aws-sdk-go-v2/service/servicequotas v1.21.4 + github.com/aws/aws-sdk-go-v2/service/servicequotas v1.34.1 github.com/aws/aws-sdk-go-v2/service/ses v1.22.4 + github.com/aws/aws-sdk-go-v2/service/sesv2 v1.54.0 github.com/aws/aws-sdk-go-v2/service/sfn v1.26.4 github.com/aws/aws-sdk-go-v2/service/shield v1.25.7 github.com/aws/aws-sdk-go-v2/service/simspaceweaver v1.10.4 @@ -128,7 +139,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sqs v1.31.4 github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5 github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.5 - github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 + github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 github.com/aws/aws-sdk-go-v2/service/support v1.21.4 github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.9 github.com/aws/aws-sdk-go-v2/service/transfer v1.45.0 @@ -137,7 +148,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/wafv2 v1.48.2 github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.29.4 github.com/aws/aws-sdk-go-v2/service/workspaces v1.38.4 - github.com/aws/smithy-go v1.22.2 + github.com/aws/smithy-go v1.24.0 github.com/gocarina/gocsv v0.0.0-20201208093247-67c824bc04d4 github.com/goccy/go-yaml v1.11.3 github.com/golang/protobuf v1.5.4 @@ -146,9 +157,9 @@ require ( github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529 github.com/stretchr/testify v1.10.0 github.com/turbot/go-kit v1.1.0 - github.com/turbot/steampipe-plugin-sdk/v5 v5.11.5 - golang.org/x/sync v0.11.0 - golang.org/x/text v0.22.0 + github.com/turbot/steampipe-plugin-sdk/v5 v5.13.1 + golang.org/x/sync v0.12.0 + golang.org/x/text v0.23.0 ) require golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect @@ -174,20 +185,20 @@ require ( github.com/agext/levenshtein v1.2.3 // indirect github.com/allegro/bigcache/v3 v3.1.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.8 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.4 - github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/btubbs/datetime v0.1.1 // indirect @@ -214,7 +225,7 @@ require ( github.com/googleapis/gax-go/v2 v2.12.3 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-getter v1.7.5 // indirect + github.com/hashicorp/go-getter v1.7.9 // indirect github.com/hashicorp/go-plugin v1.6.1 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect github.com/hashicorp/go-version v1.7.0 // indirect @@ -242,7 +253,7 @@ require ( github.com/sethvargo/go-retry v0.2.4 // indirect github.com/stevenle/topsort v0.2.0 // indirect github.com/tkrajina/go-reflector v0.5.6 // indirect - github.com/ulikunitz/xz v0.5.10 // indirect + github.com/ulikunitz/xz v0.5.15 // indirect github.com/zclconf/go-cty v1.14.4 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel v1.26.0 // indirect @@ -254,11 +265,11 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect go.opentelemetry.io/proto/otlp v1.2.0 // indirect - golang.org/x/crypto v0.35.0 // indirect + golang.org/x/crypto v0.36.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.36.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sys v0.30.0 // indirect + golang.org/x/net v0.38.0 // indirect + golang.org/x/oauth2 v0.27.0 // indirect + golang.org/x/sys v0.31.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.171.0 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect diff --git a/go.sum b/go.sum index 3b3af42c8..2d356d8fa 100644 --- a/go.sum +++ b/go.sum @@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -15,6 +16,7 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= @@ -26,28 +28,92 @@ cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+Y cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -55,12 +121,44 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= @@ -68,128 +166,455 @@ cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -197,44 +622,48 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/allegro/bigcache/v3 v3.1.0 h1:H2Vp8VOvxcrB91o86fUSVJFqeuz8kpyyB02eH3bSzwk= github.com/allegro/bigcache/v3 v3.1.0/go.mod h1:aPyh7jEvrog9zAwx5N7+JUQX5dZTSGpxF1LAR4dr35I= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.51.19 h1:jp/Vx/mUpXttthvvo/4/Nn/3+zumirIlAFkp1Irf1kM= -github.com/aws/aws-sdk-go v1.51.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/aws/aws-sdk-go-v2 v1.27.0 h1:7bZWKoXhzI+mMR/HjdMx8ZCC5+6fY0lS5tr0bbgiLlo= -github.com/aws/aws-sdk-go-v2 v1.27.0/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= -github.com/aws/aws-sdk-go-v2/config v1.27.16 h1:knpCuH7laFVGYTNd99Ns5t+8PuRjDn4HnnZK48csipM= -github.com/aws/aws-sdk-go-v2/config v1.27.16/go.mod h1:vutqgRhDUktwSge3hrC3nkuirzkJ4E/mLj5GvI0BQas= -github.com/aws/aws-sdk-go-v2/credentials v1.17.16 h1:7d2QxY83uYl0l58ceyiSpxg9bSbStqBC6BeEeHEchwo= -github.com/aws/aws-sdk-go-v2/credentials v1.17.16/go.mod h1:Ae6li/6Yc6eMzysRL2BXlPYvnrLLBg3D11/AmOjw50k= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3 h1:dQLK4TjtnlRGb0czOht2CevZ5l6RSyRWAnKeGd7VAFE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.3/go.mod h1:TL79f2P6+8Q7dTsILpiVST+AL9lkF6PPGI167Ny0Cjw= +github.com/aws/aws-sdk-go v1.44.183 h1:mUk45JZTIMMg9m8GmrbvACCsIOKtKezXRxp06uI5Ahk= +github.com/aws/aws-sdk-go v1.44.183/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go-v2 v1.41.1 h1:ABlyEARCDLN034NhxlRUSZr4l71mh+T5KAeGh6cerhU= +github.com/aws/aws-sdk-go-v2 v1.41.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14= +github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= +github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= +github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21 h1:1v8Ii0MRVGYB/sdhkbxrtolCA7Tp+lGh+5OJTs5vmZ8= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.21/go.mod h1:cxdd1rc8yxCjKz28hi30XN1jDXr2DxZvD44vLxTz/bg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7 h1:lf/8VTF2cM+N4SLzaYJERKEWAXq8MOMpZfU6wEPWsPk= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.7/go.mod h1:4SjkU7QiqK2M9oozyMzfZ/23LmUY+h3oFqhdeP5OMiI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7 h1:4OYVp0705xu8yjdyoWix0r9wPIRXnIzzOoUpQVHIJ/g= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.7/go.mod h1:vd7ESTEvI76T2Na050gODNmNU7+OyKrIKroYTu4ABiI= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= -github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7 h1:/FUtT3xsoHO3cfh+I/kCbcMCN98QZRsiFet/V8QkWSs= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.7/go.mod h1:MaCAgWpGooQoCWZnMur97rGn5dp350w2+CeiV5406wE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17 h1:xOLELNKGp2vsiteLsvLPwxC+mYmO6OZ8PYgiuPJzF8U= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.17/go.mod h1:5M5CI3D12dNOtH3/mk6minaRwI2/37ifCURZISxA/IQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17 h1:WWLqlh79iO48yLkj1v3ISRNiv+3KdQoZ6JWyfcsyQik= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.17/go.mod h1:EhG22vHRrvF8oXSTYStZhJc1aUgKtnJe+aOiFEV90cM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11 h1:bKgSxk1TW//00PGQqYmrq83c+2myGidEclp+t9pPqVI= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.11/go.mod h1:vrPYCQ6rFHL8jzQA8ppu3gWX18zxjLIDGTeqDxkBmSI= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.1 h1:PL5AbOt4fBuqFOupjlJz7FNQv8Y9iq/3AlOiPFMcBhY= github.com/aws/aws-sdk-go-v2/service/accessanalyzer v1.29.1/go.mod h1:CDDc+pehLZpaGJNHUE6RJcp7MjQUhduISa1bQ/ixwR8= github.com/aws/aws-sdk-go-v2/service/account v1.16.4 h1:Fvgx1l0High+w0FoOFj9ZOJR3H6qBqNmFvespxtz7xk= github.com/aws/aws-sdk-go-v2/service/account v1.16.4/go.mod h1:d6aNAmILOvNF389Sj6qTZuwRGVU1L/CQH3OlB5Xa9/k= -github.com/aws/aws-sdk-go-v2/service/acm v1.25.4 h1:Hc7j0FECuM+/jsQ0vY54sEFxCc1vGbPLHCaG8Aee8m0= -github.com/aws/aws-sdk-go-v2/service/acm v1.25.4/go.mod h1:kTFYiaoqqRsZC+BYdciI5tFLtuodontKG5jGjCGtPUg= +github.com/aws/aws-sdk-go-v2/service/acm v1.33.1 h1:VAAadBIWgoYoS0tRWkghu1E2LfSsKQw8m/sOkdF1D3E= +github.com/aws/aws-sdk-go-v2/service/acm v1.33.1/go.mod h1:eq3JsAPGHsNfhRbPoVRUVDxtQFynlnFcDXzxFMEeOdQ= github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.4 h1:yoapemA3RhTRDZv/5N8nUpCW0Fe3GfUXi8Y0483BXhg= github.com/aws/aws-sdk-go-v2/service/acmpca v1.29.4/go.mod h1:jYnnbnSuNWM5H1S+fC8UAZPj3LNtHZOv51/gcA2qL4c= github.com/aws/aws-sdk-go-v2/service/amplify v1.21.5 h1:2r72Kx6V0U6js4KZryjZO+tzxri7dQ5nT0BHPXoWxwg= github.com/aws/aws-sdk-go-v2/service/amplify v1.21.5/go.mod h1:DBFsAufxSC9f12Z3JCcqlErAAE6KHDGrHBe+KgNV1ZA= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.23.6 h1:YZ4tYuH59Xd5q3bYmDqKXt8fQVJ19WPoq4lKzW1iLMg= -github.com/aws/aws-sdk-go-v2/service/apigateway v1.23.6/go.mod h1:3h9BDpayKgNNrpHZBvL7gCIeikqiE7oBxGGcrzmtLAM= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.38.2 h1:Z4RVQEfYiz4RxoH1qBm7ovudJeDDhqoob53rU7vsHOg= +github.com/aws/aws-sdk-go-v2/service/apigateway v1.38.2/go.mod h1:QEzz20r7Ic/bjNGKBEPCCsBckz6bJ8kRXUg9UHjQsTE= github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.20.4 h1:PLfHdrvs3L32R21hoxzmp0itGKKzUASF63UMtUmRG80= github.com/aws/aws-sdk-go-v2/service/apigatewayv2 v1.20.4/go.mod h1:PkfhkgYj7XKPO/kGyF7s4DC5ZVrxfHoWDD+rrxobLMg= github.com/aws/aws-sdk-go-v2/service/appconfig v1.29.2 h1:Nm1Pqug23c/Ib+/FgwYpFZiLJyuohWxy0bdCj28SFNE= @@ -245,16 +674,24 @@ github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.8 h1:vTSRA431Gi6tQcUDfCTF1P github.com/aws/aws-sdk-go-v2/service/apprunner v1.28.8/go.mod h1:0ClIRoMxROYgDXb/kSvAsZSO41p4j9p4xkquAFzNEjM= github.com/aws/aws-sdk-go-v2/service/appstream v1.34.4 h1:chEtg7jpLbd+wzNEZR5Y7if5S3+zCL4HO892dk4JRHI= github.com/aws/aws-sdk-go-v2/service/appstream v1.34.4/go.mod h1:ornvkYF5+PhIhj13BZGWGlZyltIkYqfoPtmAnOdSORA= -github.com/aws/aws-sdk-go-v2/service/appsync v1.31.4 h1:E6Lgar42LVTsQPOQ+1UDjItIliPnm2/R8jnBA6fo6Gg= -github.com/aws/aws-sdk-go-v2/service/appsync v1.31.4/go.mod h1:97Ro0OjBi935ssl5msQA3bd07X9SS266L6qW+mpfSJs= -github.com/aws/aws-sdk-go-v2/service/athena v1.40.4 h1:tiHIjFXSyb5DbNfnu3ql2r86s6llLdzwWAVJkPgw/I0= -github.com/aws/aws-sdk-go-v2/service/athena v1.40.4/go.mod h1:6OHesqDfYPNzYI+VaXtmylYLyppuUy9SwRk4CH/pQA4= +github.com/aws/aws-sdk-go-v2/service/appsync v1.47.4 h1:E60+xhcNh0s1M237SMIEozbjU0KHbeDXNPKuiq1o2PM= +github.com/aws/aws-sdk-go-v2/service/appsync v1.47.4/go.mod h1:Sg7FbRUyjrTkbZRa62XjvTQJP3lEeEsRYBxdiKf8ZEY= +github.com/aws/aws-sdk-go-v2/service/athena v1.55.9 h1:w50cPLPIyWSzh4bqgA/h0nzRw1rnNBKfxeElfKBLON4= +github.com/aws/aws-sdk-go-v2/service/athena v1.55.9/go.mod h1:jTVF/+wNGjLD94jaJxDqhWexDeH7r4zZkQ7bbboAf1I= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.4 h1:45+KYpnG8ZKoqLkQSIg8hnU52rbBRyIYHqaSf+02P3I= github.com/aws/aws-sdk-go-v2/service/auditmanager v1.32.4/go.mod h1:WHURzIps29VZSUz9jxpGeShOhGuf/SqQmNJLs3Ytfns= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.40.5 h1:vhdJymxlWS2qftzLiuCjSswjXBRLGfzo/BEE9LDveBA= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.40.5/go.mod h1:ZErgk/bPaaZIpj+lUWGlwI1A0UFhSIscgnCPzTLnb2s= github.com/aws/aws-sdk-go-v2/service/backup v1.34.2 h1:M7OwCjc77SL2zcpvAGV/ORMik1zh9q7PjZWk6hQDOpI= github.com/aws/aws-sdk-go-v2/service/backup v1.34.2/go.mod h1:AI+UC6udX0Vo3bScHfV2LMiwecGjerEhGJZ9oFOW+2w= +github.com/aws/aws-sdk-go-v2/service/batch v1.37.4 h1:N54MVxMi3qU/s9uJKcyU+dQnGCpCx/o3+VayLG1SaKo= +github.com/aws/aws-sdk-go-v2/service/batch v1.37.4/go.mod h1:hqOLhSiZjmX2+1axOvbJ6OdBtl+WsYvolcszo2j7+NQ= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.48.2 h1:CiUB0sYnjNiYX8Pry4KBykdGUQ8uIbdvAES58ICjVB4= +github.com/aws/aws-sdk-go-v2/service/bedrock v1.48.2/go.mod h1:yaoTaEnKx5UMTFrOT/Hl10I0W6rsm4OeN/tnolSc38k= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.45.1 h1:tS0DD3PKU2dwn9lcOqPPhb2qmxBV7B+XG6zGgPw7HiE= +github.com/aws/aws-sdk-go-v2/service/bedrockagent v1.45.1/go.mod h1:pmybD02MldOa11kASmpD/d3KNfOIPlhUeDytFBHyoK4= +github.com/aws/aws-sdk-go-v2/service/budgets v1.41.3 h1:9cQXqYwHzp4fcKCHOAlHeMm/m/K+dcZS2D5SB+4ZA9s= +github.com/aws/aws-sdk-go-v2/service/budgets v1.41.3/go.mod h1:wjQL1whunmAT3ZhqQGZq0lPGNmU27Uu8RjGmT12wLNg= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.18.4 h1:y9xLchBUDKriRuDsA6OwwzgP9binHw67dR0uicHmOQQ= github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.18.4/go.mod h1:oOvzqGwjzl5fyWi0C7YfOalzMDS8R4yapREwUVV5gBY= github.com/aws/aws-sdk-go-v2/service/cloudformation v1.49.0 h1:XSUAzNAV7kCSWhV8duijMz+FrOdMqbLiRXXWBs6BA9A= @@ -287,12 +724,16 @@ github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.36.3 h1:JNWpkjIm github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.36.3/go.mod h1:TiLZ2/+WAEyG2PnuAYj/un46UJ7qBf5BWWTAKgaHP8I= github.com/aws/aws-sdk-go-v2/service/configservice v1.46.4 h1:bmVA/LmysEu6gOplmzuLkugDcjDJQYjHSPzcB64F4/Q= github.com/aws/aws-sdk-go-v2/service/configservice v1.46.4/go.mod h1:WCD4Psga99kZmdqPGJ88SURa6UMa4WgqpqzY5vP2ZS0= +github.com/aws/aws-sdk-go-v2/service/connect v1.131.1 h1:kQX9yr5uYeQPv/PdCtw+iLUltEz1tUYOJAtehBjaaZU= +github.com/aws/aws-sdk-go-v2/service/connect v1.131.1/go.mod h1:TSGHpIRxxjWpqQRn/FInBotVOPOv7wOQJad9ucm6iWU= github.com/aws/aws-sdk-go-v2/service/costexplorer v1.37.1 h1:xjhk+io+kPtDOG5RizvHlkGKET3dxRBzorLdPPkpZQc= github.com/aws/aws-sdk-go-v2/service/costexplorer v1.37.1/go.mod h1:uLOg0o57AyQQhZGtUKIlcBJOKE53mO9bXKyrM9dFhy4= github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.7 h1:MGeK6VW2qK2jY5mG0a5VyJ9AFwxjQUumkZcUK/C1UDA= github.com/aws/aws-sdk-go-v2/service/costoptimizationhub v1.4.7/go.mod h1:dD0mbm64tfE2DRlIVEKg0dXb9qyf+qZtNitsR8CvMVM= github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.38.4 h1:ot9PKavvbeEg3eofQdkpJWrf8DR90S9wx1OirBUComU= github.com/aws/aws-sdk-go-v2/service/databasemigrationservice v1.38.4/go.mod h1:hTZS15Gghi40UxU03Cv09Qr2tXgoQrZOSGY6oaNUNAg= +github.com/aws/aws-sdk-go-v2/service/datasync v1.50.1 h1:fECKYyWQ7RzM2xD9307zY4AFFqaN4yghtB88eEEcafU= +github.com/aws/aws-sdk-go-v2/service/datasync v1.50.1/go.mod h1:dJRLZd4GxQvdLMNCdxMxJby9CEWCDTVVVEFRwBb8whQ= github.com/aws/aws-sdk-go-v2/service/dax v1.19.4 h1:S3mvtYjRVVsg1R4EuV1LWZUiD72t+pfnBbK8TL7zEmo= github.com/aws/aws-sdk-go-v2/service/dax v1.19.4/go.mod h1:ZfNHbSICNHSqX4l5pJ6APeyWdgXgQg3PbuSFS2e5mCo= github.com/aws/aws-sdk-go-v2/service/directoryservice v1.24.4 h1:XBgx3sdaA0SoPXsZSNSUL14H0UnYnTSVArieaYNv0EI= @@ -305,8 +746,8 @@ github.com/aws/aws-sdk-go-v2/service/drs v1.25.3 h1:oPtKKSsaTxinT40V0/eG83x6nHP7 github.com/aws/aws-sdk-go-v2/service/drs v1.25.3/go.mod h1:JZ4CRooP+yWww77ZYveo33Z3wvkZCfo8NQdAXermf9s= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.1 h1:dZXY07Dm59TxAjJcUfNMJHLDI/gLMxTRZefn2jFAVsw= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.31.1/go.mod h1:lVLqEtX+ezgtfalyJs7Peb0uv9dEpAQP5yuq2O26R44= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.156.0 h1:TFK9GeUINErClL2+A+GLYhjiChVdaXCgIUiCsS/UQrE= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.156.0/go.mod h1:xejKuuRDjz6z5OqyeLsz01MlOqqW7CqpAB4PabNvpu8= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.236.0 h1:p9VAk1AO/UDMq4sYtsxMbZqoJIXtCZmLolsPTc3rP/w= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.236.0/go.mod h1:K7qdQFo+lbGM48aPEyoPfy/VN/xNOA4o8GGczfSXNcQ= github.com/aws/aws-sdk-go-v2/service/ecr v1.27.4 h1:Qr9W21mzWT3RhfYn9iAux7CeRIdbnTAqmiOlASqQgZI= github.com/aws/aws-sdk-go-v2/service/ecr v1.27.4/go.mod h1:if7ybzzjOmDB8pat9FE35AHTY6ZxlYSy3YviSmFZv8c= github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.4 h1:aNuiieMaS2IHxqAsTdM/pjHyY1aoaDLBGLqpNnFMMqk= @@ -331,8 +772,8 @@ github.com/aws/aws-sdk-go-v2/service/emr v1.39.5 h1:ni+E9GfbQ8CzjYSlJ+WbNYX7SAsL github.com/aws/aws-sdk-go-v2/service/emr v1.39.5/go.mod h1:7WusX+O5pwTnx2yobUO/P1C5HlBibmrQb5gKEPFjTYM= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.4 h1:Vz4ilZcVXCR9yatX5yfMrkBldYggtkih3h7woHvzu5Q= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.30.4/go.mod h1:aIINXlt2xXhMeRsyCsLDUDohI8AdDm92gY9nIB6pv0M= -github.com/aws/aws-sdk-go-v2/service/firehose v1.28.5 h1:7h4RJRnBULtax1Tk6iSYsIPuBcV5mTWhWbK1/qfyGj0= -github.com/aws/aws-sdk-go-v2/service/firehose v1.28.5/go.mod h1:78F+4pVJf6Qlg7a34oR2I2SpM/v0EUSAL/htTZ9trg4= +github.com/aws/aws-sdk-go-v2/service/firehose v1.37.4 h1:n4Txba4IeWG8b/OeylAasWWCemjrULcwMGXM1ES2n3E= +github.com/aws/aws-sdk-go-v2/service/firehose v1.37.4/go.mod h1:6i3MXkR7cPgCVGgtCwxl7NEmdgkYgNRUmGGONMo9ehc= github.com/aws/aws-sdk-go-v2/service/fms v1.31.4 h1:gY+Dp2QdphY6m5IVkETmsNauYztd62piL9az5B6rVtQ= github.com/aws/aws-sdk-go-v2/service/fms v1.31.4/go.mod h1:X4DjA4sm8cobhR9DtHn947+dLYxU1oWq3zwRZUmFSLo= github.com/aws/aws-sdk-go-v2/service/fsx v1.43.4 h1:PzDEW/yt1NfRDIsRsUiNNbYZFdlyPBUyxtrKmpw6vv4= @@ -345,8 +786,8 @@ github.com/aws/aws-sdk-go-v2/service/glue v1.78.0 h1:B7NIez2lCPjP9F/ucgjJSZ9JWHB github.com/aws/aws-sdk-go-v2/service/glue v1.78.0/go.mod h1:maQT+ebL6UAFXYp8fJlK2Dv/s42LZuggi2l6pVeE2B4= github.com/aws/aws-sdk-go-v2/service/guardduty v1.41.1 h1:HbecqrH+phcfa2XVmFlJEjEFM2FXJFhAtqLBq+k0q1I= github.com/aws/aws-sdk-go-v2/service/guardduty v1.41.1/go.mod h1:qXyWkjk60YMVbYEBkQBYqk7d4WJTEPnQzxbWWQ5d6pI= -github.com/aws/aws-sdk-go-v2/service/health v1.24.4 h1:5QROeJylnNdBQxxYn4BPpbgoo3nXT+SMG3KvFd71O4s= -github.com/aws/aws-sdk-go-v2/service/health v1.24.4/go.mod h1:p489k/dsudsm+FK8MSFJYk0kMqY4h7tTE2YU/s6VN6E= +github.com/aws/aws-sdk-go-v2/service/health v1.35.0 h1:4OskIDnFXHX0+BN1mccIV7Ovj5wFMrL2udm1W7npgZA= +github.com/aws/aws-sdk-go-v2/service/health v1.35.0/go.mod h1:oUYYSzL5Vi+KtTSHdsYUA4WDnVkfqpOOluzlKydMwlc= github.com/aws/aws-sdk-go-v2/service/iam v1.31.4 h1:eVm30ZIDv//r6Aogat9I88b5YX1xASSLcEDqHYRPVl0= github.com/aws/aws-sdk-go-v2/service/iam v1.31.4/go.mod h1:aXWImQV0uTW35LM0A/T4wEg6R1/ReXUu4SM6/lUHYK0= github.com/aws/aws-sdk-go-v2/service/identitystore v1.23.5 h1:c8V6kd9z0D/YpFr+HD9rrYOexzbbNetekj1pZYF01RM= @@ -355,20 +796,22 @@ github.com/aws/aws-sdk-go-v2/service/inspector v1.21.4 h1:QujmNHhX3rjq7jFI+glD3s github.com/aws/aws-sdk-go-v2/service/inspector v1.21.4/go.mod h1:losQb9vE5K8UQ64mFyn4P6bLMUTibeOuvnwkAOfdepg= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.24.4 h1:0cHc8syoJJUzP5N2d6Hhtj3sUIBYUpFYW/p6q91ISko= github.com/aws/aws-sdk-go-v2/service/inspector2 v1.24.4/go.mod h1:tyMGN8hc2UtH6e6y6phOqN/O/L68Q8YYKZG2Ydsk3UI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9 h1:UXqEWQI0n+q0QixzU0yUUQBZXRd5037qdInTIHFTl98= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.9/go.mod h1:xP6Gq6fzGZT8w/ZN+XvGMZ2RU1LeEs7b2yUP5DN8NY4= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2 h1:BCG7DCXEXpNCcpwCxg1oi9pkJWH2+eZzTn9MY56MbVw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.2/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.8 h1:yEeIld7Fh/2iM4pYeQw8a3kH6OYcyIn6lwKlUFiVk7Y= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.8/go.mod h1:lZJMX2Z5/rQ6OlSbBnW1WWScK6ngLt43xtqM8voMm2w= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9 h1:Wx0rlZoEJR7JwlSZcHnEa7CNjrSIyVxMFWGAaXy4fJY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.9/go.mod h1:aVMHdE0aHO3v+f/iw01fmXV/5DbfQ3Bi9nN7nd9bE9Y= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7 h1:uO5XR6QGBcmPyo2gxofYJLFkcVQ4izOoGDNenlZhTEk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.7/go.mod h1:feeeAYfAcwTReM6vbwjEyDmiGho+YgBhaFULuXDW8kc= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 h1:vvbXsA2TVO80/KT7ZqCbx934dt6PY+vQ8hZpUZ/cpYg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18/go.mod h1:m2JJHledjBGNMsLOF1g9gbAxprzq3KjC8e4lxtn+eWg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA= github.com/aws/aws-sdk-go-v2/service/iot v1.53.3 h1:d9R8dezHswXV9am8Sz+1HOsCas1/7YmJQQq7FmpD7rQ= github.com/aws/aws-sdk-go-v2/service/iot v1.53.3/go.mod h1:7rtIbAvSP5Nbc1f7sbeWa+uMV+T6khOkWAh6VHsbOZI= github.com/aws/aws-sdk-go-v2/service/kafka v1.31.2 h1:jODSVa9LbXmZKRLy4KLFHCfhKlCGzU8FPOClKTqrh9U= github.com/aws/aws-sdk-go-v2/service/kafka v1.31.2/go.mod h1:ofW8A+AyFHi/MMYwYI5YkJ5h2JWCCtyHR/P7UQONcyc= +github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.23.6 h1:ihOQVwcgeNWwKNnlJ7Ar+2vNrT1vHf3TkMMbYkjMqRg= +github.com/aws/aws-sdk-go-v2/service/kafkaconnect v1.23.6/go.mod h1:y37BbtndiEKtaB7oZAkqSIq3h5pdFqRDZQLV/WFu07s= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.8 h1:GVvpQbXfUVPnpydvOt+CfZPaZgLcGyJoJRSefunMuIo= github.com/aws/aws-sdk-go-v2/service/keyspaces v1.10.8/go.mod h1:ROjezftKq0KTWdrXyweta/WkqytcwIIB4/8u1f5qM6A= github.com/aws/aws-sdk-go-v2/service/kinesis v1.27.4 h1:Oe8awBiS/iitcsRJB5+DHa3iCxoA0KwJJf0JNrYMINY= @@ -401,10 +844,10 @@ github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.38.5 h1:8EiDGCuiEaITcpvd github.com/aws/aws-sdk-go-v2/service/networkfirewall v1.38.5/go.mod h1:edcyq5BjExOF6LcUuIBb9J68eOTdBwG4zNigKay6gsM= github.com/aws/aws-sdk-go-v2/service/oam v1.10.1 h1:3Sva3JVT4+13mzYYiH8mnFnMyOOynFEstglqZzvHus8= github.com/aws/aws-sdk-go-v2/service/oam v1.10.1/go.mod h1:GNW8lL/rOjgXphUtGDvd9yikXGOfo51z2LBgct6XPTs= -github.com/aws/aws-sdk-go-v2/service/opensearch v1.32.4 h1:v7/SIFD0TH0THz3asTBGccTefyXYL2ZPYugHCOyXVak= -github.com/aws/aws-sdk-go-v2/service/opensearch v1.32.4/go.mod h1:PJI/AHEUCTDQGTrlFZ/wtqAau5WhbVflYDxVWeS+YRc= -github.com/aws/aws-sdk-go-v2/service/organizations v1.27.3 h1:CnPWlONzFX9/yO6IGuKg9sWUE8WhKztYRFbhmOHXjJI= -github.com/aws/aws-sdk-go-v2/service/organizations v1.27.3/go.mod h1:hUHSXe9HFEmLfHrXndAX5e69rv0nBsg22VuNQYl0JLM= +github.com/aws/aws-sdk-go-v2/service/opensearch v1.52.6 h1:IaszD7J1ALGK549MHZlRu2vhMxA5q3OSomQIkpL5dAw= +github.com/aws/aws-sdk-go-v2/service/opensearch v1.52.6/go.mod h1:WKx7zlYZxgS1qk+0fVvBV7QqN9UKurguQHIbxUt8eZg= +github.com/aws/aws-sdk-go-v2/service/organizations v1.46.2 h1:loLB5u3fRKxsz+gSnJCoCSV+0w3JT5C1nyihgOblc4w= +github.com/aws/aws-sdk-go-v2/service/organizations v1.46.2/go.mod h1:tnWiGtBYsKa4astPsL0YPaysffUcAp2C4Y0cZw6ZzGA= github.com/aws/aws-sdk-go-v2/service/pinpoint v1.29.0 h1:wOMb8ufPtUrp+X4vbOEtR18UADAa7eJrY460fqsPjfk= github.com/aws/aws-sdk-go-v2/service/pinpoint v1.29.0/go.mod h1:rSa6X4HY6lcAVYYOKjbMk316Lu9IE6qTfuVWDL1yk8Q= github.com/aws/aws-sdk-go-v2/service/pipes v1.11.4 h1:xOLwoRZoNFTNeM1W6jafNh9xFmvpi7pK2u8cwgO22D0= @@ -421,10 +864,12 @@ github.com/aws/aws-sdk-go-v2/service/redshift v1.43.5 h1:qiwrbGdDKuD0OD2hxNezyiu github.com/aws/aws-sdk-go-v2/service/redshift v1.43.5/go.mod h1:8ldsMsikORLj0GZUozSvbQdctrumAPYhizmj/3AAATI= github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.17.4 h1:aCgDTg7NalOIbcz26fFRsz7JtxDUvBHm5/YBT/5J2S8= github.com/aws/aws-sdk-go-v2/service/redshiftserverless v1.17.4/go.mod h1:XIPGtb7MKsA/uAfS9pngCspt+NfjDxlIAg1hSwvtQQs= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.10.5 h1:jZRmSjW91mFQ6BNUu9wTZ41ZBtEwWH7HNCGLjus2uos= -github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.10.5/go.mod h1:tZurYgz9ed3t1LNo2QL6cRTWYoYVOf4wPniYaY3Y5sc= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.17.4 h1:c+JJu+m/FoXVVaRj82+ef+cpMI4VMZbg92M2bg014Vs= +github.com/aws/aws-sdk-go-v2/service/resourceexplorer2 v1.17.4/go.mod h1:E9gRM9YBkYKE1AjYGcQRjYUyEIB52+cSMihMQBjB/FE= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.4 h1:c1jtPWZSmgMmPkCgwv67GE0ugdEgnLVo/BHR1wl3Dm0= github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.21.4/go.mod h1:FWw+Jnx+SlpsrU/NQ/f7f+1RdixTApZiU2o9FOubiDQ= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.11.4 h1:xys/w/7znK4kfRTNpNuSlo3f2FW5RiD96VpofHcvHkU= +github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.11.4/go.mod h1:SZ63U4KIN2oaEhQYnmCRLRRcR8bMz/HKdPwuRd5Q5nk= github.com/aws/aws-sdk-go-v2/service/route53 v1.40.4 h1:ZZKiHm4cN8IDDZ2kh8DTk+YnYBjVsiFdwf5FwVs//IQ= github.com/aws/aws-sdk-go-v2/service/route53 v1.40.4/go.mod h1:RTfjFUctf+Zyq8e4rgLXmz43+0kIoIXbENvrFtilumI= github.com/aws/aws-sdk-go-v2/service/route53domains v1.23.4 h1:Qb7EiHvGJZGU43aCMahEJrP5sJjV62gGXm4y9x/syRQ= @@ -435,8 +880,12 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.54.3 h1:57NtjG+WLims0TxIQbjTqebZUKDM0 github.com/aws/aws-sdk-go-v2/service/s3 v1.54.3/go.mod h1:739CllldowZiPPsDFcJHNF4FXrVxaSGVnZ9Ez9Iz9hc= github.com/aws/aws-sdk-go-v2/service/s3control v1.44.4 h1:9QdyZyzWTzZxr3uvVMVgN8R/h1gKCQ5TfcaTkqg4Cog= github.com/aws/aws-sdk-go-v2/service/s3control v1.44.4/go.mod h1:xywJi2/waU8+fglbs5ASVHKr5y7OAYsEBOyQwgQgTIc= +github.com/aws/aws-sdk-go-v2/service/s3tables v1.3.0 h1:sQFZENns6JNemrS5s3zLfk9R61E+DGVWpFrJNOwqCjw= +github.com/aws/aws-sdk-go-v2/service/s3tables v1.3.0/go.mod h1:u8pFMlyM6roXU/RRPYKb+07R+OoyVKO1Gu1AGlDODQk= github.com/aws/aws-sdk-go-v2/service/sagemaker v1.135.0 h1:xr65PMo/RO3CDaYz2/U4W+cadzWzB+2b7AW7em3OHos= github.com/aws/aws-sdk-go-v2/service/sagemaker v1.135.0/go.mod h1:7Tsdas9MqLqQ8xZM34242+vVz928Jdg8/HJnMXYoIUM= +github.com/aws/aws-sdk-go-v2/service/savingsplans v1.23.3 h1:et7qbrPgwHBcaSL4v2E6FZVxjXH9MuqqjxoZZNWJHLA= +github.com/aws/aws-sdk-go-v2/service/savingsplans v1.23.3/go.mod h1:yOavplAVhy39kLFw2yg5F5goM7QG881m69YzerMSiiA= github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.8 h1:0JlMMgtgydlichQOArHBRgkAo/ycJ/aF3nMreMRxmv0= github.com/aws/aws-sdk-go-v2/service/scheduler v1.8.8/go.mod h1:XIhMBVV65pl4sdT0SB6CnI/F3AUQ7yPNRdaCVG47ZHo= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.28.6 h1:TIOEjw0i2yyhmhRry3Oeu9YtiiHWISZ6j/irS1W3gX4= @@ -451,10 +900,12 @@ github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.28.4 h1:HzQohBdm6/Mlzfm19 github.com/aws/aws-sdk-go-v2/service/servicecatalog v1.28.4/go.mod h1:La2PgttBq5RyBrcuRPq2JyJnmZzGrtG9szotB/sgvCk= github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.29.5 h1:a3nFS1TFNTH9TVizItnHz3BgPCk5/7ygrZQZAoUV3GA= github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.29.5/go.mod h1:3pzLFJnbjkymz6RdZ963DuvMR9rzrKMXrlbteSk4Sxc= -github.com/aws/aws-sdk-go-v2/service/servicequotas v1.21.4 h1:SSDkZRAO8Ok5SoQ4BJ0onDeb0ga8JBOCkUmNEpRChcw= -github.com/aws/aws-sdk-go-v2/service/servicequotas v1.21.4/go.mod h1:plXue/Zg49kU3uU6WwfCWgRR5SRINNiJf03Y/UhYOhU= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.34.1 h1:e+VWs6gDfbmN7b+NnWmjNV7vDKUEEHM+LmXKQyDh2xA= +github.com/aws/aws-sdk-go-v2/service/servicequotas v1.34.1/go.mod h1:VTLDjgteqIrLvKaj3xvz0hpAyYV/Na+4jV45j58ua3M= github.com/aws/aws-sdk-go-v2/service/ses v1.22.4 h1:MNU3UWV47ylAAdlU+VxuyItYfuGGp00MvCBxdVAI3kM= github.com/aws/aws-sdk-go-v2/service/ses v1.22.4/go.mod h1:M/ZQn5uXL4BP1qolIWrlN2SeoUFngJtU/oCwR4WOfZU= +github.com/aws/aws-sdk-go-v2/service/sesv2 v1.54.0 h1:IAK3rdYatLZy9QR47oHSy01W2yTojqmNvxl0hobt0/0= +github.com/aws/aws-sdk-go-v2/service/sesv2 v1.54.0/go.mod h1:4+ziy3DUT4K1IGOiOWYZwuSDJJmBvvVouy4SnpORkdU= github.com/aws/aws-sdk-go-v2/service/sfn v1.26.4 h1:LM5AENhJDUd3fHP5NI8hk1jR+Io54/TmEQCWkRmfJE8= github.com/aws/aws-sdk-go-v2/service/sfn v1.26.4/go.mod h1:YYRs4t+xgLXx9lBMW8Rs6wF61RtEOFrKa8hNMgq6DvI= github.com/aws/aws-sdk-go-v2/service/shield v1.25.7 h1:enkVyQ39Z6Lz4SHLfr0IHnhSjxAOvL+AzR0/QPoEHwo= @@ -469,14 +920,14 @@ github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5 h1:KBwyHzP2QG8J//hoGuPyHWZ5tgL1 github.com/aws/aws-sdk-go-v2/service/ssm v1.49.5/go.mod h1:Ebk/HZmGhxWKDVxM4+pwbxGjm3RQOQLMjAEosI3ss9Q= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.4 h1:FctT4NUwB7L4EvS5OBT10m7mY7a4HzUD2jxHM94C4T0= github.com/aws/aws-sdk-go-v2/service/ssmincidents v1.30.4/go.mod h1:xgj+QUtfv/DrfdZq1cGt0wlEX6om1oh/NHB+PClQbWs= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.9 h1:aD7AGQhvPuAxlSUfo0CWU7s6FpkbyykMhGYMvlqTjVs= -github.com/aws/aws-sdk-go-v2/service/sso v1.20.9/go.mod h1:c1qtZUWtygI6ZdvKppzCSXsDOq5I4luJPZ0Ud3juFCA= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= +github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.5 h1:hvgJmR5q+yIlYrzQPL/8I1kM+FsqycTmMe4XMoQ+RP0= github.com/aws/aws-sdk-go-v2/service/ssoadmin v1.25.5/go.mod h1:GZij+X8ngo9syeLTjVVfJKVDe+8qIB5D5TDTH0L8gEM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3 h1:Pav5q3cA260Zqez42T9UhIlsd9QeypszRPwC9LdSSsQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.3/go.mod h1:9lmoVDVLz/yUZwLaQ676TK02fhCu4+PgRSmMaKR1ozk= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.10 h1:69tpbPED7jKPyzMcrwSvhWcJ9bPnZsZs18NT40JwM0g= -github.com/aws/aws-sdk-go-v2/service/sts v1.28.10/go.mod h1:0Aqn1MnEuitqfsCNyKsdKLhDUOr4txD/g19EfiUqgws= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= github.com/aws/aws-sdk-go-v2/service/support v1.21.4 h1:LGPzkSN77fiJKxfQF5AGT1gbKMmdtESl1ij+JpSDED0= github.com/aws/aws-sdk-go-v2/service/support v1.21.4/go.mod h1:3aB5W1UW7c5z86tENabIcgkWNF58VE8FqU6F329xfAs= github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.9 h1:KonoyRc5h7yli15/p0vpoKBJNuF2k9Ee42leZshX/ME= @@ -493,14 +944,16 @@ github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.29.4 h1:OuFs453KXWTLBkem github.com/aws/aws-sdk-go-v2/service/wellarchitected v1.29.4/go.mod h1:MRT/P9Cwn+7xCCVpD1sTvUESiWMAc9hA+FooRsW5fe8= github.com/aws/aws-sdk-go-v2/service/workspaces v1.38.4 h1:SvHYikdxmnyptMebU3zFfXbfU96SHzdUX+KXqa6pjYE= github.com/aws/aws-sdk-go-v2/service/workspaces v1.38.4/go.mod h1:1XK49PATLHBd7mpKqO91GqRuV7bEsmyQ8Lslvn3fFj4= -github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= -github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk= +github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/btubbs/datetime v0.1.1 h1:KuV+F9tyq/hEnezmKZNGk8dzqMVsId6EpFVrQCfA3To= github.com/btubbs/datetime v0.1.1/go.mod h1:n2BZ/2ltnRzNiz27aE3wUb2onNttQdC+WFxAoks5jJM= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= @@ -508,9 +961,12 @@ github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= @@ -522,11 +978,16 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ= github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -537,6 +998,8 @@ github.com/dgraph-io/ristretto v0.2.0 h1:XAfl+7cmoUDWW/2Lx8TGZQjjxIQ2Ley9DSf52dr github.com/dgraph-io/ristretto v0.2.0/go.mod h1:8uBHCU/PBV4Ag0CJrP47b9Ofby5dqWNh4FicAdoqFNU= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eko/gocache/lib/v4 v4.1.6 h1:5WWIGISKhE7mfkyF+SJyWwqa4Dp2mkdX8QsZpnENqJI= @@ -554,13 +1017,20 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= @@ -569,6 +1039,11 @@ github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlL github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -576,6 +1051,8 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= @@ -585,6 +1062,8 @@ github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= @@ -596,10 +1075,14 @@ github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/gocarina/gocsv v0.0.0-20201208093247-67c824bc04d4 h1:Q7s2AN3DhFJKOnzO0uTKLhJTfXTEcXcvw5ylf2BHJw4= github.com/gocarina/gocsv v0.0.0-20201208093247-67c824bc04d4/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.11.3 h1:B3W9IdWbvrUu2OYQGwvU1nZtvMQJPBKgBUuweJjLj6I= github.com/goccy/go-yaml v1.11.3/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -632,11 +1115,14 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -671,6 +1157,7 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -686,6 +1173,8 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -697,16 +1186,21 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99 github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA= github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 h1:/c3QmbOGMGTOumP2iT/rCwB7b0QDGLKzqOmktBjT+Is= github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-getter v1.7.5 h1:dT58k9hQ/vbxNMwoI5+xFYAJuv6152UNvdHokfI5wE4= -github.com/hashicorp/go-getter v1.7.5/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-getter v1.7.9 h1:G9gcjrDixz7glqJ+ll5IWvggSBR+R0B54DSRt4qfdC4= +github.com/hashicorp/go-getter v1.7.9/go.mod h1:dyFCmT1AQkDfOIt9NH8pw9XBDqNrIKJT5ylbpi7zPNE= github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= @@ -722,6 +1216,7 @@ github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdx github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -741,14 +1236,23 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -757,12 +1261,14 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -772,9 +1278,12 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= @@ -796,10 +1305,17 @@ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/pganalyze/pg_query_go/v6 v6.1.0 h1:jG5ZLhcVgL1FAw4C/0VNQaVmX1SUJx71wBGdtTtBvls= github.com/pganalyze/pg_query_go/v6 v6.1.0/go.mod h1:nvTHIuoud6e1SfrUaFwHqT0i4b5Nr+1rPWVds3B5+50= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -829,20 +1345,28 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529 h1:18kd+8ZUlt/ARXhljq+14TwAoKa61q6dX8jtwOf6DH8= github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= github.com/sethvargo/go-retry v0.2.4 h1:T+jHEQy/zKJf5s95UkguisicE0zuF9y7+/vgz08Ocec= github.com/sethvargo/go-retry v0.2.4/go.mod h1:1afjQuvh7s4gflMObvjLPaWgluLLyhA1wmVZ6KLpICw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/stevenle/topsort v0.2.0 h1:LLWgtp34HPX6/RBDRS0kElVxGOTzGBLI1lSAa5Lb46k= github.com/stevenle/topsort v0.2.0/go.mod h1:ck2WG2/ZrOr6dLApQ/5Xrqy5wv3T0qhKYWE7r9tkibc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -859,26 +1383,31 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tkrajina/go-reflector v0.5.6 h1:hKQ0gyocG7vgMD2M3dRlYN6WBBOmdoOzJ6njQSepKdE= github.com/tkrajina/go-reflector v0.5.6/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= github.com/turbot/go-kit v1.1.0 h1:2gW+MFDJD+mN41GcvhAajTrwR8HgN9KKJ8HnYwPGTV0= github.com/turbot/go-kit v1.1.0/go.mod h1:1xmRuQ0cn/10QUMNLNOAFIqN8P6Rz5s3VLT8mkN3nF8= -github.com/turbot/steampipe-plugin-sdk/v5 v5.11.5 h1:UajvoicpQDIAJdFM3A5Fn0UCVzt/V0TdszU+gHE+xBo= -github.com/turbot/steampipe-plugin-sdk/v5 v5.11.5/go.mod h1:nkFtL7PKNzKEJ7L+q88CL/b5mM059oegCoYinMvxfJI= -github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8= +github.com/turbot/steampipe-plugin-sdk/v5 v5.13.1 h1:XiZ3Sh25JhSJXOaw/j8N3ykSTFuxUNO7kKmnnJNr0Fk= +github.com/turbot/steampipe-plugin-sdk/v5 v5.13.1/go.mod h1:5mZnBnYCi3FOsbX54QvTAw06GOyLe2EO5hOEugiiKvk= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY= +github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -909,6 +1438,8 @@ go.opentelemetry.io/otel/sdk/metric v1.26.0/go.mod h1:ClMFFknnThJCksebJwz7KIyEDH go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -917,25 +1448,48 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -959,7 +1513,15 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -994,12 +1556,15 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1010,10 +1575,23 @@ golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1037,10 +1615,14 @@ golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7Lm golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= +golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1054,9 +1636,15 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1097,11 +1685,14 @@ golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1110,9 +1701,12 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1131,13 +1725,36 @@ golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1147,16 +1764,31 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1169,6 +1801,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1197,16 +1830,24 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1219,6 +1860,14 @@ golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNq golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1266,7 +1915,16 @@ google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaE google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= google.golang.org/api v0.171.0 h1:w174hnBPqut76FzW5Qaupt7zY8Kql6fiVjgys4f58sU= google.golang.org/api v0.171.0/go.mod h1:Hnq5AHm4OTMt2BUVjael2CWZFD6vksJdWCWiUAmjC9o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -1311,7 +1969,9 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1344,6 +2004,7 @@ google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2 google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= @@ -1376,7 +2037,35 @@ google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53B google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= -google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= @@ -1409,6 +2098,7 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -1418,6 +2108,11 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= @@ -1436,7 +2131,10 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -1466,6 +2164,42 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/internal/aws_endpoint_generator/embed_endpoint.go b/internal/aws_endpoint_generator/embed_endpoint.go index edc3c251e..f9c3a9cbb 100644 --- a/internal/aws_endpoint_generator/embed_endpoint.go +++ b/internal/aws_endpoint_generator/embed_endpoint.go @@ -16,4 +16,4 @@ func GetEmbedEndpointJSONfileContent() ([]byte, error) { } return jsonData, nil -} \ No newline at end of file +} diff --git a/internal/aws_endpoint_generator/endpoints.json b/internal/aws_endpoint_generator/endpoints.json index 02c541e8a..fbcc569a8 100644 --- a/internal/aws_endpoint_generator/endpoints.json +++ b/internal/aws_endpoint_generator/endpoints.json @@ -123,39 +123,156 @@ "services" : { "access-analyzer" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ap-southeast-5" : { }, - "ap-southeast-7" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "access-analyzer.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "access-analyzer.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "access-analyzer-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "access-analyzer.ca-central-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "ca-west-1" : { "variants" : [ { "hostname" : "access-analyzer-fips.ca-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer-fips.ca-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "access-analyzer.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-west-3.api.aws", + "tags" : [ "dualstack" ] } ] }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -198,33 +315,82 @@ "deprecated" : true, "hostname" : "access-analyzer-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "mx-central-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "access-analyzer.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "access-analyzer.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "access-analyzer.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "access-analyzer.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "access-analyzer.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "access-analyzer-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "access-analyzer.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "access-analyzer-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "access-analyzer.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "access-analyzer-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "access-analyzer.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "access-analyzer-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "access-analyzer.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -462,7 +628,12 @@ }, "agreement-marketplace" : { "endpoints" : { - "us-east-1" : { } + "us-east-1" : { + "variants" : [ { + "hostname" : "agreement-marketplace.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "airflow" : { @@ -597,17 +768,58 @@ "protocols" : [ "https" ] }, "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-south-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "detective.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "detective.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "detective.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "detective.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "detective.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "detective.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "detective.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "api.detective-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.ca-central-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "ca-central-1-fips" : { @@ -617,19 +829,70 @@ "deprecated" : true, "hostname" : "api.detective-fips.ca-central-1.amazonaws.com" }, - "eu-central-1" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "il-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "detective.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "detective.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "detective.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "detective.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "detective.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "detective.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "detective.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "detective.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "detective.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "api.detective-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-1-fips" : { @@ -643,6 +906,12 @@ "variants" : [ { "hostname" : "api.detective-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2-fips" : { @@ -656,6 +925,12 @@ "variants" : [ { "hostname" : "api.detective-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1-fips" : { @@ -669,6 +944,12 @@ "variants" : [ { "hostname" : "api.detective-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2-fips" : { @@ -1344,8 +1625,33 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, + "ap-southeast-7" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "api-fips.sagemaker.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "ca-central-1-fips" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "api-fips.sagemaker.ca-central-1.amazonaws.com" + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "api-fips.sagemaker.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "ca-west-1-fips" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "api-fips.sagemaker.ca-west-1.amazonaws.com" + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -1357,6 +1663,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -1913,35 +2220,258 @@ }, "applicationinsights" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "af-south-1" : { + "variants" : [ { + "hostname" : "applicationinsights.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "applicationinsights.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.ca-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "applicationinsights.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "applicationinsights-fips.ca-central-1.amazonaws.com" + }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "applicationinsights-fips.ca-west-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "applicationinsights-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "applicationinsights-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "applicationinsights-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "applicationinsights-fips.us-west-2.amazonaws.com" + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "applicationinsights.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "applicationinsights.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "applicationinsights.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "applicationinsights.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.us-east-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.us-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.us-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "appmesh" : { @@ -2231,6 +2761,7 @@ "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "eu-west-3" : { }, "fips" : { "credentialScope" : { "region" : "us-west-2" @@ -2270,34 +2801,174 @@ }, "appsync" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ca-central-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "af-south-1" : { + "variants" : [ { + "hostname" : "appsync.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "appsync.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "appsync.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "appsync.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "appsync.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "appsync.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "appsync.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "appsync.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "appsync.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "appsync.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "appsync.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "appsync.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "appsync.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "appsync.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "appsync.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "appsync.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "appsync.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "appsync.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "appsync.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "appsync.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "appsync.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "appsync.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "appsync.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "appsync.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "appsync.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "appsync.us-east-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "appsync.us-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "appsync.us-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "apptest" : { @@ -2345,6 +3016,7 @@ "tags" : [ "dualstack" ] } ] }, + "ca-central-1" : { }, "eu-central-1" : { "variants" : [ { "tags" : [ "dualstack" ] @@ -2378,17 +3050,38 @@ "us-east-1" : { "variants" : [ { "tags" : [ "dualstack" ] + }, { + "tags" : [ "dualstack", "fips" ] + }, { + "tags" : [ "fips" ] } ] }, + "us-east-1-fips" : { + "deprecated" : true + }, "us-east-2" : { "variants" : [ { "tags" : [ "dualstack" ] + }, { + "tags" : [ "dualstack", "fips" ] + }, { + "tags" : [ "fips" ] } ] }, + "us-east-2-fips" : { + "deprecated" : true + }, "us-west-2" : { "variants" : [ { "tags" : [ "dualstack" ] + }, { + "tags" : [ "dualstack", "fips" ] + }, { + "tags" : [ "fips" ] } ] + }, + "us-west-2-fips" : { + "deprecated" : true } } }, @@ -2502,6 +3195,7 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "athena-fips.ca-central-1.amazonaws.com", @@ -2634,6 +3328,7 @@ "tags" : [ "dualstack" ] } ] }, + "mx-central-1" : { }, "sa-east-1" : { "variants" : [ { "hostname" : "athena.sa-east-1.api.aws", @@ -3120,6 +3815,18 @@ }, "hostname" : "bedrock.eu-north-1.amazonaws.com" }, + "bedrock-eu-south-1" : { + "credentialScope" : { + "region" : "eu-south-1" + }, + "hostname" : "bedrock.eu-south-1.amazonaws.com" + }, + "bedrock-eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "hostname" : "bedrock.eu-south-2.amazonaws.com" + }, "bedrock-eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -3228,6 +3935,18 @@ }, "hostname" : "bedrock-runtime.eu-north-1.amazonaws.com" }, + "bedrock-runtime-eu-south-1" : { + "credentialScope" : { + "region" : "eu-south-1" + }, + "hostname" : "bedrock-runtime.eu-south-1.amazonaws.com" + }, + "bedrock-runtime-eu-south-2" : { + "credentialScope" : { + "region" : "eu-south-2" + }, + "hostname" : "bedrock-runtime.eu-south-2.amazonaws.com" + }, "bedrock-runtime-eu-west-1" : { "credentialScope" : { "region" : "eu-west-1" @@ -3322,6 +4041,8 @@ "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, + "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -3498,14 +4219,54 @@ }, "cleanrooms" : { "endpoints" : { - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "eu-central-1" : { }, - "eu-north-1" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "cleanrooms.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "cleanrooms.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "cleanrooms.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "cleanrooms.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "cleanrooms.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "cleanrooms.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "cleanrooms.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "cleanrooms.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -3531,18 +4292,36 @@ "variants" : [ { "hostname" : "cleanrooms-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cleanrooms-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "cleanrooms.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "cleanrooms-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cleanrooms-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "cleanrooms.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "cleanrooms-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "cleanrooms-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "cleanrooms.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -4718,6 +5497,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "codepipeline-fips.ca-central-1.amazonaws.com", @@ -4908,6 +5688,12 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "cognito-identity.ap-southeast-5.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "cognito-identity.ca-central-1.amazonaws.com", @@ -5138,6 +5924,12 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "cognito-idp.ap-southeast-5.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "cognito-idp.ca-central-1.amazonaws.com", @@ -5320,20 +6112,66 @@ "protocols" : [ "https" ] }, "endpoints" : { - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-south-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "comprehend.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "comprehend.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "comprehend.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "comprehend.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "comprehend.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "comprehend-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "comprehend-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "comprehend.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "comprehend.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "comprehend.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "comprehend.eu-west-2.api.aws", + "tags" : [ "dualstack" ] } ] }, - "eu-central-1" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -5366,18 +6204,36 @@ "variants" : [ { "hostname" : "comprehend-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "comprehend-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "comprehend.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "comprehend-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "comprehend-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "comprehend.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "comprehend-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "comprehend-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "comprehend.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -5810,6 +6666,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "controltower-fips.ca-central-1.amazonaws.com", @@ -5847,6 +6704,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -6577,6 +7435,9 @@ "ap-northeast-3" : { "hostname" : "datazone.ap-northeast-3.api.aws" }, + "ap-south-1" : { + "hostname" : "datazone.ap-south-1.api.aws" + }, "ap-south-2" : { "hostname" : "datazone.ap-south-2.api.aws" }, @@ -6635,6 +7496,9 @@ "me-south-1" : { "hostname" : "datazone.me-south-1.api.aws" }, + "mx-central-1" : { + "hostname" : "datazone.mx-central-1.api.aws" + }, "sa-east-1" : { "hostname" : "datazone.sa-east-1.api.aws" }, @@ -7387,6 +8251,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "ds-fips.ca-central-1.amazonaws.com", @@ -7452,6 +8317,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -9315,6 +10181,7 @@ "tags" : [ "fips" ] } ] }, + "ca-west-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-south-1" : { }, @@ -9393,7 +10260,12 @@ } }, "endpoints" : { - "us-east-1" : { } + "us-east-1" : { + "variants" : [ { + "hostname" : "entitlement-marketplace.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "es" : { @@ -9641,29 +10513,144 @@ }, "events" : { "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ap-southeast-5" : { }, - "ap-southeast-7" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "events.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "events.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "events.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "events.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "events.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "events.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "events.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "events.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "events.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "events.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "events.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "events.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "events.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "events.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "events.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "events.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "events.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "events.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "events.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "events.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "events.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "events.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "events.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -9692,33 +10679,82 @@ "deprecated" : true, "hostname" : "events-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "mx-central-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "events.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "events.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "events.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "events.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "events.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "events-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "events-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "events.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "events-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "events-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "events.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "events-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "events-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "events.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "events-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "events-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "events.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -10072,6 +11108,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "fms-fips.ca-central-1.amazonaws.com", @@ -10265,6 +11302,7 @@ "tags" : [ "fips" ] } ] }, + "mx-central-1" : { }, "sa-east-1" : { "variants" : [ { "hostname" : "fms-fips.sa-east-1.amazonaws.com", @@ -10421,6 +11459,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "fsx-fips.ca-central-1.amazonaws.com", @@ -10528,6 +11567,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "prod-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -10640,6 +11680,114 @@ "us-west-2" : { } } }, + "gameliftstreams" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "af-south-1" : { + "hostname" : "gameliftstreams.af-south-1.api.aws" + }, + "ap-east-1" : { + "hostname" : "gameliftstreams.ap-east-1.api.aws" + }, + "ap-northeast-1" : { + "hostname" : "gameliftstreams.ap-northeast-1.api.aws" + }, + "ap-northeast-2" : { + "hostname" : "gameliftstreams.ap-northeast-2.api.aws" + }, + "ap-northeast-3" : { + "hostname" : "gameliftstreams.ap-northeast-3.api.aws" + }, + "ap-south-1" : { + "hostname" : "gameliftstreams.ap-south-1.api.aws" + }, + "ap-south-2" : { + "hostname" : "gameliftstreams.ap-south-2.api.aws" + }, + "ap-southeast-1" : { + "hostname" : "gameliftstreams.ap-southeast-1.api.aws" + }, + "ap-southeast-2" : { + "hostname" : "gameliftstreams.ap-southeast-2.api.aws" + }, + "ap-southeast-3" : { + "hostname" : "gameliftstreams.ap-southeast-3.api.aws" + }, + "ap-southeast-4" : { + "hostname" : "gameliftstreams.ap-southeast-4.api.aws" + }, + "ap-southeast-5" : { + "hostname" : "gameliftstreams.ap-southeast-5.api.aws" + }, + "ap-southeast-7" : { + "hostname" : "gameliftstreams.ap-southeast-7.api.aws" + }, + "ca-central-1" : { + "hostname" : "gameliftstreams.ca-central-1.api.aws" + }, + "ca-west-1" : { + "hostname" : "gameliftstreams.ca-west-1.api.aws" + }, + "eu-central-1" : { + "hostname" : "gameliftstreams.eu-central-1.api.aws" + }, + "eu-central-2" : { + "hostname" : "gameliftstreams.eu-central-2.api.aws" + }, + "eu-north-1" : { + "hostname" : "gameliftstreams.eu-north-1.api.aws" + }, + "eu-south-1" : { + "hostname" : "gameliftstreams.eu-south-1.api.aws" + }, + "eu-south-2" : { + "hostname" : "gameliftstreams.eu-south-2.api.aws" + }, + "eu-west-1" : { + "hostname" : "gameliftstreams.eu-west-1.api.aws" + }, + "eu-west-2" : { + "hostname" : "gameliftstreams.eu-west-2.api.aws" + }, + "eu-west-3" : { + "hostname" : "gameliftstreams.eu-west-3.api.aws" + }, + "il-central-1" : { + "hostname" : "gameliftstreams.il-central-1.api.aws" + }, + "me-central-1" : { + "hostname" : "gameliftstreams.me-central-1.api.aws" + }, + "me-south-1" : { + "hostname" : "gameliftstreams.me-south-1.api.aws" + }, + "mx-central-1" : { + "hostname" : "gameliftstreams.mx-central-1.api.aws" + }, + "sa-east-1" : { + "hostname" : "gameliftstreams.sa-east-1.api.aws" + }, + "us-east-1" : { + "hostname" : "gameliftstreams.us-east-1.api.aws" + }, + "us-east-2" : { + "hostname" : "gameliftstreams.us-east-2.api.aws" + }, + "us-west-1" : { + "hostname" : "gameliftstreams.us-west-1.api.aws" + }, + "us-west-2" : { + "hostname" : "gameliftstreams.us-west-2.api.aws" + } + } + }, "geo" : { "endpoints" : { "ap-northeast-1" : { }, @@ -10832,6 +11980,12 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "glue.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "glue.ca-central-1.api.aws", @@ -10938,6 +12092,12 @@ "tags" : [ "dualstack" ] } ] }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "glue.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "sa-east-1" : { "variants" : [ { "hostname" : "glue.sa-east-1.api.aws", @@ -11246,6 +12406,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "ca-west-1" : { "variants" : [ { @@ -11271,6 +12432,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -11383,6 +12545,9 @@ "variants" : [ { "hostname" : "iam-fips.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "iam.global.api.aws", + "tags" : [ "dualstack" ] } ] }, "aws-global-fips" : { @@ -13016,6 +14181,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "kinesisanalytics-fips.ca-central-1.amazonaws.com", @@ -13081,6 +14247,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -13629,6 +14796,12 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "lakeformation.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "lakeformation.ca-central-1.api.aws", @@ -13735,6 +14908,12 @@ "tags" : [ "dualstack" ] } ] }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "lakeformation.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "sa-east-1" : { "variants" : [ { "hostname" : "lakeformation.sa-east-1.api.aws", @@ -14041,6 +15220,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -14082,6 +15262,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -14123,6 +15304,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -14164,6 +15346,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -14204,6 +15387,8 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -14245,6 +15430,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -14358,18 +15544,8 @@ "tags" : [ "dualstack" ] } ] }, - "ap-southeast-5" : { - "variants" : [ { - "hostname" : "logs.ap-southeast-5.api.aws", - "tags" : [ "dualstack" ] - } ] - }, - "ap-southeast-7" : { - "variants" : [ { - "hostname" : "logs.ap-southeast-7.api.aws", - "tags" : [ "dualstack" ] - } ] - }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "logs-fips.ca-central-1.amazonaws.com", @@ -14496,12 +15672,7 @@ "tags" : [ "dualstack" ] } ] }, - "mx-central-1" : { - "variants" : [ { - "hostname" : "logs.mx-central-1.api.aws", - "tags" : [ "dualstack" ] - } ] - }, + "mx-central-1" : { }, "sa-east-1" : { "variants" : [ { "hostname" : "logs.sa-east-1.api.aws", @@ -15219,18 +16390,78 @@ "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-4" : { }, - "ca-central-1" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "mediapackagev2-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "mediapackagev2-fips.ca-central-1.amazonaws.com" + }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "deprecated" : true, + "hostname" : "mediapackagev2-fips.us-east-1.amazonaws.com" + }, + "fips-us-east-2" : { + "credentialScope" : { + "region" : "us-east-2" + }, + "deprecated" : true, + "hostname" : "mediapackagev2-fips.us-east-2.amazonaws.com" + }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "mediapackagev2-fips.us-west-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "deprecated" : true, + "hostname" : "mediapackagev2-fips.us-west-2.amazonaws.com" + }, "me-central-1" : { }, "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "us-east-1" : { + "variants" : [ { + "hostname" : "mediapackagev2-fips.us-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "mediapackagev2-fips.us-east-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "mediapackagev2-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "mediapackagev2-fips.us-west-2.amazonaws.com", + "tags" : [ "fips" ] + } ] + } } }, "mediastore" : { @@ -15352,34 +16583,174 @@ } }, "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ca-central-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, - "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, - "us-west-2" : { } + "af-south-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "metering-marketplace.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "metering-marketplace.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.us-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-east-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.us-east-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.us-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-west-2" : { + "variants" : [ { + "hostname" : "metering-marketplace.us-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "metrics.sagemaker" : { @@ -15769,6 +17140,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -15810,6 +17182,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -15972,6 +17345,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "network-firewall-fips.ca-central-1.amazonaws.com", @@ -16025,6 +17399,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -16062,6 +17437,12 @@ "variants" : [ { "hostname" : "networkmanager-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "networkmanager-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "networkmanager.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "fips-aws-global" : { @@ -16299,6 +17680,12 @@ }, "hostname" : "oidc.ap-southeast-4.amazonaws.com" }, + "ap-southeast-5" : { + "credentialScope" : { + "region" : "ap-southeast-5" + }, + "hostname" : "oidc.ap-southeast-5.amazonaws.com" + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -16479,20 +17866,10 @@ }, "opsworks" : { "endpoints" : { - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-south-1" : { }, "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ca-central-1" : { }, "eu-central-1" : { }, "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "sa-east-1" : { }, "us-east-1" : { }, - "us-east-2" : { }, - "us-west-1" : { }, "us-west-2" : { } } }, @@ -16536,6 +17913,7 @@ "ca-central-1" : { }, "eu-central-1" : { }, "eu-north-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "sa-east-1" : { }, @@ -17158,8 +18536,20 @@ "tags" : [ "dualstack" ] } ] }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "polly.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { + "hostname" : "polly-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "polly-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "polly.ca-central-1.api.aws", "tags" : [ "dualstack" ] } ] @@ -17200,6 +18590,13 @@ "tags" : [ "dualstack" ] } ] }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "polly-fips.ca-central-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -17358,6 +18755,12 @@ }, "hostname" : "portal.sso.ap-southeast-4.amazonaws.com" }, + "ap-southeast-5" : { + "credentialScope" : { + "region" : "ap-southeast-5" + }, + "hostname" : "portal.sso.ap-southeast-5.amazonaws.com" + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -17711,6 +19114,18 @@ } } }, + "query.timestream" : { + "endpoints" : { + "ap-northeast-1" : { }, + "ap-south-1" : { }, + "ap-southeast-2" : { }, + "eu-central-1" : { }, + "eu-west-1" : { }, + "us-east-1" : { }, + "us-east-2" : { }, + "us-west-2" : { } + } + }, "quicksight" : { "endpoints" : { "af-south-1" : { }, @@ -17725,6 +19140,7 @@ "eu-central-2" : { }, "eu-north-1" : { }, "eu-south-1" : { }, + "eu-south-2" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -18631,9 +20047,11 @@ "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-south-1" : { }, + "ap-south-2" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ap-southeast-3" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "redshift-serverless-fips.ca-central-1.amazonaws.com", @@ -18684,6 +20102,7 @@ }, "il-central-1" : { }, "me-central-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -18713,15 +20132,46 @@ }, "rekognition" : { "endpoints" : { - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-south-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "rekognition.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "rekognition.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "rekognition.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "rekognition.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "rekognition.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "rekognition-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "rekognition-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "rekognition.ca-central-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "ca-central-1-fips" : { @@ -18731,11 +20181,36 @@ "deprecated" : true, "hostname" : "rekognition-fips.ca-central-1.amazonaws.com" }, - "eu-central-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "il-central-1" : { }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "rekognition.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "rekognition.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "rekognition.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "rekognition.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "rekognition.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "rekognition-fips.ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -18825,6 +20300,12 @@ "variants" : [ { "hostname" : "rekognition-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "rekognition-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "rekognition.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-1-fips" : { @@ -18838,6 +20319,12 @@ "variants" : [ { "hostname" : "rekognition-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "rekognition-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "rekognition.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2-fips" : { @@ -18851,6 +20338,12 @@ "variants" : [ { "hostname" : "rekognition-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "rekognition-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "rekognition.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1-fips" : { @@ -18864,6 +20357,12 @@ "variants" : [ { "hostname" : "rekognition-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "rekognition-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "rekognition.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2-fips" : { @@ -19012,6 +20511,8 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "resource-explorer-2-fips.ca-central-1.amazonaws.com", @@ -19083,6 +20584,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -19409,12 +20911,18 @@ }, "ca-central-1" : { "variants" : [ { + "hostname" : "route53profiles-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.ca-central-1.api.aws", "tags" : [ "dualstack" ] } ] }, "ca-west-1" : { "variants" : [ { + "hostname" : "route53profiles-fips.ca-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.ca-west-1.api.aws", "tags" : [ "dualstack" ] } ] @@ -19493,24 +21001,36 @@ }, "us-east-1" : { "variants" : [ { + "hostname" : "route53profiles-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.us-east-1.api.aws", "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { + "hostname" : "route53profiles-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.us-east-2.api.aws", "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { + "hostname" : "route53profiles-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.us-west-1.api.aws", "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { + "hostname" : "route53profiles-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.us-west-2.api.aws", "tags" : [ "dualstack" ] } ] @@ -19522,23 +21042,94 @@ "protocols" : [ "https" ] }, "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ap-southeast-5" : { }, - "ap-southeast-7" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "route53resolver.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "route53resolver.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "route53resolver.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "route53resolver.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "route53resolver.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "route53resolver.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "route53resolver.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "route53resolver.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "route53resolver.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "route53resolver.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "route53resolver.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "route53resolver.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "route53resolver.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "route53resolver-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "route53resolver.ca-central-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "ca-central-1-fips" : { @@ -19552,6 +21143,12 @@ "variants" : [ { "hostname" : "route53resolver-fips.ca-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver-fips.ca-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "route53resolver.ca-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "ca-west-1-fips" : { @@ -19561,23 +21158,94 @@ "deprecated" : true, "hostname" : "route53resolver-fips.ca-west-1.amazonaws.com" }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "mx-central-1" : { }, - "sa-east-1" : { }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "route53resolver.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "route53resolver.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "route53resolver.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "route53resolver.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "route53resolver.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "route53resolver.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "route53resolver.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "route53resolver.eu-west-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "il-central-1" : { + "variants" : [ { + "hostname" : "route53resolver.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "route53resolver.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "route53resolver.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "route53resolver.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "route53resolver.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "route53resolver-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "route53resolver.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-1-fips" : { @@ -19591,6 +21259,12 @@ "variants" : [ { "hostname" : "route53resolver-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "route53resolver.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2-fips" : { @@ -19604,6 +21278,12 @@ "variants" : [ { "hostname" : "route53resolver-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "route53resolver.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1-fips" : { @@ -19617,6 +21297,12 @@ "variants" : [ { "hostname" : "route53resolver-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "route53resolver.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2-fips" : { @@ -19631,6 +21317,7 @@ "rum" : { "endpoints" : { "af-south-1" : { }, + "ap-east-1" : { }, "ap-northeast-1" : { }, "ap-northeast-2" : { }, "ap-northeast-3" : { }, @@ -19649,6 +21336,7 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, "sa-east-1" : { }, @@ -19737,6 +21425,8 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -19750,6 +21440,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -21282,24 +22973,36 @@ "variants" : [ { "hostname" : "securitylake-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "securitylake-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "securitylake-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "securitylake-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "securitylake-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "securitylake-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "securitylake-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "securitylake-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] } ] } } @@ -22231,31 +23934,138 @@ }, "sms-voice" : { "endpoints" : { - "af-south-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "sms-voice.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "sms-voice.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "sms-voice.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "sms-voice.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "sms-voice.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "sms-voice.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "sms-voice.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "sms-voice.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "sms-voice.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "sms-voice.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "sms-voice-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "sms-voice-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.ca-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "sms-voice.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "sms-voice.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "sms-voice.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "sms-voice.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "sms-voice.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "sms-voice.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "sms-voice.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "sms-voice.eu-west-3.api.aws", + "tags" : [ "dualstack" ] } ] }, - "ca-west-1" : { }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -22263,6 +24073,13 @@ "deprecated" : true, "hostname" : "sms-voice-fips.ca-central-1.amazonaws.com" }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "sms-voice-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -22291,32 +24108,77 @@ "deprecated" : true, "hostname" : "sms-voice-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "sms-voice.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "sms-voice.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "sms-voice.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "mx-central-1" : { }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "sms-voice.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "sms-voice-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "sms-voice-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "sms-voice-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "sms-voice-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -22767,34 +24629,147 @@ "protocols" : [ "http", "https" ] }, "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ap-southeast-5" : { }, - "ap-southeast-7" : { }, - "ca-central-1" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "sns.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "sns.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "sns.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "sns.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "sns.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "sns.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "sns.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "sns.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "sns.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "sns.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "sns.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "sns.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "sns.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "sns.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-west-1" : { "variants" : [ { "hostname" : "sns-fips.ca-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sns.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "sns.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "sns.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "sns.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "sns.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "sns.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "sns.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "sns.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "sns.eu-west-3.api.aws", + "tags" : [ "dualstack" ] } ] }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, "fips-ca-west-1" : { "credentialScope" : { "region" : "ca-west-1" @@ -22830,33 +24805,70 @@ "deprecated" : true, "hostname" : "sns-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "mx-central-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "sns.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "sns.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "sns.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "sns.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "sns.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "sns-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sns.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "sns-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sns.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "sns-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sns.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "sns-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sns.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -22867,39 +24879,150 @@ "sslCommonName" : "{region}.queue.{dnsSuffix}" }, "endpoints" : { - "af-south-1" : { }, - "ap-east-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-northeast-3" : { }, - "ap-south-1" : { }, - "ap-south-2" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, - "ap-southeast-3" : { }, - "ap-southeast-4" : { }, - "ap-southeast-5" : { }, - "ap-southeast-7" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "sqs.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-east-1" : { + "variants" : [ { + "hostname" : "sqs.ap-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "sqs.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "sqs.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-3" : { + "variants" : [ { + "hostname" : "sqs.ap-northeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "sqs.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-2" : { + "variants" : [ { + "hostname" : "sqs.ap-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "sqs.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "sqs.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-3" : { + "variants" : [ { + "hostname" : "sqs.ap-southeast-3.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-4" : { + "variants" : [ { + "hostname" : "sqs.ap-southeast-4.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-5" : { + "variants" : [ { + "hostname" : "sqs.ap-southeast-5.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-7" : { + "variants" : [ { + "hostname" : "sqs.ap-southeast-7.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "sqs-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sqs.ca-central-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "ca-west-1" : { "variants" : [ { "hostname" : "sqs-fips.ca-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sqs.ca-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "sqs.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-2" : { + "variants" : [ { + "hostname" : "sqs.eu-central-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "sqs.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-1" : { + "variants" : [ { + "hostname" : "sqs.eu-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-south-2" : { + "variants" : [ { + "hostname" : "sqs.eu-south-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "sqs.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "sqs.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "sqs.eu-west-3.api.aws", + "tags" : [ "dualstack" ] } ] }, - "eu-central-1" : { }, - "eu-central-2" : { }, - "eu-north-1" : { }, - "eu-south-1" : { }, - "eu-south-2" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -22942,34 +25065,71 @@ "deprecated" : true, "hostname" : "sqs-fips.us-west-2.amazonaws.com" }, - "il-central-1" : { }, - "me-central-1" : { }, - "me-south-1" : { }, - "mx-central-1" : { }, - "sa-east-1" : { }, + "il-central-1" : { + "variants" : [ { + "hostname" : "sqs.il-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-central-1" : { + "variants" : [ { + "hostname" : "sqs.me-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "me-south-1" : { + "variants" : [ { + "hostname" : "sqs.me-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "mx-central-1" : { + "variants" : [ { + "hostname" : "sqs.mx-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "sqs.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "sslCommonName" : "queue.{dnsSuffix}", "variants" : [ { "hostname" : "sqs-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sqs.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "sqs-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sqs.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "sqs-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sqs.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "sqs-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sqs.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -23152,22 +25312,78 @@ }, "ssm-incidents" : { "endpoints" : { - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-south-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "ssm-incidents.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "ssm-incidents.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "ssm-incidents-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "ssm-incidents-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "ssm-incidents.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-north-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.eu-north-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "ssm-incidents.eu-west-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-3" : { + "variants" : [ { + "hostname" : "ssm-incidents.eu-west-3.api.aws", + "tags" : [ "dualstack" ] } ] }, - "eu-central-1" : { }, - "eu-north-1" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, - "eu-west-3" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -23203,29 +25419,58 @@ "deprecated" : true, "hostname" : "ssm-incidents-fips.us-west-2.amazonaws.com" }, - "sa-east-1" : { }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "ssm-incidents.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "ssm-incidents-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "ssm-incidents-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "ssm-incidents.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "ssm-incidents-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "ssm-incidents-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "ssm-incidents.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-1" : { "variants" : [ { "hostname" : "ssm-incidents-fips.us-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "ssm-incidents-fips.us-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "ssm-incidents.us-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "ssm-incidents-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "ssm-incidents-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "ssm-incidents.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -23560,6 +25805,7 @@ "ap-southeast-2" : { }, "ap-southeast-3" : { }, "ap-southeast-4" : { }, + "ap-southeast-5" : { }, "ca-central-1" : { }, "ca-west-1" : { }, "eu-central-1" : { }, @@ -23595,8 +25841,18 @@ "ap-southeast-4" : { }, "ap-southeast-5" : { }, "ap-southeast-7" : { }, - "ca-central-1" : { }, - "ca-west-1" : { }, + "ca-central-1" : { + "variants" : [ { + "hostname" : "states-fips.ca-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "ca-west-1" : { + "variants" : [ { + "hostname" : "states-fips.ca-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "eu-central-1" : { }, "eu-central-2" : { }, "eu-north-1" : { }, @@ -23605,6 +25861,20 @@ "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, + "fips-ca-central-1" : { + "credentialScope" : { + "region" : "ca-central-1" + }, + "deprecated" : true, + "hostname" : "states-fips.ca-central-1.amazonaws.com" + }, + "fips-ca-west-1" : { + "credentialScope" : { + "region" : "ca-west-1" + }, + "deprecated" : true, + "hostname" : "states-fips.ca-west-1.amazonaws.com" + }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -23678,6 +25948,7 @@ "ap-southeast-3" : { }, "ap-southeast-4" : { }, "ap-southeast-5" : { }, + "ap-southeast-7" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "storagegateway-fips.ca-central-1.amazonaws.com", @@ -24729,21 +27000,72 @@ }, "transcribestreaming" : { "endpoints" : { - "af-south-1" : { }, - "ap-northeast-1" : { }, - "ap-northeast-2" : { }, - "ap-south-1" : { }, - "ap-southeast-1" : { }, - "ap-southeast-2" : { }, + "af-south-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.af-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.ap-northeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-northeast-2" : { + "variants" : [ { + "hostname" : "transcribestreaming.ap-northeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-south-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.ap-south-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.ap-southeast-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "ap-southeast-2" : { + "variants" : [ { + "hostname" : "transcribestreaming.ap-southeast-2.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "ca-central-1" : { "variants" : [ { "hostname" : "transcribestreaming-fips.ca-central-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "transcribestreaming-fips.ca-central-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "transcribestreaming.ca-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-central-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.eu-central-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.eu-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "eu-west-2" : { + "variants" : [ { + "hostname" : "transcribestreaming.eu-west-2.api.aws", + "tags" : [ "dualstack" ] } ] }, - "eu-central-1" : { }, - "eu-west-1" : { }, - "eu-west-2" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -24772,23 +27094,46 @@ "deprecated" : true, "hostname" : "transcribestreaming-fips.us-west-2.amazonaws.com" }, - "sa-east-1" : { }, + "sa-east-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.sa-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, "us-east-1" : { "variants" : [ { "hostname" : "transcribestreaming-fips.us-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "transcribestreaming-fips.us-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "transcribestreaming.us-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-east-2" : { "variants" : [ { "hostname" : "transcribestreaming-fips.us-east-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "transcribestreaming-fips.us-east-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "transcribestreaming.us-east-2.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-west-2" : { "variants" : [ { "hostname" : "transcribestreaming-fips.us-west-2.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "transcribestreaming-fips.us-west-2.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "transcribestreaming.us-west-2.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -24872,6 +27217,7 @@ "il-central-1" : { }, "me-central-1" : { }, "me-south-1" : { }, + "mx-central-1" : { }, "sa-east-1" : { }, "us-east-1" : { "variants" : [ { @@ -25953,6 +28299,16 @@ "tags" : [ "fips" ] } ] }, + "ap-southeast-7" : { + "credentialScope" : { + "region" : "ap-southeast-7" + }, + "hostname" : "wafv2.ap-southeast-7.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.ap-southeast-7.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -26137,6 +28493,13 @@ "deprecated" : true, "hostname" : "wafv2-fips.ap-southeast-5.amazonaws.com" }, + "fips-ap-southeast-7" : { + "credentialScope" : { + "region" : "ap-southeast-7" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.ap-southeast-7.amazonaws.com" + }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -26228,6 +28591,13 @@ "deprecated" : true, "hostname" : "wafv2-fips.me-south-1.amazonaws.com" }, + "fips-mx-central-1" : { + "credentialScope" : { + "region" : "mx-central-1" + }, + "deprecated" : true, + "hostname" : "wafv2-fips.mx-central-1.amazonaws.com" + }, "fips-sa-east-1" : { "credentialScope" : { "region" : "sa-east-1" @@ -26293,6 +28663,16 @@ "tags" : [ "fips" ] } ] }, + "mx-central-1" : { + "credentialScope" : { + "region" : "mx-central-1" + }, + "hostname" : "wafv2.mx-central-1.amazonaws.com", + "variants" : [ { + "hostname" : "wafv2-fips.mx-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "sa-east-1" : { "credentialScope" : { "region" : "sa-east-1" @@ -26466,6 +28846,7 @@ "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "eu-west-3" : { }, "fips-us-east-1" : { "credentialScope" : { "region" : "us-east-1" @@ -26653,8 +29034,18 @@ "services" : { "access-analyzer" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "access-analyzer.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "access-analyzer.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "account" : { @@ -26790,8 +29181,18 @@ }, "applicationinsights" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "applicationinsights.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "applicationinsights.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "appmesh" : { @@ -26812,8 +29213,18 @@ }, "appsync" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "appsync.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "appsync.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "arc-zonal-shift" : { @@ -27279,7 +29690,11 @@ "region" : "cn-northwest-1" }, "hostname" : "entitlement-marketplace.cn-northwest-1.amazonaws.com.cn", - "protocols" : [ "https" ] + "protocols" : [ "https" ], + "variants" : [ { + "hostname" : "entitlement-marketplace.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] } } }, @@ -27301,8 +29716,18 @@ }, "events" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "events.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "events.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "firehose" : { @@ -27342,6 +29767,24 @@ "cn-northwest-1" : { } } }, + "gameliftstreams" : { + "defaults" : { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "variants" : [ { + "dnsSuffix" : "api.amazonwebservices.com.cn", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "cn-north-1" : { + "hostname" : "gameliftstreams.cn-north-1.api.amazonwebservices.com.cn" + }, + "cn-northwest-1" : { + "hostname" : "gameliftstreams.cn-northwest-1.api.amazonwebservices.com.cn" + } + } + }, "glacier" : { "defaults" : { "protocols" : [ "http", "https" ] @@ -27504,6 +29947,12 @@ "cn-northwest-1" : { } } }, + "kafkaconnect" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "kendra-ranking" : { "defaults" : { "dnsSuffix" : "api.amazonwebservices.com.cn", @@ -27591,8 +30040,18 @@ }, "logs" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "logs.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "logs.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "mediaconvert" : { @@ -27611,6 +30070,16 @@ "cn-northwest-1" : { } } }, + "metering.marketplace" : { + "defaults" : { + "credentialScope" : { + "service" : "aws-marketplace" + } + }, + "endpoints" : { + "cn-northwest-1" : { } + } + }, "metrics.sagemaker" : { "endpoints" : { "cn-north-1" : { }, @@ -27856,13 +30325,29 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-cn-global" }, + "route53profiles" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "route53resolver" : { "defaults" : { "protocols" : [ "https" ] }, "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "route53resolver.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "route53resolver.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "runtime.sagemaker" : { @@ -28076,8 +30561,18 @@ "protocols" : [ "http", "https" ] }, "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "sns.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "sns.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "sqs" : { @@ -28086,8 +30581,18 @@ "sslCommonName" : "{region}.queue.{dnsSuffix}" }, "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "sqs.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "sqs.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "ssm" : { @@ -28210,8 +30715,18 @@ }, "transcribestreaming" : { "endpoints" : { - "cn-north-1" : { }, - "cn-northwest-1" : { } + "cn-north-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.cn-north-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + }, + "cn-northwest-1" : { + "variants" : [ { + "hostname" : "transcribestreaming.cn-northwest-1.api.amazonwebservices.com.cn", + "tags" : [ "dualstack" ] + } ] + } } }, "transfer" : { @@ -28350,6 +30865,12 @@ "variants" : [ { "hostname" : "access-analyzer.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] + }, { + "hostname" : "access-analyzer.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-gov-east-1-fips" : { @@ -28367,6 +30888,12 @@ "variants" : [ { "hostname" : "access-analyzer.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "access-analyzer.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] + }, { + "hostname" : "access-analyzer.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-gov-west-1-fips" : { @@ -28452,6 +30979,12 @@ "variants" : [ { "hostname" : "api.detective-fips.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-east-1-fips" : { @@ -28465,6 +30998,12 @@ "variants" : [ { "hostname" : "api.detective-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "detective-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "detective.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1-fips" : { @@ -28574,7 +31113,19 @@ } ] }, "endpoints" : { - "us-gov-east-1" : { }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "api-fips.sagemaker.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-east-1-fips" : { + "credentialScope" : { + "region" : "us-gov-east-1" + }, + "deprecated" : true, + "hostname" : "api-fips.sagemaker.us-gov-east-1.amazonaws.com" + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "api-fips.sagemaker.us-gov-west-1.amazonaws.com", @@ -28765,17 +31316,43 @@ }, "applicationinsights" : { "endpoints" : { - "us-gov-east-1" : { + "fips-us-gov-east-1" : { "credentialScope" : { "region" : "us-gov-east-1" }, - "hostname" : "applicationinsights.us-gov-east-1.amazonaws.com" + "deprecated" : true, + "hostname" : "applicationinsights-fips.us-gov-east-1.amazonaws.com" }, - "us-gov-west-1" : { + "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, - "hostname" : "applicationinsights.us-gov-west-1.amazonaws.com" + "deprecated" : true, + "hostname" : "applicationinsights-fips.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "applicationinsights-fips.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + }, { + "hostname" : "applicationinsights-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "applicationinsights.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] } } }, @@ -29355,6 +31932,12 @@ "deprecated" : true, "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "cognito-identity.us-gov-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "cognito-identity-fips.us-gov-west-1.amazonaws.com", @@ -29378,6 +31961,12 @@ "deprecated" : true, "hostname" : "cognito-idp-fips.us-gov-west-1.amazonaws.com" }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "cognito-idp.us-gov-east-1.amazonaws.com", + "tags" : [ "dualstack" ] + } ] + }, "us-gov-west-1" : { "variants" : [ { "hostname" : "cognito-idp-fips.us-gov-west-1.amazonaws.com", @@ -29408,6 +31997,12 @@ "variants" : [ { "hostname" : "comprehend-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "comprehend-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "comprehend.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -29741,8 +32336,14 @@ "endpoints" : { "us-gov-east-1" : { "variants" : [ { + "hostname" : "dlm-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "dlm.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-east-1-fips" : { @@ -29754,8 +32355,14 @@ }, "us-gov-west-1" : { "variants" : [ { + "hostname" : "dlm-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "dlm.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "dlm.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1-fips" : { @@ -30522,6 +33129,24 @@ } } }, + "gameliftstreams" : { + "defaults" : { + "dnsSuffix" : "api.aws", + "variants" : [ { + "dnsSuffix" : "api.aws", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "endpoints" : { + "us-gov-east-1" : { + "hostname" : "gameliftstreams.us-gov-east-1.api.aws" + }, + "us-gov-west-1" : { + "hostname" : "gameliftstreams.us-gov-west-1.api.aws" + } + } + }, "geo" : { "endpoints" : { "fips-us-gov-west-1" : { @@ -31410,12 +34035,18 @@ "variants" : [ { "hostname" : "logs.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "logs.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1" : { "variants" : [ { "hostname" : "logs.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "logs.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -31511,8 +34142,18 @@ } }, "endpoints" : { - "us-gov-east-1" : { }, - "us-gov-west-1" : { } + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] + } ] + }, + "us-gov-west-1" : { + "variants" : [ { + "hostname" : "metering-marketplace.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] + } ] + } } }, "metrics.sagemaker" : { @@ -31704,6 +34345,12 @@ "variants" : [ { "hostname" : "networkmanager.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "networkmanager.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] + }, { + "hostname" : "networkmanager.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "fips-aws-us-gov-global" : { @@ -31954,6 +34601,11 @@ } } }, + "query.timestream" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "quicksight" : { "endpoints" : { "us-gov-east-1" : { }, @@ -32169,6 +34821,12 @@ "variants" : [ { "hostname" : "rekognition-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "rekognition-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "rekognition.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1-fips" : { @@ -32320,12 +34978,18 @@ "endpoints" : { "us-gov-east-1" : { "variants" : [ { + "hostname" : "route53profiles-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.us-gov-east-1.api.aws", "tags" : [ "dualstack" ] } ] }, "us-gov-west-1" : { "variants" : [ { + "hostname" : "route53profiles-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { "hostname" : "route53profiles.us-gov-west-1.api.aws", "tags" : [ "dualstack" ] } ] @@ -32338,6 +35002,12 @@ "variants" : [ { "hostname" : "route53resolver.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] + }, { + "hostname" : "route53resolver.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-gov-east-1-fips" : { @@ -32348,6 +35018,12 @@ "variants" : [ { "hostname" : "route53resolver.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "route53resolver.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] + }, { + "hostname" : "route53resolver.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-gov-west-1-fips" : { @@ -32634,6 +35310,9 @@ "variants" : [ { "hostname" : "securitylake.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "securitylake.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-gov-east-1-fips" : { @@ -32647,6 +35326,9 @@ "variants" : [ { "hostname" : "securitylake.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "securitylake.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] } ] }, "us-gov-west-1-fips" : { @@ -32952,12 +35634,24 @@ "variants" : [ { "hostname" : "sms-voice-fips.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1" : { "variants" : [ { "hostname" : "sms-voice-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "sms-voice-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "sms-voice.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -32982,12 +35676,24 @@ "variants" : [ { "hostname" : "snowball-fips.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "snowball-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "snowball.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1" : { "variants" : [ { "hostname" : "snowball-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "snowball-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "snowball.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -33031,19 +35737,33 @@ } ] }, "endpoints" : { - "us-gov-east-1" : { + "fips-us-gov-east-1" : { "credentialScope" : { "region" : "us-gov-east-1" }, + "deprecated" : true, "hostname" : "sqs.us-gov-east-1.amazonaws.com" }, - "us-gov-west-1" : { + "fips-us-gov-west-1" : { "credentialScope" : { "region" : "us-gov-west-1" }, - "hostname" : "sqs.us-gov-west-1.amazonaws.com", + "deprecated" : true, + "hostname" : "sqs.us-gov-west-1.amazonaws.com" + }, + "us-gov-east-1" : { + "variants" : [ { + "hostname" : "sqs.us-gov-east-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, + "us-gov-west-1" : { "protocols" : [ "http", "https" ], - "sslCommonName" : "{region}.queue.{dnsSuffix}" + "sslCommonName" : "{region}.queue.{dnsSuffix}", + "variants" : [ { + "hostname" : "sqs.us-gov-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] } } }, @@ -33464,12 +36184,24 @@ "variants" : [ { "hostname" : "transcribestreaming-fips.us-gov-east-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "transcribestreaming-fips.us-gov-east-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "transcribestreaming.us-gov-east-1.api.aws", + "tags" : [ "dualstack" ] } ] }, "us-gov-west-1" : { "variants" : [ { "hostname" : "transcribestreaming-fips.us-gov-west-1.amazonaws.com", "tags" : [ "fips" ] + }, { + "hostname" : "transcribestreaming-fips.us-gov-west-1.api.aws", + "tags" : [ "dualstack", "fips" ] + }, { + "hostname" : "transcribestreaming.us-gov-west-1.api.aws", + "tags" : [ "dualstack" ] } ] } } @@ -33821,6 +36553,11 @@ "us-iso-west-1" : { } } }, + "batch" : { + "endpoints" : { + "us-iso-east-1" : { } + } + }, "bedrock" : { "endpoints" : { "bedrock-runtime-us-iso-east-1" : { @@ -33856,6 +36593,18 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-iso-global" }, + "ce" : { + "endpoints" : { + "aws-iso-global" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "hostname" : "ce.us-iso-east-1.c2s.ic.gov" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-global" + }, "cloudcontrolapi" : { "endpoints" : { "us-iso-east-1" : { }, @@ -34254,10 +37003,33 @@ }, "glacier" : { "endpoints" : { + "fips-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "glacier-fips.us-iso-east-1.c2s.ic.gov" + }, + "fips-us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "glacier-fips.us-iso-west-1.c2s.ic.gov" + }, "us-iso-east-1" : { - "protocols" : [ "http", "https" ] + "protocols" : [ "http", "https" ], + "variants" : [ { + "hostname" : "glacier-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] }, - "us-iso-west-1" : { } + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "glacier-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + } } }, "glue" : { @@ -34297,6 +37069,11 @@ "us-iso-west-1" : { } } }, + "kinesisanalytics" : { + "endpoints" : { + "us-iso-east-1" : { } + } + }, "kms" : { "endpoints" : { "ProdFips" : { @@ -34387,7 +37164,8 @@ }, "oam" : { "endpoints" : { - "us-iso-east-1" : { } + "us-iso-east-1" : { }, + "us-iso-west-1" : { } } }, "organizations" : { @@ -34407,6 +37185,16 @@ "us-iso-east-1" : { } } }, + "pi" : { + "endpoints" : { + "us-iso-east-1" : { + "protocols" : [ "https" ] + }, + "us-iso-west-1" : { + "protocols" : [ "https" ] + } + } + }, "ram" : { "endpoints" : { "us-iso-east-1" : { }, @@ -34650,6 +37438,32 @@ } }, "secretsmanager" : { + "endpoints" : { + "us-iso-east-1" : { + "variants" : [ { + "tags" : [ "fips" ] + } ] + }, + "us-iso-east-1-fips" : { + "deprecated" : true + }, + "us-iso-west-1" : { + "variants" : [ { + "tags" : [ "fips" ] + } ] + }, + "us-iso-west-1-fips" : { + "deprecated" : true + } + } + }, + "securityhub" : { + "endpoints" : { + "us-iso-east-1" : { }, + "us-iso-west-1" : { } + } + }, + "servicediscovery" : { "endpoints" : { "us-iso-east-1" : { }, "us-iso-west-1" : { } @@ -34671,10 +37485,33 @@ }, "sqs" : { "endpoints" : { + "fips-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "sqs.us-iso-east-1.c2s.ic.gov" + }, + "fips-us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "sqs.us-iso-west-1.c2s.ic.gov" + }, "us-iso-east-1" : { - "protocols" : [ "http", "https" ] + "protocols" : [ "http", "https" ], + "variants" : [ { + "hostname" : "sqs.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] }, - "us-iso-west-1" : { } + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "sqs.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + } } }, "ssm" : { @@ -34684,6 +37521,36 @@ } }, "states" : { + "endpoints" : { + "fips-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "states-fips.us-iso-east-1.c2s.ic.gov" + }, + "fips-us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "states-fips.us-iso-west-1.c2s.ic.gov" + }, + "us-iso-east-1" : { + "variants" : [ { + "hostname" : "states-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "states-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + } + } + }, + "storagegateway" : { "endpoints" : { "us-iso-east-1" : { }, "us-iso-west-1" : { } @@ -34810,6 +37677,36 @@ } }, "workspaces" : { + "endpoints" : { + "fips-us-iso-east-1" : { + "credentialScope" : { + "region" : "us-iso-east-1" + }, + "deprecated" : true, + "hostname" : "workspaces-fips.us-iso-east-1.c2s.ic.gov" + }, + "fips-us-iso-west-1" : { + "credentialScope" : { + "region" : "us-iso-west-1" + }, + "deprecated" : true, + "hostname" : "workspaces-fips.us-iso-west-1.c2s.ic.gov" + }, + "us-iso-east-1" : { + "variants" : [ { + "hostname" : "workspaces-fips.us-iso-east-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "us-iso-west-1" : { + "variants" : [ { + "hostname" : "workspaces-fips.us-iso-west-1.c2s.ic.gov", + "tags" : [ "fips" ] + } ] + } + } + }, + "xray" : { "endpoints" : { "us-iso-east-1" : { }, "us-iso-west-1" : { } @@ -34898,6 +37795,11 @@ "us-isob-east-1" : { } } }, + "batch" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "budgets" : { "endpoints" : { "aws-iso-b-global" : { @@ -34916,6 +37818,18 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-iso-b-global" }, + "ce" : { + "endpoints" : { + "aws-iso-b-global" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "hostname" : "ce.us-isob-east-1.sc2s.sgov.gov" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-b-global" + }, "cloudcontrolapi" : { "endpoints" : { "us-isob-east-1" : { } @@ -34943,6 +37857,11 @@ } } }, + "codebuild" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "codedeploy" : { "endpoints" : { "us-isob-east-1" : { } @@ -34965,6 +37884,11 @@ } } }, + "datasync" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "directconnect" : { "endpoints" : { "us-isob-east-1" : { } @@ -35127,7 +38051,34 @@ "us-isob-east-1" : { } } }, + "fsx" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "glacier" : { + "endpoints" : { + "fips-us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "glacier-fips.us-isob-east-1.sc2s.sgov.gov" + }, + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "glacier-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + } + } + }, + "glue" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, + "guardduty" : { "endpoints" : { "us-isob-east-1" : { } } @@ -35154,6 +38105,11 @@ "us-isob-east-1" : { } } }, + "kinesisanalytics" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "kms" : { "endpoints" : { "ProdFips" : { @@ -35257,6 +38213,11 @@ "us-isob-east-1" : { } } }, + "pi" : { + "endpoints" : { + "us-isob-east-1" : { } + } + }, "ram" : { "endpoints" : { "us-isob-east-1" : { } @@ -35415,6 +38376,18 @@ } }, "secretsmanager" : { + "endpoints" : { + "us-isob-east-1" : { + "variants" : [ { + "tags" : [ "fips" ] + } ] + }, + "us-isob-east-1-fips" : { + "deprecated" : true + } + } + }, + "servicediscovery" : { "endpoints" : { "us-isob-east-1" : { } } @@ -35438,7 +38411,19 @@ "sslCommonName" : "{region}.queue.{dnsSuffix}" }, "endpoints" : { - "us-isob-east-1" : { } + "fips-us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "sqs.us-isob-east-1.sc2s.sgov.gov" + }, + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "sqs.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + } } }, "ssm" : { @@ -35448,7 +38433,19 @@ }, "states" : { "endpoints" : { - "us-isob-east-1" : { } + "fips-us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "states-fips.us-isob-east-1.sc2s.sgov.gov" + }, + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "states-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + } } }, "storagegateway" : { @@ -35531,7 +38528,19 @@ }, "workspaces" : { "endpoints" : { - "us-isob-east-1" : { } + "fips-us-isob-east-1" : { + "credentialScope" : { + "region" : "us-isob-east-1" + }, + "deprecated" : true, + "hostname" : "workspaces-fips.us-isob-east-1.sc2s.sgov.gov" + }, + "us-isob-east-1" : { + "variants" : [ { + "hostname" : "workspaces-fips.us-isob-east-1.sc2s.sgov.gov", + "tags" : [ "fips" ] + } ] + } } }, "xray" : { @@ -35560,7 +38569,511 @@ "description" : "EU ISOE West" } }, - "services" : { } + "services" : { + "access-analyzer" : { + "endpoints" : { + "eu-isoe-west-1" : { + "variants" : [ { + "hostname" : "access-analyzer.eu-isoe-west-1.api.cloud-aws.adc-e.uk", + "tags" : [ "dualstack" ] + } ] + } + } + }, + "acm" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "acm-pca" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "api.ecr" : { + "endpoints" : { + "eu-isoe-west-1" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "api.ecr.eu-isoe-west-1.cloud.adc-e.uk" + } + } + }, + "api.pricing" : { + "defaults" : { + "credentialScope" : { + "service" : "pricing" + } + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "appconfig" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "appconfigdata" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "application-autoscaling" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "arc-zonal-shift" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "athena" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "autoscaling" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "batch" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "budgets" : { + "endpoints" : { + "aws-iso-e-global" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "budgets.global.cloud.adc-e.uk" + }, + "eu-isoe-west-1" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "budgets.global.cloud.adc-e.uk" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-e-global" + }, + "cloudcontrolapi" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "cloudformation" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "cloudtrail" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "codedeploy" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "compute-optimizer" : { + "endpoints" : { + "eu-isoe-west-1" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "compute-optimizer.eu-isoe-west-1.cloud.adc-e.uk" + } + } + }, + "config" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "cost-optimization-hub" : { + "endpoints" : { + "eu-isoe-west-1" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "cost-optimization-hub.eu-isoe-west-1.cloud.adc-e.uk" + } + } + }, + "directconnect" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "dlm" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "dms" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "ds" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "dynamodb" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "ebs" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "ec2" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "ecs" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "eks" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "elasticache" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "elasticfilesystem" : { + "endpoints" : { + "eu-isoe-west-1" : { + "variants" : [ { + "hostname" : "elasticfilesystem-fips.eu-isoe-west-1.cloud.adc-e.uk", + "tags" : [ "fips" ] + } ] + }, + "fips-eu-isoe-west-1" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "deprecated" : true, + "hostname" : "elasticfilesystem-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + } + }, + "elasticloadbalancing" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "elasticmapreduce" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "emr-serverless" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "es" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "events" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "firehose" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "glue" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "kinesis" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "kms" : { + "endpoints" : { + "ProdFips" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "deprecated" : true, + "hostname" : "kms-fips.eu-isoe-west-1.cloud.adc-e.uk" + }, + "eu-isoe-west-1" : { + "variants" : [ { + "hostname" : "kms-fips.eu-isoe-west-1.cloud.adc-e.uk", + "tags" : [ "fips" ] + } ] + }, + "eu-isoe-west-1-fips" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "deprecated" : true, + "hostname" : "kms-fips.eu-isoe-west-1.cloud.adc-e.uk" + } + } + }, + "lakeformation" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "lambda" : { + "endpoints" : { + "eu-isoe-west-1" : { + "variants" : [ { + "hostname" : "lambda.eu-isoe-west-1.api.cloud-aws.adc-e.uk", + "tags" : [ "dualstack" ] + } ] + } + } + }, + "logs" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "monitoring" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "oam" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "organizations" : { + "endpoints" : { + "aws-iso-e-global" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "organizations.eu-isoe-west-1.cloud.adc-e.uk" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-e-global" + }, + "pi" : { + "endpoints" : { + "eu-isoe-west-1" : { + "protocols" : [ "https" ] + } + } + }, + "pipes" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "ram" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "rbin" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "rds" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "redshift" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "redshift-serverless" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "resource-groups" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "route53" : { + "endpoints" : { + "aws-iso-e-global" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "route53.cloud.adc-e.uk" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-e-global" + }, + "route53resolver" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "s3" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "signatureVersions" : [ "s3v4" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "savingsplans" : { + "endpoints" : { + "aws-iso-e-global" : { + "credentialScope" : { + "region" : "eu-isoe-west-1" + }, + "hostname" : "savingsplans.cloud.adc-e.uk" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-e-global" + }, + "scheduler" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "secretsmanager" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "servicecatalog" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "servicediscovery" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "servicequotas" : { + "defaults" : { + "protocols" : [ "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "sns" : { + "defaults" : { + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "sqs" : { + "defaults" : { + "protocols" : [ "http", "https" ], + "sslCommonName" : "{region}.queue.{dnsSuffix}" + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "ssm" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "states" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "streams.dynamodb" : { + "defaults" : { + "credentialScope" : { + "service" : "dynamodb" + }, + "protocols" : [ "http", "https" ] + }, + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "sts" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "swf" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "synthetics" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "tagging" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + }, + "xray" : { + "endpoints" : { + "eu-isoe-west-1" : { } + } + } + } }, { "defaults" : { "hostname" : "{service}.{region}.{dnsSuffix}", @@ -35587,8 +39100,18 @@ "services" : { "access-analyzer" : { "endpoints" : { - "us-isof-east-1" : { }, - "us-isof-south-1" : { } + "us-isof-east-1" : { + "variants" : [ { + "hostname" : "access-analyzer.us-isof-east-1.api.aws.hci.ic.gov", + "tags" : [ "dualstack" ] + } ] + }, + "us-isof-south-1" : { + "variants" : [ { + "hostname" : "access-analyzer.us-isof-south-1.api.aws.hci.ic.gov", + "tags" : [ "dualstack" ] + } ] + } } }, "acm" : { @@ -35710,6 +39233,24 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-iso-f-global" }, + "ce" : { + "endpoints" : { + "aws-iso-f-global" : { + "credentialScope" : { + "region" : "us-isof-south-1" + }, + "hostname" : "ce.us-isof-south-1.csp.hci.ic.gov" + } + }, + "isRegionalized" : false, + "partitionEndpoint" : "aws-iso-f-global" + }, + "cloudcontrolapi" : { + "endpoints" : { + "us-isof-east-1" : { }, + "us-isof-south-1" : { } + } + }, "cloudformation" : { "endpoints" : { "us-isof-east-1" : { }, @@ -36165,6 +39706,12 @@ "isRegionalized" : false, "partitionEndpoint" : "aws-iso-f-global" }, + "route53profiles" : { + "endpoints" : { + "us-isof-east-1" : { }, + "us-isof-south-1" : { } + } + }, "route53resolver" : { "endpoints" : { "us-isof-east-1" : { }, @@ -36207,16 +39754,8 @@ }, "secretsmanager" : { "endpoints" : { - "us-isof-east-1" : { - "variants" : [ { - "tags" : [ "dualstack" ] - } ] - }, - "us-isof-south-1" : { - "variants" : [ { - "tags" : [ "dualstack" ] - } ] - } + "us-isof-east-1" : { }, + "us-isof-south-1" : { } } }, "servicediscovery" : { @@ -36249,8 +39788,32 @@ "sslCommonName" : "{region}.queue.{dnsSuffix}" }, "endpoints" : { - "us-isof-east-1" : { }, - "us-isof-south-1" : { } + "fips-us-isof-east-1" : { + "credentialScope" : { + "region" : "us-isof-east-1" + }, + "deprecated" : true, + "hostname" : "sqs.us-isof-east-1.csp.hci.ic.gov" + }, + "fips-us-isof-south-1" : { + "credentialScope" : { + "region" : "us-isof-south-1" + }, + "deprecated" : true, + "hostname" : "sqs.us-isof-south-1.csp.hci.ic.gov" + }, + "us-isof-east-1" : { + "variants" : [ { + "hostname" : "sqs.us-isof-east-1.csp.hci.ic.gov", + "tags" : [ "fips" ] + } ] + }, + "us-isof-south-1" : { + "variants" : [ { + "hostname" : "sqs.us-isof-south-1.csp.hci.ic.gov", + "tags" : [ "fips" ] + } ] + } } }, "ssm" : { @@ -36338,6 +39901,27 @@ } } } + }, { + "defaults" : { + "hostname" : "{service}.{region}.{dnsSuffix}", + "protocols" : [ "https" ], + "signatureVersions" : [ "v4" ], + "variants" : [ { + "dnsSuffix" : "amazonaws.eu", + "hostname" : "{service}-fips.{region}.{dnsSuffix}", + "tags" : [ "fips" ] + } ] + }, + "dnsSuffix" : "amazonaws.eu", + "partition" : "aws-eusc", + "partitionName" : "AWS EUSC", + "regionRegex" : "^eusc\\-(de)\\-\\w+\\-\\d+$", + "regions" : { + "eusc-de-east-1" : { + "description" : "EU (Germany)" + } + }, + "services" : { } } ], "version" : 3 } \ No newline at end of file diff --git a/scripts/generate_aws_supported_endpoints/README.md b/scripts/generate_aws_supported_endpoints/README.md index 3def9a72a..c569a139f 100644 --- a/scripts/generate_aws_supported_endpoints/README.md +++ b/scripts/generate_aws_supported_endpoints/README.md @@ -89,4 +89,4 @@ const AWS_LAMBDA_SERVICE_ID = "lambda" - This file contains AWS **endpoint metadata**. - It is **automatically downloaded** and embedded into the project via `embed_endpoint.go`. ---- \ No newline at end of file +--- diff --git a/scripts/generate_aws_supported_endpoints/main.py b/scripts/generate_aws_supported_endpoints/main.py index 846533d72..a4abab5d6 100644 --- a/scripts/generate_aws_supported_endpoints/main.py +++ b/scripts/generate_aws_supported_endpoints/main.py @@ -104,4 +104,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/scripts/generate_aws_supported_endpoints/requirements.txt b/scripts/generate_aws_supported_endpoints/requirements.txt index f49d3aaec..3e10728e9 100644 --- a/scripts/generate_aws_supported_endpoints/requirements.txt +++ b/scripts/generate_aws_supported_endpoints/requirements.txt @@ -1,2 +1,3 @@ -requests==2.32.3 -jinja2==3.1.6 \ No newline at end of file +requests==2.32.4 +jinja2==3.1.6 +urllib3==2.6.3 diff --git a/scripts/generate_parliament_iam_permissions/generate_go_file.py b/scripts/generate_parliament_iam_permissions/generate_go_file.py index 4e233cb14..bcc3dfd0f 100644 --- a/scripts/generate_parliament_iam_permissions/generate_go_file.py +++ b/scripts/generate_parliament_iam_permissions/generate_go_file.py @@ -135,42 +135,9 @@ def write_service(service, go_file): def generate_go_file(iam_permissions): with open('../../aws/parliament_iam_permissions.go', 'w') as go_file: - go_file.write("""package aws + go_file.write("""//go:build !dev -type ParliamentCondition struct { -Condition string -Description string -Type string -} - -type ParliamentResourceType struct { -ConditionKeys []string -DependentActions []string -ResourceType string -} - -type ParliamentPrivilege struct { -AccessLevel string -Description string -Privilege string -ResourceTypes []ParliamentResourceType -} - -type ParliamentResource struct { -Arn string -ConditionKeys []string -Resource string -} - -type ParliamentService struct { -Conditions []ParliamentCondition -Prefix string -Privileges []ParliamentPrivilege -Resources []ParliamentResource -ServiceName string -} - -type ParliamentPermissions []ParliamentService +package aws func getParliamentIamPermissions() ParliamentPermissions { permissions := ParliamentPermissions{ diff --git a/scripts/generate_parliament_iam_permissions/requirements.txt b/scripts/generate_parliament_iam_permissions/requirements.txt index 6a274cbd2..64f146e44 100644 --- a/scripts/generate_parliament_iam_permissions/requirements.txt +++ b/scripts/generate_parliament_iam_permissions/requirements.txt @@ -2,6 +2,6 @@ beautifulsoup4==4.9.3 certifi==2024.7.4 chardet==4.0.0 idna==3.7 -requests==2.32.2 +requests==2.32.4 soupsieve==2.1 -urllib3==1.26.19 +urllib3==2.6.3